@jaimevalasek/aioson 1.3.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 (330) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +22 -3
  4. package/docs/en/squad-dashboard.md +372 -0
  5. package/docs/openclaw-bridge.md +308 -0
  6. package/docs/pt/README.md +62 -2
  7. package/docs/pt/advisor-spec.md +5 -5
  8. package/docs/pt/agentes-customizados.md +670 -0
  9. package/docs/pt/agentes.md +235 -23
  10. package/docs/pt/automacao-squads.md +407 -0
  11. package/docs/pt/cenarios.md +49 -5
  12. package/docs/pt/clientes-ai.md +62 -0
  13. package/docs/pt/comandos-cli.md +226 -17
  14. package/docs/pt/deyvin.md +115 -0
  15. package/docs/pt/genome-3.0-spec.md +11 -11
  16. package/docs/pt/inicio-rapido.md +63 -2
  17. package/docs/pt/memoria-contexto.md +255 -0
  18. package/docs/pt/output-strategy-delivery.md +655 -0
  19. package/docs/pt/profiler-system.md +17 -17
  20. package/docs/pt/runtime-observability.md +5 -1
  21. package/docs/pt/skills.md +175 -0
  22. package/docs/pt/squad-dashboard.md +373 -0
  23. package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
  24. package/docs/testing/genome-2.0-matrix.md +5 -5
  25. package/docs/testing/genome-2.0-rollout.md +10 -10
  26. package/package.json +4 -4
  27. package/src/agents.js +21 -5
  28. package/src/backup-local.js +74 -0
  29. package/src/backup-provider.js +303 -0
  30. package/src/cli.js +276 -2
  31. package/src/commands/agents.js +22 -4
  32. package/src/commands/backup-local-cmd.js +25 -0
  33. package/src/commands/backup.js +533 -0
  34. package/src/commands/cloud.js +17 -17
  35. package/src/commands/context-pack.js +45 -0
  36. package/src/commands/implementation-plan.js +340 -0
  37. package/src/commands/learning.js +134 -0
  38. package/src/commands/live.js +1583 -0
  39. package/src/commands/runtime.js +1075 -2
  40. package/src/commands/scan-project.js +288 -24
  41. package/src/commands/setup-context.js +30 -2
  42. package/src/commands/skill.js +558 -0
  43. package/src/commands/squad-agent-create.js +788 -0
  44. package/src/commands/squad-daemon.js +209 -0
  45. package/src/commands/squad-dashboard.js +39 -0
  46. package/src/commands/squad-deploy.js +64 -0
  47. package/src/commands/squad-doctor.js +103 -1
  48. package/src/commands/squad-investigate.js +261 -0
  49. package/src/commands/squad-learning.js +209 -0
  50. package/src/commands/squad-mcp.js +270 -0
  51. package/src/commands/squad-pipeline.js +247 -1
  52. package/src/commands/squad-plan.js +329 -0
  53. package/src/commands/squad-processes.js +56 -0
  54. package/src/commands/squad-recovery.js +42 -0
  55. package/src/commands/squad-roi.js +291 -0
  56. package/src/commands/squad-score.js +250 -0
  57. package/src/commands/squad-status.js +38 -2
  58. package/src/commands/squad-validate.js +118 -1
  59. package/src/commands/squad-webhook.js +160 -0
  60. package/src/commands/squad-worker.js +191 -0
  61. package/src/commands/squad-worktrees.js +75 -0
  62. package/src/commands/test-agents.js +6 -1
  63. package/src/commands/web-map.js +70 -0
  64. package/src/commands/web-scrape.js +71 -0
  65. package/src/commands/workflow-next.js +8 -1
  66. package/src/commands/workflow-status.js +250 -0
  67. package/src/constants.js +88 -16
  68. package/src/context-memory.js +837 -0
  69. package/src/context-writer.js +47 -1
  70. package/src/delivery-runner.js +319 -0
  71. package/src/genome-files.js +1 -1
  72. package/src/genome-format.js +1 -1
  73. package/src/i18n/messages/en.js +333 -8
  74. package/src/i18n/messages/es.js +240 -6
  75. package/src/i18n/messages/fr.js +239 -5
  76. package/src/i18n/messages/pt-BR.js +330 -12
  77. package/src/installer.js +30 -2
  78. package/src/lib/genomes/compat.js +1 -1
  79. package/src/lib/webhook-server.js +328 -0
  80. package/src/mcp-connectors/registry.js +602 -0
  81. package/src/runtime-store.js +1037 -42
  82. package/src/session-handoff.js +77 -0
  83. package/src/squad/external-session.js +180 -0
  84. package/src/squad/inter-squad.js +74 -0
  85. package/src/squad/recovery-context.js +201 -0
  86. package/src/squad/worktree-manager.js +114 -0
  87. package/src/squad-daemon.js +490 -0
  88. package/src/squad-dashboard/api.js +223 -0
  89. package/src/squad-dashboard/attachment-handler.js +93 -0
  90. package/src/squad-dashboard/context-monitor.js +157 -0
  91. package/src/squad-dashboard/execution-logs.js +115 -0
  92. package/src/squad-dashboard/hunk-review.js +209 -0
  93. package/src/squad-dashboard/metrics.js +133 -0
  94. package/src/squad-dashboard/process-monitor.js +125 -0
  95. package/src/squad-dashboard/renderer.js +858 -0
  96. package/src/squad-dashboard/server.js +232 -0
  97. package/src/squad-dashboard/styles.js +525 -0
  98. package/src/squad-dashboard/token-tracker.js +99 -0
  99. package/src/web.js +284 -0
  100. package/src/worker-runner.js +339 -0
  101. package/template/.aioson/agents/analyst.md +40 -9
  102. package/template/.aioson/agents/architect.md +24 -5
  103. package/template/.aioson/agents/dev.md +254 -25
  104. package/template/.aioson/agents/deyvin.md +174 -0
  105. package/template/.aioson/agents/discovery-design-doc.md +25 -1
  106. package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
  107. package/template/.aioson/agents/neo.md +152 -0
  108. package/template/.aioson/agents/orache.md +388 -0
  109. package/template/.aioson/agents/orchestrator.md +63 -2
  110. package/template/.aioson/agents/pair.md +5 -0
  111. package/template/.aioson/agents/pm.md +17 -5
  112. package/template/.aioson/agents/product.md +113 -29
  113. package/template/.aioson/agents/profiler-enricher.md +1 -1
  114. package/template/.aioson/agents/profiler-forge.md +9 -9
  115. package/template/.aioson/agents/profiler-researcher.md +1 -1
  116. package/template/.aioson/agents/qa.md +18 -5
  117. package/template/.aioson/agents/setup.md +138 -18
  118. package/template/.aioson/agents/sheldon.md +603 -0
  119. package/template/.aioson/agents/squad.md +866 -28
  120. package/template/.aioson/agents/tester.md +254 -0
  121. package/template/.aioson/agents/ux-ui.md +289 -34
  122. package/template/.aioson/config.md +181 -0
  123. package/template/.aioson/context/spec.md.template +17 -0
  124. package/template/.aioson/genomes/.gitkeep +0 -0
  125. package/template/.aioson/installed-skills/.gitkeep +0 -0
  126. package/template/.aioson/locales/en/agents/analyst.md +34 -4
  127. package/template/.aioson/locales/en/agents/architect.md +18 -0
  128. package/template/.aioson/locales/en/agents/dev.md +155 -11
  129. package/template/.aioson/locales/en/agents/deyvin.md +137 -0
  130. package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
  131. package/template/.aioson/locales/en/agents/neo.md +8 -0
  132. package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
  133. package/template/.aioson/locales/en/agents/pair.md +5 -0
  134. package/template/.aioson/locales/en/agents/pm.md +7 -0
  135. package/template/.aioson/locales/en/agents/product.md +35 -17
  136. package/template/.aioson/locales/en/agents/qa.md +56 -0
  137. package/template/.aioson/locales/en/agents/setup.md +53 -6
  138. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  139. package/template/.aioson/locales/en/agents/squad.md +203 -15
  140. package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
  141. package/template/.aioson/locales/es/agents/analyst.md +24 -4
  142. package/template/.aioson/locales/es/agents/architect.md +18 -0
  143. package/template/.aioson/locales/es/agents/dev.md +136 -9
  144. package/template/.aioson/locales/es/agents/deyvin.md +97 -0
  145. package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
  146. package/template/.aioson/locales/es/agents/neo.md +48 -0
  147. package/template/.aioson/locales/es/agents/orache.md +103 -0
  148. package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
  149. package/template/.aioson/locales/es/agents/pair.md +5 -0
  150. package/template/.aioson/locales/es/agents/pm.md +7 -0
  151. package/template/.aioson/locales/es/agents/product.md +13 -3
  152. package/template/.aioson/locales/es/agents/qa.md +33 -0
  153. package/template/.aioson/locales/es/agents/setup.md +30 -6
  154. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  155. package/template/.aioson/locales/es/agents/squad.md +284 -15
  156. package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
  157. package/template/.aioson/locales/fr/agents/analyst.md +24 -4
  158. package/template/.aioson/locales/fr/agents/architect.md +18 -0
  159. package/template/.aioson/locales/fr/agents/dev.md +136 -9
  160. package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
  161. package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
  162. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  163. package/template/.aioson/locales/fr/agents/orache.md +104 -0
  164. package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
  165. package/template/.aioson/locales/fr/agents/pair.md +5 -0
  166. package/template/.aioson/locales/fr/agents/pm.md +7 -0
  167. package/template/.aioson/locales/fr/agents/product.md +13 -3
  168. package/template/.aioson/locales/fr/agents/qa.md +33 -0
  169. package/template/.aioson/locales/fr/agents/setup.md +30 -6
  170. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  171. package/template/.aioson/locales/fr/agents/squad.md +279 -10
  172. package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
  173. package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
  174. package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
  175. package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
  176. package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
  177. package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
  178. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  179. package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
  180. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
  181. package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
  182. package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
  183. package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
  184. package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
  185. package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
  186. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  187. package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
  188. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
  189. package/template/.aioson/my-agents/.gitkeep +0 -0
  190. package/template/.aioson/rules/.gitkeep +0 -0
  191. package/template/.aioson/rules/squad/.gitkeep +0 -0
  192. package/template/.aioson/rules/squad/README.md +50 -0
  193. package/template/.aioson/schemas/genome-meta.schema.json +1 -1
  194. package/template/.aioson/schemas/genome.schema.json +1 -1
  195. package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
  196. package/template/.aioson/schemas/squad-manifest.schema.json +434 -1
  197. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  198. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  199. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  200. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  201. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  202. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  203. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  204. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  205. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  206. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  207. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  208. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  209. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  210. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  211. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  212. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  213. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -0
  214. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  215. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
  216. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
  217. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
  218. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
  219. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
  220. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
  221. package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
  222. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
  223. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
  224. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
  225. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
  226. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
  227. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
  228. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
  229. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
  230. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
  231. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
  232. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  233. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  234. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  235. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  236. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  237. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  238. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  239. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  240. package/template/.aioson/skills/design-system/SKILL.md +92 -0
  241. package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
  242. package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
  243. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  244. package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
  245. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  246. package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
  247. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  248. package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
  249. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  250. package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
  251. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
  252. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  253. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  254. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  255. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  256. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  257. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  258. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  259. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  260. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  261. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  262. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  263. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  264. package/template/.aioson/skills/squad/SKILL.md +58 -0
  265. package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
  266. package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
  267. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  268. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  269. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  270. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  271. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  272. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  273. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  274. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  275. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  276. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  277. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  278. package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
  279. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  280. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  281. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  282. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  283. package/template/.aioson/skills/squad/references/.gitkeep +0 -0
  284. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  285. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  286. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  287. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  288. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  289. package/template/.aioson/tasks/implementation-plan.md +307 -0
  290. package/template/.aioson/tasks/squad-create.md +1 -1
  291. package/template/.aioson/tasks/squad-design.md +28 -0
  292. package/template/.aioson/tasks/squad-execution-plan.md +279 -0
  293. package/template/.aioson/tasks/squad-export.md +1 -1
  294. package/template/.aioson/tasks/squad-investigate.md +44 -0
  295. package/template/.aioson/tasks/squad-learning-review.md +44 -0
  296. package/template/.aioson/tasks/squad-output-config.md +177 -0
  297. package/template/.aioson/tasks/squad-profile.md +48 -0
  298. package/template/.aioson/tasks/squad-review.md +61 -0
  299. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  300. package/template/.aioson/tasks/squad-validate.md +1 -1
  301. package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
  302. package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
  303. package/template/.claude/commands/aioson/agent/genome.md +5 -0
  304. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  305. package/template/.claude/commands/aioson/agent/product.md +5 -0
  306. package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
  307. package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
  308. package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
  309. package/template/.claude/commands/aioson/agent/squad.md +5 -0
  310. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  311. package/template/.gemini/GEMINI.md +3 -0
  312. package/template/.gemini/commands/aios-deyvin.toml +6 -0
  313. package/template/.gemini/commands/aios-neo.toml +4 -0
  314. package/template/.gemini/commands/aios-pair.toml +6 -0
  315. package/template/.gemini/commands/aios-tester.toml +6 -0
  316. package/template/AGENTS.md +37 -6
  317. package/template/CLAUDE.md +34 -4
  318. package/template/OPENCODE.md +8 -2
  319. package/template/squad-searches/.gitkeep +0 -0
  320. package/template/.aioson/skills/static/interface-design.md +0 -372
  321. package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
  322. /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
  323. /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
  324. /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
  325. /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
  326. /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
  327. /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
  328. /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
  329. /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
  330. /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ const path = require('node:path');
