π οΈ Aubm β Technical Specification
Target Stack: FastAPI (Python) + React/TypeScript (Vite) + Supabase (Postgres + Auth)
This document provides a comprehensive technical blueprint for recreating Aubm.
1. System Architecture
Aubm follows a decoupled architecture with a centralized database (Supabase) acting as the source of truth and coordination layer.
Directory Structure
aubm/
βββ backend/ # Python 3.10+
β βββ main.py # Application entrypoint & CRUD API
β βββ worker.py # Standalone task queue worker
β βββ schema.sql # Full DDL for Supabase
β βββ agents/ # Provider-specific implementations
β β βββ base.py # Abstract BaseAgent class
β β βββ agent_factory.py # Factory for creating agent instances
β β βββ {provider}_agent.py
β βββ routers/ # Functional endpoint grouping
β β βββ agent_runner.py # Task execution logic
β β βββ orchestrator.py # Multi-task project flow
β βββ services/ # Core business logic
β βββ config.py # Configuration management
β βββ task_queue.py # Background processing loop
β βββ semantic_backprop.py # RAG context builder
βββ frontend/ # React + Vite + TS
β βββ src/
β β βββ components/ # UI Modular components
β β βββ services/ # API communication layer
β β βββ context/ # Auth & Global state
β β βββ i18n/ # Multi-language support
β βββ vite.config.ts
βββ database/ # Migrations & Seed data
2. Database Schema (Supabase/Postgres)
Core Tables
| Table | Purpose | Key Columns |
|---|---|---|
profiles |
User extensions | id (uuid), role, full_name, avatar_url |
projects |
Project containers | id, name, description, context, owner_id, status |
agents |
AI Identities | id, name, role, api_provider, model, system_prompt |
tasks |
Units of work | id, project_id, assigned_agent_id, status, output_data |
task_runs |
Execution history | id, task_id, agent_id, status, error_message |
agent_logs |
Execution traces | id, task_id, action, content, metadata |
app_config |
Global settings | key, value (JSONB) |
Status Enums
- Tasks:
todo,in_progress,awaiting_approval,done,failed,cancelled. - Task Runs:
queued,running,completed,failed,cancelled. - Profiles:
user,manager,admin.
3. Backend Logic
Agent Execution Flow
- Request:
POST /tasks/{id}/run - Initialization: Fetch task, agent, and project data.
- Context Building:
semantic_backpropfetches outputs from previous tasks in the same project. - Agent Factory: Instantiates the correct
BaseAgentsubclass (e.g.,GroqAgent). - Execution:
- LLM call with dynamic prompt.
- Real-time logging to
agent_logsvia SSE.
- Guardrails:
output_cleaner: Strips markdown artifacts.language_guard: Ensures output matchesapp_config["output_language"].
- Persistence: Updates
task.output_dataand sets status toawaiting_approval.
Orchestration Engine
- Processes a project's task list as a Directed Acyclic Graph (DAG).
- Respects
is_criticalandpriorityfields. - Auto-assigns available agents from the
agentspool if no agent is pre-assigned.
Tool System (Phase 2)
- Tool Registry: A central registry where tools are defined and permissioned.
- Browser Tool: Uses Playwright for headless browsing and content extraction.
- Sandbox Tool: Executes code in a restricted environment.
- Integration: Tools are exposed to agents via the OpenAI function-calling/tool-calling schema.
4. Frontend Design System
- Styling: Vanilla CSS with modern variables (HSL colors, glassmorphism).
- Icons: Lucide React.
- State Management: React Context + Hooks.
- Features:
- Kanban Board for task management.
- Real-time streaming console for agent thoughts.
- Interactive Project Wizard for quick setup.
- Analytics dashboard for project performance.
5. Deployment Guide
Vercel Integration
The project is designed to run seamlessly on Vercel:
- Frontend: Standard Vite build.
- Backend: Python Serverless Functions.
- Database: External Supabase instance.
Local Setup
- DB: Apply
schema.sqlto Supabase. - Backend:
pip install -r requirements.txt&uvicorn main:app. - Frontend:
npm install&npm run dev.
6. Key Dependencies
Backend
fastapi,supabase,openai,groq,google-genai,playwright,folium.
Frontend
react,lucide-react,framer-motion(for animations),i18next.
7. Security (RLS)
- Projects: Only visible to owner or if
is_public=true. - Config: Only writable by users with
role='admin'. - Agents: Writable by
manageroradmin. - Tasks: Protected by project-level RLS.
End of Specification