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,293 @@
1
+ /**
2
+ * Semantic Search Module
3
+ *
4
+ * Implements semantic search using OpenAI embeddings for intelligent
5
+ * similarity matching based on meaning, not just keywords.
6
+ *
7
+ * @module cli/commands/workers/search-semantic
8
+ * @version 1.0.0
9
+ * @story 2.7 - Discovery CLI Search
10
+ */
11
+
12
+ const path = require('path');
13
+ const fs = require('fs');
14
+
15
+ // Registry loader
16
+ const { getRegistry } = require('../../../core/registry/registry-loader');
17
+
18
+ // Cache for embeddings
19
+ let embeddingsCache = null;
20
+ let embeddingsCacheTimestamp = 0;
21
+ const EMBEDDINGS_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
22
+
23
+ // Configurable timeouts and rate limits
24
+ const OPENAI_REQUEST_TIMEOUT_MS = parseInt(process.env.OPENAI_REQUEST_TIMEOUT_MS) || 10000; // 10s default
25
+ const RATE_LIMIT_DELAY_MS = parseInt(process.env.RATE_LIMIT_DELAY_MS) || 600; // 600ms for 100 RPM (Free tier)
26
+
27
+ /**
28
+ * Check if semantic search is available
29
+ * @returns {boolean} True if OPENAI_API_KEY is set
30
+ */
31
+ function isSemanticAvailable() {
32
+ return !!process.env.OPENAI_API_KEY;
33
+ }
34
+
35
+ /**
36
+ * Get OpenAI embeddings for text
37
+ * @param {string} text - Text to embed
38
+ * @returns {Promise<number[]>} Embedding vector
39
+ */
40
+ async function getEmbedding(text) {
41
+ const apiKey = process.env.OPENAI_API_KEY;
42
+
43
+ if (!apiKey) {
44
+ throw new Error('OPENAI_API_KEY not set');
45
+ }
46
+
47
+ // Create AbortController for timeout
48
+ const controller = new AbortController();
49
+ const timeoutId = setTimeout(() => controller.abort(), OPENAI_REQUEST_TIMEOUT_MS);
50
+
51
+ try {
52
+ const response = await fetch('https://api.openai.com/v1/embeddings', {
53
+ method: 'POST',
54
+ headers: {
55
+ 'Content-Type': 'application/json',
56
+ 'Authorization': `Bearer ${apiKey}`,
57
+ },
58
+ body: JSON.stringify({
59
+ model: 'text-embedding-3-small',
60
+ input: text,
61
+ }),
62
+ signal: controller.signal,
63
+ });
64
+
65
+ clearTimeout(timeoutId);
66
+
67
+ if (!response.ok) {
68
+ // Handle rate limiting with Retry-After header
69
+ if (response.status === 429) {
70
+ const retryAfter = response.headers.get('Retry-After');
71
+ throw new Error(`OpenAI rate limit exceeded. Retry after ${retryAfter || 'a few'} seconds.`);
72
+ }
73
+ const error = await response.json().catch(() => ({ error: { message: 'Unknown error' } }));
74
+ throw new Error(`OpenAI API error: ${error.error?.message || response.statusText}`);
75
+ }
76
+
77
+ const data = await response.json();
78
+ return data.data[0].embedding;
79
+ } catch (error) {
80
+ clearTimeout(timeoutId);
81
+ if (error.name === 'AbortError') {
82
+ throw new Error(`OpenAI request timed out after ${OPENAI_REQUEST_TIMEOUT_MS}ms`);
83
+ }
84
+ throw error;
85
+ }
86
+ }
87
+
88
+ /**
89
+ * Calculate cosine similarity between two vectors
90
+ * @param {number[]} a - First vector
91
+ * @param {number[]} b - Second vector
92
+ * @returns {number} Similarity score (0-1)
93
+ */
94
+ function cosineSimilarity(a, b) {
95
+ if (a.length !== b.length) {
96
+ throw new Error('Vectors must have same length');
97
+ }
98
+
99
+ let dotProduct = 0;
100
+ let normA = 0;
101
+ let normB = 0;
102
+
103
+ for (let i = 0; i < a.length; i++) {
104
+ dotProduct += a[i] * b[i];
105
+ normA += a[i] * a[i];
106
+ normB += b[i] * b[i];
107
+ }
108
+
109
+ if (normA === 0 || normB === 0) return 0;
110
+
111
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
112
+ }
113
+
114
+ /**
115
+ * Load or generate worker embeddings
116
+ * @returns {Promise<Map<string, {worker: object, embedding: number[]}>>}
117
+ */
118
+ async function loadWorkerEmbeddings() {
119
+ const now = Date.now();
120
+
121
+ // Return cached if valid
122
+ if (embeddingsCache && (now - embeddingsCacheTimestamp) < EMBEDDINGS_CACHE_TTL) {
123
+ return embeddingsCache;
124
+ }
125
+
126
+ // Check for pre-computed embeddings file
127
+ const embeddingsPath = path.join(
128
+ process.cwd(),
129
+ '.aios-core/core/registry/worker-embeddings.json',
130
+ );
131
+
132
+ if (fs.existsSync(embeddingsPath)) {
133
+ try {
134
+ const data = JSON.parse(fs.readFileSync(embeddingsPath, 'utf8'));
135
+ embeddingsCache = new Map(Object.entries(data.embeddings));
136
+ embeddingsCacheTimestamp = now;
137
+ return embeddingsCache;
138
+ } catch (error) {
139
+ console.warn('Warning: Could not load pre-computed embeddings, will compute on-the-fly');
140
+ }
141
+ }
142
+
143
+ // Load registry and compute embeddings on-the-fly
144
+ const registry = getRegistry();
145
+ const workers = await registry.getAll();
146
+
147
+ embeddingsCache = new Map();
148
+
149
+ // For performance, we'll batch the first N workers
150
+ // In production, embeddings should be pre-computed
151
+ const maxWorkersToEmbed = 50; // Limit for on-the-fly computation
152
+ const workersToEmbed = workers.slice(0, maxWorkersToEmbed);
153
+
154
+ for (const worker of workersToEmbed) {
155
+ const text = buildSearchText(worker);
156
+ try {
157
+ const embedding = await getEmbedding(text);
158
+ embeddingsCache.set(worker.id, { worker, embedding });
159
+ } catch (error) {
160
+ // Skip workers that fail embedding
161
+ console.warn(`Warning: Could not embed worker ${worker.id}: ${error.message}`);
162
+ }
163
+ }
164
+
165
+ // Add remaining workers without embeddings (will use keyword fallback)
166
+ for (let i = maxWorkersToEmbed; i < workers.length; i++) {
167
+ embeddingsCache.set(workers[i].id, { worker: workers[i], embedding: null });
168
+ }
169
+
170
+ embeddingsCacheTimestamp = now;
171
+ return embeddingsCache;
172
+ }
173
+
174
+ /**
175
+ * Build searchable text from worker
176
+ * @param {object} worker - Worker object
177
+ * @returns {string} Concatenated search text
178
+ */
179
+ function buildSearchText(worker) {
180
+ return [
181
+ worker.name,
182
+ worker.description,
183
+ worker.category,
184
+ worker.subcategory || '',
185
+ ...(worker.tags || []),
186
+ ...(worker.inputs || []),
187
+ ...(worker.outputs || []),
188
+ ].filter(Boolean).join(' ');
189
+ }
190
+
191
+ /**
192
+ * Perform semantic search
193
+ * @param {string} query - Search query
194
+ * @returns {Promise<Array<{worker: object, score: number}>>} Search results with scores
195
+ */
196
+ async function searchSemantic(query) {
197
+ // Get query embedding
198
+ const queryEmbedding = await getEmbedding(query);
199
+
200
+ // Load worker embeddings
201
+ const workerEmbeddings = await loadWorkerEmbeddings();
202
+
203
+ const results = [];
204
+
205
+ for (const [id, data] of workerEmbeddings) {
206
+ if (data.embedding) {
207
+ // Calculate semantic similarity
208
+ const similarity = cosineSimilarity(queryEmbedding, data.embedding);
209
+ const score = Math.round(similarity * 100);
210
+
211
+ // Only include results with reasonable similarity
212
+ if (score >= 20) {
213
+ results.push({
214
+ ...data.worker,
215
+ score: score,
216
+ matchType: 'semantic',
217
+ });
218
+ }
219
+ } else {
220
+ // Fallback to simple text matching for workers without embeddings
221
+ const searchText = buildSearchText(data.worker).toLowerCase();
222
+ if (searchText.includes(query.toLowerCase())) {
223
+ results.push({
224
+ ...data.worker,
225
+ score: 50, // Default score for keyword matches
226
+ matchType: 'keyword-fallback',
227
+ });
228
+ }
229
+ }
230
+ }
231
+
232
+ return results;
233
+ }
234
+
235
+ /**
236
+ * Pre-compute and save embeddings for all workers
237
+ * @returns {Promise<void>}
238
+ */
239
+ async function precomputeEmbeddings() {
240
+ console.log('Pre-computing embeddings for all workers...');
241
+
242
+ const registry = getRegistry();
243
+ const workers = await registry.getAll();
244
+
245
+ const embeddings = {};
246
+ let computed = 0;
247
+ let failed = 0;
248
+
249
+ for (const worker of workers) {
250
+ const text = buildSearchText(worker);
251
+ try {
252
+ const embedding = await getEmbedding(text);
253
+ embeddings[worker.id] = { worker, embedding };
254
+ computed++;
255
+ process.stdout.write(`\rComputed: ${computed}/${workers.length}`);
256
+ } catch (error) {
257
+ failed++;
258
+ console.warn(`\nWarning: Failed to embed ${worker.id}: ${error.message}`);
259
+ }
260
+
261
+ // Rate limiting - OpenAI Free tier allows 100 RPM, so 600ms delay
262
+ // Configurable via RATE_LIMIT_DELAY_MS environment variable
263
+ await new Promise(resolve => setTimeout(resolve, RATE_LIMIT_DELAY_MS));
264
+ }
265
+
266
+ console.log(`\nEmbeddings computed: ${computed}, failed: ${failed}`);
267
+
268
+ // Save to file
269
+ const embeddingsPath = path.join(
270
+ process.cwd(),
271
+ '.aios-core/core/registry/worker-embeddings.json',
272
+ );
273
+
274
+ const data = {
275
+ version: '1.0.0',
276
+ generated: new Date().toISOString(),
277
+ model: 'text-embedding-3-small',
278
+ count: computed,
279
+ embeddings: embeddings,
280
+ };
281
+
282
+ fs.writeFileSync(embeddingsPath, JSON.stringify(data, null, 2));
283
+ console.log(`Saved embeddings to: ${embeddingsPath}`);
284
+ }
285
+
286
+ module.exports = {
287
+ isSemanticAvailable,
288
+ searchSemantic,
289
+ getEmbedding,
290
+ cosineSimilarity,
291
+ precomputeEmbeddings,
292
+ buildSearchText,
293
+ };
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Search Command - Main entry point for worker search
3
+ *
4
+ * Implements `aios workers search <query>` CLI command.
5
+ * Supports semantic search (OpenAI embeddings) and keyword fallback.
6
+ *
7
+ * @module cli/commands/workers/search
8
+ * @version 1.0.0
9
+ * @story 2.7 - Discovery CLI Search
10
+ */
11
+
12
+ const { Command } = require('commander');
13
+ const path = require('path');
14
+
15
+ // Local modules
16
+ const { searchSemantic, isSemanticAvailable } = require('./search-semantic');
17
+ const { searchKeyword } = require('./search-keyword');
18
+ const { applyFilters } = require('./search-filters');
19
+ const { formatOutput } = require('../../utils/output-formatter-cli');
20
+ const { calculateScores, sortByScore } = require('../../utils/score-calculator');
21
+
22
+ /**
23
+ * Create the search command
24
+ * @returns {Command} Commander command instance
25
+ */
26
+ function createSearchCommand() {
27
+ const search = new Command('search');
28
+
29
+ search
30
+ .description('Search for workers in the service registry')
31
+ .argument('<query>', 'Search query (words, phrases, or patterns)')
32
+ .option('-c, --category <category>', 'Filter by category')
33
+ .option('-t, --tags <tags>', 'Filter by tags (comma-separated)')
34
+ .option('-f, --format <format>', 'Output format: table, json, yaml', 'table')
35
+ .option('-l, --limit <n>', 'Max results', '10')
36
+ .option('--semantic', 'Force semantic search (requires OPENAI_API_KEY)')
37
+ .option('--keyword', 'Force keyword search')
38
+ .option('-v, --verbose', 'Show verbose output')
39
+ .addHelpText('after', `
40
+ Examples:
41
+ $ aios workers search "json csv"
42
+ $ aios workers search "data transformation" --category=etl
43
+ $ aios workers search "validation" --tags=schema,json
44
+ $ aios workers search "api" --format=json --limit=5
45
+ $ aios workers search "transform" --semantic
46
+ $ aios workers search "convert" --keyword
47
+ `)
48
+ .action(executeSearch);
49
+
50
+ return search;
51
+ }
52
+
53
+ /**
54
+ * Execute the search command
55
+ * @param {string} query - Search query
56
+ * @param {object} options - Command options
57
+ */
58
+ async function executeSearch(query, options) {
59
+ const startTime = Date.now();
60
+
61
+ try {
62
+ // Validate query
63
+ if (!query || query.trim().length === 0) {
64
+ console.error('Error: Search query cannot be empty');
65
+ process.exit(1);
66
+ }
67
+
68
+ const trimmedQuery = query.trim();
69
+ const limit = parseInt(options.limit, 10) || 10;
70
+ const tags = options.tags ? options.tags.split(',').map(t => t.trim()) : [];
71
+
72
+ if (options.verbose) {
73
+ console.log(`Searching for: "${trimmedQuery}"`);
74
+ if (options.category) console.log(` Category filter: ${options.category}`);
75
+ if (tags.length > 0) console.log(` Tag filters: ${tags.join(', ')}`);
76
+ console.log(` Output format: ${options.format}`);
77
+ console.log(` Limit: ${limit}`);
78
+ console.log('');
79
+ }
80
+
81
+ // Determine search strategy
82
+ let results;
83
+ let searchMethod;
84
+
85
+ if (options.keyword) {
86
+ // Force keyword search
87
+ searchMethod = 'keyword';
88
+ results = await searchKeyword(trimmedQuery);
89
+ } else if (options.semantic) {
90
+ // Force semantic search
91
+ if (!isSemanticAvailable()) {
92
+ console.error('Error: Semantic search requires OPENAI_API_KEY environment variable');
93
+ console.log('Hint: Set OPENAI_API_KEY or use --keyword for fallback search');
94
+ process.exit(1);
95
+ }
96
+ searchMethod = 'semantic';
97
+ results = await searchSemantic(trimmedQuery);
98
+ } else {
99
+ // Auto-detect: use semantic if available, otherwise keyword
100
+ if (isSemanticAvailable()) {
101
+ searchMethod = 'semantic';
102
+ results = await searchSemantic(trimmedQuery);
103
+ } else {
104
+ searchMethod = 'keyword';
105
+ results = await searchKeyword(trimmedQuery);
106
+ }
107
+ }
108
+
109
+ // Apply filters
110
+ results = applyFilters(results, {
111
+ category: options.category,
112
+ tags: tags,
113
+ });
114
+
115
+ // Calculate and sort by scores
116
+ results = calculateScores(results, trimmedQuery);
117
+ results = sortByScore(results);
118
+
119
+ // Apply limit
120
+ results = results.slice(0, limit);
121
+
122
+ // Calculate duration
123
+ const duration = ((Date.now() - startTime) / 1000).toFixed(1);
124
+
125
+ // Format and output results
126
+ const output = formatOutput(results, {
127
+ format: options.format,
128
+ query: trimmedQuery,
129
+ duration: duration,
130
+ searchMethod: searchMethod,
131
+ verbose: options.verbose,
132
+ });
133
+
134
+ console.log(output);
135
+
136
+ // Performance check
137
+ const durationMs = Date.now() - startTime;
138
+ if (durationMs > 30000) {
139
+ console.warn(`\nWarning: Search took ${(durationMs / 1000).toFixed(1)}s (target: < 30s)`);
140
+ }
141
+
142
+ } catch (error) {
143
+ console.error(`Search error: ${error.message}`);
144
+ if (options.verbose) {
145
+ console.error(error.stack);
146
+ }
147
+ process.exit(1);
148
+ }
149
+ }
150
+
151
+ module.exports = {
152
+ createSearchCommand,
153
+ executeSearch,
154
+ };
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Pagination Utility
3
+ *
4
+ * Handles pagination logic for CLI list commands.
5
+ *
6
+ * @module cli/commands/workers/utils/pagination
7
+ * @version 1.0.0
8
+ * @story 2.8-2.9 - Discovery CLI Info & List
9
+ */
10
+
11
+ /**
12
+ * Default pagination options
13
+ */
14
+ const DEFAULT_PAGE_SIZE = 20;
15
+ const MAX_PAGE_SIZE = 100;
16
+
17
+ /**
18
+ * Paginate an array of items
19
+ * @param {Array} items - Items to paginate
20
+ * @param {object} options - Pagination options
21
+ * @param {number} options.page - Page number (1-based)
22
+ * @param {number} options.limit - Items per page
23
+ * @returns {object} Paginated result
24
+ */
25
+ function paginate(items, options = {}) {
26
+ const page = Math.max(1, parseInt(options.page, 10) || 1);
27
+ const limit = Math.min(
28
+ MAX_PAGE_SIZE,
29
+ Math.max(1, parseInt(options.limit, 10) || DEFAULT_PAGE_SIZE),
30
+ );
31
+
32
+ const totalItems = items.length;
33
+ const totalPages = Math.ceil(totalItems / limit);
34
+ const startIndex = (page - 1) * limit;
35
+ const endIndex = Math.min(startIndex + limit, totalItems);
36
+
37
+ const paginatedItems = items.slice(startIndex, endIndex);
38
+
39
+ return {
40
+ items: paginatedItems,
41
+ pagination: {
42
+ page,
43
+ limit,
44
+ totalItems,
45
+ totalPages,
46
+ startIndex: startIndex + 1, // 1-based for display
47
+ endIndex,
48
+ hasNextPage: page < totalPages,
49
+ hasPrevPage: page > 1,
50
+ },
51
+ };
52
+ }
53
+
54
+ /**
55
+ * Format pagination info for display
56
+ * @param {object} pagination - Pagination object from paginate()
57
+ * @returns {string} Formatted pagination text
58
+ */
59
+ function formatPaginationInfo(pagination) {
60
+ const { startIndex, endIndex, totalItems, page, totalPages } = pagination;
61
+
62
+ if (totalItems === 0) {
63
+ return 'No items found.';
64
+ }
65
+
66
+ if (totalPages === 1) {
67
+ return `Showing all ${totalItems} items.`;
68
+ }
69
+
70
+ return `Showing ${startIndex}-${endIndex} of ${totalItems} items (page ${page}/${totalPages})`;
71
+ }
72
+
73
+ /**
74
+ * Format pagination navigation hint
75
+ * @param {object} pagination - Pagination object
76
+ * @returns {string} Navigation hint text
77
+ */
78
+ function formatPaginationHint(pagination) {
79
+ const hints = [];
80
+
81
+ if (pagination.hasPrevPage) {
82
+ hints.push(`--page=${pagination.page - 1} for previous`);
83
+ }
84
+
85
+ if (pagination.hasNextPage) {
86
+ hints.push(`--page=${pagination.page + 1} for next`);
87
+ }
88
+
89
+ if (hints.length === 0) {
90
+ return '';
91
+ }
92
+
93
+ return `Use ${hints.join(', ')}.`;
94
+ }
95
+
96
+ module.exports = {
97
+ paginate,
98
+ formatPaginationInfo,
99
+ formatPaginationHint,
100
+ DEFAULT_PAGE_SIZE,
101
+ MAX_PAGE_SIZE,
102
+ };
@@ -0,0 +1,128 @@
1
+ /**
2
+ * AIOS CLI Entry Point
3
+ *
4
+ * Main entry point for the AIOS CLI with Commander.js integration.
5
+ * Registers all subcommands including workers, agents, etc.
6
+ *
7
+ * @module cli
8
+ * @version 1.0.0
9
+ * @story 2.7 - Discovery CLI Search
10
+ */
11
+
12
+ const { Command } = require('commander');
13
+ const path = require('path');
14
+ const fs = require('fs');
15
+
16
+ // Import command modules
17
+ const { createWorkersCommand } = require('./commands/workers');
18
+ const { createManifestCommand } = require('./commands/manifest');
19
+ const { createQaCommand } = require('./commands/qa');
20
+ const { createMcpCommand } = require('./commands/mcp');
21
+ const { createMigrateCommand } = require('./commands/migrate');
22
+ const { createGenerateCommand } = require('./commands/generate');
23
+ const { createMetricsCommand } = require('./commands/metrics');
24
+
25
+ // Read package.json for version
26
+ const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
27
+ let packageVersion = '0.0.0';
28
+ try {
29
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
30
+ packageVersion = packageJson.version;
31
+ } catch (error) {
32
+ // Fallback version if package.json not found
33
+ }
34
+
35
+ /**
36
+ * Create the main CLI program
37
+ * @returns {Command} Commander program instance
38
+ */
39
+ function createProgram() {
40
+ const program = new Command();
41
+
42
+ program
43
+ .name('aios')
44
+ .version(packageVersion)
45
+ .description('AIOS-FullStack: AI-Orchestrated System for Full Stack Development')
46
+ .addHelpText('after', `
47
+ Commands:
48
+ workers Manage and discover workers
49
+ manifest Manage manifest files (validate, regenerate)
50
+ qa Quality Gate Manager (run, status)
51
+ metrics Quality Gate Metrics (record, show, seed, cleanup)
52
+ mcp Manage global MCP configuration
53
+ migrate Migrate from v2.0 to v2.1 structure
54
+ generate Generate documents from templates (prd, adr, pmdr, etc.)
55
+ install Install AIOS in current project
56
+ init <name> Create new AIOS project
57
+ info Show system information
58
+ doctor Run system diagnostics
59
+
60
+ For command help:
61
+ $ aios <command> --help
62
+
63
+ Examples:
64
+ $ aios workers search "json transformation"
65
+ $ aios workers list --category=data
66
+ $ aios manifest validate
67
+ $ aios manifest regenerate
68
+ $ aios qa run
69
+ $ aios qa status
70
+ $ aios mcp setup --with-defaults
71
+ $ aios mcp link
72
+ $ aios mcp status
73
+ $ aios metrics show
74
+ $ aios metrics record --layer 1 --passed
75
+ $ aios metrics seed --days 30
76
+ $ aios migrate --dry-run
77
+ $ aios migrate --from=2.0 --to=2.1
78
+ $ aios generate pmdr --title "Feature X Decision"
79
+ $ aios generate adr --save
80
+ $ aios generate list
81
+ $ aios install
82
+ $ aios doctor
83
+ `);
84
+
85
+ // Add workers command
86
+ program.addCommand(createWorkersCommand());
87
+
88
+ // Add manifest command (Story 2.13)
89
+ program.addCommand(createManifestCommand());
90
+
91
+ // Add qa command (Story 2.10)
92
+ program.addCommand(createQaCommand());
93
+
94
+ // Add mcp command (Story 2.11)
95
+ program.addCommand(createMcpCommand());
96
+
97
+ // Add migrate command (Story 2.14)
98
+ program.addCommand(createMigrateCommand());
99
+
100
+ // Add generate command (Story 3.9)
101
+ program.addCommand(createGenerateCommand());
102
+
103
+ // Add metrics command (Story 3.11a)
104
+ program.addCommand(createMetricsCommand());
105
+
106
+ return program;
107
+ }
108
+
109
+ /**
110
+ * Run the CLI
111
+ * @param {string[]} args - Command line arguments
112
+ * @returns {Promise<void>}
113
+ */
114
+ async function run(args = process.argv) {
115
+ const program = createProgram();
116
+
117
+ try {
118
+ await program.parseAsync(args);
119
+ } catch (error) {
120
+ console.error(`Error: ${error.message}`);
121
+ process.exit(1);
122
+ }
123
+ }
124
+
125
+ module.exports = {
126
+ createProgram,
127
+ run,
128
+ };