4
+ const { scrapePage } = require('../web');
5
+
6
+ const SUPPORTED_FORMATS = new Set(['markdown', 'text', 'html', 'links']);
7
+
8
+ async function runWebScrape({ args, options = {}, logger, t }) {
9
+ const targetDir = path.resolve(process.cwd(), args[0] || '.');
10
+ const url = String(options.url || '').trim();
11
+ const format = String(options.format || 'markdown').trim().toLowerCase();
12
+
13
+ if (!url) {
14
+ logger.error(t('web_scrape.url_missing'));
15
+ process.exitCode = 1;
16
+ return { ok: false, error: 'url_missing' };
17
+ }
18
+ if (!SUPPORTED_FORMATS.has(format)) {
19
+ logger.error(t('web_scrape.invalid_format', { format }));
20
+ process.exitCode = 1;
21
+ return { ok: false, error: 'invalid_format' };
22
+ }
23
+
24
+ try {
25
+ logger.log(t('web_scrape.fetching', { url }));
26
+ const page = await scrapePage(url, { sameOriginOnly: false });
27
+ const selected = format === 'markdown'
28
+ ? page.markdown
29
+ : format === 'text'
30
+ ? page.text
31
+ : format === 'html'
32
+ ? page.html
33
+ : page.links;
34
+
35
+ const output = {
36
+ ok: true,
37
+ targetDir,
38
+ url: page.url,
39
+ statusCode: page.statusCode,
40
+ contentType: page.contentType,
41
+ title: page.title,
42
+ description: page.description,
43
+ canonical: page.canonical,
44
+ format,
45
+ content: selected,
46
+ links: page.links,
47
+ truncated: page.truncated
48
+ };
49
+
50
+ if (options.json) return output;
51
+
52
+ logger.log(t('web_scrape.title_line', { title: page.title || '-' }));
53
+ logger.log(t('web_scrape.status_line', { status: page.statusCode, type: page.contentType || '-' }));
54
+ logger.log(t('web_scrape.done', { format }));
55
+ if (Array.isArray(selected)) {
56
+ for (const link of selected) logger.log(link);
57
+ } else {
58
+ logger.log(String(selected || ''));
59
+ }
60
+ return output;
61
+ } catch (error) {
62
+ logger.error(t('web_scrape.failed', { error: error.message }));
63
+ process.exitCode = 1;
64
+ return { ok: false, error: 'scrape_failed', detail: error.message };
65
+ }
66
+ }
67
+
68
+ module.exports = {
69
+ runWebScrape,
70
+ SUPPORTED_FORMATS
71
+ };
@@ -7,6 +7,7 @@ const { resolveAgentLocale } = require('../locales');
7
7
  const { validateProjectContextFile } = require('../context');
