@zaip-ai/cli 1.4.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/adapter-hook-sources.d.ts +1 -0
- package/dist/services/adapter-hook-sources.d.ts.map +1 -1
- package/dist/services/adapter-hook-sources.js +1 -0
- package/dist/services/adapter-hook-sources.js.map +1 -1
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.d.ts.map +1 -1
- package/dist/services/adapters.js +17 -4
- package/dist/services/adapters.js.map +1 -1
- package/dist/services/agent-adapters.d.ts +97 -34
- package/dist/services/agent-adapters.d.ts.map +1 -1
- package/dist/services/agent-adapters.js +260 -49
- package/dist/services/agent-adapters.js.map +1 -1
- package/dist/services/codex-conversation-lifecycle-hook.d.ts +2 -0
- package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -0
- package/dist/services/codex-conversation-lifecycle-hook.js +29 -0
- package/dist/services/codex-conversation-lifecycle-hook.js.map +1 -0
- package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.js +173 -0
- package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
- package/dist/services/codex-subagent-hook-template.js +1 -1
- package/dist/services/doctor.js +2 -2
- package/dist/services/install-agents-template.d.ts.map +1 -1
- package/dist/services/install-agents-template.js +126 -5
- package/dist/services/install-agents-template.js.map +1 -1
- package/dist/services/logger.js +1 -1
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +2 -2
- package/dist/services/stack-git.d.ts +3 -0
- package/dist/services/stack-git.d.ts.map +1 -1
- package/dist/services/stack-git.js +24 -3
- package/dist/services/stack-git.js.map +1 -1
- package/dist/services/template-manifest.d.ts.map +1 -1
- package/dist/services/template-manifest.js +3 -1
- package/dist/services/template-manifest.js.map +1 -1
- package/dist/services/transactional-files.d.ts +2 -1
- package/dist/services/transactional-files.d.ts.map +1 -1
- package/dist/services/transactional-files.js +8 -3
- package/dist/services/transactional-files.js.map +1 -1
- package/package.json +2 -2
- package/templates/.agents/README-ENG.md +718 -0
- package/templates/.agents/README.md +42 -42
- package/templates/.agents/architecture/hostinger-cloudflare-terraform.md +90 -0
- package/templates/.agents/architecture/software-architecture.md +61 -0
- package/templates/.agents/config/autonomous-cloud-inputs.json +41 -0
- package/templates/.agents/dashboard/.zaip-managed.json +66 -46
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-oZVlf-l5.js → DashboardHelpDialog-CYfpYsTr.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BYjVOHI_.js → TraceabilityWorkspace-DHDrd5rE.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-BYbpmqmM.js +2 -0
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +2 -2
- package/templates/.agents/dashboard/apps/frontend/index.html +1 -1
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/apps/frontend/src/App.tsx +28 -9
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +27 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +13 -29
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-identity.test.ts +43 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-identity.ts +32 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-project-overview.ts +28 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
- package/templates/.agents/dashboard/modules/traceability/src/contracts.ts +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/src/index.ts +1 -1
- package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
- package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +204 -204
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +109 -109
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +204 -204
- package/templates/.agents/dashboard/packages/local-runtime/src/server-identity.test.ts +42 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +41 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +1 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +2 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +5 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/server-workspace.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +1 -13
- package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +11 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-incremental-refresh.test.ts +55 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +9 -6
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.test.ts +22 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +10 -8
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +68 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +39 -10
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-snapshot-seed.test.ts +47 -42
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/design/.zaip-managed.json +41 -41
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +1 -1
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +88 -43
- package/templates/.agents/runtime/checksums.sha256 +5 -5
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/provenance.json +4 -4
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/skills/zaip-aios/SKILL.md +4 -2
- package/templates/.agents/skills/zaip-skill-execution/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-execution/references/candidate-workflow.md +23 -0
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-task/SKILL.md +1 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/infra/terraform/terraform.tfvars.example +2 -1
- package/templates/template-manifest.json +144 -108
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-ZJFXmK7m.js +0 -2
- package/templates/.agents/data/tasks/.gitkeep +0 -0
- /package/templates/.agents/{architecture → records/changes}/.gitkeep +0 -0
- /package/templates/.agents/{data/changes → records/executions}/.gitkeep +0 -0
- /package/templates/.agents/{data/executions → records/prds}/.gitkeep +0 -0
- /package/templates/.agents/{data/prds → records/runs}/.gitkeep +0 -0
- /package/templates/.agents/{data/runs → records/specs}/.gitkeep +0 -0
- /package/templates/.agents/{data/specs → records/tasks}/.gitkeep +0 -0
|
@@ -14,19 +14,19 @@ Essa abordagem busca reduzir intervenções, contexto desnecessário e retrabalh
|
|
|
14
14
|
|
|
15
15
|
Embora tenha nascido com foco em software, o ZAIP-AIOS também coordena demandas de Operações, Growth, Marketing, Branding e Vendas. O framework e o Dashboard funcionam localmente, sem exigir VPS. Autenticação, franquia, cobrança e integrações dependem do host/provider escolhido; usar uma assinatura no Codex não transforma o custo equivalente estimado em cobrança de API.
|
|
16
16
|
|
|
17
|
-
<img src="config/src/Zaip%20AIOS%20Squads.png" alt="Estrutura organizacional dos seis squads e 23 agentes do ZAIP-AIOS" width="100%">
|
|
17
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/Zaip%20AIOS%20Squads.png" alt="Estrutura organizacional dos seis squads e 23 agentes do ZAIP-AIOS" width="100%">
|
|
18
18
|
|
|
19
19
|
Na prática, o sistema decompõe demandas complexas, organiza o trabalho, seleciona os agentes mais adequados, coordena dependências, acompanha a execução e verifica a qualidade antes de considerar uma entrega concluída.
|
|
20
20
|
|
|
21
21
|
O Dashboard centraliza a operação em uma única visão, reunindo Tasks, SPECs e PRDs, além de dependências, bloqueios, tempo de execução, consumo de tokens, custos, revisões e evidências produzidas ao longo do processo.
|
|
22
22
|
|
|
23
|
-
<img src="config/src/dashboard_pt_1_visao_geral.png" alt="Dashboard ZAIP-AIOS, Visão Geral" width="100%">
|
|
23
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_1_visao_geral.png" alt="Dashboard ZAIP-AIOS, Visão Geral" width="100%">
|
|
24
24
|
|
|
25
25
|
Em uma amostra comparativa de tarefas executadas de forma autônoma, o ZAIP-AIOS apresentou uma redução aproximada de 34% no custo médio por tarefa e 62% no custo médio por hora.
|
|
26
26
|
|
|
27
27
|
A comparação considera o ciclo completo de trabalho, planejamento, execução, testes, revisões e documentação —, e os resultados devem ser interpretados dentro dos limites da amostra analisada.
|
|
28
28
|
|
|
29
|
-
<img src="config/src/analise_comparativa_reducao_custo_por_hora.png" alt="Análise comparativa: custo médio por hora caiu de R$ 410 para R$ 154" width="900">
|
|
29
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/analise_comparativa_reducao_custo_por_hora.png" alt="Análise comparativa: custo médio por hora caiu de R$ 410 para R$ 154" width="900">
|
|
30
30
|
|
|
31
31
|
A fonte canônica permanece nos arquivos Git-native do repositório. Requisitos, decisões, implementações e provas podem ser versionados; só passam a estar no histórico remoto após commit e publicação explicitamente autorizada. Segredos e estado privado da máquina ficam fora desse histórico.
|
|
32
32
|
|
|
@@ -48,14 +48,14 @@ No ZAIP-AIOS, uma Task não é considerada concluída apenas porque um agente te
|
|
|
48
48
|
| Consultar os contratos técnicos | [Referência técnica e operacional](#referência-técnica-e-operacional) |
|
|
49
49
|
| Manter o framework | [Desenvolvimento do framework](#desenvolvimento-do-framework) |
|
|
50
50
|
| Configurar permissões com segurança | [Segurança com perfis de permissão](#segurança-com-perfis-de-permissão) |
|
|
51
|
-
| Avaliar lançamento, suporte e comercialização | [Prontidão para produção e comercialização](
|
|
51
|
+
| Avaliar lançamento, suporte e comercialização | [Prontidão para produção e comercialização](https://github.com/zaip-ai/zaip-aios/blob/main/docs/PRODUCTION-COMMERCIAL-READINESS.md) |
|
|
52
52
|
| Navegar pelos 28 guias operacionais | [Índice completo do handbook](zaip-aios/INDEX.md) |
|
|
53
53
|
|
|
54
54
|
### Como interpretar esta documentação
|
|
55
55
|
|
|
56
56
|
Este README e o [handbook](zaip-aios/INDEX.md) descrevem o código-fonte deste repositório. Configuração efetiva, suporte do host, pacote instalado e candidato qualificado são dimensões distintas. `@latest` aponta para a versão publicada, que pode não conter alterações locais. As imagens do Dashboard são ilustrações de estados anteriores, não prova visual do candidato atual.
|
|
57
57
|
|
|
58
|
-
A atualização documental não aprova uma release. Consulte o [registro de limites de qualificação](
|
|
58
|
+
A atualização documental não aprova uma release. Consulte o [registro de limites de qualificação](https://github.com/zaip-ai/zaip-aios/blob/main/docs/PRODUCTION-COMMERCIAL-READINESS.md#limites-conhecidos-da-qualificação) antes de promover o código; testes locais, paridade, CI e validação em produção devem ser comprovados separadamente.
|
|
59
59
|
|
|
60
60
|
## Instalação em um comando
|
|
61
61
|
|
|
@@ -138,35 +138,35 @@ As identidades técnicas permanecem separadas das personas visíveis. Assim, nom
|
|
|
138
138
|
|
|
139
139
|
| Foto | # | Persona / função | Especialidade |
|
|
140
140
|
| :---: | ---: | --- | --- |
|
|
141
|
-
| <img src="config/src/1%20-%20Dave%20-%20Product%20Owner.png" alt="Dave, Product Owner" width="400"> | 1 | Dave / Product Owner | Resolve DAG e delega |
|
|
142
|
-
| <img src="config/src/2%20-%20Rafa%20-%20Tech%20Lead.png" alt="Rafa, Tech Lead" width="400"> | 2 | Rafa / Tech Lead | Entrega genérica, SPEC e dashboard/local |
|
|
143
|
-
| <img src="config/src/3%20-%20Leo%20-%20Software%20Engineer.png" alt="Leo, Software Engineer" width="400"> | 3 | Leo / Software Engineer | Task genérica ponta a ponta |
|
|
144
|
-
| <img src="config/src/4%20-%20Bia%20-%20Product%20Manager.png" alt="Bia, Product Manager" width="400"> | 4 | Bia / Product Manager | Criação/refino de PRD e análise de produto |
|
|
145
|
-
| <img src="config/src/5%20-%20Gui%20-%20Quality%20Assurance%20Lead.png" alt="Gui, Quality Assurance Lead" width="400"> | 5 | Gui / Quality Assurance Lead | Resultado terminal restrito |
|
|
146
|
-
| <img src="config/src/6%20-%20Nanda%20-%20Principal%20Engineer.png" alt="Nanda, Principal Engineer" width="400"> | 6 | Nanda / Principal Engineer | Revisão independente |
|
|
147
|
-
| <img src="config/src/7%20-%20Dani%20-%20Integration%20Engineer.png" alt="Dani, Integration Engineer" width="400"> | 7 | Dani / Integration Engineer | Integração e gates combinados |
|
|
148
|
-
| <img src="config/src/8%20-%20Ana%20-%20Quality%20Auditor.png" alt="Ana, Quality Auditor" width="400"> | 8 | Ana / Quality Auditor | Auditoria independente |
|
|
149
|
-
| <img src="config/src/9%20-%20Lia%20-%20Technical%20Writer.png" alt="Lia, Technical Writer" width="400"> | 9 | Lia / Technical Writer | Resumo fiel, análise de transcrição e documentação fundamentada em fontes |
|
|
150
|
-
| <img src="config/src/10%20-%20Gabi%20-%20Data%20Analyst.png" alt="Gabi, Data Analyst" width="400"> | 10 | Gabi / Data Analyst | Análise de dados |
|
|
151
|
-
| <img src="config/src/11%20-%20Tati%20-%20Refactoring%20Specialist.png" alt="Tati, Refactoring Specialist" width="400"> | 11 | Tati / Refactoring Specialist | Refatoração, migração e modularização seguras |
|
|
152
|
-
| <img src="config/src/12%20-%20Doug%20-%20Frontend%20Developer.png" alt="Doug, Frontend Developer" width="400"> | 12 | Doug / Frontend Developer | Frontend e acessibilidade conforme `DESIGN.md` |
|
|
153
|
-
| <img src="config/src/13%20-%20Will%20-%20Backend%20Developer.png" alt="Will, Backend Developer" width="400"> | 13 | Will / Backend Developer | API, backend e módulos |
|
|
154
|
-
| <img src="config/src/14%20-%20Jonny%20-%20Website%20Developer.png" alt="Jonny, Website Developer" width="400"> | 14 | Jonny / Website Developer | Sites e landing pages, SEO, GEO e preparação para agentes |
|
|
155
|
-
| <img src="config/src/15%20-%20Manu%20-%20Product%20Designer.png" alt="Manu, Product Designer" width="400"> | 15 | Manu / Product Designer | `DESIGN.md`, Design System, tokens e catálogo |
|
|
156
|
-
| <img src="config/src/16%20-%20Dan%20-%20Cloud%20Engineer.png" alt="Dan, Cloud Engineer" width="400"> | 16 | Dan / Cloud Engineer | Infraestrutura cloud, Terraform, Docker e ambientes |
|
|
157
|
-
| <img src="config/src/17%20-%20Luis%20-%20Security%20Auditor.png" alt="Luiz, Security Auditor" width="400"> | 17 | Luiz / Security Auditor | Auditoria técnica e independente de segurança |
|
|
158
|
-
| <img src="config/src/18%20-%20Lucia%20-%20Marketing%20Analyst.png" alt="Lucia, Marketing Analyst" width="400"> | 18 | Lucia / Marketing Analyst | Planejamento de marketing, copy e preparação de ativos |
|
|
159
|
-
| <img src="config/src/19%20-%20Renata%20-%20Compliance%20Specialist.png" alt="Renata, Compliance Specialist" width="400"> | 19 | Renata / Governance & Compliance Specialist | Artefatos internos de RH, jurídico operacional, políticas, privacidade, fornecedores e riscos |
|
|
160
|
-
| <img src="config/src/20%20-%20Clara%20-%20Operations%20Specialist.png" alt="Clara, Operations Specialist" width="400"> | 20 | Clara / Operations Generalist | Documentos, apresentações, planilhas, processos e comparativos delimitados fora de especialidades obrigatórias |
|
|
161
|
-
| <img src="config/src/21%20-%20Sarah%20-%20Branding%20Specialist.png" alt="Sarah, Branding Specialist" width="400"> | 21 | Sarah / Branding Specialist | Estratégia e governança de marca, Brandbook, arquétipos, diferencial semântico e arquitetura de marca |
|
|
162
|
-
| <img src="config/src/22%20-%20Aaron%20-%20Sales%20Specialist.png" alt="Aaron, Sales Specialist" width="400"> | 22 | Aaron / Sales Specialist | Processo comercial interno, qualificação, playbooks, scripts e handoffs entre SDR e closer |
|
|
163
|
-
| <img src="config/src/23%20-%20Robert%20-%20Growth%20Strategist.png" alt="Robert, Growth Strategist" width="400"> | 23 | Robert / Growth Strategist | Estratégia de crescimento, RevOps, experimentos e recomendações orientadas por dados e impacto financeiro |
|
|
141
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/1%20-%20Dave%20-%20Product%20Owner.png" alt="Dave, Product Owner" width="400"> | 1 | Dave / Product Owner | Resolve DAG e delega |
|
|
142
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/2%20-%20Rafa%20-%20Tech%20Lead.png" alt="Rafa, Tech Lead" width="400"> | 2 | Rafa / Tech Lead | Entrega genérica, SPEC e dashboard/local |
|
|
143
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/3%20-%20Leo%20-%20Software%20Engineer.png" alt="Leo, Software Engineer" width="400"> | 3 | Leo / Software Engineer | Task genérica ponta a ponta |
|
|
144
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/4%20-%20Bia%20-%20Product%20Manager.png" alt="Bia, Product Manager" width="400"> | 4 | Bia / Product Manager | Criação/refino de PRD e análise de produto |
|
|
145
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/5%20-%20Gui%20-%20Quality%20Assurance%20Lead.png" alt="Gui, Quality Assurance Lead" width="400"> | 5 | Gui / Quality Assurance Lead | Resultado terminal restrito |
|
|
146
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/6%20-%20Nanda%20-%20Principal%20Engineer.png" alt="Nanda, Principal Engineer" width="400"> | 6 | Nanda / Principal Engineer | Revisão independente |
|
|
147
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/7%20-%20Dani%20-%20Integration%20Engineer.png" alt="Dani, Integration Engineer" width="400"> | 7 | Dani / Integration Engineer | Integração e gates combinados |
|
|
148
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/8%20-%20Ana%20-%20Quality%20Auditor.png" alt="Ana, Quality Auditor" width="400"> | 8 | Ana / Quality Auditor | Auditoria independente |
|
|
149
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/9%20-%20Lia%20-%20Technical%20Writer.png" alt="Lia, Technical Writer" width="400"> | 9 | Lia / Technical Writer | Resumo fiel, análise de transcrição e documentação fundamentada em fontes |
|
|
150
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/10%20-%20Gabi%20-%20Data%20Analyst.png" alt="Gabi, Data Analyst" width="400"> | 10 | Gabi / Data Analyst | Análise de dados |
|
|
151
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/11%20-%20Tati%20-%20Refactoring%20Specialist.png" alt="Tati, Refactoring Specialist" width="400"> | 11 | Tati / Refactoring Specialist | Refatoração, migração e modularização seguras |
|
|
152
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/12%20-%20Doug%20-%20Frontend%20Developer.png" alt="Doug, Frontend Developer" width="400"> | 12 | Doug / Frontend Developer | Frontend e acessibilidade conforme `DESIGN.md` |
|
|
153
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/13%20-%20Will%20-%20Backend%20Developer.png" alt="Will, Backend Developer" width="400"> | 13 | Will / Backend Developer | API, backend e módulos |
|
|
154
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/14%20-%20Jonny%20-%20Website%20Developer.png" alt="Jonny, Website Developer" width="400"> | 14 | Jonny / Website Developer | Sites e landing pages, SEO, GEO e preparação para agentes |
|
|
155
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/15%20-%20Manu%20-%20Product%20Designer.png" alt="Manu, Product Designer" width="400"> | 15 | Manu / Product Designer | `DESIGN.md`, Design System, tokens e catálogo |
|
|
156
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/16%20-%20Dan%20-%20Cloud%20Engineer.png" alt="Dan, Cloud Engineer" width="400"> | 16 | Dan / Cloud Engineer | Infraestrutura cloud, Terraform, Docker e ambientes |
|
|
157
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/17%20-%20Luis%20-%20Security%20Auditor.png" alt="Luiz, Security Auditor" width="400"> | 17 | Luiz / Security Auditor | Auditoria técnica e independente de segurança |
|
|
158
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/18%20-%20Lucia%20-%20Marketing%20Analyst.png" alt="Lucia, Marketing Analyst" width="400"> | 18 | Lucia / Marketing Analyst | Planejamento de marketing, copy e preparação de ativos |
|
|
159
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/19%20-%20Renata%20-%20Compliance%20Specialist.png" alt="Renata, Compliance Specialist" width="400"> | 19 | Renata / Governance & Compliance Specialist | Artefatos internos de RH, jurídico operacional, políticas, privacidade, fornecedores e riscos |
|
|
160
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/20%20-%20Clara%20-%20Operations%20Specialist.png" alt="Clara, Operations Specialist" width="400"> | 20 | Clara / Operations Generalist | Documentos, apresentações, planilhas, processos e comparativos delimitados fora de especialidades obrigatórias |
|
|
161
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/21%20-%20Sarah%20-%20Branding%20Specialist.png" alt="Sarah, Branding Specialist" width="400"> | 21 | Sarah / Branding Specialist | Estratégia e governança de marca, Brandbook, arquétipos, diferencial semântico e arquitetura de marca |
|
|
162
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/22%20-%20Aaron%20-%20Sales%20Specialist.png" alt="Aaron, Sales Specialist" width="400"> | 22 | Aaron / Sales Specialist | Processo comercial interno, qualificação, playbooks, scripts e handoffs entre SDR e closer |
|
|
163
|
+
| <img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/23%20-%20Robert%20-%20Growth%20Strategist.png" alt="Robert, Growth Strategist" width="400"> | 23 | Robert / Growth Strategist | Estratégia de crescimento, RevOps, experimentos e recomendações orientadas por dados e impacto financeiro |
|
|
164
164
|
|
|
165
165
|
O [Catálogo de agentes](zaip-aios/guides/18-catalogo-de-agentes.md) reúne as especialidades e responsabilidades dos agentes disponíveis no ZAIP-AIOS.
|
|
166
166
|
|
|
167
167
|
### Squads organizacionais
|
|
168
168
|
|
|
169
|
-
<img src="config/src/Zaip%20AIOS%20Squads.png" alt="Estrutura organizacional dos seis squads e 23 agentes do ZAIP-AIOS" width="100%">
|
|
169
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/Zaip%20AIOS%20Squads.png" alt="Estrutura organizacional dos seis squads e 23 agentes do ZAIP-AIOS" width="100%">
|
|
170
170
|
|
|
171
171
|
Os seis squads tornam a estrutura de responsabilidades fácil de visualizar: **Product** (Dave, Bia e Manu), **Admin & Operations** (Clara, Renata e Lia), **Development** (Rafa, Leo, Jonny, Will, Doug e Tati), **Delivery Assurance** (Nanda, Gui, Ana e Dani), **Infra & Security** (Dan e Luiz) e **Growth — Sales, Marketing and Branding** (Robert, Gabi, Lucia, Sarah e Aaron).
|
|
172
172
|
|
|
@@ -182,7 +182,7 @@ Quando executado com a conta ChatGPT/Codex, o consumo segue as condições dessa
|
|
|
182
182
|
|
|
183
183
|
O Dashboard transforma o histórico técnico do ZAIP-AIOS em uma visão operacional clara. Em um só lugar, ele mostra o trabalho em andamento, os custos observados, a cobertura de qualidade, os bloqueios e a relação entre intenção, execução e resultado.
|
|
184
184
|
|
|
185
|
-
<img src="config/src/dashboard_pt_1_visao_geral_este_mes.png" alt="Dashboard ZAIP-AIOS, Visao Geral Mes" width="100%">
|
|
185
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_1_visao_geral_este_mes.png" alt="Dashboard ZAIP-AIOS, Visao Geral Mes" width="100%">
|
|
186
186
|
|
|
187
187
|
Os registros Git-native continuam sendo a fonte oficial. Tudo o que aparece nas telas pode ser reconstruído a partir dos arquivos canônicos e da configuração do projeto, sem criar uma base paralela ou dependência externa de infraestrutura.
|
|
188
188
|
|
|
@@ -197,7 +197,7 @@ Não é preciso instalar servidor SQLite, DBeaver ou banco externo. `.local/sqli
|
|
|
197
197
|
|
|
198
198
|
Organiza PRDs, SPECs e Tasks por estágio, destacando execução, verificação, conclusão, criticidade, tempo, tokens e custo observado.
|
|
199
199
|
|
|
200
|
-
<img src="config/src/dashboard_pt_2_kanban.png" alt="Dashboard ZAIP-AIOS, Kanban" width="100%">
|
|
200
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_2_kanban.png" alt="Dashboard ZAIP-AIOS, Kanban" width="100%">
|
|
201
201
|
|
|
202
202
|
As visões Trabalho (Kanban) e Trabalho (Lista) permitem alternar entre leitura por estágio e comparação detalhada. Ambas preservam os filtros Todas as Tarefas, Visão Unificada Geral, PRDs, SPECs e Tarefas Avulsas, facilitando a análise de status, origem, risco, Runs, Sub-Runs, tempo, tokens, custo e cobertura. Cada item pode ser aberto para investigar bloqueios e consultar seu histórico rastreável.
|
|
203
203
|
|
|
@@ -205,7 +205,7 @@ As visões Trabalho (Kanban) e Trabalho (Lista) permitem alternar entre leitura
|
|
|
205
205
|
|
|
206
206
|
Consolida tokens, duração, custo equivalente estimado e cobertura por período e por unidade de trabalho, sem transformar telemetria ausente em zero.
|
|
207
207
|
|
|
208
|
-
<img src="config/src/dashboard_pt_3_monitor_custos.png" alt="Dashboard ZAIP-AIOS, Monitor de Custos" width="100%">
|
|
208
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_3_monitor_custos.png" alt="Dashboard ZAIP-AIOS, Monitor de Custos" width="100%">
|
|
209
209
|
|
|
210
210
|
O Monitor consolida tokens, tempo, custo e cobertura por Run, Task, SPEC e PRD. Isso permite comparar conversa, planejamento, execução, trabalho novo e rework, além de identificar médias e concentrações de consumo por dia, mês ou ano.
|
|
211
211
|
|
|
@@ -224,7 +224,7 @@ documenta contratos, armazenamento, integridade, recuperação e limites do roll
|
|
|
224
224
|
|
|
225
225
|
Relaciona intenção, planejamento, execução, decisões, validações e evidências para explicar de onde cada resultado veio.
|
|
226
226
|
|
|
227
|
-
<img src="config/src/dashboard_pt_4_rastreabilidade.png" alt="Dashboard ZAIP-AIOS, Rastreabilidade" width="100%">
|
|
227
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_4_rastreabilidade.png" alt="Dashboard ZAIP-AIOS, Rastreabilidade" width="100%">
|
|
228
228
|
|
|
229
229
|
Correlaciona PRD, Requirements, SPEC, Change, Task, Execution, Runs, Decisions, testes, reviews, evals e Evidence em um grafo lógico de rastreabilidade. A visão detalha as seis etapas do método e mostra quais documentos e provas sustentam cada resultado. Cada registro recebe identificador, data e hora quando faz parte do lifecycle ou da telemetria; as evidências permanecem vinculadas e a cronologia também é preservada pelo Git. Isso permite auditoria, retomada, análise de rework e comparação entre intenção e execução. Projeções podem ser reconstruídas e otimizadas; a compactação Git-native da telemetria preserva IDs, relações, métricas, cobertura e hashes sem versionar prompts ou respostas.
|
|
230
230
|
|
|
@@ -236,13 +236,13 @@ O Dashboard reúne a configuração do projeto em uma tela ligada ao arquivo can
|
|
|
236
236
|
|
|
237
237
|
A configuração da plataforma apresenta o estado de ativação do ZAIP-AIOS e um resumo dos agentes, squads, skills, Rules, hooks e banco de dados. A mesma visão mostra os documentos de referência do projeto e indica quais deles já existem, mantendo a configuração técnica e a documentação visíveis no mesmo contexto.
|
|
238
238
|
|
|
239
|
-
<img src="config/src/dashboard_pt_configuracao_plataforma.png" alt="Dashboard ZAIP-AIOS, configuração da plataforma" width="100%">
|
|
239
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_configuracao_plataforma.png" alt="Dashboard ZAIP-AIOS, configuração da plataforma" width="100%">
|
|
240
240
|
|
|
241
241
|
### Stack de desenvolvimento
|
|
242
242
|
|
|
243
243
|
A stack de desenvolvimento descreve cada responsabilidade separadamente, com tecnologia, versão exata e referência do pacote, imagem ou serviço. No projeto, esse contrato inclui TypeScript, Node.js, Hono, Kysely, PostgreSQL via Supabase, Supabase Auth + Storage, Redis e BullMQ, permitindo que as escolhas de desenvolvimento permaneçam registradas junto da configuração do projeto.
|
|
244
244
|
|
|
245
|
-
<img src="config/src/dashboard_pt_configuracao_plataforma_stack.png" alt="Dashboard ZAIP-AIOS, stack de desenvolvimento" width="100%">
|
|
245
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/dashboard_pt_configuracao_plataforma_stack.png" alt="Dashboard ZAIP-AIOS, stack de desenvolvimento" width="100%">
|
|
246
246
|
|
|
247
247
|
## O custo que importa: concluir a tarefa
|
|
248
248
|
|
|
@@ -338,13 +338,13 @@ As análises abaixo apresentam reduções de custo **medidas na amostra comparat
|
|
|
338
338
|
|
|
339
339
|
Este gráfico acompanha o custo de cada Task nas duas faixas comparadas. A média inicial é de **R$ 67 por tarefa**; no recorte posterior, ela passa a **R$ 44**. A redução de **34,3%** (apresentada como aproximadamente 34%) representa o custo médio menor para concluir uma unidade de trabalho na amostra observada.
|
|
340
340
|
|
|
341
|
-
<img src="config/src/analise_comparativa_reducao_custo_por_tarefa.png" alt="Análise comparativa: custo médio por tarefa caiu de R$ 67 para R$ 44" width="900">
|
|
341
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/analise_comparativa_reducao_custo_por_tarefa.png" alt="Análise comparativa: custo médio por tarefa caiu de R$ 67 para R$ 44" width="900">
|
|
342
342
|
|
|
343
343
|
### Análise de custo por hora
|
|
344
344
|
|
|
345
345
|
Este gráfico apresenta a mesma comparação na perspectiva horária. A média de custo cai de **R$ 410 por hora** para **R$ 154 por hora**, uma redução de **62,4%** (aproximadamente 62%). Essa leitura complementa a análise por Task ao mostrar que a redução também se mantém quando o custo é observado por hora.
|
|
346
346
|
|
|
347
|
-
<img src="config/src/analise_comparativa_reducao_custo_por_hora.png" alt="Análise comparativa: custo médio por hora caiu de R$ 410 para R$ 154" width="900">
|
|
347
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/analise_comparativa_reducao_custo_por_hora.png" alt="Análise comparativa: custo médio por hora caiu de R$ 410 para R$ 154" width="900">
|
|
348
348
|
|
|
349
349
|
Cada indicador abaixo mede uma parte diferente do fluxo. Os percentuais não devem ser somados, pois podem refletir otimizações simultâneas na mesma execução. As métricas de contexto e payload continuam sendo medições reproduzíveis do snapshot de **18/08/2026**; elas não descrevem automaticamente a população atual de skills ou do repositório.
|
|
350
350
|
|
|
@@ -371,7 +371,7 @@ Os indicadores que compõem a análise são:
|
|
|
371
371
|
- taxa de rework e defeitos encontrados após a entrega;
|
|
372
372
|
- cobertura de testes, reviews e evidências dos Critérios de Aceite.
|
|
373
373
|
|
|
374
|
-
O Cost Monitor preserva valores desconhecidos como `unknown`/`null` e não converte ausência de telemetria em custo zero. Dessa forma, os resultados mantêm visíveis custos de provider, rework ou qualidade que ainda não tenham sido observados. A metodologia e seus registros complementares estão em [a auditoria de tokens e performance](analysis/verificacao-auditoria-tokens-performance-zaip-aios-2026-07-13.md).
|
|
374
|
+
O Cost Monitor preserva valores desconhecidos como `unknown`/`null` e não converte ausência de telemetria em custo zero. Dessa forma, os resultados mantêm visíveis custos de provider, rework ou qualidade que ainda não tenham sido observados. A metodologia e seus registros complementares estão em [a auditoria de tokens e performance](https://github.com/zaip-ai/zaip-aios/blob/main/analysis/verificacao-auditoria-tokens-performance-zaip-aios-2026-07-13.md).
|
|
375
375
|
|
|
376
376
|
O comando `zaip cost cohort --input <arquivo.json> --json` calcula coortes comparáveis a partir de custos faturados observados e sua proveniência. O contrato de cálculo exige moeda USD, fonte, timestamp, *quality floor*, tentativa terminal e uma única identidade de baseline equivalente. Na ausência ou divergência de uma dimensão obrigatória, a economia permanece `null`, preservando a integridade da comparação.
|
|
377
377
|
|
|
@@ -488,7 +488,7 @@ O intake captura uma vez por turno observável e reutiliza o foco válido em con
|
|
|
488
488
|
|
|
489
489
|
## Graph Engineering e Loop Engineering
|
|
490
490
|
|
|
491
|
-
<img src="config/src/zaip-aios-obsidian.png" alt="Zaip AIOS no Obsidian" width="100%">
|
|
491
|
+
<img src="https://raw.githubusercontent.com/zaip-ai/zaip-aios/main/.agents/config/src/zaip-aios-obsidian.png" alt="Zaip AIOS no Obsidian" width="100%">
|
|
492
492
|
|
|
493
493
|
O **Graph Engineering** transforma uma entrega complexa em uma sequência coordenada de responsabilidades. Em vez de acionar todos os 23 agentes, a orquestração escolhe o menor conjunto capaz de planejar, executar, revisar e comprovar o resultado conforme dependências, risco e especialidade.
|
|
494
494
|
|
|
@@ -624,7 +624,7 @@ tests/e2e/ # fluxos que atravessam aplicações
|
|
|
624
624
|
|
|
625
625
|
A direção de dependência é `apps -> modules -> packages`. Esta arquitetura descreve exclusivamente o código das aplicações do produto consumidor, não o dashboard ZAIP nem os domínios de negócio. As áreas `branding/`, `marketing/`, `sales/` e `growth/` ficam em `.agents` como pastas de artefatos de negócio criadas sob demanda; elas não são pastas de aplicação. `apps/site` nunca importa o dashboard, não lê `.agents` e não depende de implementação privada do backend. Pastas de superfícies ausentes não precisam ser criadas vazias. Testes unitários ficam junto do código; jornadas cross-app ficam em `tests/e2e`.
|
|
626
626
|
|
|
627
|
-
Arquivos-fonte com 401–800 linhas geram warning e arquivos com 801 ou mais linhas geram erro, salvo exceções explícitas. O gate ignora código gerado, distribuição, vendor, dados e lockfiles. A lista em [source-size-baseline.json](scripts/source-size-baseline.json) inclui legado de pacotes e Dashboard, com limite congelado, responsável, motivo e validade; isso não autoriza aumentar os limites para ocultar crescimento.
|
|
627
|
+
Arquivos-fonte com 401–800 linhas geram warning e arquivos com 801 ou mais linhas geram erro, salvo exceções explícitas. O gate ignora código gerado, distribuição, vendor, dados e lockfiles. A lista em [source-size-baseline.json](https://github.com/zaip-ai/zaip-aios/blob/main/scripts/source-size-baseline.json) inclui legado de pacotes e Dashboard, com limite congelado, responsável, motivo e validade; isso não autoriza aumentar os limites para ocultar crescimento.
|
|
628
628
|
|
|
629
629
|
|
|
630
630
|
## Desenvolvimento do framework
|
|
@@ -683,7 +683,7 @@ Antes de integrar uma mudança relevante ou preparar um release, `pnpm verify` e
|
|
|
683
683
|
|
|
684
684
|
Use a versão de pnpm fixada em `packageManager` (`corepack pnpm` quando disponível). Para uma alteração delimitada, selecione os checks pertinentes ao risco e ao diff; a lista acima não exige repetir todos os testes a cada edição documental. Qualificação de release usa os gates completos do [guia 26](zaip-aios/guides/26-qualidade-e-release.md) no candidato exato. Não confunda `validate:github:prepared`, execução local, push e CI terminal verde.
|
|
685
685
|
|
|
686
|
-
Os dois pacotes públicos compartilham a
|
|
686
|
+
Os dois pacotes públicos compartilham a versão `2.0`; nos metadados npm e nos artefatos SemVer ela é registrada como `2.0.0`. Consulte os links npm acima para identificar o `latest` publicado. A versão em um checkout não comprova publicação: a qualificação deve registrar a revisão exata, o resultado terminal do CI, a integridade dos TGZs e uma instalação nova do registro. Publicação manual com token autorizado não equivale a atestado OIDC. Resultados e ressalvas ficam nas evidências da Change de release, preservando as tentativas anteriores.
|
|
687
687
|
|
|
688
688
|
A arquitetura detalhada está resumida na seção [Arquitetura das aplicações](#arquitetura-das-aplicações) deste README.
|
|
689
689
|
|
|
@@ -783,4 +783,4 @@ Na raiz do repositório, a geração ou atualização do vault utiliza:
|
|
|
783
783
|
node .agents/skills/criar-pasta-obsidian/scripts/generate-obsidian-vault.mjs
|
|
784
784
|
```
|
|
785
785
|
|
|
786
|
-
O [guia de Obsidian para rastreabilidade ZAIP](guide/CRIAR-PASTA-OBSIDIAN.md) documenta a instalação do aplicativo, a abertura da pasta como vault, a geração de uma única Task e a atualização da projeção após um `git pull`.
|
|
786
|
+
O [guia de Obsidian para rastreabilidade ZAIP](https://github.com/zaip-ai/zaip-aios/blob/main/guide/CRIAR-PASTA-OBSIDIAN.md) documenta a instalação do aplicativo, a abertura da pasta como vault, a geração de uma única Task e a atualização da projeção após um `git pull`.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema_version: 1
|
|
3
|
+
kind: infrastructure-architecture
|
|
4
|
+
id: ARCH-CLOUD-HOSTINGER-CLOUDFLARE-001
|
|
5
|
+
status: active
|
|
6
|
+
owner: project
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Arquitetura Cloudflare, Hostinger VPS e Terraform
|
|
10
|
+
|
|
11
|
+
Este é o contrato canônico da infraestrutura Zaip. Ele transforma o diagrama aprovado em limites verificáveis para qualquer agente ou operador que use `infra/terraform`. A configuração de software, imagem e segredos de cada aplicação permanece em seus repositórios e não é inferida deste contrato.
|
|
12
|
+
|
|
13
|
+
## Autoridade, alvos e autonomia
|
|
14
|
+
|
|
15
|
+
Cloudflare é a autoridade de DNS e edge. Hostinger é o provedor de computação das VPS. Terraform pode criar, ler e alterar somente os recursos Cloudflare e Hostinger enumerados para a execução ativa; Hostinger DNS nunca é criado, importado, consultado ou alterado.
|
|
16
|
+
|
|
17
|
+
O arquivo `.env` na raiz do projeto local e ignorado é a primeira fonte de credenciais e identificadores; `.agents/.env` pode ser uma fonte alternativa quando a execução a selecionar. Nenhum deles contém material de chave privada e nenhum confere autoridade para um destino. Antes de uma chamada externa, a execução deve registrar o perfil `autonomous-cloud`, a conta Cloudflare, a zona, a conta Hostinger, os IDs das VPS e os fingerprints SSH permitidos. Valores ausentes, diferentes ou ambíguos bloqueiam a operação externa. A autorização permanente do usuário cobre criar, ler, editar e testar somente depois que esse escopo tiver sido preenchido e conferido; uma conta, zona ou host novo exige um novo escopo explícito.
|
|
18
|
+
|
|
19
|
+
Nesta sessão, quando a autorização permanente do usuário e identificadores de alvo deliberadamente preenchidos no `.env` da raiz coexistirem, descoberta somente de leitura pode derivar e registrar o contrato de alvos antes da configuração. Isso elimina a exigência de o usuário escrever JSON ou repetir autorização. A regra não se transfere a outro projeto: ali, credencial sem mandato e identificadores explicitamente delimitados continua insuficiente.
|
|
20
|
+
|
|
21
|
+
| Plano | Dono | Recursos permitidos |
|
|
22
|
+
| --- | --- | --- |
|
|
23
|
+
| DNS, TLS edge e proteção pública | Cloudflare | zona explicitamente identificada, registros aprovados, configurações de edge aprovadas |
|
|
24
|
+
| Computação | Hostinger | VPS 1 edge e VPS 2 privada explicitamente identificadas ou criadas pelo plano aprovado |
|
|
25
|
+
| Configuração do host | executor declarado | Docker, firewall, rede privada, imagens e volumes apenas nos hosts enumerados |
|
|
26
|
+
| Aplicação e dados gerenciados | repositórios de aplicação e Supabase | imagens, migrações, Supabase, OpenAI, Stripe, Asaas e Google API; não são recursos implicitamente geridos pelo Terraform desta raiz |
|
|
27
|
+
|
|
28
|
+
## Topologia aprovada
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
Internet -> Cloudflare DNS/WAF/rate limit -> VPS 1 edge/ingress -> transporte privado autenticado -> VPS 2
|
|
32
|
+
Cloudflare Pages <- app.zaip.com.br, beta.zaip.com.br, admin.zaip.com.br, zaip.com.br
|
|
33
|
+
VPS 1 <- api.zaip.com.br, webhook.zaip.com.br, mcp.zaip.com.br, rag.zaip.com.br
|
|
34
|
+
VPS 2 <- produção, beta sob demanda, Redis, BullMQ, observabilidade
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Cloudflare Pages é a origem de `app.zaip.com.br`, `beta.zaip.com.br`, `admin.zaip.com.br` e `zaip.com.br`. `api.zaip.com.br`, `webhook.zaip.com.br`, `mcp.zaip.com.br` e `rag.zaip.com.br` chegam à VPS 1 e devem resolver para o IP público do edge, usando proxy Cloudflare quando o protocolo for compatível. Nenhum registro DNS pode apontar diretamente para a VPS 2. A VPS 1 não hospeda dados persistentes de aplicação, Redis ou observabilidade.
|
|
38
|
+
|
|
39
|
+
### VPS 1: edge e ingress público
|
|
40
|
+
|
|
41
|
+
VPS 1 executa Traefik e os limites de entrada: API Gateway, webhook receiver, MCP Gateway, RAG Gateway, Admin Gateway, Financial Guard, allowlist de IP, rate limit, headers e logs básicos de acesso. Ela aceita somente 80/443 via Cloudflare e SSH de um conjunto administrativo autorizado. O acesso direto à origem deve ser bloqueado por firewall com a lista de IPs Cloudflare mantida pelo executor declarado.
|
|
42
|
+
|
|
43
|
+
### VPS 2: aplicação privada
|
|
44
|
+
|
|
45
|
+
VPS 2 executa apenas pela malha privada autenticada com a VPS 1. Produção contém `zaip-platform-api`, `zaip-platform-worker`, `zaip-platform-scheduler`, `zaip-ai-core-api`, `zaip-ai-worker`, `redis-prod-queue`, `redis-prod-cache`, BullMQ de produção e seu painel. Beta sob demanda contém `zaip-platform-api-beta`, `zaip-platform-worker-beta`, `zaip-platform-scheduler-beta`, `zaip-ai-core-api-staging`, `zaip-ai-worker-staging`, `redis-beta-queue`, `redis-beta-cache`, BullMQ beta e seu painel. Observabilidade contém Prometheus, Grafana, Uptime Kuma, cAdvisor, node-exporter e redis-exporter. k6 e autocannon são ferramentas sob demanda, isoladas de produção por limites explícitos. Painéis, Redis, exporters e portas de aplicação não recebem endereço DNS público nem regra de entrada pública.
|
|
46
|
+
|
|
47
|
+
Produção e beta têm redes, volumes, credenciais, bancos/filas e limites separados. Beta só pode ser ativado pelo procedimento declarado e seu desligamento não pode parar recursos de produção. O contrato não presume recurso de rede privada da Hostinger: o executor deve declarar e provar o transporte privado (por exemplo WireGuard), rotas, portas, chaves públicas e verificações de conectividade antes de expor a aplicação.
|
|
48
|
+
|
|
49
|
+
## Dados, filas e imagens
|
|
50
|
+
|
|
51
|
+
Supabase fornece PostgreSQL, Auth, Storage, RLS e pgvector. A aplicação declara seus próprios projetos, migrations, buckets, RLS e cadeia de conexão. `npm:redis` é o cliente TypeScript; não define a versão nem a configuração do servidor Redis. A imagem do servidor Redis, política de memória, persistência, ACLs, volume e backup devem ser declarados pelo executor. BullMQ é a biblioteca de filas; produtores, workers, scheduler, retries e o painel são serviços distintos e devem usar Redis de fila separado do Redis de cache. Para Redis usado por BullMQ, a política de memória deve ser `noeviction`.
|
|
52
|
+
|
|
53
|
+
Cada imagem implantada precisa de repositório, digest ou versão imutável, comando, porta, health check, usuário não-root, volumes, dependências, limites e caminho de rollback. O contrato não autoriza usar tags flutuantes.
|
|
54
|
+
|
|
55
|
+
## Inventário de implantação e entradas pendentes
|
|
56
|
+
|
|
57
|
+
O diagrama fixa a topologia, não as imagens, IDs de host, planos, região, SO, portas privadas, retenção, política de backup nem executor de configuração. Estes valores permanecem entradas obrigatórias e desconhecidas até serem declaradas. A ausência de qualquer uma gera `deployment-readiness: failed`; o agente não pode preencher defaults imaginados.
|
|
58
|
+
|
|
59
|
+
| Perfil | Componentes | Entradas obrigatórias antes da implantação |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| edge | Traefik, gateways API/webhook/MCP/RAG/admin, Financial Guard | VPS 1 ID ou plano/região/SO, hostname, imagem/digest, portas, origem Cloudflare, política de firewall e fingerprint |
|
|
62
|
+
| produção | APIs, workers, scheduler, `redis-prod-queue`, `redis-prod-cache`, BullMQ e painel | VPS 2 ID, imagens/digests, redes, volumes, limites, health checks, ACLs Redis, backup e restore |
|
|
63
|
+
| beta sob demanda | APIs, workers, scheduler, `redis-beta-queue`, `redis-beta-cache`, BullMQ e painel | gatilho de ativação, imagens/digests, redes, dados, credenciais, volumes, limites e desligamento seguro |
|
|
64
|
+
| observabilidade | Prometheus, Grafana, Uptime Kuma, cAdvisor, node-exporter, redis-exporter | imagens/digests, alvos, retenção, volumes, autenticação, alertas e acesso privado |
|
|
65
|
+
| ferramentas | k6 e autocannon | imagem/versão, limite de taxa, orçamento de recursos, alvo permitido e janela de execução |
|
|
66
|
+
|
|
67
|
+
## Terraform e state
|
|
68
|
+
|
|
69
|
+
`infra/terraform` é a raiz declarativa para os providers `hostinger/hostinger` e `cloudflare/cloudflare`. Ela cria duas VPS somente no modo de provisionamento, ou usa IPs de VPS já aprovadas no modo de adoção. Registros Cloudflare são criados pela configuração declarada; não há provider, recurso, importação ou API de DNS da Hostinger.
|
|
70
|
+
|
|
71
|
+
O state remoto, criptografado, versionado e com locking deve ser definido antes de `apply`; state local é proibido para operação compartilhada. `sensitive` mascara a apresentação normal do Terraform, mas não torna um plano salvo ou state livre de segredo. State e plano salvo necessariamente persistem: trate ambos como artefatos secretos, mantenha-os em armazenamento protegido, defina retenção e limpeza, e nunca os registre no Git ou logs junto com token, senha, chave privada, output sensível ou configuração `.env`. Todo ciclo externo segue: preflight de credenciais e alvos -> `terraform init` com lockfile revisado -> `fmt` e `validate` -> `plan -out` revisado -> apply do plano aprovado -> refresh/read-after-write -> testes de DNS, rota, firewall, saúde e restauração. Um `apply` não prova que o serviço está operacional.
|
|
72
|
+
|
|
73
|
+
`manage_vps = false` consome somente IP externo explicitamente aprovado e não gerenciado para DNS; não representa adoção nem importação. Depois que uma VPS estiver vinculada ao state, o modo não pode ser trocado para contornar esse vínculo. Importação de uma VPS existente exige ID Hostinger explicitamente autorizado, `terraform import` no mesmo endereço do recurso gerido, revisão de `state show` sem segredo e configuração equivalente antes de qualquer alteração. Destruir ou substituir recurso, trocar plano/datacenter/template, alterar zona ou trocar token exige plano/escopo atualizado; rollback reverte a configuração declarada e usa backup/restauração testados, nunca `terraform destroy` automático.
|
|
74
|
+
|
|
75
|
+
No modo de criação, o plano aprovado deve declarar nomes, plano, região/datacenter, template/SO, teto de custo e chave pública. O resultado observado vincula os dois IDs recém-criados ao escopo; antes de qualquer SSH, o executor verifica o fingerprint de host que foi previamente delimitado. Depois dessa vinculação, abrir portas aprovadas, atualizar firewall, trocar chave, configurar DNS e executar testes é autônomo dentro da arquitetura e dos alvos já delimitados. Aprovação humana só é necessária para ampliar conta, zona, VPS, destino, orçamento, recurso desconhecido ou efeito irreversível ainda não aprovado.
|
|
76
|
+
|
|
77
|
+
### Credenciais mínimas por operação
|
|
78
|
+
|
|
79
|
+
| Operação | Credencial mínima | Identificadores obrigatórios |
|
|
80
|
+
| --- | --- | --- |
|
|
81
|
+
| Ler/planejar ou alterar DNS Cloudflare | token Cloudflare com DNS Read/DNS Write e credencial do backend de state, se aplicável | conta e zona Cloudflare |
|
|
82
|
+
| Ler, importar, criar ou alterar VPS | token Hostinger e credencial do backend de state, se aplicável | conta Hostinger, IDs em adoção/importação ou nome/plano/região/template/teto em criação |
|
|
83
|
+
| Plano/aplicação que combina DNS e VPS | token Cloudflare, token Hostinger e credencial do backend de state | todos os identificadores das duas linhas anteriores |
|
|
84
|
+
| SSH e validação do host | referência local da chave privada e fingerprint do host; token do provider só se a etapa também chamar sua API | ID/IP da VPS e fingerprint previamente vinculado |
|
|
85
|
+
|
|
86
|
+
Tokens de provider existem somente como `CLOUDFLARE_API_TOKEN` e `HOSTINGER_API_TOKEN`, injetados no subprocesso mínimo; nunca como `TF_VAR_*`. Os `TF_VAR_cloudflare_*`, `TF_VAR_edge_vps_*` e `TF_VAR_application_vps_*` declarados no `.env` são entradas não secretas. O preflight pode derivar delas um contrato ou `terraform.tfvars` ignorado, validando perfil e alvos e copiando somente essa allowlist. Ele não copia token, caminho de chave privada, state, plano salvo ou variável de ambiente arbitrária.
|
|
87
|
+
|
|
88
|
+
## Evidência de validação live
|
|
89
|
+
|
|
90
|
+
Prova live somente é válida quando uma execução observada usa o alvo e credencial previamente delimitados. Ela inclui IDs não secretos, hashes do plano, versão de provider, momento, resultado de read-after-write, resolução DNS, handshake TLS, resposta de health check, negação de portas privadas e teste de restore correspondente. Sem isso, o resultado é apenas validação estática/local e deve ser descrito assim.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema_version: 1
|
|
3
|
+
kind: software-architecture
|
|
4
|
+
generated_from: .agents/config/project.yaml
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Arquitetura de Software
|
|
8
|
+
|
|
9
|
+
> Arquitetura padrão ZAIP-AIOS. Atualize este documento quando as decisões técnicas do projeto mudarem.
|
|
10
|
+
|
|
11
|
+
## Projeto
|
|
12
|
+
|
|
13
|
+
- **Nome:** {{PROJECT_NAME}}
|
|
14
|
+
- **ID:** {{PROJECT_ID}}
|
|
15
|
+
|
|
16
|
+
## Perfil técnico padrão
|
|
17
|
+
|
|
18
|
+
- **Stack profile:** zaip-aios-stack
|
|
19
|
+
- **Linguagem:** TypeScript
|
|
20
|
+
- **API:** Hono
|
|
21
|
+
- **Query builder:** Kysely
|
|
22
|
+
- **Runtime de execução:** manual
|
|
23
|
+
|
|
24
|
+
## Superfícies e serviços padrão
|
|
25
|
+
|
|
26
|
+
| Responsabilidade | Tecnologia padrão |
|
|
27
|
+
| --- | --- |
|
|
28
|
+
| Web App | React e Vite |
|
|
29
|
+
| Site e landing pages | Astro e React Islands |
|
|
30
|
+
| Dados, autenticação e armazenamento | PostgreSQL via Supabase |
|
|
31
|
+
| Cache, locks e estado temporário | Redis |
|
|
32
|
+
| Filas, workers e retries | BullMQ |
|
|
33
|
+
| Infraestrutura | Terraform |
|
|
34
|
+
|
|
35
|
+
## Layout do código
|
|
36
|
+
|
|
37
|
+
| Papel | Caminho |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| frontend | apps/frontend |
|
|
40
|
+
| backend | apps/backend |
|
|
41
|
+
| site | apps/site |
|
|
42
|
+
| modules | modules |
|
|
43
|
+
| packages | packages |
|
|
44
|
+
| e2e | tests/e2e |
|
|
45
|
+
|
|
46
|
+
## Invariantes
|
|
47
|
+
|
|
48
|
+
- clean-architecture
|
|
49
|
+
- cqrs
|
|
50
|
+
- module-storage-private
|
|
51
|
+
|
|
52
|
+
## Decisões a definir pelo projeto
|
|
53
|
+
|
|
54
|
+
Registre aqui os provedores, versões, infraestrutura, integrações e decisões de domínio adotados por este projeto. O instalador não herda versões, provedores ou overrides do repositório ZAIP-AIOS.
|
|
55
|
+
|
|
56
|
+
## Comandos de validação
|
|
57
|
+
|
|
58
|
+
| Comando | Execução |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| test | `corepack pnpm test` |
|
|
61
|
+
| typecheck | `corepack pnpm typecheck` |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"profile": "autonomous-cloud",
|
|
4
|
+
"cloudflare": {
|
|
5
|
+
"account_id": "replace-with-cloudflare-account-id",
|
|
6
|
+
"zone_id": "replace-with-cloudflare-zone-id",
|
|
7
|
+
"zone_name": "example.com",
|
|
8
|
+
"dns_records": [],
|
|
9
|
+
"direct_dns_records": {},
|
|
10
|
+
"allowed_operations": []
|
|
11
|
+
},
|
|
12
|
+
"hostinger": {
|
|
13
|
+
"account_id": "replace-with-declared-hostinger-account-label",
|
|
14
|
+
"allowed_operations": [],
|
|
15
|
+
"vps": {
|
|
16
|
+
"edge": { "id": "replace-with-observed-vps-api-id" },
|
|
17
|
+
"application": { "id": "replace-with-observed-vps-api-id" }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"terraform": {
|
|
21
|
+
"working_directory": "infra/terraform",
|
|
22
|
+
"binary_path": ".local/tools/terraform",
|
|
23
|
+
"binary_sha256": "replace-with-verified-terraform-binary-sha256",
|
|
24
|
+
"allowed_operations": [],
|
|
25
|
+
"plan": {
|
|
26
|
+
"backend": {
|
|
27
|
+
"type": "s3",
|
|
28
|
+
"config": {
|
|
29
|
+
"bucket": "replace-with-approved-s3-bucket",
|
|
30
|
+
"key": "terraform/terraform.tfstate",
|
|
31
|
+
"region": "us-east-1",
|
|
32
|
+
"encrypt": true,
|
|
33
|
+
"use_lockfile": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"path": ".local/cloud/plans/replace-with-plan-id.tfplan",
|
|
37
|
+
"policy_json_path": ".local/cloud/plans/replace-with-plan-id.json",
|
|
38
|
+
"policy_contract_path": "infra/terraform/fixtures/approved-targets.json"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|