@jaimevalasek/aioson 1.7.0 → 1.8.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.
Files changed (383) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +153 -10
  3. package/docs/en/cli-reference.md +56 -1
  4. package/docs/en/i18n.md +18 -18
  5. package/docs/en/schemas/index.json +10 -0
  6. package/docs/en/schemas/parallel-assign.schema.json +9 -0
  7. package/docs/en/schemas/parallel-doctor.schema.json +36 -0
  8. package/docs/en/schemas/parallel-guard.schema.json +63 -0
  9. package/docs/en/schemas/parallel-merge.schema.json +84 -0
  10. package/docs/en/schemas/parallel-status.schema.json +91 -1
  11. package/docs/integrations/apps-publish-marketplace.md +94 -0
  12. package/docs/pt/README.md +9 -0
  13. package/docs/pt/agentes.md +324 -3
  14. package/docs/pt/clientes-ai.md +7 -3
  15. package/docs/pt/comandos-cli.md +160 -13
  16. package/docs/pt/compress-agents.md +304 -0
  17. package/docs/pt/design-docs-governance.md +59 -0
  18. package/docs/pt/feature-archive.md +191 -0
  19. package/docs/pt/genome-3.0-spec.md +115 -4
  20. package/docs/pt/genome-distribution.md +232 -0
  21. package/docs/pt/inicio-rapido.md +1 -0
  22. package/docs/pt/motor-hardening.md +492 -0
  23. package/docs/pt/runner-system.md +113 -0
  24. package/package.json +2 -1
  25. package/src/agent-manifests.js +66 -0
  26. package/src/agents.js +27 -7
  27. package/src/autonomy-policy.js +139 -0
  28. package/src/brain-query.js +161 -0
  29. package/src/cli.js +1377 -1099
  30. package/src/commands/agents.js +102 -7
  31. package/src/commands/artifact-validate.js +33 -4
  32. package/src/commands/auth.js +272 -0
  33. package/src/commands/brain-query.js +44 -0
  34. package/src/commands/briefing.js +344 -0
  35. package/src/commands/commit-prepare.js +547 -0
  36. package/src/commands/compress-agents.js +416 -0
  37. package/src/commands/context-health.js +4 -2
  38. package/src/commands/context-trim.js +17 -11
  39. package/src/commands/design-hybrid-options.js +3 -3
  40. package/src/commands/devlog-process.js +6 -4
  41. package/src/commands/dossier.js +423 -0
  42. package/src/commands/feature-archive.js +513 -0
  43. package/src/commands/feature-close.js +123 -18
  44. package/src/commands/gate-approve.js +198 -0
  45. package/src/commands/gate-check.js +24 -5
  46. package/src/commands/genome-doctor.js +166 -9
  47. package/src/commands/git-guard.js +170 -0
  48. package/src/commands/harness.js +121 -0
  49. package/src/commands/implementation-plan.js +47 -20
  50. package/src/commands/init.js +6 -2
  51. package/src/commands/install.js +6 -2
  52. package/src/commands/live.js +497 -56
  53. package/src/commands/locale-apply.js +9 -6
  54. package/src/commands/locale-diff.js +11 -112
  55. package/src/commands/mcp-doctor.js +2 -1
  56. package/src/commands/mcp-init.js +4 -10
  57. package/src/commands/memory.js +234 -0
  58. package/src/commands/parallel-assign.js +107 -27
  59. package/src/commands/parallel-doctor.js +416 -3
  60. package/src/commands/parallel-guard.js +241 -0
  61. package/src/commands/parallel-init.js +66 -4
  62. package/src/commands/parallel-merge.js +299 -0
  63. package/src/commands/parallel-status.js +147 -3
  64. package/src/commands/preflight.js +63 -4
  65. package/src/commands/qa-init.js +10 -5
  66. package/src/commands/revision.js +235 -0
  67. package/src/commands/scaffold-complete.js +188 -0
  68. package/src/commands/security-audit.js +275 -0
  69. package/src/commands/security-scan.js +376 -0
  70. package/src/commands/self-implement-loop.js +46 -2
  71. package/src/commands/setup-context.js +11 -10
  72. package/src/commands/squad-agent-create.js +51 -9
  73. package/src/commands/squad-investigate.js +53 -0
  74. package/src/commands/squad-plan.js +33 -1
  75. package/src/commands/squad-scaffold.js +4 -3
  76. package/src/commands/squad-score.js +71 -14
  77. package/src/commands/squad-status.js +22 -1
  78. package/src/commands/squad-validate.js +93 -2
  79. package/src/commands/store-genome.js +304 -0
  80. package/src/commands/store-skill.js +247 -0
  81. package/src/commands/store-squad.js +431 -0
  82. package/src/commands/store-system.js +392 -0
  83. package/src/commands/tool-capabilities.js +63 -0
  84. package/src/commands/update.js +3 -3
  85. package/src/commands/verify-gate.js +40 -0
  86. package/src/commands/workflow-execute.js +644 -155
  87. package/src/commands/workflow-harden.js +231 -0
  88. package/src/commands/workflow-heal.js +136 -0
  89. package/src/commands/workflow-next.js +460 -22
  90. package/src/commands/workflow-status.js +328 -138
  91. package/src/commands/workspace.js +144 -0
  92. package/src/constants.js +55 -75
  93. package/src/context-memory.js +133 -4
  94. package/src/context-writer.js +2 -1
  95. package/src/context.js +32 -2
  96. package/src/doctor.js +46 -6
  97. package/src/dossier/codemap-store.js +267 -0
  98. package/src/dossier/dossier-bootstrap.js +222 -0
  99. package/src/dossier/dossier-compact.js +159 -0
  100. package/src/dossier/lock.js +128 -0
  101. package/src/dossier/revision-store.js +313 -0
  102. package/src/dossier/schema.js +155 -0
  103. package/src/dossier/store.js +400 -0
  104. package/src/execution-gateway.js +3 -0
  105. package/src/friction-scanner.js +202 -0
  106. package/src/genome-schema.js +24 -1
  107. package/src/genomes.js +33 -0
  108. package/src/handoff-contract.js +363 -0
  109. package/src/handoff-validator.js +45 -0
  110. package/src/harness/circuit-breaker.js +135 -0
  111. package/src/i18n/messages/en.js +317 -22
  112. package/src/i18n/messages/es.js +259 -18
  113. package/src/i18n/messages/fr.js +260 -18
  114. package/src/i18n/messages/pt-BR.js +313 -22
  115. package/src/install-profile.js +0 -16
  116. package/src/installer.js +70 -6
  117. package/src/lib/git-commit-guard.js +691 -0
  118. package/src/lib/security/artifact-reader.js +167 -0
  119. package/src/lib/security/exit-codes.js +51 -0
  120. package/src/lib/security/findings-writer.js +176 -0
  121. package/src/lib/security/runtime-events.js +77 -0
  122. package/src/lib/security/secrets-regex.js +115 -0
  123. package/src/lib/store/security-scan.js +173 -0
  124. package/src/lib/terminal-checkbox.js +130 -0
  125. package/src/lib/tmux-launcher.js +163 -0
  126. package/src/lib/tool-capabilities.js +102 -0
  127. package/src/locales.js +12 -8
  128. package/src/parallel-workspace.js +756 -0
  129. package/src/parser.js +8 -1
  130. package/src/path-guard.js +47 -0
  131. package/src/preflight-engine.js +237 -26
  132. package/src/self-healing.js +142 -0
  133. package/src/session-handoff.js +111 -1
  134. package/src/squad/squad-scaffold.js +183 -19
  135. package/src/test-briefing.js +226 -0
  136. package/src/updater.js +1 -1
  137. package/src/utils.js +3 -0
  138. package/src/workflow-gates.js +185 -0
  139. package/template/.aioson/agents/analyst.md +76 -130
  140. package/template/.aioson/agents/architect.md +53 -86
  141. package/template/.aioson/agents/committer.md +161 -0
  142. package/template/.aioson/agents/copywriter.md +463 -0
  143. package/template/.aioson/agents/cypher.md +252 -0
  144. package/template/.aioson/agents/dev.md +112 -600
  145. package/template/.aioson/agents/deyvin.md +33 -235
  146. package/template/.aioson/agents/discover.md +235 -0
  147. package/template/.aioson/agents/discovery-design-doc.md +17 -252
  148. package/template/.aioson/agents/genome.md +76 -26
  149. package/template/.aioson/agents/manifests/analyst.manifest.json +26 -0
  150. package/template/.aioson/agents/manifests/architect.manifest.json +23 -0
  151. package/template/.aioson/agents/manifests/committer.manifest.json +23 -0
  152. package/template/.aioson/agents/manifests/dev.manifest.json +37 -0
  153. package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -0
  154. package/template/.aioson/agents/manifests/pentester.manifest.json +39 -0
  155. package/template/.aioson/agents/manifests/pm.manifest.json +26 -0
  156. package/template/.aioson/agents/manifests/product.manifest.json +23 -0
  157. package/template/.aioson/agents/manifests/qa.manifest.json +25 -0
  158. package/template/.aioson/agents/manifests/setup.manifest.json +20 -0
  159. package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -0
  160. package/template/.aioson/agents/neo.md +10 -8
  161. package/template/.aioson/agents/orache.md +2 -6
  162. package/template/.aioson/agents/orchestrator.md +81 -182
  163. package/template/.aioson/agents/pentester.md +235 -0
  164. package/template/.aioson/agents/pm.md +40 -104
  165. package/template/.aioson/agents/product.md +99 -344
  166. package/template/.aioson/agents/profiler-enricher.md +57 -6
  167. package/template/.aioson/agents/profiler-forge.md +17 -7
  168. package/template/.aioson/agents/profiler-researcher.md +29 -6
  169. package/template/.aioson/agents/qa.md +165 -410
  170. package/template/.aioson/agents/setup.md +52 -262
  171. package/template/.aioson/agents/sheldon.md +122 -754
  172. package/template/.aioson/agents/site-forge.md +111 -1583
  173. package/template/.aioson/agents/squad.md +139 -1820
  174. package/template/.aioson/agents/tester.md +10 -0
  175. package/template/.aioson/agents/ux-ui.md +103 -645
  176. package/template/.aioson/agents/validator.md +69 -0
  177. package/template/.aioson/brains/scripts/query.js +5 -1
  178. package/template/.aioson/config/autonomy-protocol.json +43 -0
  179. package/template/.aioson/config.md +43 -15
  180. package/template/.aioson/constitution.md +36 -33
  181. package/template/.aioson/context/design-doc.md +136 -0
  182. package/template/.aioson/context/project-map.md +57 -0
  183. package/template/.aioson/design-docs/code-reuse.md +48 -0
  184. package/template/.aioson/design-docs/componentization.md +47 -0
  185. package/template/.aioson/design-docs/file-size.md +52 -0
  186. package/template/.aioson/design-docs/folder-structure.md +51 -0
  187. package/template/.aioson/design-docs/naming.md +54 -0
  188. package/template/.aioson/docs/LAYERS.md +12 -2
  189. package/template/.aioson/docs/dev/execution-discipline.md +106 -0
  190. package/template/.aioson/docs/dev/stack-conventions.md +83 -0
  191. package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -0
  192. package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -0
  193. package/template/.aioson/docs/deyvin/pair-execution.md +44 -0
  194. package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -0
  195. package/template/.aioson/docs/product/conversation-playbook.md +116 -0
  196. package/template/.aioson/docs/product/prd-contract.md +107 -0
  197. package/template/.aioson/docs/product/quality-lens.md +57 -0
  198. package/template/.aioson/docs/product/research-loop.md +65 -0
  199. package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -0
  200. package/template/.aioson/docs/sheldon/quality-lens.md +57 -0
  201. package/template/.aioson/docs/sheldon/research-loop.md +56 -0
  202. package/template/.aioson/docs/sheldon/web-intelligence.md +75 -0
  203. package/template/.aioson/docs/site-forge-build.md +195 -0
  204. package/template/.aioson/docs/site-forge-extraction.md +135 -0
  205. package/template/.aioson/docs/site-forge-qa.md +155 -0
  206. package/template/.aioson/docs/site-forge-recon.md +434 -0
  207. package/template/.aioson/docs/site-forge-transform.md +249 -0
  208. package/template/.aioson/docs/squad/content-output.md +91 -0
  209. package/template/.aioson/docs/squad/creation-flow.md +135 -0
  210. package/template/.aioson/docs/squad/domain-classification.md +117 -0
  211. package/template/.aioson/docs/squad/genome-bindings.md +47 -0
  212. package/template/.aioson/docs/squad/package-contract.md +234 -0
  213. package/template/.aioson/docs/squad/quality-lens.md +56 -0
  214. package/template/.aioson/docs/squad/research-loop.md +59 -0
  215. package/template/.aioson/docs/squad/session-operations.md +117 -0
  216. package/template/.aioson/docs/squad/workflow-quality.md +165 -0
  217. package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -0
  218. package/template/.aioson/docs/ux-ui/audit-mode.md +86 -0
  219. package/template/.aioson/docs/ux-ui/component-map.md +35 -0
  220. package/template/.aioson/docs/ux-ui/design-execution.md +111 -0
  221. package/template/.aioson/docs/ux-ui/design-gate.md +27 -0
  222. package/template/.aioson/docs/ux-ui/research-mode.md +39 -0
  223. package/template/.aioson/docs/ux-ui/site-delivery.md +156 -0
  224. package/template/.aioson/docs/ux-ui/token-contract.md +57 -0
  225. package/template/.aioson/genomes/copywriting.md +204 -0
  226. package/template/.aioson/genomes/copywriting.meta.json +48 -0
  227. package/template/.aioson/git-guard.json +11 -0
  228. package/template/.aioson/mcp/servers.md +0 -1
  229. package/template/.aioson/rules/agent-language-policy.md +93 -0
  230. package/template/.aioson/rules/aioson-context-boundary.md +63 -0
  231. package/template/.aioson/rules/canonical-path-contract.md +47 -0
  232. package/template/.aioson/rules/data-format-convention.md +24 -86
  233. package/template/.aioson/rules/disk-first-artifacts.md +44 -0
  234. package/template/.aioson/rules/output-brevity.md +44 -0
  235. package/template/.aioson/rules/prd-section-ownership.md +49 -0
  236. package/template/.aioson/rules/security-baseline.md +139 -0
  237. package/template/.aioson/rules/spec-level-ownership.md +61 -0
  238. package/template/.aioson/rules/squad-driver-pattern.md +81 -0
  239. package/template/.aioson/schemas/squad-blueprint.schema.json +24 -0
  240. package/template/.aioson/schemas/squad-manifest.schema.json +44 -0
  241. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -0
  242. package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -0
  243. package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
  244. package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
  245. package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
  246. package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
  247. package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
  248. package/template/.aioson/skills/marketing/references/patterns.md +218 -0
  249. package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
  250. package/template/.aioson/skills/marketing/vsl-craft.md +385 -0
  251. package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +30 -0
  252. package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -0
  253. package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +81 -0
  254. package/template/.aioson/skills/process/secure-tdd/references/node-express.md +91 -0
  255. package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +33 -0
  256. package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -0
  257. package/template/.aioson/skills/static/landing-page-deploy.md +192 -0
  258. package/template/.aioson/skills/static/landing-page-forge.md +730 -0
  259. package/template/.aioson/skills/static/ui-ux-modern.md +1 -0
  260. package/template/.aioson/skills/static/web-research-cache.md +3 -0
  261. package/template/.aioson/tasks/squad-create.md +56 -7
  262. package/template/.aioson/tasks/squad-design.md +80 -2
  263. package/template/.aioson/tasks/squad-investigate.md +14 -1
  264. package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
  265. package/template/.claude/commands/aioson/agent/committer.md +5 -0
  266. package/template/.claude/commands/aioson/agent/copywriter.md +5 -0
  267. package/template/.claude/commands/aioson/agent/cypher.md +5 -0
  268. package/template/.claude/commands/aioson/agent/pair.md +5 -0
  269. package/template/.claude/commands/aioson/agent/validator.md +5 -0
  270. package/template/.gemini/commands/aios-analyst.toml +6 -3
  271. package/template/.gemini/commands/aios-architect.toml +7 -6
  272. package/template/.gemini/commands/aios-committer.toml +7 -0
  273. package/template/.gemini/commands/aios-copywriter.toml +7 -0
  274. package/template/.gemini/commands/aios-cypher.toml +7 -0
  275. package/template/.gemini/commands/aios-dev.toml +8 -7
  276. package/template/.gemini/commands/aios-deyvin.toml +6 -5
  277. package/template/.gemini/commands/aios-discovery-design-doc.toml +6 -3
  278. package/template/.gemini/commands/aios-genome.toml +7 -0
  279. package/template/.gemini/commands/aios-neo.toml +5 -3
  280. package/template/.gemini/commands/aios-orache.toml +7 -0
  281. package/template/.gemini/commands/aios-orchestrator.toml +8 -7
  282. package/template/.gemini/commands/aios-pair.toml +6 -5
  283. package/template/.gemini/commands/aios-pm.toml +8 -7
  284. package/template/.gemini/commands/aios-product.toml +5 -3
  285. package/template/.gemini/commands/aios-qa.toml +6 -5
  286. package/template/.gemini/commands/aios-setup.toml +5 -2
  287. package/template/.gemini/commands/aios-sheldon.toml +7 -0
  288. package/template/.gemini/commands/aios-site-forge.toml +7 -0
  289. package/template/.gemini/commands/aios-squad.toml +7 -0
  290. package/template/.gemini/commands/aios-tester.toml +6 -5
  291. package/template/.gemini/commands/aios-ux-ui.toml +8 -7
  292. package/template/.gemini/commands/aios-validator.toml +7 -0
  293. package/template/AGENTS.md +12 -1
  294. package/template/CLAUDE.md +6 -1
  295. package/template/.aioson/locales/en/agents/analyst.md +0 -244
  296. package/template/.aioson/locales/en/agents/architect.md +0 -245
  297. package/template/.aioson/locales/en/agents/dev.md +0 -397
  298. package/template/.aioson/locales/en/agents/deyvin.md +0 -137
  299. package/template/.aioson/locales/en/agents/discovery-design-doc.md +0 -27
  300. package/template/.aioson/locales/en/agents/genome.md +0 -212
  301. package/template/.aioson/locales/en/agents/neo.md +0 -8
  302. package/template/.aioson/locales/en/agents/orache.md +0 -6
  303. package/template/.aioson/locales/en/agents/orchestrator.md +0 -189
  304. package/template/.aioson/locales/en/agents/pair.md +0 -5
  305. package/template/.aioson/locales/en/agents/pm.md +0 -84
  306. package/template/.aioson/locales/en/agents/product.md +0 -378
  307. package/template/.aioson/locales/en/agents/profiler-enricher.md +0 -5
  308. package/template/.aioson/locales/en/agents/profiler-forge.md +0 -5
  309. package/template/.aioson/locales/en/agents/profiler-researcher.md +0 -5
  310. package/template/.aioson/locales/en/agents/qa.md +0 -270
  311. package/template/.aioson/locales/en/agents/setup.md +0 -421
  312. package/template/.aioson/locales/en/agents/sheldon.md +0 -455
  313. package/template/.aioson/locales/en/agents/squad.md +0 -449
  314. package/template/.aioson/locales/en/agents/tester.md +0 -6
  315. package/template/.aioson/locales/en/agents/ux-ui.md +0 -668
  316. package/template/.aioson/locales/es/agents/analyst.md +0 -225
  317. package/template/.aioson/locales/es/agents/architect.md +0 -245
  318. package/template/.aioson/locales/es/agents/dev.md +0 -370
  319. package/template/.aioson/locales/es/agents/deyvin.md +0 -99
  320. package/template/.aioson/locales/es/agents/discovery-design-doc.md +0 -21
  321. package/template/.aioson/locales/es/agents/genome.md +0 -104
  322. package/template/.aioson/locales/es/agents/neo.md +0 -50
  323. package/template/.aioson/locales/es/agents/orache.md +0 -105
  324. package/template/.aioson/locales/es/agents/orchestrator.md +0 -194
  325. package/template/.aioson/locales/es/agents/pair.md +0 -7
  326. package/template/.aioson/locales/es/agents/pm.md +0 -90
  327. package/template/.aioson/locales/es/agents/product.md +0 -372
  328. package/template/.aioson/locales/es/agents/profiler-enricher.md +0 -7
  329. package/template/.aioson/locales/es/agents/profiler-forge.md +0 -7
  330. package/template/.aioson/locales/es/agents/profiler-researcher.md +0 -7
  331. package/template/.aioson/locales/es/agents/qa.md +0 -198
  332. package/template/.aioson/locales/es/agents/setup.md +0 -405
  333. package/template/.aioson/locales/es/agents/sheldon.md +0 -309
  334. package/template/.aioson/locales/es/agents/squad.md +0 -532
  335. package/template/.aioson/locales/es/agents/tester.md +0 -9
  336. package/template/.aioson/locales/es/agents/ux-ui.md +0 -212
  337. package/template/.aioson/locales/fr/agents/analyst.md +0 -225
  338. package/template/.aioson/locales/fr/agents/architect.md +0 -245
  339. package/template/.aioson/locales/fr/agents/dev.md +0 -370
  340. package/template/.aioson/locales/fr/agents/deyvin.md +0 -99
  341. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +0 -21
  342. package/template/.aioson/locales/fr/agents/genome.md +0 -104
  343. package/template/.aioson/locales/fr/agents/neo.md +0 -50
  344. package/template/.aioson/locales/fr/agents/orache.md +0 -106
  345. package/template/.aioson/locales/fr/agents/orchestrator.md +0 -194
  346. package/template/.aioson/locales/fr/agents/pair.md +0 -7
  347. package/template/.aioson/locales/fr/agents/pm.md +0 -90
  348. package/template/.aioson/locales/fr/agents/product.md +0 -372
  349. package/template/.aioson/locales/fr/agents/profiler-enricher.md +0 -7
  350. package/template/.aioson/locales/fr/agents/profiler-forge.md +0 -7
  351. package/template/.aioson/locales/fr/agents/profiler-researcher.md +0 -7
  352. package/template/.aioson/locales/fr/agents/qa.md +0 -198
  353. package/template/.aioson/locales/fr/agents/setup.md +0 -405
  354. package/template/.aioson/locales/fr/agents/sheldon.md +0 -309
  355. package/template/.aioson/locales/fr/agents/squad.md +0 -532
  356. package/template/.aioson/locales/fr/agents/tester.md +0 -9
  357. package/template/.aioson/locales/fr/agents/ux-ui.md +0 -212
  358. package/template/.aioson/locales/pt-BR/agents/analyst.md +0 -319
  359. package/template/.aioson/locales/pt-BR/agents/architect.md +0 -284
  360. package/template/.aioson/locales/pt-BR/agents/dev.md +0 -483
  361. package/template/.aioson/locales/pt-BR/agents/deyvin.md +0 -184
  362. package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +0 -198
  363. package/template/.aioson/locales/pt-BR/agents/genome.md +0 -297
  364. package/template/.aioson/locales/pt-BR/agents/neo.md +0 -208
  365. package/template/.aioson/locales/pt-BR/agents/orache.md +0 -137
  366. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +0 -324
  367. package/template/.aioson/locales/pt-BR/agents/pair.md +0 -5
  368. package/template/.aioson/locales/pt-BR/agents/pm.md +0 -182
  369. package/template/.aioson/locales/pt-BR/agents/product.md +0 -466
  370. package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +0 -5
  371. package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +0 -5
  372. package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +0 -5
  373. package/template/.aioson/locales/pt-BR/agents/qa.md +0 -300
  374. package/template/.aioson/locales/pt-BR/agents/setup.md +0 -533
  375. package/template/.aioson/locales/pt-BR/agents/sheldon.md +0 -323
  376. package/template/.aioson/locales/pt-BR/agents/squad.md +0 -1330
  377. package/template/.aioson/locales/pt-BR/agents/tester.md +0 -449
  378. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +0 -669
  379. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  380. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  381. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  382. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  383. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
