The login flow now falls back to OAuth client credentials flow when the admin PAT token is not available. This allows login.html to work even when Zitadel PAT generation hasn't been configured yet. - Added get_oauth_token() helper function - Login now tries PAT first, then OAuth client credentials - Includes proper Zitadel scope for API access 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
25 KiB
BotCoder Multi-Agent OS - Architecture Analysis
Executive Summary
Based on analysis of botserver (Rust backend), botui (Web UI), and botapp (Tauri Desktop), we can architect BotCoder as a unified multi-agent operating system that leverages the existing Mantis Farm infrastructure while adding code-specific capabilities similar to Claude Code.
Current Architecture Analysis
1. BotServer (Rust Backend) - botserver/src/auto_task/
Multi-Agent Pipeline (The "Mantis Farm")
File: orchestrator.rs (1147 lines)
The orchestrator implements a 5-stage multi-agent pipeline:
┌─────────────────────────────────────────────────────────────┐
│ ORCHESTRATOR PIPELINE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Stage 1: PLAN ────────► Mantis #1 (Planner) │
│ - Analyze user request │
│ - Break down into sub-tasks │
│ - Identify tables, pages, tools, schedulers │
│ - Derive enterprise-grade work breakdown │
│ │
│ Stage 2: BUILD ───────► Mantis #2 (Builder) │
│ - Generate application code │
│ - Create HTML/CSS/JS files │
│ - Define database schema │
│ - Build tools & schedulers │
│ │
│ Stage 3: REVIEW ───────► Mantis #3 (Reviewer) │
│ - Validate code quality │
│ - Check HTMX patterns │
│ - Verify security │
│ - Ensure no hardcoded data │
│ │
│ Stage 4: DEPLOY ───────► Mantis #4 (Deployer) │
│ - Deploy application │
│ - Verify accessibility │
│ - Confirm static assets loading │
│ │
│ Stage 5: MONITOR ───────► Mantis #1 (Planner) │
│ - Setup health monitoring │
│ - Track error rates │
│ - Monitor response times │
│ │
└─────────────────────────────────────────────────────────────┘
Agent Status System
Agent States:
- WILD - Uninitialized agent
- BRED - Agent created and ready
- EVOLVED - Agent has completed work successfully
- WORKING - Agent actively processing
- DONE - Agent finished
- FAILED - Agent encountered error
Agent Roles:
pub enum AgentRole {
Planner, // Mantis #1 - Architect & Analyst
Builder, // Mantis #2 - Code Generator
Reviewer, // Mantis #3 - QA & Validation
Deployer, // Mantis #4 - Deployment
Monitor, // Mantis #1 (reused) - Health checks
}
Agent Executor (Container-Based)
File: agent_executor.rs (115 lines)
Provides containerized execution environment for agents:
pub struct AgentExecutor {
pub state: Arc<AppState>,
pub session_id: String,
pub task_id: String,
container: Option<ContainerSession>,
}
Capabilities:
- ✅ Spawn containerized terminal sessions
- ✅ Execute shell commands
- ✅ Broadcast terminal output via WebSocket
- ✅ Browser automation integration (chromiumoxide)
- ✅ Real-time progress updates
WebSocket Events:
terminal_output- stdout/stderr from agentthought_process- agent reasoning/thinkingstep_progress- pipeline stage progress (1/5, 2/5...)browser_ready- browser automation availableagent_thought- agent-specific thoughtsagent_activity- structured activity logstask_node- task breakdown visualization
Intent Classification
File: intent_classifier.rs
Classifies user requests into types:
- APP_CREATE - Generate new application
- APP_MODIFY - Modify existing app
- CODE_REVIEW - Review code
- DEBUG - Debug issues
- DEPLOY - Deploy application
- ANALYZE - Analyze codebase
Entity Extraction:
- Tables (database schema)
- Features (UI components)
- Pages (routes/views)
- Tools (business logic)
- Schedulers (background jobs)
App Generator
File: app_generator.rs (3400+ lines)
LLM-powered code generation:
- Generates HTMX applications
- Creates database schemas
- Builds REST API endpoints
- Generates BASIC tools
- Creates scheduled jobs
- Produces E2E tests
Output:
pub struct GeneratedApp {
pub name: String,
pub description: String,
pub tables: Vec<TableDefinition>,
pub pages: Vec<GeneratedPage>,
pub tools: Vec<GeneratedTool>,
pub schedulers: Vec<SchedulerDefinition>,
}
Designer AI
File: designer_ai.rs
Runtime code modifications with:
- Undo/redo support
- Real-time UI editing
- Visual layout changes
- Style modifications
Safety Layer
File: safety_layer.rs
- Constraint checking
- Simulation before execution
- Audit trail
- Approval workflows
2. BotUI (Web Interface) - botui/ui/suite/
Vibe Builder UI
File: partials/vibe.html (47KB)
Components:
- Pipeline Tabs - Plan/Build/Review/Deploy/Monitor stages
- Agents Sidebar - Mantis #1-4 status cards
- Workspaces List - Project management
- Canvas Area - Task node visualization
- Chat Overlay - Real-time communication with agents
Agent Cards Display:
<div class="as-agent-card" data-agent-id="1">
<div class="as-agent-header">
<span class="as-status-dot green"></span>
<span class="as-agent-name">Mantis #1</span>
</div>
<div class="as-agent-body">
<span class="as-agent-icons">👀 ⚙️ ⚡</span>
<span class="as-badge badge-evolved">EVOLVED</span>
</div>
</div>
WebSocket Integration:
// Connect to task progress stream
const ws = new WebSocket(`ws://localhost:8080/ws/task-progress/${taskId}`);
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
handleTaskProgress(data);
};
// Event types handled:
// - pipeline_start
// - pipeline_complete
// - step_progress (1/5, 2/5, ...)
// - agent_thought
// - agent_activity
// - task_node
// - terminal_output
// - manifest_update
Real-time Updates:
- Agent status changes (WILD → BRED → WORKING → EVOLVED)
- Task node visualization (plan breakdown)
- Terminal output streaming
- Progress indicators
- File generation notifications
Other UI Components
chat.html- Chat interface for agent interactioneditor-inner.html- Code editor (currently textarea, needs Monaco)explorer-inner.html- File browsersettings.html- Configurationtasks.html- Task managementdesktop-inner.html- Desktop integration
3. BotApp (Desktop) - botapp/src/
Tauri-based desktop application with:
- System tray integration
- Service monitoring
- File system access
- Desktop sync (rclone)
- Native notifications
Main Features:
// Desktop service monitoring
pub struct ServiceMonitor {
services: HashMap<String, ServiceStatus>,
}
// Tray management
pub struct TrayManager {
mode: RunningMode, // Server | Desktop | Client
}
// Drive integration
mod drive {
list_files()
upload_file()
create_folder()
}
// Sync integration
mod sync {
get_sync_status()
start_sync()
configure_remote()
}
BotCoder Multi-Agent OS Architecture
Vision
BotCoder = Vibe Builder + Code-Specific Agents + Professional Tools
Create a complete development environment that:
- Uses the existing Mantis Farm infrastructure
- Adds specialized coding agents (similar to Claude Code)
- Provides professional editor experience (Monaco, terminal, git, etc.)
- Supports both internal (GB Platform) and external (Forgejo) deployment
Proposed BotCoder Agent Ecosystem
Core Mantis Farm (Keep Existing)
Mantis #1: Planner & Orchestrator ───► Already exists in botserver
Mantis #2: Code Generator ───► Already exists (AppGenerator)
Mantis #3: Reviewer & Validator ───► Already exists
Mantis #4: Deployer ───► Already exists
New Specialized Agents (Add to BotCoder)
┌─────────────────────────────────────────────────────────────────┐
│ BOTCODER AGENTS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Mantis #5: Editor Agent ───► File operations │
│ - Multi-file editing │
│ - Syntax awareness │
│ - Refactoring support │
│ - Code completion │
│ │
│ Mantis #6: Database Agent ───► Schema operations │
│ - Query optimization │
│ - Migration management │
│ - Data visualization │
│ - Index suggestions │
│ │
│ Mantis #7: Git Agent ───► Version control │
│ - Commit analysis │
│ - Branch management │
│ - Conflict resolution │
│ - Code archaeology │
│ │
│ Mantis #8: Test Agent ───► Quality assurance │
│ - Test generation │
│ - Coverage analysis │
│ - E2E testing (chromiumoxide) │
│ - Performance profiling │
│ │
│ Mantis #9: Browser Agent ───► Web automation │
│ - Page recording │
│ - Element inspection │
│ - Performance monitoring │
│ - SEO checking │
│ │
│ Mantis #10: Terminal Agent ───► Command execution │
│ - Shell command execution │
│ - Build system integration │
│ - Package management │
│ - Docker orchestration │
│ │
│ Mantis #11: Documentation Agent ───► Docs & comments │
│ - Auto-generate docs │
│ - Comment quality check │
│ - README generation │
│ - API documentation │
│ │
│ Mantis #12: Security Agent ───► Security auditing │
│ - Vulnerability scanning │
│ - Dependency analysis │
│ - Secret detection │
│ - OWASP compliance │
│ │
└─────────────────────────────────────────────────────────────────┘
BotCoder Architecture
Backend (Rust)
botserver/src/
├── auto_task/ # EXISTING - Mantis Farm
│ ├── orchestrator.rs # Keep - Multi-agent pipeline
│ ├── agent_executor.rs # Keep - Container execution
│ ├── app_generator.rs # Keep - LLM code gen
│ ├── designer_ai.rs # Keep - Runtime edits
│ ├── intent_classifier.rs # Keep - Request classification
│ └── safety_layer.rs # Keep - Constraint checking
│
├── botcoder/ # NEW - BotCoder-specific agents
│ ├── mod.rs
│ ├── editor_agent.rs # Mantis #5 - File operations
│ ├── database_agent.rs # Mantis #6 - Schema ops
│ ├── git_agent.rs # Mantis #7 - Version control
│ ├── test_agent.rs # Mantis #8 - Testing
│ ├── browser_agent.rs # Mantis #9 - Web automation
│ ├── terminal_agent.rs # Mantis #10 - Command exec
│ ├── docs_agent.rs # Mantis #11 - Documentation
│ └── security_agent.rs # Mantis #12 - Security
│
├── deployment/ # NEW - From vibe.md Phase 0
│ ├── mod.rs # DeploymentRouter
│ ├── forgejo.rs # ForgejoClient
│ ├── api.rs # Deployment endpoints
│ └── templates.rs # CI/CD workflows
│
├── api/ # EXTEND - Add BotCoder APIs
│ ├── editor.rs # Monaco integration
│ ├── database.rs # DB UI backend
│ ├── git.rs # Git operations
│ ├── browser.rs # Browser automation
│ └── terminal.rs # WebSocket terminals
│
└── browser/ # NEW - From vibe.md Phase 4
├── mod.rs # BrowserSession
├── recorder.rs # ActionRecorder
├── validator.rs # TestValidator
└── api.rs # HTTP endpoints
Frontend (Web + Desktop)
botui/ui/suite/
├── partials/
│ ├── vibe.html # EXISTING - Agent sidebar
│ ├── vibe-deployment.html # NEW - Deployment modal
│ ├── editor.html # NEW - Monaco editor
│ ├── database.html # NEW - Schema visualizer
│ ├── git-status.html # NEW - Git operations
│ ├── git-diff.html # NEW - Diff viewer
│ ├── browser-controls.html # NEW - Browser automation
│ └── terminal.html # NEW - Enhanced terminal
│
├── js/
│ ├── vibe.js # EXISTING - Vibe logic
│ ├── deployment.js # NEW - Deployment handler
│ ├── editor.js # NEW - Monaco integration
│ ├── database.js # NEW - DB visualization
│ ├── git.js # NEW - Git operations
│ ├── browser.js # NEW - Browser automation
│ └── terminal.js # NEW - Terminal (xterm.js)
│
└── css/
├── agents-sidebar.css # EXISTING - Mantis cards
├── deployment.css # NEW - Deployment styles
├── editor.css # NEW - Editor styles
├── database.css # NEW - DB UI styles
└── terminal.css # NEW - Terminal styles
Integration Strategy
Option 1: BotCoder as Separate Repository (Recommended)
gb/
├── botserver/ # Existing - Backend services
├── botui/ # Existing - Web UI
├── botapp/ # Existing - Desktop app
└── botcoder/ # NEW - Multi-agent IDE
├── Cargo.toml
├── src/
│ ├── main.rs
│ ├── agents/ # BotCoder agents
│ ├── editor/ # Editor integration
│ └── workspace/ # Workspace management
└── ui/
├── src/
│ ├── components/ # React/Vue components
│ ├── pages/ # IDE pages
│ └── lib/
└── index.html
Pros:
- Clean separation of concerns
- Independent release cycle
- Can be deployed standalone
- Easier to maintain
Cons:
- Duplicate some botserver code
- Need to share common libs
Option 2: BotCoder as Module in BotServer
botserver/src/
├── auto_task/ # Existing Mantis Farm
└── botcoder/ # New BotCoder module
├── mod.rs
├── agents/
├── editor/
└── workspace/
Pros:
- Share existing infrastructure
- Single deployment
- Unified WebSocket channels
Cons:
- Tighter coupling
- Larger monolith
Recommendation: Option 1 (Separate Repo)
But share common libraries via a botlib crate:
gb/
├── botlib/ # Shared utilities
│ ├── src/
│ │ ├── agents/ # Agent traits
│ │ ├── llm/ # LLM clients
│ │ └── websocket/ # WebSocket utils
│ └── Cargo.toml
│
├── botserver/ # Uses botlib
├── botui/ # Uses botlib
├── botapp/ # Uses botlib
└── botcoder/ # Uses botlib ← NEW
BotCoder Features vs Vibe Builder
Vibe Builder (Existing)
- ✅ Multi-agent pipeline (Mantis #1-4)
- ✅ App generation (HTMX apps)
- ✅ WebSocket real-time updates
- ✅ Agent status visualization
- ✅ Task breakdown
- ✅ Deployment (internal GB platform)
BotCoder (Add)
- 📝 Monaco Editor - Professional code editing
- 🗄️ Database UI - Schema visualization
- 🐙 Git Operations - Version control UI
- 🌐 Browser Automation - Testing & recording
- 📂 Multi-File Workspace - Tab management
- 🖥️ Enhanced Terminal - xterm.js integration
- 🚀 Dual Deployment - Internal + Forgejo
- 🔒 Security Scanning - Vulnerability detection
- 📚 Auto-Documentation - Generate docs
- 🧪 E2E Testing - chromiumoxide integration
BotCoder Multi-Agent Workflow Example
User Request: "Create a CRM with contacts and deals"
1. CLASSIFY
└─ Intent: APP_CREATE
└─ Entities: { tables: [contacts, deals], features: [Contact Manager, Deal Pipeline] }
2. PLAN (Mantis #1 - Planner)
├─ Break down into 12 sub-tasks
├─ Create task nodes
└─ Estimate: 45 files, 98k tokens, 2.5 hours
3. BUILD (Mantis #2 - Builder)
├─ Generate HTML/CSS/JS files
├─ Create database schema
├─ Build REST API endpoints
└─ Output: /apps/my-crm/
4. CODE REVIEW (Mantis #3 - Reviewer)
├─ Check HTMX patterns
├─ Verify security
├─ Validate error handling
└─ Status: PASSED
5. OPTIMIZE (Mantis #5 - Editor Agent) ← NEW
├─ Analyze code structure
├─ Suggest refactorings
├─ Apply safe optimizations
└─ Generate PR
6. TEST (Mantis #8 - Test Agent) ← NEW
├─ Generate unit tests
├─ Create E2E tests (chromiumoxide)
├─ Measure coverage
└─ Status: 87% coverage
7. SECURITY CHECK (Mantis #12 - Security Agent) ← NEW
├─ Scan vulnerabilities
├─ Check dependencies
├─ Detect secrets
└─ Status: 0 issues found
8. DEPLOY (Mantis #4 - Deployer)
├─ Choose deployment target
│ ├─ Internal GB Platform ← Selected
│ └─ External Forgejo (optional)
├─ Deploy to /apps/my-crm/
└─ Verify accessibility
9. DOCUMENT (Mantis #11 - Documentation Agent) ← NEW
├─ Generate README.md
├─ Create API docs
├─ Add code comments
└─ Output: /docs/
10. MONITOR (Mantis #1 - Planner)
├─ Setup uptime monitoring
├─ Track error rates
├─ Monitor response times
└─ Status: ACTIVE
Technical Implementation Plan
Phase 1: Core BotCoder Infrastructure (Week 1)
Tasks:
- Create
botcoder/repository structure - Implement
botlibshared crate - Add Mantis #5-12 agent stubs
- Extend WebSocket protocol for new agents
- Update orchestrator to support 12 agents
Deliverables:
- ✅ BotCoder repo initialized
- ✅ Agent trait system defined
- ✅ WebSocket events extended
- ✅ Orchestrator handles 12-agent pipeline
Phase 2: Editor & Database UI (Week 2)
Tasks:
- Integrate Monaco Editor (replace textarea)
- Build database schema visualizer
- Add query builder UI
- Implement Mantis #5 (Editor Agent)
- Implement Mantis #6 (Database Agent)
Deliverables:
- ✅ Monaco loads with syntax highlighting
- ✅ ER diagram shows tables/relationships
- ✅ Query builder generates SQL
- ✅ Editor agent can refactor code
- ✅ Database agent optimizes queries
Phase 3: Git & Browser Automation (Week 3)
Tasks:
- Build git operations UI
- Implement diff viewer
- Add browser automation panel (chromiumoxide)
- Implement Mantis #7 (Git Agent)
- Implement Mantis #9 (Browser Agent)
Deliverables:
- ✅ Git status shows changes
- ✅ Diff viewer displays side-by-side
- ✅ Browser automation records actions
- ✅ Git agent manages branches
- ✅ Browser agent generates Playwright tests
Phase 4: Testing, Security & Docs (Week 4)
Tasks:
- Implement test generation
- Add security scanning
- Build documentation generator
- Implement Mantis #8 (Test Agent)
- Implement Mantis #12 (Security Agent)
- Implement Mantis #11 (Docs Agent)
Deliverables:
- ✅ Test agent generates coverage reports
- ✅ Security agent scans vulnerabilities
- ✅ Docs agent generates README
- ✅ E2E tests run via chromiumoxide
Phase 5: Deployment Integration (Week 5)
Tasks:
- Implement deployment router (from vibe.md Phase 0)
- Add Forgejo integration
- Build deployment UI
- Integrate with existing Mantis #4 (Deployer)
Deliverables:
- ✅ Can deploy internally to /apps/
- ✅ Can deploy externally to Forgejo
- ✅ CI/CD pipelines auto-generated
- ✅ Deployment choice in UI
Success Metrics
Agent Performance
- ⚡ Pipeline completes in < 2 minutes
- 🎯 95%+ task success rate
- 🔄 < 5% agent failures requiring retry
- 📊 Real-time progress updates < 100ms latency
Code Quality
- ✅ 80%+ test coverage
- 🔒 0 critical vulnerabilities
- 📝 100% documented public APIs
- 🚀 < 30s deployment time
User Experience
- 💬 Natural language → working app
- 🎨 Beautiful UI by default
- 🔧 Professional tools (Monaco, terminal, git)
- 📱 Works on desktop + web
Comparison: BotCoder vs Claude Code
| Feature | BotCoder | Claude Code |
|---|---|---|
| Multi-agent pipeline | ✅ 12 specialized agents | ❌ Single agent |
| Visual agent status | ✅ Real-time Mantis cards | ❌ No agent visibility |
| App generation | ✅ Full-stack (HTMX + DB) | ✅ Code generation only |
| Database UI | ✅ Schema visualizer | ❌ No DB tools |
| Git operations | ✅ Dedicated agent (Mantis #7) | ✅ Git integration |
| Browser automation | ✅ chromiumoxide + Mantis #9 | ✅ Playwright support |
| Deployment options | ✅ Dual (Internal + Forgejo) | ❌ No deployment |
| Desktop app | ✅ Tauri (botapp) | ❌ CLI only |
| Multi-user | ✅ SaaS platform | ❌ Single user |
| Visual workspace | ✅ Vibe Builder | ❌ Terminal only |
| Agent reasoning | ✅ Transparent thoughts | ❌ Black box |
Conclusion
BotCoder can leverage the existing Mantis Farm infrastructure in botserver while adding specialized coding agents and professional tools. The architecture is:
- Foundation: Existing orchestrator.rs (1147 lines) - 5-stage pipeline
- Extension: Add 7 new specialized agents (Mantis #5-12)
- UI: Extend vibe.html with editor, database, git, browser panels
- Desktop: Integrate with botapp for native experience
- Deployment: Dual deployment (internal GB Platform + external Forgejo)
Estimated Effort: 5 weeks (following vibe.md roadmap)
Result: A complete multi-agent development environment that exceeds Claude Code's capabilities while offering visual agent management, dual deployment, and multi-user SaaS architecture.