Engine do Brabo: Elixir/OTP + Phoenix (canais) + Oban (filas no Postgres) — agentes, gates, sessões e runners.
Elixir 1.20.4 / OTP 29.1.1 sobre Alpine (ADR 0209), as mesmas versões do Dockerfile e do CI. Precisa de Postgres 16 com pgvector.
mix deps.get
POSTGRES_HOST=localhost POSTGRES_USER=brabo POSTGRES_PASSWORD=brabo mix testOs testes dos gates usam gitleaks, hadolint, yamllint e actionlint; sem eles, esses testes são excluídos (o CI exige todos).
contracts/ (areas.json, fluxo.yml, docker-cli.ts) vem do brabo-contracts na tag fixada em scripts/baixar-contratos.sh (hoje v1.1.1-dev.3). Para atualizar: scripts/baixar-contratos.sh <tag>. O CI baixa de novo e reprova divergência.
Dockerfile (produção, mix release) e Dockerfile.dev (bind-mount do repositório em /workspace). O CI só constrói a imagem de produção; a imagem ghcr.io/viralabs-dev/brabo-engine é publicada pelo release.yml quando sai uma tag final (vX.Y.Z).
Documentação do app em docs/ (regras de negócio em docs/business-rules/engine.md); templates de prompt em prompts/.
Branches permanentes: dev e main; tag só por workflow.
O Brabo é dividido em repositórios por camada (ADR 0252), e a documentação central está no brabo e em https://viralabs-dev.github.io/brabo/prd/.
- Depende de: brabo-contracts e brabo-ci.
- É usado por: brabo, brabo-infra e brabo-qa (os golden-sets rodam dentro do engine).
| Repositório | Papel |
|---|---|
| brabo | Porta de entrada do produto: documentação, ADRs, install.sh e release do produto |
| brabo-api | API NestJS: domínio, banco e autenticação |
| brabo-engine | Engine Elixir/OTP: agentes, gates, sessões e filas |
| brabo-web | Interface web em React |
| brabo-runner | CLI que roda na máquina do usuário |
| brabo-broker | Único processo com acesso ao socket do Docker |
| brabo-contracts | Contratos compartilhados entre os repositórios |
| brabo-infra | Composes, Kubernetes e o make dev que sobe tudo |
| brabo-ci | Workflows reutilizáveis e política de PR |
| brabo-qa | Testes de ponta a ponta, golden-sets e smoke das imagens |
| brabo-workspace | Pasta-mãe que clona os repositórios lado a lado |
Se o projeto te ajuda, você pode pagar um café no Ko-fi.