Pular para conteúdo

Arquitetura

Estrutura do Monorepo

Panacea/ ├── pacotes/ │ ├── backend/ # Python Flask — API unificada + streaming de agente + RAG │ ├── cli/ # TypeScript — terminal CLI anote │ ├── vscode/ # TypeScript — extensão do VS Code │ ├── web/ # TypeScript/React — aplicativo de chatbot para navegador │ ├── mobile/ # TypeScript/React Native (Expo) — iOS + Android │ ├── desktop/ # TypeScript/Electron — aplicativo de desktop privado │ ├── sdk/ # TypeScript — SDK cliente JS/TS │ └── docs/ # MkDocs Material — site de documentação ├── docker-compose.yml ├── package.json # workspaces npm └── Makefile

Arquitetura do Backend

O backend em Python Flask lida com toda a lógica do lado do servidor:

pacotes/backend/ ├── app.py # Ponto de entrada do Flask, registro de rotas ├── api_endpoints/ │ ├── chat/ # Streaming de agente (SSE), gerenciamento de sessão │ ├── documents/ # Upload, pipeline RAG, Q&A │ ├── search/ # Consultas de índice de busca semântica │ ├── auth/ # JWT, Google OAuth │ ├── user/ # Perfil, configurações │ └── payments/ # Webhooks do Stripe + checkout ├── agents/ # Definições de agentes LangChain/LangGraph ├── services/ │ ├── rag.py # Fragmentação de documentos + embeddings Chroma │ ├── streaming.py # Streaming SSE para Claude/OpenAI/Gemini │ └── search.py # Busca semântica TF-IDF ├── database/ │ ├── db.py # Conexão MySQL + consultas │ └── schema.sql # Esquema do banco de dados └── models/ # Wrappers de provedores de LLM

Fluxo de Dados: Chat do Agente

Cliente (CLI / VS Code / Web / Mobile) │ POST /api/chat/stream {mensagem, cwd, modelo} ▼ Backend Flask (app.py → chat/handler.py) │ fluxo SSE ▼ Provedor de LLM (Anthropic / OpenAI / Gemini / Ollama) │ chamadas de ferramenta ↔ executar (Ler/Escrever/Editar/Bash/Glob/Grep) ▼ Sistema de Arquivos (cwd) + Chroma (contexto RAG)

Escolhas Tecnológicas

Camada Tecnologia Por quê
Backend Python Flask Ecossistema rico em ML/AI, agentes existentes
Streaming de agente Anthropic Python SDK SSE nativo, uso de ferramentas
Banco de Dados Vetorial ChromaDB Local-first, sem infraestrutura necessária
Banco de Dados MySQL ACID, esquema existente
Cache Redis Sessão + limitação de taxa
Frontend React 18 + TypeScript Segurança de tipo, ecossistema
Desktop Electron Multiplataforma, empacota Python
Mobile Expo (React Native) Compartilhamento de código com a web
CLI Commander.js Maduro, amigável ao TypeScript
Docs MkDocs Material Bonito, rápido, markdown