added AGENTS.md

This commit is contained in:
2026-06-15 17:39:33 +02:00
parent 460f357d48
commit 60127ec0a7

58
AGENTS.md Normal file
View File

@ -0,0 +1,58 @@
# WebWizard - Agent's Project Guide
Welcome! This file provides a high-level overview of the **WebWizard** project to help you understand the architecture, conventions, and workflows.
## 📝 Project Overview
WebWizard is an **AI-driven website concierge** (MVP) that allows users to create static websites through a guided wizard. It collects business information, uses AI (DAIAPI) to generate marketing copy and SEO metadata, and then renders a complete, standalone static website for export.
## 🛠️ Technical Stack
- **Backend:** PHP 8.2+ (Pure PHP, no external frameworks like Laravel or Symfony).
- **Frontend:** Vanilla JavaScript (ES6+), CSS Grid/Flexbox (No UI libraries like Bootstrap).
- **Data Persistence:** File-based JSON storage in the `data/` directory. No database.
- **Autoloading:** Composer (PSR-4, Namespace: `App\`).
- **Indentation:** **STRICTLY TABS** (Global preference).
## 🏗️ Architecture & Workflow
The application follows a linear data-gathering process:
1. **Wizard (Frontend)**: 8 steps in `public/index.html` managed by `public/js/wizard.js`.
2. **API Layer**: All communication goes through `public/ajax.php` (POST with JSON payload).
3. **Actions**: Logic residing in `src/Actions/` (e.g., `ProjectActions`, `TaskActions`).
4. **AI Queuing**: When wizard finishes, a task is created in `data/llm/`.
5. **Worker**: `scripts/worker.php` processes the queue, calls `DAIClient`, and stores generated content.
6. **Renderer**: `src/Services/Renderer.php` combines user data + AI content + PHP templates (`src/Templates/`) into a static site in `exports/<project_id>/`.
7. **Export**: The final site is zipped for download.
## 📂 Directory Structure
- `public/`: Web root. Contains `index.html`, `ajax.php`, `css/`, and `js/`.
- `src/`: PHP source code (`App\` namespace).
- `Actions/`: API controllers/handlers.
- `Services/`: Business logic (FileStorage, Renderer, LLMpool, DAIClient).
- `Templates/`: PHP šablóny for the generated websites.
- `Utils/`: Helpers and Configuration loader.
- `data/`: Protected data storage (Users, Projects, Consent, AI tasks). Protected by `.htaccess`.
- `exports/`: Destination for generated websites. Subfolders are project-specific.
- `scripts/`: CLI scripts (e.g., the `worker.php`).
- `tests/`: Debug and connectivity test scripts.
## ⚙️ Configuration
- `.env`: Local environment settings (e.g., `DAIAPI_URL`).
- `Config.php`: Utility to load and access these settings.
## 🔒 Security Principles
- **Protected Data**: Direct web access to `data/` and `exports/` subfolders (except public assets) is blocked.
- **Sanitization**: All output in templates uses the `e()` helper (htmlspecialchars).
- **Exports**: Generated sites use `config.php` (not JSON) to hide SMTP credentials.
- **Passwords**: Local viewer passwords are hashed using `password_hash()`.
## 🤖 AI Integration (DAIAPI)
- Connects to a local/VPN API at `http://10.2.8.1:9001/run` (DEV) or `http://192.168.122.10:9001/run` (PROD).
- Prompt logic is in `src/Prompts/ContentPrompt.php`. It forces JSON output and forbids HTML tags.
## 🚀 Common Commands
- **Run Worker (Continuous)**: `php scripts/worker.php --loop`
- **Test AI Connectivity**: `php tests/debug_dai.php`
- **Regenerate Autoloader**: `composer dump-autoload`
---
*Always respect the "No Frameworks" and "Tabs only" rules. Keep the code surgical and sémantic.*