Spaces:
Paused
Paused
| alwaysApply: true | |
| # Suna AI Worker Project - Cursor Rules | |
| ## Project Overview | |
| Suna is an open-source generalist AI Worker with a full-stack architecture: | |
| - **Frontend**: Next.js 15+ with TypeScript, Tailwind CSS, Radix UI, React Query | |
| - **Backend**: Python 3.11+ with FastAPI, Supabase, Redis, LiteLLM, Dramatiq | |
| - **Agent System**: Isolated Docker environments with comprehensive tool execution | |
| - **Database**: Supabase for persistence, authentication, real-time features, and RLS | |
| ## Architecture Components | |
| ### Core Stack | |
| - **Frontend**: Next.js App Router + TypeScript + Tailwind + Radix UI | |
| - **Backend**: FastAPI + Supabase + Redis + LiteLLM + Dramatiq workers | |
| - **Database**: PostgreSQL via Supabase with Row Level Security | |
| - **Agent Runtime**: Docker containers with browser automation, code interpreter | |
| - **Authentication**: Supabase Auth with JWT validation | |
| - **Monitoring**: Langfuse tracing, Sentry error tracking, Prometheus metrics | |
| ### File Organization | |
| ```txt | |
| project/ | |
| βββ frontend/ # Next.js application | |
| β βββ src/ | |
| β βββ app/ # Next.js app router pages | |
| β βββ components/ # Reusable React components | |
| β βββ hooks/ # Custom React hooks | |
| β βββ lib/ # Utilities and configurations | |
| β βββ providers/ # Context providers | |
| β βββ contexts/ # React contexts | |
| βββ backend/ # Python FastAPI backend | |
| β βββ agent/ # AI Worker core implementation | |
| β βββ services/ # Business logic services | |
| β βββ utils/ # Shared utilities | |
| β βββ supabase/ # Database migrations & config | |
| β βββ tools/ # Agent tool implementations | |
| β βββ auth/ # Authentication logic | |
| β βββ triggers/ # Event-driven triggers | |
| β βββ api.py # Main FastAPI application | |
| βββ docs/ # Documentation | |
| ``` | |
| ## Development Principles | |
| ### Code Quality Standards | |
| - **Type Safety**: Strict TypeScript frontend, comprehensive Python type hints | |
| - **Error Handling**: Structured error responses, proper exception handling | |
| - **Logging**: Structured logging with context throughout the stack | |
| - **Testing**: Unit tests for core logic, integration tests for APIs | |
| - **Security**: Input validation, authentication, encryption for sensitive data | |
| ### Performance Guidelines | |
| - **Frontend**: Code splitting, lazy loading, optimized bundle size | |
| - **Backend**: Async/await patterns, connection pooling, Redis caching | |
| - **Database**: Proper indexing, query optimization, RLS policies | |
| - **Agent**: Timeout handling, resource limits, sandbox isolation | |
| ### Integration Patterns | |
| - **LLM Integration**: LiteLLM for multi-provider support, structured prompts | |
| - **Tool System**: Dual schema decorators (OpenAPI + XML), consistent ToolResult | |
| - **Real-time**: Supabase subscriptions for live updates | |
| ## Key Technologies | |
| ### Frontend Dependencies | |
| - Next.js 15+, React 18+, TypeScript 5+ | |
| - @tanstack/react-query, @supabase/supabase-js | |
| - @radix-ui components, @tailwindcss/typography | |
| - @hookform/resolvers, react-hook-form | |
| ### Backend Dependencies | |
| - FastAPI 0.115+, Python 3.11+ | |
| - Supabase 2.17+, Redis 5.2+, LiteLLM 1.72+ | |
| - Dramatiq 1.18+, Pydantic for validation | |
| - Sentry, Langfuse, Prometheus for observability | |
| ## Advanced Patterns | |
| ### Agent System Architecture | |
| - **Versioning**: Multiple agent versions with `agent_versions` table | |
| - **Configuration**: JSONB config storage with validation | |
| - **Workflows**: Step-by-step execution with `agent_workflows` | |
| - **Triggers**: Scheduled and event-based automation | |
| - **Builder Tools**: Dynamic agent creation and management | |
| ### Security & Authentication | |
| - **JWT Validation**: Supabase token verification without signature check | |
| - **Row Level Security**: Database-level access control | |
| - **Credential Encryption**: Secure storage of sensitive API keys | |
| - **Input Validation**: Pydantic models for all user inputs | |
| ### Database Patterns | |
| - **Migrations**: Idempotent SQL with proper error handling | |
| - **Indexing**: Foreign keys and query optimization | |
| - **Triggers**: Automated timestamp management | |
| - **Enums**: Safe enum creation with duplicate handling | |
| ## Development Workflow | |
| ### Environment Setup | |
| - Use `mise.toml` for tool version management | |
| - Docker Compose for local development stack | |
| - Environment-specific configurations (LOCAL/STAGING/PRODUCTION) | |
| ### Code Standards | |
| - Follow established naming conventions | |
| - Implement proper error boundaries | |
| - Use consistent logging patterns | |
| - Handle loading and error states | |
| ### Testing Strategy | |
| - Unit tests for business logic | |
| - Integration tests for API endpoints | |
| - E2E tests for critical user flows | |
| - Performance testing for agent execution | |
| ## When in Doubt | |
| - Follow existing patterns in the codebase | |
| - Check similar implementations for guidance | |
| - Use established error handling and logging | |
| - Prioritize type safety and security | |
| - Consult domain-specific rule files for detailed guidance | |
| - Check similar implementations for guidance | |
| - Use the established error handling patterns | |
| - Follow the logging conventions with structured logging | |