aios-core 2.1.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 (607) hide show
  1. package/.aios-core/.session/current-session.json +14 -0
  2. package/.aios-core/cli/commands/generate/index.js +222 -0
  3. package/.aios-core/cli/commands/manifest/index.js +46 -0
  4. package/.aios-core/cli/commands/manifest/regenerate.js +96 -0
  5. package/.aios-core/cli/commands/manifest/validate.js +66 -0
  6. package/.aios-core/cli/commands/mcp/add.js +234 -0
  7. package/.aios-core/cli/commands/mcp/index.js +76 -0
  8. package/.aios-core/cli/commands/mcp/link.js +217 -0
  9. package/.aios-core/cli/commands/mcp/setup.js +164 -0
  10. package/.aios-core/cli/commands/mcp/status.js +183 -0
  11. package/.aios-core/cli/commands/metrics/cleanup.js +91 -0
  12. package/.aios-core/cli/commands/metrics/index.js +65 -0
  13. package/.aios-core/cli/commands/metrics/record.js +154 -0
  14. package/.aios-core/cli/commands/metrics/seed.js +126 -0
  15. package/.aios-core/cli/commands/metrics/show.js +209 -0
  16. package/.aios-core/cli/commands/migrate/analyze.js +353 -0
  17. package/.aios-core/cli/commands/migrate/backup.js +352 -0
  18. package/.aios-core/cli/commands/migrate/execute.js +292 -0
  19. package/.aios-core/cli/commands/migrate/index.js +441 -0
  20. package/.aios-core/cli/commands/migrate/rollback.js +323 -0
  21. package/.aios-core/cli/commands/migrate/update-imports.js +396 -0
  22. package/.aios-core/cli/commands/migrate/validate.js +452 -0
  23. package/.aios-core/cli/commands/qa/index.js +56 -0
  24. package/.aios-core/cli/commands/qa/run.js +163 -0
  25. package/.aios-core/cli/commands/qa/status.js +195 -0
  26. package/.aios-core/cli/commands/workers/formatters/info-formatter.js +274 -0
  27. package/.aios-core/cli/commands/workers/formatters/list-table.js +265 -0
  28. package/.aios-core/cli/commands/workers/formatters/list-tree.js +159 -0
  29. package/.aios-core/cli/commands/workers/index.js +56 -0
  30. package/.aios-core/cli/commands/workers/info.js +194 -0
  31. package/.aios-core/cli/commands/workers/list.js +214 -0
  32. package/.aios-core/cli/commands/workers/search-filters.js +185 -0
  33. package/.aios-core/cli/commands/workers/search-keyword.js +310 -0
  34. package/.aios-core/cli/commands/workers/search-semantic.js +293 -0
  35. package/.aios-core/cli/commands/workers/search.js +154 -0
  36. package/.aios-core/cli/commands/workers/utils/pagination.js +102 -0
  37. package/.aios-core/cli/index.js +128 -0
  38. package/.aios-core/cli/utils/output-formatter-cli.js +232 -0
  39. package/.aios-core/cli/utils/score-calculator.js +221 -0
  40. package/.aios-core/core/README.md +229 -0
  41. package/.aios-core/core/config/config-cache.js +233 -0
  42. package/.aios-core/core/config/config-loader.js +277 -0
  43. package/.aios-core/core/data/agent-config-requirements.yaml +368 -0
  44. package/.aios-core/core/data/aios-kb.md +924 -0
  45. package/.aios-core/core/data/workflow-patterns.yaml +267 -0
  46. package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
  47. package/.aios-core/core/docs/component-creation-guide.md +458 -0
  48. package/.aios-core/core/docs/session-update-pattern.md +307 -0
  49. package/.aios-core/core/docs/template-syntax.md +267 -0
  50. package/.aios-core/core/docs/troubleshooting-guide.md +625 -0
  51. package/.aios-core/core/elicitation/agent-elicitation.js +272 -0
  52. package/.aios-core/core/elicitation/elicitation-engine.js +479 -0
  53. package/.aios-core/core/elicitation/session-manager.js +320 -0
  54. package/.aios-core/core/elicitation/task-elicitation.js +281 -0
  55. package/.aios-core/core/elicitation/workflow-elicitation.js +315 -0
  56. package/.aios-core/core/index.esm.js +42 -0
  57. package/.aios-core/core/index.js +76 -0
  58. package/.aios-core/core/manifest/manifest-generator.js +386 -0
  59. package/.aios-core/core/manifest/manifest-validator.js +429 -0
  60. package/.aios-core/core/mcp/config-migrator.js +340 -0
  61. package/.aios-core/core/mcp/global-config-manager.js +369 -0
  62. package/.aios-core/core/mcp/index.js +34 -0
  63. package/.aios-core/core/mcp/os-detector.js +188 -0
  64. package/.aios-core/core/mcp/symlink-manager.js +413 -0
  65. package/.aios-core/core/migration/migration-config.yaml +83 -0
  66. package/.aios-core/core/migration/module-mapping.yaml +89 -0
  67. package/.aios-core/core/quality-gates/base-layer.js +134 -0
  68. package/.aios-core/core/quality-gates/checklist-generator.js +329 -0
  69. package/.aios-core/core/quality-gates/focus-area-recommender.js +359 -0
  70. package/.aios-core/core/quality-gates/human-review-orchestrator.js +529 -0
  71. package/.aios-core/core/quality-gates/layer1-precommit.js +336 -0
  72. package/.aios-core/core/quality-gates/layer2-pr-automation.js +324 -0
  73. package/.aios-core/core/quality-gates/layer3-human-review.js +348 -0
  74. package/.aios-core/core/quality-gates/notification-manager.js +550 -0
  75. package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -0
  76. package/.aios-core/core/quality-gates/quality-gate-manager.js +601 -0
  77. package/.aios-core/core/registry/README.md +179 -0
  78. package/.aios-core/core/registry/build-registry.js +452 -0
  79. package/.aios-core/core/registry/registry-loader.js +330 -0
  80. package/.aios-core/core/registry/registry-schema.json +166 -0
  81. package/.aios-core/core/registry/service-registry.json +6586 -0
  82. package/.aios-core/core/registry/validate-registry.js +340 -0
  83. package/.aios-core/core/session/context-detector.js +229 -0
  84. package/.aios-core/core/session/context-loader.js +288 -0
  85. package/.aios-core/core/utils/output-formatter.js +298 -0
  86. package/.aios-core/core/utils/security-utils.js +333 -0
  87. package/.aios-core/core/utils/yaml-validator.js +419 -0
  88. package/.aios-core/core-config.yaml +382 -0
  89. package/.aios-core/data/agent-config-requirements.yaml +368 -0
  90. package/.aios-core/data/aios-kb.md +924 -0
  91. package/.aios-core/data/technical-preferences.md +4 -0
  92. package/.aios-core/data/workflow-patterns.yaml +267 -0
  93. package/.aios-core/development/README.md +142 -0
  94. package/.aios-core/development/agent-teams/team-all.yaml +15 -0
  95. package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -0
  96. package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -0
  97. package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -0
  98. package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -0
  99. package/.aios-core/development/agents/aios-master.md +339 -0
  100. package/.aios-core/development/agents/analyst.md +195 -0
  101. package/.aios-core/development/agents/architect.md +359 -0
  102. package/.aios-core/development/agents/data-engineer.md +468 -0
  103. package/.aios-core/development/agents/dev.md +390 -0
  104. package/.aios-core/development/agents/devops.md +398 -0
  105. package/.aios-core/development/agents/pm.md +198 -0
  106. package/.aios-core/development/agents/po.md +256 -0
  107. package/.aios-core/development/agents/qa.md +312 -0
  108. package/.aios-core/development/agents/sm.md +220 -0
  109. package/.aios-core/development/agents/ux-design-expert.md +451 -0
  110. package/.aios-core/development/scripts/agent-assignment-resolver.js +231 -0
  111. package/.aios-core/development/scripts/agent-config-loader.js +624 -0
  112. package/.aios-core/development/scripts/agent-exit-hooks.js +96 -0
  113. package/.aios-core/development/scripts/apply-inline-greeting-all-agents.js +146 -0
  114. package/.aios-core/development/scripts/audit-agent-config.js +380 -0
  115. package/.aios-core/development/scripts/backlog-manager.js +404 -0
  116. package/.aios-core/development/scripts/batch-update-agents-session-context.js +95 -0
  117. package/.aios-core/development/scripts/decision-context.js +228 -0
  118. package/.aios-core/development/scripts/decision-log-generator.js +293 -0
  119. package/.aios-core/development/scripts/decision-log-indexer.js +284 -0
  120. package/.aios-core/development/scripts/decision-recorder.js +168 -0
  121. package/.aios-core/development/scripts/dev-context-loader.js +297 -0
  122. package/.aios-core/development/scripts/generate-greeting.js +160 -0
  123. package/.aios-core/development/scripts/greeting-builder.js +866 -0
  124. package/.aios-core/development/scripts/greeting-config-cli.js +85 -0
  125. package/.aios-core/development/scripts/greeting-preference-manager.js +145 -0
  126. package/.aios-core/development/scripts/migrate-task-to-v2.js +377 -0
  127. package/.aios-core/development/scripts/story-index-generator.js +337 -0
  128. package/.aios-core/development/scripts/story-manager.js +375 -0
  129. package/.aios-core/development/scripts/story-update-hook.js +259 -0
  130. package/.aios-core/development/scripts/task-identifier-resolver.js +145 -0
  131. package/.aios-core/development/scripts/test-greeting-system.js +142 -0
  132. package/.aios-core/development/scripts/validate-task-v2.js +319 -0
  133. package/.aios-core/development/scripts/workflow-navigator.js +214 -0
  134. package/.aios-core/development/tasks/add-mcp.md +319 -0
  135. package/.aios-core/development/tasks/advanced-elicitation.md +319 -0
  136. package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +342 -0
  137. package/.aios-core/development/tasks/analyze-framework.md +697 -0
  138. package/.aios-core/development/tasks/analyze-performance.md +637 -0
  139. package/.aios-core/development/tasks/apply-qa-fixes.md +340 -0
  140. package/.aios-core/development/tasks/architect-analyze-impact.md +827 -0
  141. package/.aios-core/development/tasks/audit-codebase.md +429 -0
  142. package/.aios-core/development/tasks/audit-tailwind-config.md +270 -0
  143. package/.aios-core/development/tasks/audit-utilities.md +358 -0
  144. package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -0
  145. package/.aios-core/development/tasks/brownfield-create-epic.md +486 -0
  146. package/.aios-core/development/tasks/brownfield-create-story.md +357 -0
  147. package/.aios-core/development/tasks/build-component.md +478 -0
  148. package/.aios-core/development/tasks/calculate-roi.md +455 -0
  149. package/.aios-core/development/tasks/ci-cd-configuration.md +764 -0
  150. package/.aios-core/development/tasks/cleanup-utilities.md +670 -0
  151. package/.aios-core/development/tasks/collaborative-edit.md +1109 -0
  152. package/.aios-core/development/tasks/compose-molecule.md +284 -0
  153. package/.aios-core/development/tasks/consolidate-patterns.md +414 -0
  154. package/.aios-core/development/tasks/correct-course.md +280 -0
  155. package/.aios-core/development/tasks/create-agent.md +322 -0
  156. package/.aios-core/development/tasks/create-brownfield-story.md +727 -0
  157. package/.aios-core/development/tasks/create-deep-research-prompt.md +499 -0
  158. package/.aios-core/development/tasks/create-doc.md +316 -0
  159. package/.aios-core/development/tasks/create-next-story.md +774 -0
  160. package/.aios-core/development/tasks/create-suite.md +284 -0
  161. package/.aios-core/development/tasks/create-task.md +372 -0
  162. package/.aios-core/development/tasks/create-workflow.md +371 -0
  163. package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -0
  164. package/.aios-core/development/tasks/db-apply-migration.md +381 -0
  165. package/.aios-core/development/tasks/db-bootstrap.md +642 -0
  166. package/.aios-core/development/tasks/db-domain-modeling.md +693 -0
  167. package/.aios-core/development/tasks/db-dry-run.md +293 -0
  168. package/.aios-core/development/tasks/db-env-check.md +260 -0
  169. package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -0
  170. package/.aios-core/development/tasks/db-explain.md +631 -0
  171. package/.aios-core/development/tasks/db-impersonate.md +495 -0
  172. package/.aios-core/development/tasks/db-load-csv.md +593 -0
  173. package/.aios-core/development/tasks/db-policy-apply.md +653 -0
  174. package/.aios-core/development/tasks/db-rls-audit.md +411 -0
  175. package/.aios-core/development/tasks/db-rollback.md +739 -0
  176. package/.aios-core/development/tasks/db-run-sql.md +613 -0
  177. package/.aios-core/development/tasks/db-schema-audit.md +1011 -0
  178. package/.aios-core/development/tasks/db-seed.md +390 -0
  179. package/.aios-core/development/tasks/db-smoke-test.md +351 -0
  180. package/.aios-core/development/tasks/db-snapshot.md +569 -0
  181. package/.aios-core/development/tasks/db-supabase-setup.md +712 -0
  182. package/.aios-core/development/tasks/db-verify-order.md +515 -0
  183. package/.aios-core/development/tasks/deprecate-component.md +957 -0
  184. package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -0
  185. package/.aios-core/development/tasks/dev-backlog-debt.md +469 -0
  186. package/.aios-core/development/tasks/dev-develop-story.md +846 -0
  187. package/.aios-core/development/tasks/dev-improve-code-quality.md +873 -0
  188. package/.aios-core/development/tasks/dev-optimize-performance.md +1034 -0
  189. package/.aios-core/development/tasks/dev-suggest-refactoring.md +871 -0
  190. package/.aios-core/development/tasks/dev-validate-next-story.md +349 -0
  191. package/.aios-core/development/tasks/document-project.md +553 -0
  192. package/.aios-core/development/tasks/environment-bootstrap.md +1311 -0
  193. package/.aios-core/development/tasks/execute-checklist.md +301 -0
  194. package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -0
  195. package/.aios-core/development/tasks/extend-pattern.md +269 -0
  196. package/.aios-core/development/tasks/extract-tokens.md +467 -0
  197. package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -0
  198. package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +261 -0
  199. package/.aios-core/development/tasks/generate-documentation.md +284 -0
  200. package/.aios-core/development/tasks/generate-migration-strategy.md +522 -0
  201. package/.aios-core/development/tasks/generate-shock-report.md +501 -0
  202. package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -0
  203. package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -0
  204. package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -0
  205. package/.aios-core/development/tasks/github-devops-version-management.md +483 -0
  206. package/.aios-core/development/tasks/improve-self.md +823 -0
  207. package/.aios-core/development/tasks/index-docs.md +388 -0
  208. package/.aios-core/development/tasks/init-project-status.md +506 -0
  209. package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -0
  210. package/.aios-core/development/tasks/kb-mode-interaction.md +284 -0
  211. package/.aios-core/development/tasks/learn-patterns.md +901 -0
  212. package/.aios-core/development/tasks/mcp-workflow.md +437 -0
  213. package/.aios-core/development/tasks/modify-agent.md +382 -0
  214. package/.aios-core/development/tasks/modify-task.md +425 -0
  215. package/.aios-core/development/tasks/modify-workflow.md +466 -0
  216. package/.aios-core/development/tasks/po-backlog-add.md +370 -0
  217. package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -0
  218. package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -0
  219. package/.aios-core/development/tasks/po-pull-story.md +316 -0
  220. package/.aios-core/development/tasks/po-stories-index.md +351 -0
  221. package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -0
  222. package/.aios-core/development/tasks/po-sync-story.md +303 -0
  223. package/.aios-core/development/tasks/pr-automation.md +701 -0
  224. package/.aios-core/development/tasks/propose-modification.md +843 -0
  225. package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -0
  226. package/.aios-core/development/tasks/qa-gate.md +374 -0
  227. package/.aios-core/development/tasks/qa-generate-tests.md +1175 -0
  228. package/.aios-core/development/tasks/qa-nfr-assess.md +558 -0
  229. package/.aios-core/development/tasks/qa-review-proposal.md +1158 -0
  230. package/.aios-core/development/tasks/qa-review-story.md +683 -0
  231. package/.aios-core/development/tasks/qa-risk-profile.md +567 -0
  232. package/.aios-core/development/tasks/qa-run-tests.md +277 -0
  233. package/.aios-core/development/tasks/qa-test-design.md +388 -0
  234. package/.aios-core/development/tasks/qa-trace-requirements.md +477 -0
  235. package/.aios-core/development/tasks/release-management.md +723 -0
  236. package/.aios-core/development/tasks/security-audit.md +554 -0
  237. package/.aios-core/development/tasks/security-scan.md +790 -0
  238. package/.aios-core/development/tasks/setup-database.md +741 -0
  239. package/.aios-core/development/tasks/setup-design-system.md +462 -0
  240. package/.aios-core/development/tasks/setup-github.md +874 -0
  241. package/.aios-core/development/tasks/setup-llm-routing.md +229 -0
  242. package/.aios-core/development/tasks/setup-mcp-docker.md +584 -0
  243. package/.aios-core/development/tasks/shard-doc.md +538 -0
  244. package/.aios-core/development/tasks/sm-create-next-story.md +480 -0
  245. package/.aios-core/development/tasks/sync-documentation.md +865 -0
  246. package/.aios-core/development/tasks/tailwind-upgrade.md +294 -0
  247. package/.aios-core/development/tasks/test-as-user.md +621 -0
  248. package/.aios-core/development/tasks/test-validation-task.md +171 -0
  249. package/.aios-core/development/tasks/undo-last.md +347 -0
  250. package/.aios-core/development/tasks/update-manifest.md +410 -0
  251. package/.aios-core/development/tasks/ux-create-wireframe.md +617 -0
  252. package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -0
  253. package/.aios-core/development/tasks/ux-user-research.md +559 -0
  254. package/.aios-core/development/tasks/validate-next-story.md +423 -0
  255. package/.aios-core/development/tasks/validate-structure.md +243 -0
  256. package/.aios-core/development/workflows/README.md +84 -0
  257. package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -0
  258. package/.aios-core/development/workflows/brownfield-service.yaml +187 -0
  259. package/.aios-core/development/workflows/brownfield-ui.yaml +197 -0
  260. package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -0
  261. package/.aios-core/development/workflows/greenfield-service.yaml +206 -0
  262. package/.aios-core/development/workflows/greenfield-ui.yaml +235 -0
  263. package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
  264. package/.aios-core/docs/component-creation-guide.md +458 -0
  265. package/.aios-core/docs/session-update-pattern.md +307 -0
  266. package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -0
  267. package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -0
  268. package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -0
  269. package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
  270. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -0
  271. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
  272. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
  273. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -0
  274. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
  275. package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -0
  276. package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -0
  277. package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -0
  278. package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -0
  279. package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -0
  280. package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -0
  281. package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
  282. package/.aios-core/docs/template-syntax.md +267 -0
  283. package/.aios-core/docs/troubleshooting-guide.md +625 -0
  284. package/.aios-core/elicitation/agent-elicitation.js +272 -0
  285. package/.aios-core/elicitation/task-elicitation.js +281 -0
  286. package/.aios-core/elicitation/workflow-elicitation.js +315 -0
  287. package/.aios-core/index.d.ts +8 -0
  288. package/.aios-core/index.esm.js +16 -0
  289. package/.aios-core/index.js +16 -0
  290. package/.aios-core/infrastructure/README.md +126 -0
  291. package/.aios-core/infrastructure/index.js +199 -0
  292. package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -0
  293. package/.aios-core/infrastructure/integrations/pm-adapters/clickup-adapter.js +345 -0
  294. package/.aios-core/infrastructure/integrations/pm-adapters/github-adapter.js +392 -0
  295. package/.aios-core/infrastructure/integrations/pm-adapters/jira-adapter.js +448 -0
  296. package/.aios-core/infrastructure/integrations/pm-adapters/local-adapter.js +175 -0
  297. package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +122 -0
  298. package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +89 -0
  299. package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +780 -0
  300. package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +950 -0
  301. package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +425 -0
  302. package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +132 -0
  303. package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +381 -0
  304. package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +203 -0
  305. package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +24 -0
  306. package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +51 -0
  307. package/.aios-core/infrastructure/scripts/aios-validator.js +294 -0
  308. package/.aios-core/infrastructure/scripts/approval-workflow.js +643 -0
  309. package/.aios-core/infrastructure/scripts/atomic-layer-classifier.js +308 -0
  310. package/.aios-core/infrastructure/scripts/backup-manager.js +607 -0
  311. package/.aios-core/infrastructure/scripts/batch-creator.js +608 -0
  312. package/.aios-core/infrastructure/scripts/branch-manager.js +391 -0
  313. package/.aios-core/infrastructure/scripts/capability-analyzer.js +535 -0
  314. package/.aios-core/infrastructure/scripts/clickup-helpers.js +226 -0
  315. package/.aios-core/infrastructure/scripts/code-quality-improver.js +1312 -0
  316. package/.aios-core/infrastructure/scripts/commit-message-generator.js +850 -0
  317. package/.aios-core/infrastructure/scripts/component-generator.js +738 -0
  318. package/.aios-core/infrastructure/scripts/component-metadata.js +627 -0
  319. package/.aios-core/infrastructure/scripts/component-search.js +277 -0
  320. package/.aios-core/infrastructure/scripts/config-cache.js +322 -0
  321. package/.aios-core/infrastructure/scripts/config-loader.js +349 -0
  322. package/.aios-core/infrastructure/scripts/conflict-resolver.js +675 -0
  323. package/.aios-core/infrastructure/scripts/coverage-analyzer.js +882 -0
  324. package/.aios-core/infrastructure/scripts/dependency-analyzer.js +638 -0
  325. package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +703 -0
  326. package/.aios-core/infrastructure/scripts/diff-generator.js +129 -0
  327. package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +501 -0
  328. package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +329 -0
  329. package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +282 -0
  330. package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
  331. package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +313 -0
  332. package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
  333. package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +358 -0
  334. package/.aios-core/infrastructure/scripts/documentation-synchronizer.js +1432 -0
  335. package/.aios-core/infrastructure/scripts/framework-analyzer.js +746 -0
  336. package/.aios-core/infrastructure/scripts/git-config-detector.js +293 -0
  337. package/.aios-core/infrastructure/scripts/git-wrapper.js +443 -0
  338. package/.aios-core/infrastructure/scripts/improvement-engine.js +758 -0
  339. package/.aios-core/infrastructure/scripts/improvement-validator.js +710 -0
  340. package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +267 -0
  341. package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.cmd +80 -0
  342. package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.sh +62 -0
  343. package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.cmd +26 -0
  344. package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.sh +18 -0
  345. package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +970 -0
  346. package/.aios-core/infrastructure/scripts/modification-validator.js +555 -0
  347. package/.aios-core/infrastructure/scripts/output-formatter.js +297 -0
  348. package/.aios-core/infrastructure/scripts/performance-analyzer.js +758 -0
  349. package/.aios-core/infrastructure/scripts/performance-and-error-resolver.js +258 -0
  350. package/.aios-core/infrastructure/scripts/performance-optimizer.js +1902 -0
  351. package/.aios-core/infrastructure/scripts/performance-tracker.js +452 -0
  352. package/.aios-core/infrastructure/scripts/pm-adapter-factory.js +181 -0
  353. package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -0
  354. package/.aios-core/infrastructure/scripts/project-status-loader.js +445 -0
  355. package/.aios-core/infrastructure/scripts/refactoring-suggester.js +1139 -0
  356. package/.aios-core/infrastructure/scripts/repository-detector.js +64 -0
  357. package/.aios-core/infrastructure/scripts/sandbox-tester.js +618 -0
  358. package/.aios-core/infrastructure/scripts/security-checker.js +359 -0
  359. package/.aios-core/infrastructure/scripts/source-tree-guardian/index.js +375 -0
  360. package/.aios-core/infrastructure/scripts/source-tree-guardian/manifest-generator.js +410 -0
  361. package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/naming-rules.yaml +285 -0
  362. package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/placement-rules.yaml +262 -0
  363. package/.aios-core/infrastructure/scripts/source-tree-guardian/validator.js +468 -0
  364. package/.aios-core/infrastructure/scripts/spot-check-validator.js +149 -0
  365. package/.aios-core/infrastructure/scripts/status-mapper.js +115 -0
  366. package/.aios-core/infrastructure/scripts/template-engine.js +240 -0
  367. package/.aios-core/infrastructure/scripts/template-validator.js +279 -0
  368. package/.aios-core/infrastructure/scripts/test-generator.js +844 -0
  369. package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1081 -0
  370. package/.aios-core/infrastructure/scripts/test-utilities-fast.js +126 -0
  371. package/.aios-core/infrastructure/scripts/test-utilities.js +200 -0
  372. package/.aios-core/infrastructure/scripts/tool-resolver.js +360 -0
  373. package/.aios-core/infrastructure/scripts/transaction-manager.js +590 -0
  374. package/.aios-core/infrastructure/scripts/usage-analytics.js +634 -0
  375. package/.aios-core/infrastructure/scripts/validate-output-pattern.js +213 -0
  376. package/.aios-core/infrastructure/scripts/visual-impact-generator.js +1056 -0
  377. package/.aios-core/infrastructure/scripts/yaml-validator.js +397 -0
  378. package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -0
  379. package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +182 -0
  380. package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +127 -0
  381. package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -0
  382. package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -0
  383. package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -0
  384. package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -0
  385. package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -0
  386. package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -0
  387. package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -0
  388. package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -0
  389. package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +346 -0
  390. package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +177 -0
  391. package/.aios-core/infrastructure/templates/project-docs/tech-stack-tmpl.md +267 -0
  392. package/.aios-core/infrastructure/tests/project-status-loader.test.js +394 -0
  393. package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -0
  394. package/.aios-core/infrastructure/tests/utilities-audit-results.json +501 -0
  395. package/.aios-core/infrastructure/tests/validate-module.js +97 -0
  396. package/.aios-core/infrastructure/tools/README.md +222 -0
  397. package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -0
  398. package/.aios-core/infrastructure/tools/cli/llm-routing.yaml +126 -0
  399. package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -0
  400. package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -0
  401. package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -0
  402. package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -0
  403. package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -0
  404. package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -0
  405. package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -0
  406. package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -0
  407. package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -0
  408. package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -0
  409. package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -0
  410. package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -0
  411. package/.aios-core/install-manifest.yaml +347 -0
  412. package/.aios-core/manifests/agents.csv +1 -0
  413. package/.aios-core/manifests/schema/manifest-schema.json +190 -0
  414. package/.aios-core/manifests/tasks.csv +121 -0
  415. package/.aios-core/manifests/workers.csv +204 -0
  416. package/.aios-core/package.json +103 -0
  417. package/.aios-core/product/README.md +56 -0
  418. package/.aios-core/product/checklists/architect-checklist.md +444 -0
  419. package/.aios-core/product/checklists/change-checklist.md +183 -0
  420. package/.aios-core/product/checklists/database-design-checklist.md +119 -0
  421. package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -0
  422. package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -0
  423. package/.aios-core/product/checklists/pm-checklist.md +376 -0
  424. package/.aios-core/product/checklists/po-master-checklist.md +442 -0
  425. package/.aios-core/product/checklists/pre-push-checklist.md +108 -0
  426. package/.aios-core/product/checklists/release-checklist.md +122 -0
  427. package/.aios-core/product/checklists/story-dod-checklist.md +102 -0
  428. package/.aios-core/product/checklists/story-draft-checklist.md +216 -0
  429. package/.aios-core/product/data/brainstorming-techniques.md +37 -0
  430. package/.aios-core/product/data/elicitation-methods.md +135 -0
  431. package/.aios-core/product/data/mode-selection-best-practices.md +471 -0
  432. package/.aios-core/product/data/test-levels-framework.md +149 -0
  433. package/.aios-core/product/data/test-priorities-matrix.md +175 -0
  434. package/.aios-core/product/templates/1mcp-config.yaml +225 -0
  435. package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -0
  436. package/.aios-core/product/templates/activation-instructions-template.md +258 -0
  437. package/.aios-core/product/templates/adr.hbs +125 -0
  438. package/.aios-core/product/templates/agent-template.yaml +121 -0
  439. package/.aios-core/product/templates/architecture-tmpl.yaml +651 -0
  440. package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +156 -0
  441. package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +476 -0
  442. package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +280 -0
  443. package/.aios-core/product/templates/changelog-template.md +134 -0
  444. package/.aios-core/product/templates/command-rationalization-matrix.md +152 -0
  445. package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +293 -0
  446. package/.aios-core/product/templates/component-react-tmpl.tsx +98 -0
  447. package/.aios-core/product/templates/dbdr.hbs +241 -0
  448. package/.aios-core/product/templates/design-story-tmpl.yaml +587 -0
  449. package/.aios-core/product/templates/ds-artifact-analysis.md +70 -0
  450. package/.aios-core/product/templates/engine/elicitation.js +298 -0
  451. package/.aios-core/product/templates/engine/index.js +308 -0
  452. package/.aios-core/product/templates/engine/loader.js +231 -0
  453. package/.aios-core/product/templates/engine/renderer.js +343 -0
  454. package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -0
  455. package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -0
  456. package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -0
  457. package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -0
  458. package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -0
  459. package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -0
  460. package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -0
  461. package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -0
  462. package/.aios-core/product/templates/engine/validator.js +294 -0
  463. package/.aios-core/product/templates/epic.hbs +212 -0
  464. package/.aios-core/product/templates/eslintrc-security.json +32 -0
  465. package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +206 -0
  466. package/.aios-core/product/templates/front-end-spec-tmpl.yaml +349 -0
  467. package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +805 -0
  468. package/.aios-core/product/templates/github-actions-cd.yml +212 -0
  469. package/.aios-core/product/templates/github-actions-ci.yml +172 -0
  470. package/.aios-core/product/templates/github-pr-template.md +67 -0
  471. package/.aios-core/product/templates/gordon-mcp.yaml +140 -0
  472. package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -0
  473. package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -0
  474. package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -0
  475. package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -0
  476. package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -0
  477. package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -0
  478. package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -0
  479. package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -0
  480. package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -0
  481. package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -0
  482. package/.aios-core/product/templates/market-research-tmpl.yaml +252 -0
  483. package/.aios-core/product/templates/mcp-workflow.js +271 -0
  484. package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -0
  485. package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -0
  486. package/.aios-core/product/templates/personalized-agent-template.md +258 -0
  487. package/.aios-core/product/templates/personalized-checklist-template.md +340 -0
  488. package/.aios-core/product/templates/personalized-task-template-v2.md +905 -0
  489. package/.aios-core/product/templates/personalized-task-template.md +344 -0
  490. package/.aios-core/product/templates/personalized-template-file.yaml +322 -0
  491. package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -0
  492. package/.aios-core/product/templates/pmdr.hbs +186 -0
  493. package/.aios-core/product/templates/prd-tmpl.yaml +202 -0
  494. package/.aios-core/product/templates/prd-v2.0.hbs +216 -0
  495. package/.aios-core/product/templates/prd.hbs +201 -0
  496. package/.aios-core/product/templates/project-brief-tmpl.yaml +221 -0
  497. package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -0
  498. package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -0
  499. package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -0
  500. package/.aios-core/product/templates/shock-report-tmpl.html +502 -0
  501. package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -0
  502. package/.aios-core/product/templates/story-tmpl.yaml +332 -0
  503. package/.aios-core/product/templates/story.hbs +263 -0
  504. package/.aios-core/product/templates/task-execution-report.md +495 -0
  505. package/.aios-core/product/templates/task-template.md +123 -0
  506. package/.aios-core/product/templates/task.hbs +170 -0
  507. package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -0
  508. package/.aios-core/product/templates/tmpl-migration-script.sql +91 -0
  509. package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -0
  510. package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -0
  511. package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -0
  512. package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -0
  513. package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -0
  514. package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -0
  515. package/.aios-core/product/templates/tmpl-seed-data.sql +140 -0
  516. package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -0
  517. package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -0
  518. package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -0
  519. package/.aios-core/product/templates/tmpl-trigger.sql +152 -0
  520. package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -0
  521. package/.aios-core/product/templates/tmpl-view.sql +177 -0
  522. package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -0
  523. package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -0
  524. package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -0
  525. package/.aios-core/product/templates/workflow-template.yaml +134 -0
  526. package/.aios-core/quality/metrics-collector.js +572 -0
  527. package/.aios-core/quality/metrics-hook.js +260 -0
  528. package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -0
  529. package/.aios-core/quality/seed-metrics.js +336 -0
  530. package/.aios-core/scripts/README.md +354 -0
  531. package/.aios-core/scripts/aios-doc-template.md +325 -0
  532. package/.aios-core/scripts/batch-migrate-phase1.ps1 +36 -0
  533. package/.aios-core/scripts/batch-migrate-phase2.ps1 +88 -0
  534. package/.aios-core/scripts/batch-migrate-phase3.ps1 +45 -0
  535. package/.aios-core/scripts/command-execution-hook.js +201 -0
  536. package/.aios-core/scripts/context-detector.js +226 -0
  537. package/.aios-core/scripts/elicitation-engine.js +385 -0
  538. package/.aios-core/scripts/elicitation-session-manager.js +300 -0
  539. package/.aios-core/scripts/migrate-framework-docs.sh +300 -0
  540. package/.aios-core/scripts/session-context-loader.js +286 -0
  541. package/.aios-core/scripts/test-template-system.js +941 -0
  542. package/.aios-core/scripts/validate-phase1.ps1 +35 -0
  543. package/.aios-core/scripts/workflow-management.md +69 -0
  544. package/.aios-core/tasks/find-component.md.legacy +391 -0
  545. package/.aios-core/tasks/generate-commit-message.md.legacy +426 -0
  546. package/.aios-core/tasks/generate-migration.md.legacy +382 -0
  547. package/.aios-core/tasks/rollback-modification.md.legacy +307 -0
  548. package/.aios-core/tasks/update-tests.md.legacy +283 -0
  549. package/.aios-core/user-guide.md +1413 -0
  550. package/.aios-core/working-in-the-brownfield.md +361 -0
  551. package/.claude/CLAUDE.md +221 -0
  552. package/LICENSE +48 -0
  553. package/README.md +703 -0
  554. package/bin/aios-init-old.js +532 -0
  555. package/bin/aios-init-v4.js +390 -0
  556. package/bin/aios-init.backup-v1.1.4.js +352 -0
  557. package/bin/aios-init.js +736 -0
  558. package/bin/aios-minimal.js +26 -0
  559. package/bin/aios.js +279 -0
  560. package/bin/migrate-pm-config.js +219 -0
  561. package/bin/modules/env-config.js +436 -0
  562. package/bin/modules/mcp-installer.js +383 -0
  563. package/bin/utils/install-errors.js +339 -0
  564. package/bin/utils/install-transaction.js +445 -0
  565. package/index.d.ts +19 -0
  566. package/index.esm.js +21 -0
  567. package/index.js +94 -0
  568. package/package.json +161 -0
  569. package/packages/installer/package.json +39 -0
  570. package/packages/installer/src/config/configure-environment.js +312 -0
  571. package/packages/installer/src/config/templates/core-config-template.js +183 -0
  572. package/packages/installer/src/config/templates/env-template.js +127 -0
  573. package/packages/installer/src/config/validation/config-validator.js +243 -0
  574. package/packages/installer/src/detection/detect-project-type.js +81 -0
  575. package/packages/installer/src/wizard/wizard.js +244 -0
  576. package/packages/installer/tests/integration/environment-configuration.test.js +328 -0
  577. package/packages/installer/tests/integration/wizard-detection.test.js +349 -0
  578. package/packages/installer/tests/unit/config-validator.test.js +315 -0
  579. package/packages/installer/tests/unit/detection/detect-project-type.test.js +401 -0
  580. package/packages/installer/tests/unit/env-template.test.js +185 -0
  581. package/src/config/ide-configs.js +189 -0
  582. package/src/installer/aios-core-installer.js +319 -0
  583. package/src/installer/dependency-installer.js +335 -0
  584. package/src/utils/aios-colors.js +234 -0
  585. package/src/wizard/feedback.js +218 -0
  586. package/src/wizard/ide-config-generator.js +488 -0
  587. package/src/wizard/ide-selector.js +84 -0
  588. package/src/wizard/index.js +589 -0
  589. package/src/wizard/questions.js +249 -0
  590. package/src/wizard/validation/index.js +120 -0
  591. package/src/wizard/validation/report-generator.js +269 -0
  592. package/src/wizard/validation/troubleshooting-system.js +346 -0
  593. package/src/wizard/validation/validators/config-validator.js +362 -0
  594. package/src/wizard/validation/validators/dependency-validator.js +333 -0
  595. package/src/wizard/validation/validators/file-structure-validator.js +181 -0
  596. package/src/wizard/validation/validators/mcp-health-checker.js +310 -0
  597. package/src/wizard/validators.js +274 -0
  598. package/templates/squad/LICENSE +21 -0
  599. package/templates/squad/README.md +37 -0
  600. package/templates/squad/agents/example-agent.yaml +36 -0
  601. package/templates/squad/package.json +19 -0
  602. package/templates/squad/squad.yaml +25 -0
  603. package/templates/squad/tasks/example-task.yaml +46 -0
  604. package/templates/squad/templates/example-template.md +24 -0
  605. package/templates/squad/tests/example-agent.test.js +53 -0
  606. package/templates/squad/workflows/example-workflow.yaml +54 -0
  607. package/tools/package-builder.js +35 -0
