@jaimevalasek/aioson 1.4.0 → 1.5.1

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.
Files changed (199) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +3 -1
  4. package/docs/en/squad-dashboard.md +372 -0
  5. package/docs/openclaw-bridge.md +308 -0
  6. package/docs/pt/agentes.md +124 -10
  7. package/docs/pt/cenarios.md +46 -2
  8. package/docs/pt/comandos-cli.md +60 -1
  9. package/docs/pt/inicio-rapido.md +18 -2
  10. package/docs/pt/squad-dashboard.md +373 -0
  11. package/docs/testing/genome-2.0-matrix.md +5 -5
  12. package/docs/testing/genome-2.0-rollout.md +9 -9
  13. package/package.json +2 -2
  14. package/src/backup-local.js +74 -0
  15. package/src/cli.js +98 -0
  16. package/src/commands/backup-local-cmd.js +25 -0
  17. package/src/commands/runtime.js +242 -0
  18. package/src/commands/setup-context.js +7 -2
  19. package/src/commands/squad-daemon.js +209 -0
  20. package/src/commands/squad-dashboard.js +39 -0
  21. package/src/commands/squad-deploy.js +64 -0
  22. package/src/commands/squad-doctor.js +52 -0
  23. package/src/commands/squad-mcp.js +270 -0
  24. package/src/commands/squad-processes.js +56 -0
  25. package/src/commands/squad-recovery.js +42 -0
  26. package/src/commands/squad-roi.js +291 -0
  27. package/src/commands/squad-score.js +250 -0
  28. package/src/commands/squad-status.js +37 -1
  29. package/src/commands/squad-validate.js +62 -1
  30. package/src/commands/squad-webhook.js +160 -0
  31. package/src/commands/squad-worker.js +191 -0
  32. package/src/commands/squad-worktrees.js +75 -0
  33. package/src/commands/web-map.js +70 -0
  34. package/src/commands/web-scrape.js +71 -0
  35. package/src/constants.js +8 -0
  36. package/src/context-writer.js +45 -1
  37. package/src/i18n/messages/en.js +127 -1
  38. package/src/i18n/messages/es.js +117 -0
  39. package/src/i18n/messages/fr.js +117 -0
  40. package/src/i18n/messages/pt-BR.js +126 -1
  41. package/src/lib/webhook-server.js +328 -0
  42. package/src/mcp-connectors/registry.js +602 -0
  43. package/src/runtime-store.js +259 -2
  44. package/src/squad/external-session.js +180 -0
  45. package/src/squad/inter-squad.js +74 -0
  46. package/src/squad/recovery-context.js +201 -0
  47. package/src/squad/worktree-manager.js +114 -0
  48. package/src/squad-daemon.js +490 -0
  49. package/src/squad-dashboard/api.js +223 -0
  50. package/src/squad-dashboard/attachment-handler.js +93 -0
  51. package/src/squad-dashboard/context-monitor.js +157 -0
  52. package/src/squad-dashboard/execution-logs.js +115 -0
  53. package/src/squad-dashboard/hunk-review.js +209 -0
  54. package/src/squad-dashboard/metrics.js +133 -0
  55. package/src/squad-dashboard/process-monitor.js +125 -0
  56. package/src/squad-dashboard/renderer.js +858 -0
  57. package/src/squad-dashboard/server.js +232 -0
  58. package/src/squad-dashboard/styles.js +525 -0
  59. package/src/squad-dashboard/token-tracker.js +99 -0
  60. package/src/web.js +284 -0
  61. package/src/worker-runner.js +339 -0
  62. package/template/.aioson/agents/analyst.md +4 -0
  63. package/template/.aioson/agents/architect.md +4 -0
  64. package/template/.aioson/agents/dev.md +120 -11
  65. package/template/.aioson/agents/deyvin.md +8 -0
  66. package/template/.aioson/agents/neo.md +152 -0
  67. package/template/.aioson/agents/orache.md +17 -0
  68. package/template/.aioson/agents/orchestrator.md +26 -0
  69. package/template/.aioson/agents/product.md +60 -12
  70. package/template/.aioson/agents/qa.md +1 -0
  71. package/template/.aioson/agents/setup.md +63 -19
  72. package/template/.aioson/agents/sheldon.md +603 -0
  73. package/template/.aioson/agents/squad.md +191 -0
  74. package/template/.aioson/agents/tester.md +254 -0
  75. package/template/.aioson/agents/ux-ui.md +12 -0
  76. package/template/.aioson/config.md +6 -0
  77. package/template/.aioson/locales/en/agents/analyst.md +8 -0
  78. package/template/.aioson/locales/en/agents/architect.md +8 -0
  79. package/template/.aioson/locales/en/agents/dev.md +66 -7
  80. package/template/.aioson/locales/en/agents/deyvin.md +8 -0
  81. package/template/.aioson/locales/en/agents/neo.md +8 -0
  82. package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
  83. package/template/.aioson/locales/en/agents/qa.md +49 -0
  84. package/template/.aioson/locales/en/agents/setup.md +2 -1
  85. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  86. package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
  87. package/template/.aioson/locales/es/agents/analyst.md +8 -0
  88. package/template/.aioson/locales/es/agents/architect.md +8 -0
  89. package/template/.aioson/locales/es/agents/dev.md +66 -7
  90. package/template/.aioson/locales/es/agents/deyvin.md +8 -0
  91. package/template/.aioson/locales/es/agents/neo.md +48 -0
  92. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  93. package/template/.aioson/locales/es/agents/qa.md +26 -0
  94. package/template/.aioson/locales/es/agents/setup.md +2 -1
  95. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  96. package/template/.aioson/locales/es/agents/squad.md +63 -0
  97. package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
  98. package/template/.aioson/locales/fr/agents/analyst.md +8 -0
  99. package/template/.aioson/locales/fr/agents/architect.md +8 -0
  100. package/template/.aioson/locales/fr/agents/dev.md +66 -7
  101. package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
  102. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  103. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  104. package/template/.aioson/locales/fr/agents/qa.md +26 -0
  105. package/template/.aioson/locales/fr/agents/setup.md +2 -1
  106. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  107. package/template/.aioson/locales/fr/agents/squad.md +63 -0
  108. package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
  109. package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
  110. package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
  111. package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
  112. package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
  113. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  114. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
  115. package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
  116. package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
  117. package/template/.aioson/locales/pt-BR/agents/setup.md +2 -1
  118. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  119. package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
  120. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
  121. package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
  122. package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
  123. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  124. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  125. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  126. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  127. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  128. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  129. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  130. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  131. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  132. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  133. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  134. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  135. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  136. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  137. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  138. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  139. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
  140. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  141. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
  142. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
  143. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
  144. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
  145. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
  146. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
  147. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  148. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  149. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  150. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  151. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  152. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  153. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  154. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  155. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  156. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  157. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  158. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  159. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  160. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  161. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  162. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  163. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  164. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  165. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  166. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  167. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  168. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  169. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  170. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  171. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  172. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  173. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  174. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  175. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  176. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  177. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  178. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  179. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  180. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  181. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  182. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  183. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  184. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  185. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  186. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  187. package/template/.aioson/tasks/implementation-plan.md +19 -0
  188. package/template/.aioson/tasks/squad-design.md +28 -0
  189. package/template/.aioson/tasks/squad-profile.md +48 -0
  190. package/template/.aioson/tasks/squad-review.md +61 -0
  191. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  192. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  193. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  194. package/template/.gemini/GEMINI.md +1 -0
  195. package/template/.gemini/commands/aios-neo.toml +4 -0
  196. package/template/.gemini/commands/aios-tester.toml +6 -0
  197. package/template/AGENTS.md +3 -0
  198. package/template/CLAUDE.md +5 -2
  199. package/template/OPENCODE.md +2 -0
