🏗️ CORE AGENT SYSTEM (Durable Objects)
Overview
SimpleCodeGeneratorAgent is the brain of vibesdk - a Durable Object that orchestrates entire app generation lifecycle.
Key responsibilities:
- Blueprint generation from user prompts
- Phase-by-phase code generation
- File management and versioning
- Sandbox deployment and monitoring
- Conversation handling
- Debug session orchestration
Agent Operations (State Machine)
1. Blueprint Generation
Trigger: User submits initial prompt Flow:
- LLM analyzes prompt → generates complete PRD (Blueprint)
- Blueprint includes: project structure, phases, tech stack, UI design, color palette
- Saved to state, shown to user for confirmation
- User can iterate or approve
2. Phase Generation
Trigger: User starts generation or requests new feature Flow:
- Agent determines next phase from blueprint
- Uses PhaseGeneration operation to plan files
- Updates currentDevState = PHASE_GENERATING
- Generates phase concept (files to create, purposes)
3. Phase Implementation
Trigger: Phase concept ready Flow:
- PhaseImplementation operation generates all files for phase
- Uses LLM with file generation tools
- Tracks progress per-file
- Updates generatedFilesMap with new files
- Commits to git (isomorphic-git in SQLite)
- Sets currentDevState = PHASE_IMPLEMENTING
4. Code Review & Fixing
Trigger: Phase complete, auto-triggered or user-requested Flow:
- PostPhaseCodeFixer runs TypeScript static analysis
- Identifies type errors, missing imports, etc.
- Automatically fixes common issues (TS2304, TS2307, etc.)
- Re-analyzes until clean or max iterations
- Updates files in generatedFilesMap
5. Deployment to Sandbox
Trigger: Files ready, user clicks preview Flow:
- DeploymentManager.deployToSandbox()
- Syncs all files to remote sandbox container
- Executes install commands (npm install, etc.)
- Starts dev server
- Returns preview URL
- Monitors health with periodic checks
6. User Conversation
Trigger: User sends message during generation Flow:
- UserConversationProcessor handles chat
- Queues feature requests if generating
- Processes immediately if idle
- Has access to tools: queue_request, deep_debug, deploy, etc.
- Streams responses via WebSocket
7. Deep Debugging
Trigger: User reports bug or runtime error Flow:
- Agent checks not currently generating (conflict prevention)
- DeepCodeDebugger assistant spawned
- Has access to: read files, static analysis, runtime errors, logs, regenerate files
- Iteratively diagnoses and fixes
- Saves transcript for context in next session
- Deploys fixes automatically
Agent Services (Delegation Pattern)
Agent delegates specific responsibilities to service classes:
Location: /worker/agents/services/implementations/
- FileManager - File CRUD, validation, deduplication
- DeploymentManager - Sandbox lifecycle, deployment, health checks
- GitService - Commit, history, clone service
- CodingAgent (Proxy) - Exposes agent methods to tools (runs in DO context)
Why services?
- Separation of concerns
- Testability
- Code reuse
- Clean interfaces