8
8
  const { exists, ensureDir } = require('../utils');
9
9
  const { syncWorkflowRuntime } = require('../execution-gateway');
10
+ const { writeHandoff, buildWorkflowHandoff } = require('../session-handoff');
10
11
 
11
12
  const STATE_RELATIVE_PATH = '.aioson/context/workflow.state.json';
12
13
  const CONFIG_RELATIVE_PATH = '.aioson/context/workflow.config.json';
@@ -439,7 +440,7 @@ async function activateStage(targetDir, state, locale, tool, explicitAgent = nul
439
440
  }
440
441
 
441
442
  const instructionPath = await resolveExistingInstructionPath(targetDir, agent, locale);
442
- const prompt = buildAgentPrompt(agent, tool, { instructionPath });
443
+ const prompt = buildAgentPrompt(agent, tool, { instructionPath, targetDir });
443
444
 
444
445
  let nextState = state;
445
446
  if (explicitAgent && stageName !== normalizeAgentName(state.next)) {
@@ -527,6 +528,12 @@ async function runWorkflowNext({ args, options, logger, t }) {
527
528
  completedStage
528
529
  });
529
530
 
531
+ // Generate session handoff when a stage completes or workflow finishes
532
+ if (completedStage || !activation.agent) {
533
+ const handoffData = buildWorkflowHandoff(state, completedStage, activation.agent);
534
+ await writeHandoff(targetDir, handoffData);
535
+ }
536
+
530
537
  const payload = {
531
538
  ok: true,
532
539
  targetDir,
@@ -0,0 +1,250 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs/promises');
4
+ const path = require('node:path');
5
+ const { exists } = require('../utils');
6
+ const { validateProjectContextFile } = require('../context');
7
+ const { readHandoff } = require('../session-handoff');
8
+ const { runtimeStoreExists, openRuntimeDb, listPipelines } = require('../runtime-store');
9
+
10
+ const STATE_RELATIVE_PATH = '.aioson/context/workflow.state.json';
11
+
12
+ const ARTIFACT_MAP = {
13
+ setup: { file: '.aioson/context/project.context.md', label: 'project.context.md' },
14
+ product: { file: '.aioson/context/prd.md', label: 'prd.md' },
15
+ analyst: { file: '.aioson/context/discovery.md', label: 'discovery.md' },
16
+ architect: { file: '.aioson/context/architecture.md', label: 'architecture.md' },
17
+ 'ux-ui': { file: '.aioson/context/ui-spec.md', label: 'ui-spec.md' }
18
+ };
19
+
20
+ async function scanSquads(targetDir) {
21
+ const squadsDir = path.join(targetDir, '.aioson/squads');
22
+ if (!(await exists(squadsDir))) return [];
23
+
24
+ try {
25
+ const entries = await fs.readdir(squadsDir, { withFileTypes: true });
26
+ const squads = [];
27
+ for (const entry of entries) {
28
+ if (!entry.isDirectory()) continue;
29
+ const manifestPath = path.join(squadsDir, entry.name, 'squad.manifest.json');
30
+ const agentsDir = path.join(squadsDir, entry.name, 'agents');
31
+ let agentCount = 0;
32
+ try {
33
+ const agents = await fs.readdir(agentsDir);
34
+ agentCount = agents.filter(f => f.endsWith('.md')).length;
35
+ } catch { /* no agents dir */ }
36
+
37
+ let status = 'active';
38
+ try {
39
+ const raw = await fs.readFile(manifestPath, 'utf8');
40
+ const manifest = JSON.parse(raw);
41
+ status = manifest.status || 'active';
42
+ } catch { /* no manifest */ }
43
+
44
+ squads.push({ slug: entry.name, agentCount, status });
45
+ }
46
+ return squads;
47
+ } catch {
48
+ return [];
49
+ }
50
+ }
51
+
52
+ async function scanGenomes(targetDir) {
53
+ const genomesDir = path.join(targetDir, '.aioson/genomes');
54
+ if (!(await exists(genomesDir))) return 0;
55
+ try {
56
+ const entries = await fs.readdir(genomesDir);
57
+ return entries.filter(f => f.endsWith('.md') || f.endsWith('.json')).length;
58
+ } catch {
59
+ return 0;
60
+ }
61
+ }
62
+
63
+ async function getPipelineCount(targetDir) {
64
+ const hasDb = await runtimeStoreExists(targetDir);
65
+ if (!hasDb) return { total: 0, active: 0 };
66
+ const handle = await openRuntimeDb(targetDir, { mustExist: true });
67
+ if (!handle) return { total: 0, active: 0 };
68
+ try {
69
+ const pipelines = listPipelines(handle.db);
70
+ const active = pipelines.filter(p => p.status === 'active').length;
71
+ return { total: pipelines.length, active };
72
+ } finally {
73
+ handle.db.close();
74
+ }
75
+ }
76
+
77
+ async function runWorkflowStatus({ args, options, logger, t }) {
78
+ const targetDir = path.resolve(process.cwd(), args[0] || '.');
79
+
80
+ // Read workflow state
81
+ const statePath = path.join(targetDir, STATE_RELATIVE_PATH);
82
+ let state = null;
83
+ try {
84
+ const raw = await fs.readFile(statePath, 'utf8');
85
+ state = JSON.parse(raw);
86
+ } catch {
87
+ // no state file
88
+ }
89
+
90
+ // Read project context
91
+ const context = await validateProjectContextFile(targetDir);
92
+ const projectName = (context.data && context.data.project_name) || path.basename(targetDir);
93
+ const classification = (state && state.classification)
94
+ || (context.data && context.data.classification)
95
+ || 'unknown';
96
+
97
+ // Read last handoff
98
+ const handoff = await readHandoff(targetDir);
99
+
100
+ // Check artifacts
101
+ const artifacts = {};
102
+ for (const [stage, info] of Object.entries(ARTIFACT_MAP)) {
103
+ const featureSlug = state && state.featureSlug;
104
+ let filePath = path.join(targetDir, info.file);
105
+
106
+ // Feature-scoped artifacts
107
+ if (featureSlug && stage === 'product') {
108
+ const featurePath = path.join(targetDir, `.aioson/context/prd-${featureSlug}.md`);
109
+ if (await exists(featurePath)) {
110
+ artifacts[stage] = { exists: true, label: `prd-${featureSlug}.md` };
111
+ continue;
112
+ }
113
+ }
114
+ if (featureSlug && stage === 'analyst') {
115
+ const reqPath = path.join(targetDir, `.aioson/context/requirements-${featureSlug}.md`);
116
+ if (await exists(reqPath)) {
117
+ artifacts[stage] = { exists: true, label: `requirements-${featureSlug}.md` };
118
+ continue;
119
+ }
120
+ }
121
+
122
+ artifacts[stage] = { exists: await exists(filePath), label: info.label };
123
+ }
124
+
125
+ // Scan squads, genomes, pipelines
126
+ const squads = await scanSquads(targetDir);
127
+ const genomeCount = await scanGenomes(targetDir);
128
+ const pipelines = await getPipelineCount(targetDir);
129
+
130
+ // Build status output
131
+ const mode = (state && state.mode) || 'project';
132
+ const featureSlug = (state && state.featureSlug) || null;
133
+
134
+ logger.log('');
135
+ logger.log(`Project: ${projectName} (${classification})`);
136
+ logger.log(`Mode: ${mode}${featureSlug ? ` — feature: ${featureSlug}` : ''}`);
137
+ logger.log('');
138
+
139
+ // Workflow sequence
140
+ if (state && state.sequence) {
141
+ const completed = new Set(state.completed || []);
142
+ const skipped = new Set(state.skipped || []);
143
+ const current = state.current || state.next;
144
+
145
+ logger.log('Workflow:');
146
+ for (const stage of state.sequence) {
147
+ let marker;
148
+ if (completed.has(stage)) marker = 'done';
149
+ else if (skipped.has(stage)) marker = 'skip';
150
+ else if (stage === current) marker = 'now';
151
+ else marker = ' ';
152
+
153
+ const icon = marker === 'done' ? '[v]'
154
+ : marker === 'skip' ? '[-]'
155
+ : marker === 'now' ? '[>]'
156
+ : '[ ]';
157
+ logger.log(` ${icon} @${stage}`);
158
+ }
159
+
160
+ if (state.detour && state.detour.active) {
161
+ logger.log(` Detour: @${state.detour.agent} (returns to @${state.detour.returnTo})`);
162
+ }
163
+ logger.log('');
164
+ }
165
+
166
+ // Artifacts
167
+ logger.log('Artifacts:');
168
+ for (const [stage, info] of Object.entries(artifacts)) {
169
+ const icon = info.exists ? '[v]' : '[ ]';
170
+ logger.log(` ${icon} ${info.label}`);
171
+ }
172
+ logger.log('');
173
+
174
+ // Squads
175
+ if (squads.length > 0) {
176
+ logger.log(`Squads (${squads.length}):`);
177
+ for (const s of squads) {
178
+ logger.log(` ${s.slug} — ${s.agentCount} agents [${s.status}]`);
179
+ }
180
+ logger.log('');
181
+ }
182
+
183
+ // Genomes
184
+ if (genomeCount > 0) {
185
+ logger.log(`Genomes: ${genomeCount}`);
186
+ logger.log('');
187
+ }
188
+
189
+ // Pipelines
190
+ if (pipelines.total > 0) {
191
+ logger.log(`Pipelines: ${pipelines.total} (${pipelines.active} active)`);
192
+ logger.log('');
193
+ }
194
+
195
+ // Last handoff
196
+ if (handoff) {
197
+ logger.log('Last handoff:');
198
+ if (handoff.last_agent) logger.log(` Agent: ${handoff.last_agent}`);
199
+ if (handoff.what_was_done) logger.log(` Done: ${handoff.what_was_done}`);
200
+ if (handoff.what_comes_next) logger.log(` Next: ${handoff.what_comes_next}`);
201
+ if (handoff.session_ended_at) {
202
+ const elapsed = timeSince(handoff.session_ended_at);
203
+ logger.log(` When: ${elapsed} ago`);
204
+ }
205
+ logger.log('');
206
+ }
207
+
208
+ // Suggestion
209
+ if (state && state.sequence) {
210
+ const current = state.current || state.next;
211
+ if (current) {
212
+ logger.log(`Suggestion: activate @${current}`);
213
+ logger.log(` aioson workflow:next . --tool=claude`);
214
+ } else {
215
+ logger.log('Workflow is complete.');
216
+ }
217
+ } else if (!context.valid) {
218
+ logger.log('Suggestion: run @setup to initialize the project');
219
+ logger.log(' aioson workflow:next . --tool=claude');
220
+ }
221
+
222
+ return {
223
+ ok: true,
224
+ projectName,
225
+ classification,
226
+ mode,
227
+ featureSlug,
228
+ state,
229
+ artifacts,
230
+ squads,
231
+ genomeCount,
232
+ pipelines,
233
+ handoff
234
+ };
235
+ }
236
+
237
+ function timeSince(isoString) {
238
+ const now = Date.now();
239
+ const then = new Date(isoString).getTime();
240
+ const diffMs = now - then;
241
+ const minutes = Math.floor(diffMs / 60000);
242
+ if (minutes < 1) return 'just now';
243
+ if (minutes < 60) return `${minutes}m`;
244
+ const hours = Math.floor(minutes / 60);
245
+ if (hours < 24) return `${hours}h`;
246
+ const days = Math.floor(hours / 24);
247
+ return `${days}d`;
248
+ }
249
+
250
+ module.exports = { runWorkflowStatus };
package/src/constants.js CHANGED
@@ -10,6 +10,9 @@ const MANAGED_FILES = [
10
10
  '.gemini/commands/aios-analyst.toml',
11
11
  '.gemini/commands/aios-architect.toml',
12
12
  '.gemini/commands/aios-ux-ui.toml',
13
+ '.gemini/commands/aios-product.toml',
14
+ '.gemini/commands/aios-deyvin.toml',
15
+ '.gemini/commands/aios-pair.toml',
13
16
  '.gemini/commands/aios-pm.toml',
14
17
  '.gemini/commands/aios-dev.toml',
15
18
  '.gemini/commands/aios-qa.toml',
@@ -21,12 +24,15 @@ const MANAGED_FILES = [
21
24
  '.aioson/agents/architect.md',
22
25
  '.aioson/agents/ux-ui.md',
23
26
  '.aioson/agents/product.md',
27
+ '.aioson/agents/deyvin.md',
28
+ '.aioson/agents/pair.md',
24
29
  '.aioson/agents/pm.md',
25
30
  '.aioson/agents/dev.md',
26
31
  '.aioson/agents/qa.md',
27
32
  '.aioson/agents/orchestrator.md',
28
33
  '.aioson/agents/squad.md',
29
- '.aioson/agents/genoma.md',
34
+ '.aioson/agents/orache.md',
35
+ '.aioson/agents/genome.md',
30
36
  '.aioson/agents/profiler-researcher.md',
31
37
  '.aioson/agents/profiler-enricher.md',
32
38
  '.aioson/agents/profiler-forge.md',
@@ -36,12 +42,15 @@ const MANAGED_FILES = [
36
42
  '.aioson/locales/en/agents/architect.md',
37
43
  '.aioson/locales/en/agents/ux-ui.md',
38
44
  '.aioson/locales/en/agents/product.md',
45
+ '.aioson/locales/en/agents/deyvin.md',
46
+ '.aioson/locales/en/agents/pair.md',
39
47
  '.aioson/locales/en/agents/pm.md',
40
48
  '.aioson/locales/en/agents/dev.md',
41
49
  '.aioson/locales/en/agents/qa.md',
42
50
  '.aioson/locales/en/agents/orchestrator.md',
43
51
  '.aioson/locales/en/agents/squad.md',
44
- '.aioson/locales/en/agents/genoma.md',
52
+ '.aioson/locales/en/agents/orache.md',
53
+ '.aioson/locales/en/agents/genome.md',
45
54
  '.aioson/locales/en/agents/profiler-researcher.md',
46
55
  '.aioson/locales/en/agents/profiler-enricher.md',
47
56
  '.aioson/locales/en/agents/profiler-forge.md',
@@ -51,12 +60,15 @@ const MANAGED_FILES = [
51
60
  '.aioson/locales/pt-BR/agents/architect.md',
52
61
  '.aioson/locales/pt-BR/agents/ux-ui.md',
53
62
  '.aioson/locales/pt-BR/agents/product.md',
63
+ '.aioson/locales/pt-BR/agents/deyvin.md',
64
+ '.aioson/locales/pt-BR/agents/pair.md',
54
65
  '.aioson/locales/pt-BR/agents/pm.md',
55
66
  '.aioson/locales/pt-BR/agents/dev.md',
56
67
  '.aioson/locales/pt-BR/agents/qa.md',
57
68
  '.aioson/locales/pt-BR/agents/orchestrator.md',
58
69
  '.aioson/locales/pt-BR/agents/squad.md',
59
- '.aioson/locales/pt-BR/agents/genoma.md',
70
+ '.aioson/locales/pt-BR/agents/orache.md',
71
+ '.aioson/locales/pt-BR/agents/genome.md',
60
72
  '.aioson/locales/pt-BR/agents/profiler-researcher.md',
61
73
  '.aioson/locales/pt-BR/agents/profiler-enricher.md',
62
74
  '.aioson/locales/pt-BR/agents/profiler-forge.md',
@@ -66,12 +78,15 @@ const MANAGED_FILES = [
66
78
  '.aioson/locales/es/agents/architect.md',
67
79
  '.aioson/locales/es/agents/ux-ui.md',
68
80
  '.aioson/locales/es/agents/product.md',
81
+ '.aioson/locales/es/agents/deyvin.md',
82
+ '.aioson/locales/es/agents/pair.md',
69
83
  '.aioson/locales/es/agents/pm.md',
70
84
  '.aioson/locales/es/agents/dev.md',
71
85
  '.aioson/locales/es/agents/qa.md',
72
86
  '.aioson/locales/es/agents/orchestrator.md',
73
87
  '.aioson/locales/es/agents/squad.md',
74
- '.aioson/locales/es/agents/genoma.md',
88
+ '.aioson/locales/es/agents/orache.md',
89
+ '.aioson/locales/es/agents/genome.md',
75
90
  '.aioson/locales/es/agents/profiler-researcher.md',
76
91
  '.aioson/locales/es/agents/profiler-enricher.md',
77
92
  '.aioson/locales/es/agents/profiler-forge.md',
@@ -81,12 +96,15 @@ const MANAGED_FILES = [
81
96
  '.aioson/locales/fr/agents/architect.md',
82
97
  '.aioson/locales/fr/agents/ux-ui.md',
83
98
  '.aioson/locales/fr/agents/product.md',
99
+ '.aioson/locales/fr/agents/deyvin.md',
100
+ '.aioson/locales/fr/agents/pair.md',
84
101
  '.aioson/locales/fr/agents/pm.md',
85
102
  '.aioson/locales/fr/agents/dev.md',
86
103
  '.aioson/locales/fr/agents/qa.md',
87
104
  '.aioson/locales/fr/agents/orchestrator.md',
88
105
  '.aioson/locales/fr/agents/squad.md',
89
- '.aioson/locales/fr/agents/genoma.md',
106
+ '.aioson/locales/fr/agents/orache.md',
107
+ '.aioson/locales/fr/agents/genome.md',
90
108
  '.aioson/locales/fr/agents/profiler-researcher.md',
91
109
  '.aioson/locales/fr/agents/profiler-enricher.md',
92
110
  '.aioson/locales/fr/agents/profiler-forge.md',
@@ -103,11 +121,24 @@ const MANAGED_FILES = [
103
121
  '.aioson/skills/static/web3-cardano-patterns.md',
104
122
  '.aioson/skills/static/web3-security-checklist.md',
105
123
  '.aioson/skills/static/git-conventions.md',
106
- '.aioson/skills/static/premium-command-center-ui.md',
107
- '.aioson/skills/references/premium-command-center-ui/visual-system-and-component-patterns.md',
108
- '.aioson/skills/references/premium-command-center-ui/operational-ux-playbook.md',
109
- '.aioson/skills/references/premium-command-center-ui/master-application-prompt.md',
110
- '.aioson/skills/references/premium-command-center-ui/quality-validation-checklist.md',
124
+ '.aioson/skills/design/cognitive-core-ui/SKILL.md',
125
+ '.aioson/skills/design/cognitive-core-ui/references/design-tokens.md',
126
+ '.aioson/skills/design/cognitive-core-ui/references/components.md',
127
+ '.aioson/skills/design/cognitive-core-ui/references/patterns.md',
128
+ '.aioson/skills/design/cognitive-core-ui/references/motion.md',
129
+ '.aioson/skills/design/cognitive-core-ui/references/dashboards.md',
130
+ '.aioson/skills/design/cognitive-core-ui/references/websites.md',
131
+ '.aioson/skills/design/premium-command-center-ui/SKILL.md',
132
+ '.aioson/skills/design/premium-command-center-ui/references/visual-system.md',
133
+ '.aioson/skills/design/premium-command-center-ui/references/patterns.md',
134
+ '.aioson/skills/design/premium-command-center-ui/references/operations.md',
135
+ '.aioson/skills/design/premium-command-center-ui/references/validation.md',
136
+ '.aioson/skills/design/interface-design/SKILL.md',
137
+ '.aioson/skills/design/interface-design/references/intent-and-domain.md',
138
+ '.aioson/skills/design/interface-design/references/design-directions.md',
139
+ '.aioson/skills/design/interface-design/references/tokens-and-depth.md',
140
+ '.aioson/skills/design/interface-design/references/components-and-states.md',
141
+ '.aioson/skills/design/interface-design/references/handoff-and-quality.md',
111
142
  '.aioson/skills/dynamic/laravel-docs.md',
112
143
  '.aioson/skills/dynamic/flux-ui-docs.md',
113
144
  '.aioson/skills/dynamic/npm-packages.md',
@@ -131,6 +162,7 @@ const MANAGED_FILES = [
131
162
  '.aioson/tasks/squad-export.md',
132
163
  '.aioson/tasks/squad-repair.md',
133
164
  '.aioson/tasks/squad-pipeline.md',
165
+ '.aioson/tasks/squad-learning-review.md',
134
166
  '.aioson/profiler-reports/.gitkeep',
135
167
  '.aioson/advisors/.gitkeep'
136
168
  ];
@@ -176,6 +208,7 @@ const CONTEXT_ALLOWED_PROFILES = ['developer', 'beginner', 'team'];
176
208
  const AGENT_DEFINITIONS = [
177
209
  {
178
210
  id: 'setup',
211
+ displayName: 'Setup',
179
212
  command: '@setup',
180
213
  path: '.aioson/agents/setup.md',
181
214
  dependsOn: [],
@@ -183,6 +216,7 @@ const AGENT_DEFINITIONS = [
183
216
  },
184
217
  {
185
218
  id: 'discovery-design-doc',
219
+ displayName: 'Discovery/Design Doc',
186
220
  command: '@discovery-design-doc',
187
221
  path: '.aioson/agents/discovery-design-doc.md',
188
222
  dependsOn: ['.aioson/context/project.context.md'],
@@ -190,13 +224,24 @@ const AGENT_DEFINITIONS = [
190
224
  },
191
225
  {
192
226
  id: 'product',
227
+ displayName: 'Product',
193
228
  command: '@product',
194
229
  path: '.aioson/agents/product.md',
195
230
  dependsOn: ['.aioson/context/project.context.md'],
196
231
  output: '.aioson/context/prd.md or .aioson/context/prd-{slug}.md (PRD base)'
197
232
  },
233
+ {
234
+ id: 'deyvin',
235
+ displayName: 'Deyvin',
236
+ command: '@deyvin',
237
+ path: '.aioson/agents/deyvin.md',
238
+ aliases: ['pair'],
239
+ dependsOn: ['.aioson/context/project.context.md'],
240
+ output: 'small code changes + continuity notes in spec.md + runtime logs/tasks'
241
+ },
198
242
  {
199
243
  id: 'analyst',
244
+ displayName: 'Analyst',
200
245
  command: '@analyst',
201
246
  path: '.aioson/agents/analyst.md',
202
247
  dependsOn: ['.aioson/context/project.context.md'],
@@ -204,6 +249,7 @@ const AGENT_DEFINITIONS = [
204
249
  },
205
250
  {
206
251
  id: 'architect',
252
+ displayName: 'Architect',
207
253
  command: '@architect',
208
254
  path: '.aioson/agents/architect.md',
209
255
  dependsOn: [
@@ -214,6 +260,7 @@ const AGENT_DEFINITIONS = [
214
260
  },
215
261
  {
216
262
  id: 'ux-ui',
263
+ displayName: 'UI/UX',
217
264
  command: '@ux-ui',
218
265
  path: '.aioson/agents/ux-ui.md',
219
266
  dependsOn: [
@@ -226,6 +273,7 @@ const AGENT_DEFINITIONS = [
226
273
  },
227
274
  {
228
275
  id: 'pm',
276
+ displayName: 'PM',
229
277
  command: '@pm',
230
278
  path: '.aioson/agents/pm.md',
231
279
  dependsOn: [
@@ -238,6 +286,7 @@ const AGENT_DEFINITIONS = [
238
286
  },
239
287
  {
240
288
  id: 'dev',
289
+ displayName: 'Dev',
241
290
  command: '@dev',
242
291
  path: '.aioson/agents/dev.md',
243
292
  dependsOn: [
@@ -249,13 +298,23 @@ const AGENT_DEFINITIONS = [
249
298
  },
250
299
  {
251
300
  id: 'qa',
301
+ displayName: 'QA',
252
302
  command: '@qa',
253
303
  path: '.aioson/agents/qa.md',
254
304
  dependsOn: ['.aioson/context/discovery.md'],
255
305
  output: 'QA report'
256
306
  },
307
+ {
308
+ id: 'tester',
309
+ displayName: 'Tester',
310
+ command: '@tester',
311
+ path: '.aioson/agents/tester.md',
312
+ dependsOn: ['.aioson/context/project.context.md'],
313
+ output: '.aioson/context/test-inventory.md + .aioson/context/test-plan.md'
314
+ },
257
315
  {
258
316
  id: 'orchestrator',
317
+ displayName: 'Orchestrator',
259
318
  command: '@orchestrator',
260
319
  path: '.aioson/agents/orchestrator.md',
261
320
  dependsOn: [
@@ -267,21 +326,32 @@ const AGENT_DEFINITIONS = [
267
326
  },
268
327
  {
269
328
  id: 'squad',
329
+ displayName: 'Squad',
270
330
  command: '@squad',
271
331
  path: '.aioson/agents/squad.md',
272
332
  dependsOn: [],
273
333
  output:
274
- '.aioson/squads/{slug}/squad.manifest.json + .aioson/squads/{slug}/squad.md + .aioson/squads/{slug}/agents/ + .aioson/squads/{slug}/skills/ + .aioson/squads/{slug}/templates/ + .aioson/squads/{slug}/docs/ + output/{slug}/{session-id}.html + output/{slug}/{content-key}/content.json + output/{slug}/{content-key}/index.html + output/{slug}/latest.html + aios-logs/{slug}/ + media/{slug}/'
334
+ '.aioson/squads/{slug}/squad.manifest.json + .aioson/squads/{slug}/squad.md + .aioson/squads/{slug}/agents/ + .aioson/squads/{slug}/workers/ + .aioson/squads/{slug}/workflows/ + .aioson/squads/{slug}/checklists/ + .aioson/squads/{slug}/skills/ + .aioson/squads/{slug}/templates/ + .aioson/squads/{slug}/docs/ + output/{slug}/{session-id}.html + output/{slug}/{content-key}/content.json + output/{slug}/{content-key}/index.html + output/{slug}/latest.html + aioson-logs/{slug}/ + media/{slug}/'
335
+ },
336
+ {
337
+ id: 'orache',
338
+ displayName: 'Orache',
339
+ command: '@orache',
340
+ path: '.aioson/agents/orache.md',
341
+ dependsOn: [],
342
+ output: 'squad-searches/{squad-slug}/investigation-{date}.md or squad-searches/standalone/{domain-slug}-{date}.md'
275
343
  },
276
344
  {
277
- id: 'genoma',
278
- command: '@genoma',
279
- path: '.aioson/agents/genoma.md',
345
+ id: 'genome',
346
+ displayName: 'Genome',
347
+ command: '@genome',
348
+ path: '.aioson/agents/genome.md',
280
349
  dependsOn: [],
281
- output: '.aioson/genomas/[slug].md + .aioson/genomas/[slug].meta.json + optional binding in .aioson/squads/{slug}/squad.md or .aioson/squads/{slug}/squad.manifest.json'
350
+ output: '.aioson/genomes/[slug].md + .aioson/genomes/[slug].meta.json + optional binding in .aioson/squads/{slug}/squad.md or .aioson/squads/{slug}/squad.manifest.json'
282
351
  },
283
352
  {
284
353
  id: 'profiler-researcher',
354
+ displayName: 'Profiler Researcher',
285
355
  command: '@profiler-researcher',
286
356
  path: '.aioson/agents/profiler-researcher.md',
287
357
  dependsOn: [],
@@ -289,6 +359,7 @@ const AGENT_DEFINITIONS = [
289
359
  },
290
360
  {
291
361
  id: 'profiler-enricher',
362
+ displayName: 'Profiler Enricher',
292
363
  command: '@profiler-enricher',
293
364
  path: '.aioson/agents/profiler-enricher.md',
294
365
  dependsOn: ['.aioson/profiler-reports/{person-slug}/research-report.md'],
@@ -296,10 +367,11 @@ const AGENT_DEFINITIONS = [
296
367
  },
297
368
  {
298
369
  id: 'profiler-forge',
370
+ displayName: 'Profiler Forge',
299
371
  command: '@profiler-forge',
300
372
  path: '.aioson/agents/profiler-forge.md',
301
373
  dependsOn: ['.aioson/profiler-reports/{person-slug}/enriched-profile.md'],
302
- output: '.aioson/genomas/{person-slug}-{domain-slug}.md + .aioson/genomas/{person-slug}-{domain-slug}.meta.json + .aioson/advisors/{person-slug}-advisor.md'
374
+ output: '.aioson/genomes/{person-slug}-{domain-slug}.md + .aioson/genomes/{person-slug}-{domain-slug}.meta.json + .aioson/advisors/{person-slug}-advisor.md'
303
375
  }
304
376
  ];
305
377