@@ -0,0 +1,373 @@
1
+ # Squad Dashboard
2
+
3
+ O Squad Dashboard é um painel web embutido no próprio CLI do aioson. Ele roda localmente no computador do desenvolvedor e permite acompanhar todos os squads de um projeto em tempo real — agentes, processos ativos, uso de contexto, tokens, logs de execução e métricas.
4
+
5
+ Não requer instalação adicional. Vem incluso quando você instala o aioson.
6
+
7
+ ---
8
+
9
+ ## Pré-requisitos
10
+
11
+ - aioson instalado globalmente (`npm install -g @jaimevalasek/aioson`)
12
+ - Pelo menos um squad criado no projeto (`aioson squad:create`)
13
+ - Node.js ≥ 18 (já exigido pelo aioson)
14
+ - Browser moderno (Chrome, Firefox, Safari, Edge)
15
+
16
+ ---
17
+
18
+ ## Iniciando
19
+
20
+ Na raiz do projeto (onde fica a pasta `.aioson/`):
21
+
22
+ ```bash
23
+ aioson squad:dashboard
24
+ ```
25
+
26
+ Saída esperada:
27
+ ```
28
+ Squad Dashboard rodando em http://localhost:4180 (porta 4180)
29
+ Pressione Ctrl+C para parar.
30
+ ```
31
+
32
+ Abra `http://localhost:4180` no browser. Para encerrar, pressione `Ctrl+C` no terminal.
33
+
34
+ ---
35
+
36
+ ## Opções
37
+
38
+ ```bash
39
+ aioson squad:dashboard [path] [--port=4180] [--squad=<slug>] [--locale=pt-BR]
40
+ ```
41
+
42
+ | Opção | Padrão | Descrição |
43
+ |-------|--------|-----------|
44
+ | `path` | `.` (diretório atual) | Raiz do projeto aioson |
45
+ | `--port` | `4180` | Porta HTTP do dashboard |
46
+ | `--squad` | — | Abre diretamente na página de um squad específico |
47
+ | `--locale` | `pt-BR` | Idioma da interface |
48
+
49
+ ---
50
+
51
+ ## Exemplos
52
+
53
+ ### Iniciar na raiz do projeto atual
54
+ ```bash
55
+ cd ~/meus-projetos/clinica-odonto
56
+ aioson squad:dashboard
57
+ ```
58
+
59
+ ### Iniciar em outra porta
60
+ ```bash
61
+ aioson squad:dashboard --port=4200
62
+ ```
63
+
64
+ ### Apontar para projeto em outro diretório
65
+ ```bash
66
+ aioson squad:dashboard /home/usuario/projetos/marketing-digital
67
+ ```
68
+
69
+ ### Abrir diretamente em um squad específico
70
+ ```bash
71
+ aioson squad:dashboard --squad=marketing-odonto
72
+ # → Redireciona automaticamente para http://localhost:4180/squad/marketing-odonto
73
+ ```
74
+
75
+ ### Múltiplos projetos ao mesmo tempo (portas diferentes)
76
+ ```bash
77
+ # Terminal 1
78
+ aioson squad:dashboard ~/projetos/clinica --port=4180
79
+
80
+ # Terminal 2
81
+ aioson squad:dashboard ~/projetos/ecommerce --port=4181
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Navegando pelo Dashboard
87
+
88
+ ### Página inicial — Lista de squads
89
+
90
+ Ao acessar `http://localhost:4180`, você vê todos os squads do projeto com:
91
+
92
+ - Nome e modo do squad (`content`, `software`, `mixed`)
93
+ - Número de executores (agentes)
94
+ - Status atual
95
+ - Link para entrar na página do squad
96
+
97
+ Se nenhum squad aparecer, verifique se existe `.aioson/squads/*/squad.manifest.json` no projeto.
98
+
99
+ ---
100
+
101
+ ### Página do squad — Painéis
102
+
103
+ Cada squad tem sua própria URL: `http://localhost:4180/squad/{slug}`
104
+
105
+ Os painéis disponíveis variam conforme a configuração do squad:
106
+
107
+ #### Painel: Overview
108
+
109
+ Visão resumida do squad:
110
+ - Total de itens de conteúdo produzidos
111
+ - Número de sessões registradas
112
+ - Learnings acumulados
113
+ - Taxa de entrega
114
+ - Plano de execução (se definido)
115
+ - Informações de pipeline
116
+
117
+ #### Painel: Agentes (Processos)
118
+
119
+ Lista os agentes Claude/AI ativos no momento:
120
+
121
+ | Coluna | O que mostra |
122
+ |--------|-------------|
123
+ | Agente | Slug do executor |
124
+ | PID | ID do processo no sistema operacional |
125
+ | Tempo | Duração da sessão atual (`HH:MM:SS`) |
126
+ | Contexto | Porcentagem do context window usado |
127
+ | URL | Link para abrir a sessão do AI (se disponível) |
128
+ | Ação | Botão para encerrar o processo via SIGTERM |
129
+
130
+ > Os dados de processos atualizam automaticamente a cada 5 segundos via SSE (Server-Sent Events).
131
+
132
+ #### Painel: Contexto
133
+
134
+ Monitor do context window de cada agente em execução:
135
+
136
+ - **Gauge visual** mostrando % de uso do contexto
137
+ - **Nível de alerta**:
138
+ - Verde: 0–84% → Normal
139
+ - Amarelo: 85–94% → Warning
140
+ - Vermelho: 95–99% → Critical
141
+ - Roxo: 100%+ → Overflow
142
+ - Detecção automática de compact (queda > 30% indica que o contexto foi compactado)
143
+ - Breakdown por categoria (system prompt, conversation history, tool outputs, etc.)
144
+
145
+ #### Painel: Tokens
146
+
147
+ Uso e custo estimado por agente:
148
+
149
+ - Total de tokens consumidos na sessão
150
+ - Custo estimado em USD (baseado em modelo Sonnet-class)
151
+ - **Flag de desperdício**: aparece quando `tool_outputs > 60%` do total
152
+ - Breakdown por categoria (input, output, tool_use_input, tool_outputs, cache_write, cache_read)
153
+
154
+ #### Painel: Logs de Execução
155
+
156
+ Histórico detalhado das execuções de tasks:
157
+
158
+ - Entradas filtráveis por tipo:
159
+ - `tool_call` — chamadas de ferramentas com input/output
160
+ - `reasoning` — raciocínio do agente
161
+ - `milestone` — marcos importantes
162
+ - `error` — erros com stack trace (quando disponível)
163
+ - Timeline ordenada por timestamp
164
+ - Filtro por sessão
165
+
166
+ #### Painel: Hunk Review
167
+
168
+ Revisão de código em hunks (para squads de software):
169
+
170
+ - Lista de hunks pendentes de revisão
171
+ - Ações disponíveis: **Aprovar**, **Rejeitar** (com comentário obrigatório), **Comentar**
172
+ - Progresso: `aprovados / rejeitados / pendentes / revisados`
173
+ - Re-submit: hunks aprovados mantêm status; só rejeitados voltam para pendente
174
+
175
+ #### Painel: Content
176
+
177
+ Itens de conteúdo produzidos pelo squad (para squads de conteúdo):
178
+
179
+ - Lista de outputs indexados
180
+ - Tipo e layout de cada item
181
+ - Agente responsável
182
+
183
+ #### Painel: Learnings
184
+
185
+ Aprendizados acumulados pelo squad:
186
+
187
+ - Learnings ativos, stale e archived
188
+ - Tipo: preference, process, domain, quality
189
+ - Confiança: high, medium, low
190
+
191
+ #### Painel: Métricas
192
+
193
+ Métricas customizadas configuradas via `aioson squad:roi`:
194
+
195
+ - Valor atual vs. baseline vs. target
196
+ - Período
197
+ - Barra de progresso visual
198
+ - ROI calculado (quando configurado)
199
+
200
+ #### Painel: Integrações
201
+
202
+ Status dos MCPs configurados no squad:
203
+
204
+ - Connectors ativos (WhatsApp, Telegram, Webhook, etc.)
205
+ - Status: connected / unconfigured / error
206
+ - Calls totais e falhas
207
+
208
+ #### Painel: Recovery Context
209
+
210
+ Contexto de recovery gerado para cada agente (injeção pós-compact):
211
+
212
+ - Conteúdo do `recovery-context.md`
213
+ - Estimativa de tokens
214
+ - Quando foi gerado
215
+
216
+ ---
217
+
218
+ ## Casos de Uso por Tipo de Squad
219
+
220
+ ### Squad de Conteúdo (ex: Clínica Odontológica)
221
+
222
+ ```bash
223
+ # A squad está gerando conteúdo para Instagram e blog
224
+ aioson squad:dashboard --squad=marketing-odonto
225
+
226
+ # Painéis mais relevantes:
227
+ # → Content: ver posts gerados
228
+ # → Agentes: ver compositor e estrategista rodando
229
+ # → Learnings: preferências de tom e formato acumuladas
230
+ ```
231
+
232
+ ### Squad de Software (ex: Feature de Agendamento)
233
+
234
+ ```bash
235
+ aioson squad:dashboard --squad=agendamento-v2
236
+
237
+ # Painéis mais relevantes:
238
+ # → Hunk Review: revisar código antes de merge
239
+ # → Logs: acompanhar tool_calls do agente de código
240
+ # → Contexto: monitorar se o agente está perto do limite
241
+ ```
242
+
243
+ ### Squad com Workers e Daemon
244
+
245
+ ```bash
246
+ # Primeiro inicie o daemon (workers automáticos)
247
+ aioson squad:daemon start --squad=clinica
248
+
249
+ # Em outro terminal, levante o dashboard
250
+ aioson squad:dashboard --squad=clinica
251
+
252
+ # Painéis mais relevantes:
253
+ # → Métricas: taxa de no-show, ROI
254
+ # → Integrações: status do WhatsApp Business
255
+ # → Agentes: ver processos em tempo real
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Integração com outros comandos
261
+
262
+ O dashboard lê dados gerados por outros comandos do aioson. Para que os painéis mostrem dados ricos:
263
+
264
+ | Para ver no dashboard | Comando que gera os dados |
265
+ |-----------------------|--------------------------|
266
+ | Métricas e ROI | `aioson squad:roi metric --squad=X` |
267
+ | Status de MCPs | `aioson squad:mcp configure --squad=X` |
268
+ | Processos ativos | Agentes rodando que gravam em `.aioson/squads/{slug}/processes/` |
269
+ | Context window | Agentes que gravam em `.aioson/squads/{slug}/context-monitor.json` |
270
+ | Token usage | Agentes que gravam em `.aioson/squads/{slug}/token-usage.json` |
271
+ | Learnings | `aioson squad:learning` e sessões registradas automaticamente |
272
+ | Recovery context | `aioson squad:recovery --squad=X --agent=Y` |
273
+
274
+ ---
275
+
276
+ ## Requisitos de Dados no Projeto
277
+
278
+ O dashboard funciona mesmo sem todos os dados. O que cada painel precisa:
279
+
280
+ ```
281
+ .aioson/
282
+ squads/
283
+ {slug}/
284
+ squad.manifest.json ← obrigatório (o squad aparece na lista)
285
+ context-monitor.json ← painel Contexto
286
+ token-usage.json ← painel Tokens
287
+ processes/
288
+ {agent}.json ← painel Agentes
289
+ recovery-context.md ← painel Recovery
290
+ attachments/ ← painel Attachments
291
+ runtime/
292
+ aios.sqlite ← painéis Content, Learnings, Métricas, Integrações
293
+ ```
294
+
295
+ Se o SQLite não existir, os painéis que dependem dele aparecem vazios mas o dashboard não quebra.
296
+
297
+ ---
298
+
299
+ ## Diferença entre Squad Dashboard e aioson-dashboard
300
+
301
+ | | Squad Dashboard | aioson-dashboard |
302
+ |---|---|---|
303
+ | **O que é** | Servidor HTTP embutido no CLI | App Next.js installável (premium) |
304
+ | **Como acessa** | `aioson squad:dashboard` | Instala e roda separado |
305
+ | **Foco** | Squads do projeto em tempo real | Gestão geral — projetos, genomas, pipelines, cloud |
306
+ | **Porta** | `localhost:4180` (configurável) | Definida pelo app |
307
+ | **Requer instalação extra** | Não — vem com o aioson | Sim |
308
+ | **Custo** | Gratuito | Premium |
309
+
310
+ Quando ambos estão rodando, o aioson-dashboard exibe um botão **"Abrir Squad Dashboard"** na página de cada squad, abrindo diretamente a URL correta.
311
+
312
+ ---
313
+
314
+ ## Solução de Problemas
315
+
316
+ ### O dashboard não inicia — porta em uso
317
+
318
+ ```
319
+ Porta 4180 ja esta em uso. Tente --port=<outra>
320
+ ```
321
+
322
+ Use outra porta:
323
+ ```bash
324
+ aioson squad:dashboard --port=4200
325
+ ```
326
+
327
+ ### Nenhum squad aparece na home
328
+
329
+ Verifique se o manifest existe:
330
+ ```bash
331
+ ls .aioson/squads/*/squad.manifest.json
332
+ ```
333
+
334
+ Se não existir, crie o squad primeiro:
335
+ ```bash
336
+ aioson squad:create . --squad=meu-squad
337
+ ```
338
+
339
+ ### Painéis aparecem vazios
340
+
341
+ Normal para projetos novos ou squads sem dados de runtime. Os painéis populam conforme os agentes rodam e gravam dados.
342
+
343
+ ### Processo aparece mas não atualiza
344
+
345
+ O painel de agentes usa SSE com intervalo de 5 segundos. Se parar de atualizar, recarregue a página.
346
+
347
+ ### Comando não encontrado após atualizar o aioson no projeto
348
+
349
+ O binário global pode estar desatualizado:
350
+ ```bash
351
+ npm update -g @jaimevalasek/aioson
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Referência rápida
357
+
358
+ ```bash
359
+ # Iniciar
360
+ aioson squad:dashboard
361
+
362
+ # Porta customizada
363
+ aioson squad:dashboard --port=4200
364
+
365
+ # Squad específico
366
+ aioson squad:dashboard --squad=meu-squad
367
+
368
+ # Projeto em outro diretório
369
+ aioson squad:dashboard /path/do/projeto
370
+
371
+ # Ver ajuda
372
+ aioson squad:dashboard --help
373
+ ```
@@ -8,10 +8,10 @@
8
8
  | 2. Genome 2.0 is generated and saved | `aioson` core | Markdown and `.meta.json` are persisted together with v2 schema |
9
9
  | 3. New squad receives genome | `aioson` squad binding | Manifest, blueprint and readiness get synchronized bindings |
10
10
  | 4. Existing squad receives binding | `aioson` squad binding | Executor and squad scopes merge without breaking legacy executor genomes |
11
- | 5. Artisan generates Genome Brief | `aios-dashboard` Artisan API | Genome brief result returns markdown, confidence and fallback file write remains non-fatal |
12
- | 6. `/genomes` lists metadata | `aios-dashboard` catalog | Catalog returns local genome metadata, origin and binding counts |
13
- | 7. `/squads` shows bindings | `aios-dashboard` squads | Squad payload and UI consumers expose squad and executor bindings |
14
- | 8. `/pipelines` shows badges | `aios-dashboard` pipelines | Pipeline payload exposes contextual `genomeBindings` on squad nodes only |
11
+ | 5. Artisan generates Genome Brief | `aioson-dashboard` Artisan API | Genome brief result returns markdown, confidence and fallback file write remains non-fatal |
12
+ | 6. `/genomes` lists metadata | `aioson-dashboard` catalog | Catalog returns local genome metadata, origin and binding counts |
13
+ | 7. `/squads` shows bindings | `aioson-dashboard` squads | Squad payload and UI consumers expose squad and executor bindings |
14
+ | 8. `/pipelines` shows badges | `aioson-dashboard` pipelines | Pipeline payload exposes contextual `genomeBindings` on squad nodes only |
15
15
  | 9. Legacy data remains valid | cross-repo contract | Dashboard still reads manifests written by the core for legacy and v2 formats |
16
16
 
17
17
  ## Automated Coverage
@@ -24,7 +24,7 @@
24
24
 
25
25
  ## Rollout Entry Point
26
26
 
27
- - Full gated rollout: `npm run test:genome-2.0:rollout -- --dashboard-root ../aios-dashboard`
27
+ - Full gated rollout: `npm run test:genome-2.0:rollout -- --dashboard-root ../aioson-dashboard`
28
28
  - Operational runbook: `genome-2.0-rollout.md`
29
29
 
30
30
  ## Shared Fixtures
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Goal
4
4
 
5
- Bring the full Genome 2.0 package into `aioson` and `aios-dashboard` with explicit gates, repeatable checks, and a non-destructive fallback path.
5
+ Bring the full Genome 2.0 package into `aioson` and `aioson-dashboard` with explicit gates, repeatable checks, and a non-destructive fallback path.
6
6
 
7
7
  This document operationalizes Phase 09 from `notes-local/plano-genome-2/09-rollout-checklist.md`.
8
8
 
@@ -18,10 +18,10 @@ This document operationalizes Phase 09 from `notes-local/plano-genome-2/09-rollo
18
18
  1. `aioson` Phase 01
19
19
  2. `aioson` Phase 02
20
20
  3. `aioson` Phase 03
21
- 4. `aios-dashboard` Phase 04
22
- 5. `aios-dashboard` Phase 05
23
- 6. `aios-dashboard` Phase 06
24
- 7. `aios-dashboard` Phase 07
21
+ 4. `aioson-dashboard` Phase 04
22
+ 5. `aioson-dashboard` Phase 05
23
+ 6. `aioson-dashboard` Phase 06
24
+ 7. `aioson-dashboard` Phase 07
25
25
  8. Integration coverage from Phase 08
26
26
  9. This rollout phase and final docs
27
27
 
@@ -44,7 +44,7 @@ This executes:
44
44
 
45
45
  ### Block B
46
46
 
47
- Run from `aios-dashboard`:
47
+ Run from `aioson-dashboard`:
48
48
 
49
49
  ```bash
50
50
  npm run test:genome-2.0:block-b
@@ -58,7 +58,7 @@ This covers:
58
58
 
59
59
  ### Block C
60
60
 
61
- Run from `aios-dashboard`:
61
+ Run from `aioson-dashboard`:
62
62
 
63
63
  ```bash
64
64
  npm run test:genome-2.0:block-c
@@ -72,7 +72,7 @@ This covers:
72
72
 
73
73
  ### Block D
74
74
 
75
- Run from `aios-dashboard`:
75
+ Run from `aioson-dashboard`:
76
76
 
77
77
  ```bash
78
78
  npm run test:genome-2.0:block-d
@@ -89,7 +89,7 @@ This executes the full dashboard gate:
89
89
  Run from `aioson`:
90
90
 
91
91
  ```bash
92
- npm run test:genome-2.0:rollout -- --dashboard-root ../aios-dashboard
92
+ npm run test:genome-2.0:rollout -- --dashboard-root ../aioson-dashboard
93
93
  ```
94
94
 
95
95
  Useful options:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaimevalasek/aioson",
3
- "version": "1.4.0",
3
+ "version": "1.5.1",
4
4
  "description": "AI operating framework for hyper-personalized software.",
5
5
  "keywords": [
6
6
  "ai",
@@ -12,7 +12,7 @@
12
12
  "cli",
13
13
  "framework"
14
14
  ],
15
- "license": "MIT",
15
+ "license": "AGPL-3.0-only",
16
16
  "main": "src/cli.js",
17
17
  "bin": {
18
18
  "aios": "bin/aioson.js",
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs/promises');
4
+ const path = require('node:path');
5
+ const os = require('node:os');
6
+ const { ensureDir, nowStamp } = require('./utils');
7
+
8
+ const DOC_CREATING_AGENTS = new Set([
9
+ 'product', 'analyst', 'architect', 'ux-ui', 'sheldon'
10
+ ]);
11
+
12
+ function isDocCreatingAgent(agentName) {
13
+ const normalized = agentName.toLowerCase().replace(/^@/, '');
14
+ return DOC_CREATING_AGENTS.has(normalized);
15
+ }
16
+
17
+ async function collectMdFiles(dir) {
18
+ const results = [];
19
+ let entries;
20
+ try {
21
+ entries = await fs.readdir(dir, { withFileTypes: true });
22
+ } catch {
23
+ return results;
24
+ }
25
+ for (const entry of entries) {
26
+ const full = path.join(dir, entry.name);
27
+ if (entry.isDirectory()) {
28
+ results.push(...(await collectMdFiles(full)));
29
+ } else if (entry.isFile() && entry.name.endsWith('.md')) {
30
+ results.push(full);
31
+ }
32
+ }
33
+ return results;
34
+ }
35
+
36
+ /**
37
+ * Backs up all .md files from .aioson/context/ and .aioson/plans/ to
38
+ * ~/.aioson/backups/{project-name}/{timestamp}/
39
+ *
40
+ * @param {string} targetDir - Project root directory
41
+ * @returns {{ ok: boolean, count: number, backupPath: string|null }}
42
+ */
43
+ async function backupAiosonDocs(targetDir) {
44
+ const contextDir = path.join(targetDir, '.aioson', 'context');
45
+ const plansDir = path.join(targetDir, '.aioson', 'plans');
46
+
47
+ const files = [
48
+ ...(await collectMdFiles(contextDir)),
49
+ ...(await collectMdFiles(plansDir))
50
+ ];
51
+
52
+ if (files.length === 0) return { ok: true, count: 0, backupPath: null };
53
+
54
+ const projectName = path.basename(path.resolve(targetDir));
55
+ // nowStamp() returns ISO with colons replaced: 2026-01-01T00-00-00.000Z
56
+ // Take just the date+time part: YYYY-MM-DDTHH-MM-SS
57
+ const stamp = nowStamp().slice(0, 19);
58
+ const backupRoot = path.join(os.homedir(), '.aioson', 'backups', projectName, stamp);
59
+
60
+ await ensureDir(backupRoot);
61
+
62
+ const aiosonRoot = path.join(targetDir, '.aioson');
63
+
64
+ for (const file of files) {
65
+ const rel = path.relative(aiosonRoot, file); // e.g. "context/prd.md"
66
+ const dest = path.join(backupRoot, rel);
67
+ await ensureDir(path.dirname(dest));
68
+ await fs.copyFile(file, dest);
69
+ }
70
+
71
+ return { ok: true, count: files.length, backupPath: backupRoot };
72
+ }
73
+
74
+ module.exports = { backupAiosonDocs, isDocCreatingAgent };