@@ -0,0 +1,624 @@
1
+ /**
2
+ * Agent Config Loader
3
+ *
4
+ * Loads agent-specific configuration with lazy loading and performance tracking.
5
+ * Part of Story 6.1.2.6: Framework Configuration System
6
+ *
7
+ * @module agent-config-loader
8
+ */
9
+
10
+ const fs = require('fs').promises;
11
+ const path = require('path');
12
+ const yaml = require('yaml');
13
+ const { globalConfigCache } = require('../../core/config/config-cache');
14
+ const { trackConfigLoad } = require('../../infrastructure/scripts/performance-tracker');
15
+
16
+ /**
17
+ * Agent configuration requirements cache
18
+ */
19
+ let agentRequirements = null;
20
+
21
+ /**
22
+ * Loads agent configuration requirements
23
+ *
24
+ * @returns {Promise<Object>} Agent requirements configuration
25
+ */
26
+ async function loadAgentRequirements() {
27
+ if (agentRequirements) {
28
+ return agentRequirements;
29
+ }
30
+
31
+ const requirementsPath = path.join(process.cwd(), '.aios-core', 'data', 'agent-config-requirements.yaml');
32
+
33
+ try {
34
+ const content = await fs.readFile(requirementsPath, 'utf8');
35
+ agentRequirements = yaml.parse(content);
36
+ return agentRequirements;
37
+ } catch (error) {
38
+ console.warn(`⚠️ Could not load agent requirements: ${error.message}`);
39
+ console.warn(' Falling back to default requirements');
40
+ return { agents: {} };
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Agent Config Loader Class
46
+ *
47
+ * Loads agent-specific configuration with lazy loading
48
+ */
49
+ class AgentConfigLoader {
50
+ constructor(agentId) {
51
+ this.agentId = agentId;
52
+ this.requirements = null;
53
+ this.cache = globalConfigCache;
54
+ }
55
+
56
+ /**
57
+ * Load requirements for this agent
58
+ *
59
+ * @returns {Promise<Object>} Agent requirements
60
+ */
61
+ async loadRequirements() {
62
+ if (this.requirements) {
63
+ return this.requirements;
64
+ }
65
+
66
+ const allRequirements = await loadAgentRequirements();
67
+ this.requirements = allRequirements.agents?.[this.agentId] || allRequirements.agents?.default || this.getDefaultRequirements();
68
+
69
+ return this.requirements;
70
+ }
71
+
72
+ /**
73
+ * Get default requirements if not configured
74
+ *
75
+ * @returns {Object} Default requirements
76
+ */
77
+ getDefaultRequirements() {
78
+ return {
79
+ config_sections: ['dataLocation'],
80
+ files_loaded: [],
81
+ lazy_loading: {},
82
+ performance_target: '<150ms',
83
+ };
84
+ }
85
+
86
+ /**
87
+ * Load configuration for this agent
88
+ *
89
+ * @param {Object} coreConfig - Core configuration object
90
+ * @param {Object} options - Load options
91
+ * @param {boolean} options.skipCache - Skip cache and force reload
92
+ * @param {boolean} options.trackPerformance - Track performance (default: true)
93
+ * @returns {Promise<Object>} Agent-specific configuration
94
+ */
95
+ async load(coreConfig, options = {}) {
96
+ const startTime = Date.now();
97
+ const skipCache = options.skipCache || false;
98
+ const trackPerformance = options.trackPerformance !== false;
99
+
100
+ // Load requirements
101
+ await this.loadRequirements();
102
+
103
+ // Build agent config
104
+ const agentConfig = {};
105
+ const sectionsLoaded = [];
106
+ let totalSize = 0;
107
+ let cacheHit = false;
108
+
109
+ // Load required config sections
110
+ for (const section of this.requirements.config_sections || []) {
111
+ if (coreConfig[section] !== undefined) {
112
+ agentConfig[section] = coreConfig[section];
113
+ sectionsLoaded.push(section);
114
+
115
+ // Estimate size
116
+ const sectionSize = JSON.stringify(coreConfig[section]).length;
117
+ totalSize += sectionSize;
118
+ }
119
+ }
120
+
121
+ // Load required files (with lazy loading logic)
122
+ const filesToLoad = this.getFilesToLoad();
123
+ const fileContents = {};
124
+
125
+ for (const filePath of filesToLoad) {
126
+ const content = await this.loadFile(filePath, skipCache);
127
+ fileContents[filePath] = content;
128
+
129
+ if (content.fromCache) {
130
+ cacheHit = true;
131
+ }
132
+
133
+ totalSize += content.size || 0;
134
+ }
135
+
136
+ // Measure load time
137
+ const loadTime = Date.now() - startTime;
138
+
139
+ // Track performance
140
+ if (trackPerformance) {
141
+ trackConfigLoad({
142
+ agentId: this.agentId,
143
+ loadTime,
144
+ configSize: totalSize,
145
+ cacheHit,
146
+ sectionsLoaded,
147
+ });
148
+
149
+ this.logPerformance(loadTime);
150
+ }
151
+
152
+ return {
153
+ config: agentConfig,
154
+ files: fileContents,
155
+ loadTime,
156
+ configSize: totalSize,
157
+ sectionsLoaded,
158
+ cacheHit,
159
+ };
160
+ }
161
+
162
+ /**
163
+ * Get list of files to load based on lazy loading rules
164
+ *
165
+ * @returns {string[]} Array of file paths to load
166
+ */
167
+ getFilesToLoad() {
168
+ const files = [];
169
+ const filesLoaded = this.requirements.files_loaded || [];
170
+
171
+ for (const fileEntry of filesLoaded) {
172
+ // Parse file entry (can be string or object)
173
+ const fileConfig = typeof fileEntry === 'string'
174
+ ? { path: fileEntry, lazy: false }
175
+ : fileEntry;
176
+
177
+ const { path: filePath, lazy, condition } = fileConfig;
178
+
179
+ // Apply lazy loading rules
180
+ if (lazy && !this.shouldLoadLazy(condition)) {
181
+ continue; // Skip lazy-loaded file
182
+ }
183
+
184
+ files.push(filePath);
185
+ }
186
+
187
+ return files;
188
+ }
189
+
190
+ /**
191
+ * Check if lazy-loaded file should be loaded
192
+ *
193
+ * @param {string} condition - Condition to check
194
+ * @returns {boolean} Whether to load the file
195
+ */
196
+ shouldLoadLazy(condition) {
197
+ // Simple condition evaluation
198
+ // In the future, this could be expanded to support complex conditions
199
+
200
+ if (!condition) {
201
+ return false; // No condition = don't load
202
+ }
203
+
204
+ // Example conditions:
205
+ // - "yolo_mode" - load only in yolo mode
206
+ // - "story_development" - load during story development
207
+ // - "always" - always load (same as lazy: false)
208
+
209
+ // For now, return false (don't load lazy files by default)
210
+ return false;
211
+ }
212
+
213
+ /**
214
+ * Load a file with caching
215
+ *
216
+ * @param {string} filePath - Path to file
217
+ * @param {boolean} skipCache - Skip cache
218
+ * @returns {Promise<Object>} File content and metadata
219
+ */
220
+ async loadFile(filePath, skipCache = false) {
221
+ const cacheKey = `file:${filePath}`;
222
+
223
+ // Check cache first
224
+ if (!skipCache) {
225
+ const cached = this.cache.get(cacheKey);
226
+ if (cached) {
227
+ return {
228
+ content: cached.content,
229
+ size: cached.size,
230
+ fromCache: true,
231
+ };
232
+ }
233
+ }
234
+
235
+ try {
236
+ // Resolve path relative to project root
237
+ const fullPath = path.isAbsolute(filePath)
238
+ ? filePath
239
+ : path.join(process.cwd(), filePath);
240
+
241
+ const content = await fs.readFile(fullPath, 'utf8');
242
+ const size = Buffer.byteLength(content, 'utf8');
243
+
244
+ // Cache the result
245
+ this.cache.set(cacheKey, { content, size });
246
+
247
+ return {
248
+ content,
249
+ size,
250
+ fromCache: false,
251
+ };
252
+ } catch (error) {
253
+ console.warn(`⚠️ Failed to load file ${filePath}: ${error.message}`);
254
+ return {
255
+ content: null,
256
+ size: 0,
257
+ fromCache: false,
258
+ error: error.message,
259
+ };
260
+ }
261
+ }
262
+
263
+ /**
264
+ * Log performance metrics
265
+ *
266
+ * @param {number} loadTime - Load time in milliseconds
267
+ */
268
+ logPerformance(loadTime) {
269
+ const target = this.requirements.performance_target || '<150ms';
270
+ const targetMs = parseInt(target.replace('<', '').replace('ms', ''));
271
+
272
+ if (loadTime > targetMs) {
273
+ console.warn(`⚠️ Agent ${this.agentId} load time exceeded target: ${loadTime}ms > ${targetMs}ms`);
274
+ } else {
275
+ console.log(`✅ Agent ${this.agentId} loaded in ${loadTime}ms (target: ${target})`);
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Preload files for this agent (warm up cache)
281
+ *
282
+ * @param {Object} coreConfig - Core configuration
283
+ * @returns {Promise<void>}
284
+ */
285
+ async preload(coreConfig) {
286
+ console.log(`🔄 Preloading config for @${this.agentId}...`);
287
+
288
+ await this.load(coreConfig, {
289
+ trackPerformance: false,
290
+ });
291
+
292
+ console.log(`✅ Config preloaded for @${this.agentId}`);
293
+ }
294
+
295
+ /**
296
+ * Agent definition cache (5 min TTL)
297
+ * @private
298
+ */
299
+ static agentDefCache = new Map();
300
+
301
+ /**
302
+ * Load complete agent definition from markdown file
303
+ *
304
+ * @param {Object} options - Load options
305
+ * @param {boolean} options.skipCache - Skip cache and force reload
306
+ * @returns {Promise<Object>} Complete agent definition (agent, persona_profile, commands, etc.)
307
+ */
308
+ async loadAgentDefinition(options = {}) {
309
+ const skipCache = options.skipCache || false;
310
+ const cacheKey = this.agentId;
311
+
312
+ // Check cache
313
+ if (!skipCache && AgentConfigLoader.agentDefCache.has(cacheKey)) {
314
+ const cached = AgentConfigLoader.agentDefCache.get(cacheKey);
315
+ if (Date.now() - cached.timestamp < 5 * 60 * 1000) {
316
+ return cached.definition;
317
+ }
318
+ }
319
+
320
+ // Load from file
321
+ const agentPath = path.join(process.cwd(), '.aios-core', 'development', 'agents', `${this.agentId}.md`);
322
+
323
+ try {
324
+ const content = await fs.readFile(agentPath, 'utf8');
325
+
326
+ // Extract YAML block (handle both ```yaml and ```yml)
327
+ const yamlMatch = content.match(/```ya?ml\n([\s\S]*?)\n```/);
328
+ if (!yamlMatch) {
329
+ throw new Error(`No YAML block found in ${this.agentId}.md`);
330
+ }
331
+
332
+ let agentDef;
333
+ try {
334
+ agentDef = yaml.parse(yamlMatch[1]);
335
+ } catch (parseError) {
336
+ // Try normalizing compact command format before parsing
337
+ const normalizedYaml = this._normalizeCompactCommands(yamlMatch[1]);
338
+ try {
339
+ agentDef = yaml.parse(normalizedYaml);
340
+ } catch (secondError) {
341
+ throw new Error(`Failed to parse agent definition YAML for ${this.agentId}: ${parseError.message}`);
342
+ }
343
+ }
344
+
345
+ // Validate structure
346
+ if (!agentDef.agent || !agentDef.agent.id) {
347
+ throw new Error('Invalid agent definition: missing agent.id');
348
+ }
349
+
350
+ // Normalize and validate
351
+ const normalized = this._normalizeAgentDefinition(agentDef);
352
+
353
+ // Cache
354
+ AgentConfigLoader.agentDefCache.set(cacheKey, {
355
+ definition: normalized,
356
+ timestamp: Date.now(),
357
+ });
358
+
359
+ return normalized;
360
+ } catch (error) {
361
+ if (error.code === 'ENOENT') {
362
+ throw new Error(`Agent file not found: ${this.agentId}.md`);
363
+ }
364
+ throw new Error(`Failed to load agent definition for ${this.agentId}: ${error.message}`);
365
+ }
366
+ }
367
+
368
+ /**
369
+ * Normalize compact command format to expanded format
370
+ * Converts: "- help: Description" to "- name: help\n description: Description"
371
+ * @private
372
+ * @param {string} yamlContent - Raw YAML content
373
+ * @returns {string} Normalized YAML content
374
+ */
375
+ _normalizeCompactCommands(yamlContent) {
376
+ const lines = yamlContent.split('\n');
377
+ const normalizedLines = [];
378
+ let inCommandsSection = false;
379
+
380
+ for (let i = 0; i < lines.length; i++) {
381
+ const line = lines[i];
382
+
383
+ // Detect commands section start
384
+ if (line.match(/^\s*commands:\s*$/)) {
385
+ inCommandsSection = true;
386
+ normalizedLines.push(line);
387
+ continue;
388
+ }
389
+
390
+ // Detect end of commands section (next top-level key without indentation)
391
+ if (inCommandsSection && line.match(/^\w+:/) && !line.match(/^\s+/)) {
392
+ inCommandsSection = false;
393
+ normalizedLines.push(line);
394
+ continue;
395
+ }
396
+
397
+ // Process compact command format in commands section
398
+ if (inCommandsSection) {
399
+ // Match: " - command-name {args}: Description with (parentheses)"
400
+ // Pattern: indent + "- " + command (may have {args}) + ": " + description
401
+ const compactMatch = line.match(/^(\s+)- (\w+(?:-\w+)*(?:\s+\{[^}]+\})?):\s*(.+)$/);
402
+ if (compactMatch) {
403
+ const [, indent, command, description] = compactMatch;
404
+ const commandName = command.split(/\s+/)[0];
405
+
406
+ // Escape quotes in description
407
+ const escapedDescription = description.trim().replace(/"/g, '\\"');
408
+
409
+ normalizedLines.push(`${indent}- name: ${commandName}`);
410
+ normalizedLines.push(`${indent} description: "${escapedDescription}"`);
411
+ continue;
412
+ }
413
+ }
414
+
415
+ normalizedLines.push(line);
416
+ }
417
+
418
+ return normalizedLines.join('\n');
419
+ }
420
+
421
+ /**
422
+ * Normalize agent definition with defaults
423
+ * @private
424
+ * @param {Object} agentDef - Raw agent definition
425
+ * @returns {Object} Normalized agent definition
426
+ */
427
+ _normalizeAgentDefinition(agentDef) {
428
+ // Ensure agent object exists
429
+ if (!agentDef.agent) {
430
+ throw new Error('Agent definition missing "agent" section');
431
+ }
432
+
433
+ const agent = agentDef.agent;
434
+
435
+ // Normalize: ensure required fields have defaults
436
+ agent.id = agent.id || 'unknown';
437
+ agent.name = agent.name || agent.id;
438
+ agent.icon = agent.icon || '🤖';
439
+
440
+ // Ensure persona_profile exists with greeting_levels (without overwriting)
441
+ if (!agentDef.persona_profile) {
442
+ agentDef.persona_profile = {
443
+ greeting_levels: {
444
+ minimal: `${agent.icon} ${agent.id} Agent ready`,
445
+ named: `${agent.icon} ${agent.name} ready`,
446
+ archetypal: `${agent.icon} ${agent.name} ready`,
447
+ },
448
+ };
449
+ } else if (!agentDef.persona_profile.greeting_levels) {
450
+ agentDef.persona_profile.greeting_levels = {
451
+ minimal: `${agent.icon} ${agent.id} Agent ready`,
452
+ named: `${agent.icon} ${agent.name} ready`,
453
+ archetypal: `${agent.icon} ${agent.name} ready`,
454
+ };
455
+ }
456
+ // Note: If greeting_levels already exists in YAML, we keep it as-is (don't overwrite)
457
+
458
+ // Ensure commands array exists
459
+ if (!agentDef.commands || !Array.isArray(agentDef.commands)) {
460
+ agentDef.commands = [];
461
+ }
462
+
463
+ return agentDef;
464
+ }
465
+
466
+ /**
467
+ * Load both config and definition (convenience method)
468
+ *
469
+ * @param {Object} coreConfig - Core configuration
470
+ * @param {Object} options - Load options
471
+ * @returns {Promise<Object>} Combined config and definition
472
+ */
473
+ async loadComplete(coreConfig, options = {}) {
474
+ const [config, definition] = await Promise.all([
475
+ this.load(coreConfig, options),
476
+ this.loadAgentDefinition(options),
477
+ ]);
478
+
479
+ return {
480
+ ...config,
481
+ definition,
482
+ agent: definition.agent,
483
+ persona_profile: definition.persona_profile,
484
+ commands: definition.commands || [],
485
+ };
486
+ }
487
+
488
+ /**
489
+ * Clear cache for this agent
490
+ */
491
+ clearCache() {
492
+ const filesToLoad = this.getFilesToLoad();
493
+
494
+ for (const filePath of filesToLoad) {
495
+ const cacheKey = `file:${filePath}`;
496
+ this.cache.invalidate(cacheKey);
497
+ }
498
+
499
+ // Also clear agent definition cache
500
+ AgentConfigLoader.agentDefCache.delete(this.agentId);
501
+
502
+ console.log(`🗑️ Cache cleared for @${this.agentId}`);
503
+ }
504
+ }
505
+
506
+ /**
507
+ * Convenience function to load config for an agent
508
+ *
509
+ * @param {string} agentId - Agent identifier
510
+ * @param {Object} coreConfig - Core configuration
511
+ * @param {Object} options - Load options
512
+ * @returns {Promise<Object>} Agent configuration
513
+ */
514
+ async function loadAgentConfig(agentId, coreConfig, options = {}) {
515
+ const loader = new AgentConfigLoader(agentId);
516
+ return await loader.load(coreConfig, options);
517
+ }
518
+
519
+ /**
520
+ * Preload configuration for multiple agents
521
+ *
522
+ * @param {string[]} agentIds - Array of agent IDs
523
+ * @param {Object} coreConfig - Core configuration
524
+ * @returns {Promise<void>}
525
+ */
526
+ async function preloadAgents(agentIds, coreConfig) {
527
+ console.log(`🔄 Preloading ${agentIds.length} agents...`);
528
+
529
+ const startTime = Date.now();
530
+
531
+ await Promise.all(
532
+ agentIds.map(agentId => {
533
+ const loader = new AgentConfigLoader(agentId);
534
+ return loader.preload(coreConfig);
535
+ }),
536
+ );
537
+
538
+ const duration = Date.now() - startTime;
539
+ console.log(`✅ ${agentIds.length} agents preloaded in ${duration}ms`);
540
+ }
541
+
542
+ module.exports = {
543
+ AgentConfigLoader,
544
+ loadAgentConfig,
545
+ preloadAgents,
546
+ loadAgentRequirements,
547
+ };
548
+
549
+ // CLI support
550
+ if (require.main === module) {
551
+ const command = process.argv[2];
552
+ const agentId = process.argv[3];
553
+
554
+ (async () => {
555
+ try {
556
+ // Load core config
557
+ const coreConfigPath = path.join(process.cwd(), '.aios-core', 'core-config.yaml');
558
+ const coreConfigContent = await fs.readFile(coreConfigPath, 'utf8');
559
+ const coreConfig = yaml.parse(coreConfigContent);
560
+
561
+ switch (command) {
562
+ case 'load':
563
+ if (!agentId) {
564
+ console.error('Usage: node agent-config-loader.js load <agent-id>');
565
+ process.exit(1);
566
+ }
567
+
568
+ console.log(`\n🔍 Loading config for @${agentId}...\n`);
569
+
570
+ const loader = new AgentConfigLoader(agentId);
571
+ const result = await loader.load(coreConfig);
572
+
573
+ console.log('\n📊 Results:');
574
+ console.log(` Load Time: ${result.loadTime}ms`);
575
+ console.log(` Config Size: ${(result.configSize / 1024).toFixed(2)} KB`);
576
+ console.log(` Cache Hit: ${result.cacheHit ? 'Yes' : 'No'}`);
577
+ console.log(` Sections Loaded: ${result.sectionsLoaded.join(', ')}`);
578
+ console.log(` Files Loaded: ${Object.keys(result.files).length}`);
579
+ break;
580
+
581
+ case 'preload':
582
+ const agents = agentId ? [agentId] : [
583
+ 'aios-master', 'dev', 'qa', 'architect', 'po', 'pm', 'sm',
584
+ 'analyst', 'ux-expert', 'data-engineer', 'devops', 'db-sage', 'security',
585
+ ];
586
+
587
+ await preloadAgents(agents, coreConfig);
588
+ break;
589
+
590
+ case 'test':
591
+ console.log('\n🧪 Testing agent config loader...\n');
592
+
593
+ // Test loading for a few agents
594
+ const testAgents = ['dev', 'qa', 'po'];
595
+
596
+ for (const agent of testAgents) {
597
+ const testLoader = new AgentConfigLoader(agent);
598
+ const testResult = await testLoader.load(coreConfig);
599
+
600
+ console.log(`@${agent}:`);
601
+ console.log(` Load Time: ${testResult.loadTime}ms`);
602
+ console.log(` Config Size: ${(testResult.configSize / 1024).toFixed(2)} KB`);
603
+ console.log(` Cache Hit: ${testResult.cacheHit ? 'Yes' : 'No'}`);
604
+ console.log('');
605
+ }
606
+
607
+ console.log('✅ All tests passed!\n');
608
+ break;
609
+
610
+ default:
611
+ console.log(`
612
+ Usage:
613
+ node agent-config-loader.js load <agent-id> - Load config for specific agent
614
+ node agent-config-loader.js preload [agent] - Preload agent(s) config
615
+ node agent-config-loader.js test - Run test suite
616
+ `);
617
+ }
618
+ } catch (error) {
619
+ console.error('Error:', error.message);
620
+ console.error(error.stack);
621
+ process.exit(1);
622
+ }
623
+ })();
624
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Agent Exit Hooks - Workflow Context Persistence
3
+ *
4
+ * INTEGRATION NOTE: This module defines the hook system.
5
+ * Actual integration requires modifications to the agent activation framework
6
+ * (not in scope for this story - see Story 6.1.6 for full agent framework integration)
7
+ *
8
+ * Hook Signature:
9
+ * onCommandComplete(agent, command, result, context)
10
+ *
11
+ * Purpose:
12
+ * - Save workflow state when commands complete successfully
13
+ * - Persist context (story_path, branch, epic) to session-state.json
14
+ * - Enable workflow navigation on subsequent agent activation
15
+ */
16
+
17
+ const fs = require('fs');
18
+ const path = require('path');
19
+ const ContextDetector = require('../../core/session/context-detector');
20
+
21
+ const SESSION_STATE_PATH = path.join(process.cwd(), '.aios', 'session-state.json');
22
+
23
+ /**
24
+ * Agent exit hook - called when command completes
25
+ * @param {string} agent - Agent ID (e.g., 'po', 'dev', 'qa')
26
+ * @param {string} command - Command executed (e.g., 'validate-story-draft')
27
+ * @param {Object} result - Command result { success: boolean, ... }
28
+ * @param {Object} context - Execution context { story_path, branch, ... }
29
+ */
30
+ function onCommandComplete(agent, command, result, context) {
31
+ try {
32
+ // Only save state for successful commands
33
+ if (!result || result.success !== true) {
34
+ return;
35
+ }
36
+
37
+ // Update session state
38
+ const detector = new ContextDetector();
39
+ const workflowState = detectWorkflowState(command, result);
40
+
41
+ detector.updateSessionState({
42
+ workflowActive: workflowState?.workflow || null,
43
+ lastCommands: [command],
44
+ agentSequence: [agent],
45
+ context: {
46
+ story_path: context.story_path || '',
47
+ branch: context.branch || '',
48
+ epic: context.epic || '',
49
+ lastCommand: command,
50
+ lastAgent: agent,
51
+ },
52
+ }, SESSION_STATE_PATH);
53
+ } catch (error) {
54
+ // Graceful degradation - hook failures must not break command execution
55
+ console.warn('[AgentExitHooks] Hook failed:', error.message);
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Detect workflow state from command completion
61
+ * @param {string} command - Command that completed
62
+ * @param {Object} result - Command result
63
+ * @returns {Object|null} { workflow, state } or null
64
+ */
65
+ function detectWorkflowState(command, result) {
66
+ // Map commands to workflow states
67
+ const stateMap = {
68
+ 'validate-story-draft': { workflow: 'story_development', state: 'validated' },
69
+ 'develop': { workflow: 'story_development', state: 'in_development' },
70
+ 'review-qa': { workflow: 'story_development', state: 'qa_reviewed' },
71
+ 'create-epic': { workflow: 'epic_creation', state: 'epic_created' },
72
+ };
73
+
74
+ return stateMap[command] || null;
75
+ }
76
+
77
+ /**
78
+ * Register hook in agent framework
79
+ * INTEGRATION POINT: This needs to be called during agent initialization
80
+ * @param {Object} agentFramework - Agent framework instance
81
+ */
82
+ function registerHook(agentFramework) {
83
+ if (!agentFramework || !agentFramework.registerCommandHook) {
84
+ console.warn('[AgentExitHooks] Framework does not support hooks');
85
+ return false;
86
+ }
87
+
88
+ agentFramework.registerCommandHook('onComplete', onCommandComplete);
89
+ return true;
90
+ }
91
+
92
+ module.exports = {
93
+ onCommandComplete,
94
+ registerHook,
95
+ detectWorkflowState,
96
+ };