package/src/agents.js CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  const { AGENT_DEFINITIONS } = require('./constants');
4
- const { getLocalizedAgentPath } = require('./locales');
5
4
 
6
5
  function normalizeAgentName(input) {
7
6
  return String(input || '')
@@ -23,18 +22,37 @@ function listAgentDefinitions() {
23
22
  }
24
23
 
25
24
  function resolveInstructionPath(agent, locale) {
26
- if (!locale) return agent.path;
27
- return getLocalizedAgentPath(agent.id, locale);
25
+ return agent.path;
28
26
  }
29
27
 
30
28
  function buildAgentPrompt(agent, tool, options = {}) {
31
29
  const safeTool = String(tool || 'codex').toLowerCase();
32
30
  const instructionPath = options.instructionPath || agent.path;
33
31
  const targetDir = options.targetDir ? String(options.targetDir) : '.';
32
+ const interactionLanguage = String(options.interactionLanguage || 'en');
33
+ const autonomyMode = String(options.autonomyMode || '').trim();
34
+ const capabilitySummary = String(options.capabilitySummary || '').trim();
35
+ const activationContext = String(options.activationContext || '').trim();
34
36
  const dependencyText =
35
37
  agent.dependsOn.length > 0
36
38
  ? `Check required context files first: ${agent.dependsOn.join(', ')}.`
37
39
  : 'No prerequisite context files are required.';
40
+ const activationBlock = activationContext
41
+ ? [
42
+ '',
43
+ '## Activation Context',
44
+ '',
45
+ activationContext
46
+ ].join('\n')
47
+ : '';
48
+
49
+ const autonomyBlock = [
50
+ '',
51
+ '## Autonomy Contract',
52
+ '',
53
+ `**Autonomy mode:** ${autonomyMode || 'guarded'}. Respect this as the maximum automation level allowed for this activation.`,
54
+ capabilitySummary ? `**Capability summary:** ${capabilitySummary}` : '**Capability summary:** No manifest declared for this agent in the current workspace.'
55
+ ].join('\n');
38
56
 
39
57
  const lifecycleBlock = [
40
58
  '',
@@ -45,22 +63,24 @@ function buildAgentPrompt(agent, tool, options = {}) {
45
63
  '',
46
64
  '> If the user needs dashboard-visible tracked execution in an external client, they must enter through `aioson workflow:next` or `aioson agent:prompt` before continuing.',
47
65
  '',
66
+ `**Language boundary:** Agent instructions are canonical in English. All user-facing communication must be in ${interactionLanguage}.`,
67
+ '',
48
68
  `**Scope boundary:** You operate exclusively as ${agent.command}. Do not perform work that belongs to another agent. When your work is complete, output only the handoff — which agent is next and why. Do not continue into that agent\'s territory.`,
49
69
  ].join('\n');
50
70
 
51
71
  if (safeTool === 'claude') {
52
- return `Read ${instructionPath} and execute ${agent.command}. ${dependencyText} Write output to ${agent.output}.${lifecycleBlock}`;
72
+ return `Read ${instructionPath} and execute ${agent.command}. ${dependencyText}${activationBlock} Write output to ${agent.output}.${autonomyBlock}${lifecycleBlock}`;
53
73
  }
54
74
 
55
75
  if (safeTool === 'gemini') {
56
- return `Run the Gemini command mapped to ${instructionPath} and execute ${agent.command}. ${dependencyText} Save result to ${agent.output}.${lifecycleBlock}`;
76
+ return `Run the Gemini command mapped to ${instructionPath} and execute ${agent.command}. ${dependencyText}${activationBlock} Save result to ${agent.output}.${autonomyBlock}${lifecycleBlock}`;
57
77
  }
58
78
 
59
79
  if (safeTool === 'opencode') {
60
- return `Use agent "${agent.id}" from ${instructionPath}. ${dependencyText} Save output to ${agent.output}.${lifecycleBlock}`;
80
+ return `Use agent "${agent.id}" from ${instructionPath}. ${dependencyText}${activationBlock} Save output to ${agent.output}.${autonomyBlock}${lifecycleBlock}`;
61
81
  }
62
82
 
63
- return `Read AGENTS.md and execute ${agent.command} using ${instructionPath}. ${dependencyText} Save output to ${agent.output}.${lifecycleBlock}`;
83
+ return `Read AGENTS.md and execute ${agent.command} using ${instructionPath}. ${dependencyText}${activationBlock} Save output to ${agent.output}.${autonomyBlock}${lifecycleBlock}`;
64
84
  }
65
85
 
66
86
  module.exports = {
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs/promises');
4
+ const path = require('node:path');
5
+ const { exists } = require('./utils');
6
+
7
+ const AUTONOMY_PROTOCOL_RELATIVE_PATH = '.aioson/config/autonomy-protocol.json';
8
+ const MODES = ['guarded', 'trusted', 'headless'];
9
+
10
+ function buildDefaultProtocol() {
11
+ return {
12
+ version: '1.0',
13
+ global_mode: 'guarded',
14
+ tools: {},
15
+ agents: {}
16
+ };
17
+ }
18
+
19
+ function normalizeMode(mode, fallback = 'guarded') {
20
+ const safe = String(mode || '').trim().toLowerCase();
21
+ return MODES.includes(safe) ? safe : fallback;
22
+ }
23
+
24
+ async function readAutonomyProtocol(targetDir) {
25
+ const protocolPath = path.join(targetDir, AUTONOMY_PROTOCOL_RELATIVE_PATH);
26
+ if (!(await exists(protocolPath))) return buildDefaultProtocol();
27
+
28
+ try {
29
+ const raw = await fs.readFile(protocolPath, 'utf8');
30
+ const parsed = JSON.parse(raw);
31
+ return {
32
+ ...buildDefaultProtocol(),
33
+ ...parsed,
34
+ global_mode: normalizeMode(parsed.global_mode, 'guarded'),
35
+ tools: parsed.tools && typeof parsed.tools === 'object' ? parsed.tools : {},
36
+ agents: parsed.agents && typeof parsed.agents === 'object' ? parsed.agents : {}
37
+ };
38
+ } catch {
39
+ return buildDefaultProtocol();
40
+ }
41
+ }
42
+
43
+ function getToolPolicy(protocol, tool) {
44
+ const safeTool = String(tool || 'codex').trim().toLowerCase();
45
+ const policy = protocol && protocol.tools && typeof protocol.tools === 'object'
46
+ ? protocol.tools[safeTool]
47
+ : null;
48
+ const rawFallbackMode = String(policy && policy.fallback_mode ? policy.fallback_mode : 'guarded').trim().toLowerCase();
49
+
50
+ return {
51
+ mode: normalizeMode(policy && policy.mode, protocol && protocol.global_mode ? protocol.global_mode : 'guarded'),
52
+ fallback_mode: ['guarded', 'headless', 'abort'].includes(rawFallbackMode) ? rawFallbackMode : 'guarded',
53
+ shell_whitelist: Array.isArray(policy && policy.shell_whitelist) ? policy.shell_whitelist : [],
54
+ shell_blacklist: Array.isArray(policy && policy.shell_blacklist) ? policy.shell_blacklist : [],
55
+ aioson_whitelist: Array.isArray(policy && policy.aioson_whitelist) ? policy.aioson_whitelist : [],
56
+ requires_tty: policy && Object.prototype.hasOwnProperty.call(policy, 'requires_tty')
57
+ ? Boolean(policy.requires_tty)
58
+ : true,
59
+ max_auto_retries: Number.isInteger(policy && policy.max_auto_retries) ? policy.max_auto_retries : 3
60
+ };
61
+ }
62
+
63
+ function getAgentPolicy(protocol, agentId) {
64
+ if (!protocol || !protocol.agents || typeof protocol.agents !== 'object') return {};
65
+ return protocol.agents[String(agentId || '').trim()] || {};
66
+ }
67
+
68
+ function getMostPermissiveMode(modes, fallback = 'guarded') {
69
+ if (!Array.isArray(modes) || modes.length === 0) return fallback;
70
+ let bestIndex = MODES.indexOf(normalizeMode(fallback, 'guarded'));
71
+ for (const mode of modes) {
72
+ const index = MODES.indexOf(normalizeMode(mode, fallback));
73
+ if (index > bestIndex) bestIndex = index;
74
+ }
75
+ return MODES[bestIndex];
76
+ }
77
+
78
+ function getAgentMaxMode(protocol, agentId, manifest = null) {
79
+ const agentPolicy = getAgentPolicy(protocol, agentId);
80
+ if (agentPolicy && agentPolicy.max_mode) {
81
+ return normalizeMode(agentPolicy.max_mode, 'guarded');
82
+ }
83
+ if (manifest && Array.isArray(manifest.autonomy_modes) && manifest.autonomy_modes.length > 0) {
84
+ return getMostPermissiveMode(manifest.autonomy_modes, 'guarded');
85
+ }
86
+ return normalizeMode(protocol && protocol.global_mode, 'guarded');
87
+ }
88
+
89
+ function resolveEffectiveMode({ protocol, tool, agentId, manifest = null, requestedMode = null }) {
90
+ const toolPolicy = getToolPolicy(protocol || buildDefaultProtocol(), tool);
91
+ const toolMode = normalizeMode(toolPolicy.mode, 'guarded');
92
+ const agentMode = getAgentMaxMode(protocol || buildDefaultProtocol(), agentId, manifest);
93
+
94
+ const toolIndex = MODES.indexOf(toolMode);
95
+ const agentIndex = MODES.indexOf(agentMode);
96
+ const baseIndex = Math.min(toolIndex, agentIndex);
97
+
98
+ if (!requestedMode) return MODES[baseIndex];
99
+
100
+ const requestedIndex = MODES.indexOf(normalizeMode(requestedMode, 'guarded'));
101
+ return MODES[Math.min(baseIndex, requestedIndex)];
102
+ }
103
+
104
+ function matchPattern(value, pattern) {
105
+ const escaped = String(pattern || '')
106
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
107
+ .replace(/\*/g, '.*');
108
+ return new RegExp(`^${escaped}$`, 'i').test(String(value || ''));
109
+ }
110
+
111
+ function isCommandAllowed(policy, commandType, commandString) {
112
+ if (!policy) return false;
113
+ const safeType = String(commandType || '').trim().toLowerCase();
114
+ const whitelist = Array.isArray(policy[`${safeType}_whitelist`]) ? policy[`${safeType}_whitelist`] : [];
115
+ const blacklist = Array.isArray(policy[`${safeType}_blacklist`]) ? policy[`${safeType}_blacklist`] : [];
116
+
117
+ for (const pattern of blacklist) {
118
+ if (matchPattern(commandString, pattern)) return false;
119
+ }
120
+
121
+ if (whitelist.length === 0) return true;
122
+ return whitelist.some((pattern) => matchPattern(commandString, pattern));
123
+ }
124
+
125
+ function canRunHeadless(policy) {
126
+ return Boolean(policy) && policy.requires_tty === false;
127
+ }
128
+
129
+ module.exports = {
130
+ AUTONOMY_PROTOCOL_RELATIVE_PATH,
131
+ MODES,
132
+ readAutonomyProtocol,
133
+ getToolPolicy,
134
+ getAgentPolicy,
135
+ getAgentMaxMode,
136
+ resolveEffectiveMode,
137
+ isCommandAllowed,
138
+ canRunHeadless
139
+ };
@@ -0,0 +1,161 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs/promises');
4
+ const path = require('node:path');
5
+
6
+ function splitCsv(value) {
7
+ return String(value || '')
8
+ .split(',')
9
+ .map((item) => item.trim())
10
+ .filter(Boolean);
11
+ }
12
+
13
+ function normalizeBrainPath(targetDir, brainPath) {
14
+ const raw = String(brainPath || '').trim();
15
+ if (!raw) return null;
16
+ if (path.isAbsolute(raw)) return raw;
17
+ if (raw.startsWith('.aioson/brains/')) return path.join(targetDir, raw);
18
+ return path.join(targetDir, '.aioson', 'brains', raw);
19
+ }
20
+
21
+ async function readJsonFile(filePath) {
22
+ const content = await fs.readFile(filePath, 'utf8');
23
+ return JSON.parse(content);
24
+ }
25
+
26
+ function brainMatches({ brain, tags, agent }) {
27
+ if (agent) {
28
+ const agents = Array.isArray(brain.agents) ? brain.agents : [];
29
+ if (!agents.includes(agent)) return false;
30
+ }
31
+ if (tags.length > 0) {
32
+ const brainTags = Array.isArray(brain.tags) ? brain.tags : [];
33
+ if (!tags.some((tag) => brainTags.includes(tag))) return false;
34
+ }
35
+ return true;
36
+ }
37
+
38
+ function nodeMatches({ node, tags, matchMode, minQuality, verdicts, ids, avoidOnly }) {
39
+ if (ids.length > 0) return ids.includes(node.id);
40
+
41
+ const nodeTags = Array.isArray(node.tags) ? node.tags : [];
42
+ if (tags.length > 0) {
43
+ const ok = matchMode === 'all'
44
+ ? tags.every((tag) => nodeTags.includes(tag))
45
+ : tags.some((tag) => nodeTags.includes(tag));
46
+ if (!ok) return false;
47
+ }
48
+
49
+ if (minQuality > 0 && Number(node.q || 0) < minQuality) return false;
50
+
51
+ if (verdicts.length > 0) {
52
+ const verdict = String(node.v || '').toUpperCase();
53
+ if (!verdicts.includes(verdict)) return false;
54
+ }
55
+
56
+ if (avoidOnly) {
57
+ const verdict = String(node.v || '').toUpperCase();
58
+ if (verdict !== 'AVOID' && verdict !== 'BROKEN') return false;
59
+ }
60
+
61
+ return true;
62
+ }
63
+
64
+ async function queryBrains({
65
+ targetDir,
66
+ tags = [],
67
+ matchMode = 'any',
68
+ minQuality = 0,
69
+ agent = '',
70
+ verdicts = [],
71
+ ids = [],
72
+ avoidOnly = false
73
+ }) {
74
+ const brainsDir = path.join(targetDir, '.aioson', 'brains');
75
+ const indexPath = path.join(brainsDir, '_index.json');
76
+
77
+ let index;
78
+ try {
79
+ index = await readJsonFile(indexPath);
80
+ } catch {
81
+ return {
82
+ ok: false,
83
+ reason: 'missing_index',
84
+ indexPath,
85
+ brainFiles: [],
86
+ nodes: [],
87
+ warnings: [`No _index.json found at ${indexPath}`]
88
+ };
89
+ }
90
+
91
+ const requestedTags = Array.isArray(tags) ? tags : splitCsv(tags);
92
+ const requestedVerdicts = (Array.isArray(verdicts) ? verdicts : splitCsv(verdicts))
93
+ .map((verdict) => verdict.toUpperCase());
94
+ const requestedIds = Array.isArray(ids) ? ids : splitCsv(ids);
95
+ const requestedAgent = String(agent || '').replace(/^@/, '').trim();
96
+ const normalizedMatchMode = matchMode === 'all' ? 'all' : 'any';
97
+ const minQ = Number(minQuality || 0);
98
+
99
+ const indexedBrains = Array.isArray(index.brains) ? index.brains : [];
100
+ const selectedBrains = indexedBrains.filter((brain) => brainMatches({
101
+ brain,
102
+ tags: requestedTags,
103
+ agent: requestedAgent
104
+ }));
105
+
106
+ const warnings = [];
107
+ const nodes = [];
108
+
109
+ for (const brain of selectedBrains) {
110
+ const brainPath = normalizeBrainPath(targetDir, brain.path);
111
+ if (!brainPath) {
112
+ warnings.push(`Brain ${brain.id || '(unknown)'} has no path`);
113
+ continue;
114
+ }
115
+
116
+ let data;
117
+ try {
118
+ data = await readJsonFile(brainPath);
119
+ } catch {
120
+ warnings.push(`Brain file not found or invalid: ${brainPath}`);
121
+ continue;
122
+ }
123
+
124
+ const brainNodes = Array.isArray(data.nodes) ? data.nodes : [];
125
+ for (const node of brainNodes) {
126
+ if (nodeMatches({
127
+ node,
128
+ tags: requestedTags,
129
+ matchMode: normalizedMatchMode,
130
+ minQuality: minQ,
131
+ verdicts: requestedVerdicts,
132
+ ids: requestedIds,
133
+ avoidOnly
134
+ })) {
135
+ nodes.push({ ...node, _brain: brain.id || null, _brain_path: brain.path || null });
136
+ }
137
+ }
138
+ }
139
+
140
+ return {
141
+ ok: true,
142
+ indexPath,
143
+ brainFiles: selectedBrains.map((brain) => brain.path),
144
+ nodes,
145
+ warnings
146
+ };
147
+ }
148
+
149
+ function formatBrainNodesCompact(nodes) {
150
+ if (!nodes || nodes.length === 0) return '(no matches)';
151
+ return nodes
152
+ .map((node) => `[${node.q || 0}* ${node.v || 'UNKNOWN'}] ${node.id} - ${node.title}\n ${node.s || ''}`.trimEnd())
153
+ .join('\n\n');
154
+ }
155
+
156
+ module.exports = {
157
+ splitCsv,
158
+ normalizeBrainPath,
159
+ queryBrains,
160
+ formatBrainNodesCompact
161
+ };