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,214 @@
1
+ /**
2
+ * List Command - List all workers in the registry
3
+ *
4
+ * Implements `aios workers list` CLI command.
5
+ * Displays workers grouped by category with filtering and pagination.
6
+ *
7
+ * @module cli/commands/workers/list
8
+ * @version 1.0.0
9
+ * @story 2.8-2.9 - Discovery CLI Info & List
10
+ */
11
+
12
+ const { Command } = require('commander');
13
+ const { getRegistry } = require('../../../core/registry/registry-loader');
14
+ const { formatTree } = require('./formatters/list-tree');
15
+ const { formatList, formatCount } = require('./formatters/list-table');
16
+ const { paginate, formatPaginationHint } = require('./utils/pagination');
17
+
18
+ /**
19
+ * Create the list command
20
+ * @returns {Command} Commander command instance
21
+ */
22
+ function createListCommand() {
23
+ const list = new Command('list');
24
+
25
+ list
26
+ .description('List all workers in the service registry')
27
+ .option('-c, --category <category>', 'Filter by category')
28
+ .option('-f, --format <format>', 'Output format: tree, table, json, yaml', 'tree')
29
+ .option('-p, --page <n>', 'Page number for pagination', '1')
30
+ .option('-l, --limit <n>', 'Items per page', '20')
31
+ .option('--count', 'Show count summary only')
32
+ .option('-v, --verbose', 'Show verbose/debug output')
33
+ .addHelpText('after', `
34
+ Examples:
35
+ $ aios workers list
36
+ $ aios workers list --category=task
37
+ $ aios workers list --format=table
38
+ $ aios workers list --format=json --category=script
39
+ $ aios workers list --page=2 --limit=10
40
+ $ aios workers list --count
41
+ $ aios workers list --verbose
42
+
43
+ Output Formats:
44
+ tree Grouped tree view by category (default)
45
+ table Tabular list with columns
46
+ json JSON array of workers
47
+ yaml YAML list of workers
48
+
49
+ Categories:
50
+ task Executable task workflows for agents
51
+ template Document and code templates
52
+ script JavaScript utility scripts
53
+ checklist Quality validation checklists
54
+ workflow Multi-step workflow definitions
55
+ data Knowledge base and configuration data
56
+ `)
57
+ .action(executeList);
58
+
59
+ return list;
60
+ }
61
+
62
+ /**
63
+ * Execute the list command
64
+ * @param {object} options - Command options
65
+ */
66
+ async function executeList(options) {
67
+ const startTime = Date.now();
68
+
69
+ try {
70
+ const registry = getRegistry();
71
+
72
+ if (options.verbose) {
73
+ console.log('Loading worker registry...');
74
+ if (options.category) console.log(`Category filter: ${options.category}`);
75
+ console.log(`Output format: ${options.format}`);
76
+ console.log(`Page: ${options.page}, Limit: ${options.limit}`);
77
+ console.log('');
78
+ }
79
+
80
+ // Handle count-only mode
81
+ if (options.count) {
82
+ await executeCountMode(registry, options);
83
+ logPerformance(startTime, options.verbose);
84
+ return;
85
+ }
86
+
87
+ // Get workers (optionally filtered by category)
88
+ let workers;
89
+ if (options.category) {
90
+ workers = await registry.getByCategory(options.category.toLowerCase());
91
+
92
+ if (workers.length === 0) {
93
+ // Check if category exists
94
+ const categories = await registry.getCategories();
95
+ if (!categories[options.category.toLowerCase()]) {
96
+ console.error(`Error: Category '${options.category}' not found.`);
97
+ console.log('\nAvailable categories:');
98
+ Object.keys(categories).forEach(cat => {
99
+ console.log(` - ${cat} (${categories[cat].count} workers)`);
100
+ });
101
+ process.exit(1);
102
+ }
103
+ }
104
+ } else {
105
+ workers = await registry.getAll();
106
+ }
107
+
108
+ // Sort workers by category, then name
109
+ workers.sort((a, b) => {
110
+ if (a.category !== b.category) {
111
+ return a.category.localeCompare(b.category);
112
+ }
113
+ return a.name.localeCompare(b.name);
114
+ });
115
+
116
+ // Format based on output type
117
+ const format = (options.format || 'tree').toLowerCase();
118
+
119
+ if (format === 'tree') {
120
+ // Tree format doesn't use pagination (shows all grouped)
121
+ const output = formatTree(workers, {
122
+ verbose: options.verbose,
123
+ });
124
+ console.log(output);
125
+ } else {
126
+ // Table/JSON/YAML formats support pagination
127
+ const page = parseInt(options.page, 10) || 1;
128
+ const limit = parseInt(options.limit, 10) || 20;
129
+
130
+ const paginatedResult = paginate(workers, { page, limit });
131
+
132
+ const output = formatList(paginatedResult.items, {
133
+ format: format,
134
+ pagination: paginatedResult.pagination,
135
+ verbose: options.verbose,
136
+ });
137
+
138
+ console.log(output);
139
+
140
+ // Show pagination hint for table format
141
+ if (format === 'table' && paginatedResult.pagination.totalPages > 1) {
142
+ const hint = formatPaginationHint(paginatedResult.pagination);
143
+ if (hint) {
144
+ console.log(hint);
145
+ }
146
+ }
147
+ }
148
+
149
+ logPerformance(startTime, options.verbose);
150
+
151
+ } catch (error) {
152
+ console.error(`Error: ${error.message}`);
153
+ if (options.verbose) {
154
+ console.error(error.stack);
155
+ }
156
+ process.exit(1);
157
+ }
158
+ }
159
+
160
+ /**
161
+ * Execute count-only mode
162
+ * @param {ServiceRegistry} registry - Registry instance
163
+ * @param {object} options - Command options
164
+ */
165
+ async function executeCountMode(registry, options) {
166
+ const categories = await registry.getCategories();
167
+ const totalWorkers = await registry.count();
168
+
169
+ // If category filter, show just that category
170
+ if (options.category) {
171
+ const category = options.category.toLowerCase();
172
+ const catData = categories[category];
173
+
174
+ if (!catData) {
175
+ console.error(`Error: Category '${options.category}' not found.`);
176
+ process.exit(1);
177
+ }
178
+
179
+ console.log(`${category.toUpperCase()}: ${catData.count} workers`);
180
+
181
+ if (options.verbose && catData.subcategories) {
182
+ console.log(` Subcategories: ${catData.subcategories.join(', ')}`);
183
+ }
184
+ } else {
185
+ // Show all categories
186
+ const output = formatCount(categories, totalWorkers, {
187
+ verbose: options.verbose,
188
+ });
189
+ console.log(output);
190
+ }
191
+ }
192
+
193
+ /**
194
+ * Log performance metrics
195
+ * @param {number} startTime - Start timestamp
196
+ * @param {boolean} verbose - Show verbose output
197
+ */
198
+ function logPerformance(startTime, verbose) {
199
+ const duration = Date.now() - startTime;
200
+
201
+ if (verbose) {
202
+ console.log(`\n[Performance: ${duration}ms]`);
203
+ }
204
+
205
+ // Warn if over target (1s for list with 200+ workers)
206
+ if (duration > 1000) {
207
+ console.warn(`\nWarning: List command took ${duration}ms (target: < 1000ms)`);
208
+ }
209
+ }
210
+
211
+ module.exports = {
212
+ createListCommand,
213
+ executeList,
214
+ };
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Search Filters Module
3
+ *
4
+ * Implements filtering logic for search results.
5
+ * Supports category and tag-based filtering.
6
+ *
7
+ * @module cli/commands/workers/search-filters
8
+ * @version 1.0.0
9
+ * @story 2.7 - Discovery CLI Search
10
+ */
11
+
12
+ /**
13
+ * Apply filters to search results
14
+ * @param {Array} results - Search results array
15
+ * @param {object} filters - Filter options
16
+ * @param {string} [filters.category] - Category filter
17
+ * @param {string[]} [filters.tags] - Tags filter (AND logic)
18
+ * @returns {Array} Filtered results
19
+ */
20
+ function applyFilters(results, filters = {}) {
21
+ let filtered = [...results];
22
+
23
+ // Apply category filter
24
+ if (filters.category) {
25
+ const categoryLower = filters.category.toLowerCase();
26
+ filtered = filtered.filter(worker => {
27
+ const workerCategory = (worker.category || '').toLowerCase();
28
+ return workerCategory === categoryLower ||
29
+ workerCategory.includes(categoryLower);
30
+ });
31
+ }
32
+
33
+ // Apply tag filters (AND logic - worker must have ALL specified tags)
34
+ if (filters.tags && filters.tags.length > 0) {
35
+ filtered = filtered.filter(worker => {
36
+ const workerTags = (worker.tags || []).map(t => t.toLowerCase());
37
+ return filters.tags.every(tag =>
38
+ workerTags.some(wt => wt === tag.toLowerCase() || wt.includes(tag.toLowerCase())),
39
+ );
40
+ });
41
+ }
42
+
43
+ return filtered;
44
+ }
45
+
46
+ /**
47
+ * Filter by category
48
+ * @param {Array} results - Search results
49
+ * @param {string} category - Category to filter by
50
+ * @returns {Array} Filtered results
51
+ */
52
+ function filterByCategory(results, category) {
53
+ if (!category) return results;
54
+
55
+ const categoryLower = category.toLowerCase();
56
+ return results.filter(worker => {
57
+ const workerCategory = (worker.category || '').toLowerCase();
58
+ return workerCategory === categoryLower;
59
+ });
60
+ }
61
+
62
+ /**
63
+ * Filter by tags (AND logic)
64
+ * @param {Array} results - Search results
65
+ * @param {string[]} tags - Tags to filter by
66
+ * @returns {Array} Filtered results
67
+ */
68
+ function filterByTags(results, tags) {
69
+ if (!tags || tags.length === 0) return results;
70
+
71
+ const tagsLower = tags.map(t => t.toLowerCase());
72
+
73
+ return results.filter(worker => {
74
+ const workerTags = new Set((worker.tags || []).map(t => t.toLowerCase()));
75
+ return tagsLower.every(tag => workerTags.has(tag));
76
+ });
77
+ }
78
+
79
+ /**
80
+ * Filter by tags (OR logic - worker must have at least one tag)
81
+ * @param {Array} results - Search results
82
+ * @param {string[]} tags - Tags to filter by
83
+ * @returns {Array} Filtered results
84
+ */
85
+ function filterByAnyTag(results, tags) {
86
+ if (!tags || tags.length === 0) return results;
87
+
88
+ const tagsLower = tags.map(t => t.toLowerCase());
89
+
90
+ return results.filter(worker => {
91
+ const workerTags = new Set((worker.tags || []).map(t => t.toLowerCase()));
92
+ return tagsLower.some(tag => workerTags.has(tag));
93
+ });
94
+ }
95
+
96
+ /**
97
+ * Filter by subcategory
98
+ * @param {Array} results - Search results
99
+ * @param {string} subcategory - Subcategory to filter by
100
+ * @returns {Array} Filtered results
101
+ */
102
+ function filterBySubcategory(results, subcategory) {
103
+ if (!subcategory) return results;
104
+
105
+ const subcategoryLower = subcategory.toLowerCase();
106
+ return results.filter(worker => {
107
+ const workerSubcategory = (worker.subcategory || '').toLowerCase();
108
+ return workerSubcategory === subcategoryLower;
109
+ });
110
+ }
111
+
112
+ /**
113
+ * Filter by task format
114
+ * @param {Array} results - Search results
115
+ * @param {string} taskFormat - Task format (e.g., 'TASK-FORMAT-V1')
116
+ * @returns {Array} Filtered results
117
+ */
118
+ function filterByTaskFormat(results, taskFormat) {
119
+ if (!taskFormat) return results;
120
+
121
+ return results.filter(worker =>
122
+ worker.taskFormat === taskFormat,
123
+ );
124
+ }
125
+
126
+ /**
127
+ * Filter by executor type
128
+ * @param {Array} results - Search results
129
+ * @param {string} executorType - Executor type (e.g., 'Worker', 'Agent')
130
+ * @returns {Array} Filtered results
131
+ */
132
+ function filterByExecutorType(results, executorType) {
133
+ if (!executorType) return results;
134
+
135
+ return results.filter(worker => {
136
+ const executorTypes = worker.executorTypes || [];
137
+ return executorTypes.includes(executorType);
138
+ });
139
+ }
140
+
141
+ /**
142
+ * Combine multiple filters
143
+ * @param {Array} results - Search results
144
+ * @param {object[]} filterList - Array of filter objects {type, value}
145
+ * @returns {Array} Filtered results
146
+ */
147
+ function applyMultipleFilters(results, filterList) {
148
+ let filtered = results;
149
+
150
+ for (const filter of filterList) {
151
+ switch (filter.type) {
152
+ case 'category':
153
+ filtered = filterByCategory(filtered, filter.value);
154
+ break;
155
+ case 'tags':
156
+ filtered = filterByTags(filtered, filter.value);
157
+ break;
158
+ case 'anyTag':
159
+ filtered = filterByAnyTag(filtered, filter.value);
160
+ break;
161
+ case 'subcategory':
162
+ filtered = filterBySubcategory(filtered, filter.value);
163
+ break;
164
+ case 'taskFormat':
165
+ filtered = filterByTaskFormat(filtered, filter.value);
166
+ break;
167
+ case 'executorType':
168
+ filtered = filterByExecutorType(filtered, filter.value);
169
+ break;
170
+ }
171
+ }
172
+
173
+ return filtered;
174
+ }
175
+
176
+ module.exports = {
177
+ applyFilters,
178
+ filterByCategory,
179
+ filterByTags,
180
+ filterByAnyTag,
181
+ filterBySubcategory,
182
+ filterByTaskFormat,
183
+ filterByExecutorType,
184
+ applyMultipleFilters,
185
+ };
@@ -0,0 +1,310 @@
1
+ /**
2
+ * Keyword Search Module
3
+ *
4
+ * Implements keyword-based search with fuzzy matching.
5
+ * Used as fallback when semantic search is unavailable.
6
+ *
7
+ * @module cli/commands/workers/search-keyword
8
+ * @version 1.0.0
9
+ * @story 2.7 - Discovery CLI Search
10
+ */
11
+
12
+ const { getRegistry } = require('../../../core/registry/registry-loader');
13
+
14
+ /**
15
+ * Calculate Levenshtein distance between two strings
16
+ * @param {string} a - First string
17
+ * @param {string} b - Second string
18
+ * @returns {number} Edit distance
19
+ */
20
+ function levenshteinDistance(a, b) {
21
+ const matrix = [];
22
+
23
+ // Initialize matrix
24
+ for (let i = 0; i <= b.length; i++) {
25
+ matrix[i] = [i];
26
+ }
27
+ for (let j = 0; j <= a.length; j++) {
28
+ matrix[0][j] = j;
29
+ }
30
+
31
+ // Fill matrix
32
+ for (let i = 1; i <= b.length; i++) {
33
+ for (let j = 1; j <= a.length; j++) {
34
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
35
+ matrix[i][j] = matrix[i - 1][j - 1];
36
+ } else {
37
+ matrix[i][j] = Math.min(
38
+ matrix[i - 1][j - 1] + 1, // substitution
39
+ matrix[i][j - 1] + 1, // insertion
40
+ matrix[i - 1][j] + 1, // deletion
41
+ );
42
+ }
43
+ }
44
+ }
45
+
46
+ return matrix[b.length][a.length];
47
+ }
48
+
49
+ /**
50
+ * Calculate fuzzy match score (0-100) - Optimized version
51
+ * @param {string} text - Text to search in
52
+ * @param {string} query - Search query
53
+ * @returns {number} Match score
54
+ */
55
+ function fuzzyMatchScore(text, query) {
56
+ if (!text || !query) return 0;
57
+
58
+ const textLower = text.toLowerCase();
59
+ const queryLower = query.toLowerCase();
60
+
61
+ // Exact match - early exit
62
+ if (textLower === queryLower) {
63
+ return 100;
64
+ }
65
+
66
+ // Contains exact query - early exit
67
+ if (textLower.includes(queryLower)) {
68
+ // Higher score if at word boundary
69
+ const wordBoundaryRegex = new RegExp(`\\b${escapeRegex(queryLower)}\\b`);
70
+ if (wordBoundaryRegex.test(textLower)) {
71
+ return 95;
72
+ }
73
+ return 85;
74
+ }
75
+
76
+ // Check individual words
77
+ const queryWords = queryLower.split(/\s+/).filter(w => w.length > 0);
78
+ const textWords = textLower.split(/\s+/).filter(w => w.length > 0);
79
+
80
+ // Quick check: if no word overlap possible, return early
81
+ if (textWords.length === 0 || queryWords.length === 0) {
82
+ return 0;
83
+ }
84
+
85
+ let wordMatchScore = 0;
86
+ let matchedWords = 0;
87
+
88
+ for (const queryWord of queryWords) {
89
+ let bestWordScore = 0;
90
+
91
+ // Quick exact/contains checks first (avoid Levenshtein when possible)
92
+ for (const textWord of textWords) {
93
+ // Exact word match
94
+ if (textWord === queryWord) {
95
+ bestWordScore = 100;
96
+ break; // Can't do better, exit early
97
+ }
98
+
99
+ // Word starts with query
100
+ if (textWord.startsWith(queryWord)) {
101
+ bestWordScore = Math.max(bestWordScore, 90);
102
+ continue; // Might find exact match later
103
+ }
104
+
105
+ // Query starts with text word (partial match)
106
+ if (queryWord.startsWith(textWord) && textWord.length >= 3) {
107
+ bestWordScore = Math.max(bestWordScore, 85);
108
+ continue;
109
+ }
110
+
111
+ // Word contains query
112
+ if (textWord.includes(queryWord) && queryWord.length >= 3) {
113
+ bestWordScore = Math.max(bestWordScore, 80);
114
+ continue;
115
+ }
116
+ }
117
+
118
+ // Only do Levenshtein for short queries if no good match found
119
+ // This is the expensive part - skip it when we already have decent score
120
+ if (bestWordScore < 70 && queryWord.length <= 8) {
121
+ for (const textWord of textWords) {
122
+ // Skip very different length words
123
+ const lenDiff = Math.abs(queryWord.length - textWord.length);
124
+ if (lenDiff > 3) continue;
125
+
126
+ const distance = levenshteinDistance(queryWord, textWord);
127
+ const maxLen = Math.max(queryWord.length, textWord.length);
128
+ const similarity = 1 - (distance / maxLen);
129
+
130
+ if (similarity >= 0.7) {
131
+ bestWordScore = Math.max(bestWordScore, Math.round(similarity * 70));
132
+ }
133
+ }
134
+ }
135
+
136
+ if (bestWordScore > 0) {
137
+ matchedWords++;
138
+ wordMatchScore += bestWordScore;
139
+ }
140
+ }
141
+
142
+ if (matchedWords === 0) {
143
+ return 0;
144
+ }
145
+
146
+ // Calculate average word score weighted by matched words ratio
147
+ const avgWordScore = wordMatchScore / queryWords.length;
148
+ const matchedRatio = matchedWords / queryWords.length;
149
+
150
+ return Math.round(avgWordScore * matchedRatio);
151
+ }
152
+
153
+ /**
154
+ * Escape special regex characters
155
+ * @param {string} str - String to escape
156
+ * @returns {string} Escaped string
157
+ */
158
+ function escapeRegex(str) {
159
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
160
+ }
161
+
162
+ /**
163
+ * Build searchable text fields from worker
164
+ * @param {object} worker - Worker object
165
+ * @returns {object} Object with searchable fields
166
+ */
167
+ function buildSearchFields(worker) {
168
+ return {
169
+ id: worker.id || '',
170
+ name: worker.name || '',
171
+ description: worker.description || '',
172
+ category: worker.category || '',
173
+ subcategory: worker.subcategory || '',
174
+ tags: (worker.tags || []).join(' '),
175
+ inputs: (worker.inputs || []).join(' '),
176
+ outputs: (worker.outputs || []).join(' '),
177
+ combined: [
178
+ worker.id,
179
+ worker.name,
180
+ worker.description,
181
+ worker.category,
182
+ worker.subcategory,
183
+ ...(worker.tags || []),
184
+ ...(worker.inputs || []),
185
+ ...(worker.outputs || []),
186
+ ].filter(Boolean).join(' '),
187
+ };
188
+ }
189
+
190
+ /**
191
+ * Perform keyword search with fuzzy matching - Optimized version
192
+ * @param {string} query - Search query
193
+ * @returns {Promise<Array<{worker: object, score: number}>>} Search results with scores
194
+ */
195
+ async function searchKeyword(query) {
196
+ const registry = getRegistry();
197
+ const workers = await registry.getAll();
198
+
199
+ const results = [];
200
+ const queryLower = query.toLowerCase().trim();
201
+
202
+ for (const worker of workers) {
203
+ // Quick pre-check: does ID or name contain query?
204
+ const idLower = (worker.id || '').toLowerCase();
205
+ const nameLower = (worker.name || '').toLowerCase();
206
+
207
+ // Fast path: exact ID match
208
+ if (idLower === queryLower) {
209
+ results.push({ ...worker, score: 100, matchType: 'id' });
210
+ continue;
211
+ }
212
+
213
+ // Fast path: ID contains query
214
+ if (idLower.includes(queryLower)) {
215
+ results.push({ ...worker, score: 95, matchType: 'id' });
216
+ continue;
217
+ }
218
+
219
+ // Fast path: name contains query
220
+ if (nameLower.includes(queryLower)) {
221
+ results.push({ ...worker, score: 90, matchType: 'name' });
222
+ continue;
223
+ }
224
+
225
+ // Check tags quickly
226
+ const tags = (worker.tags || []).map(t => t.toLowerCase());
227
+ const tagMatch = tags.find(t => t === queryLower || t.includes(queryLower));
228
+ if (tagMatch) {
229
+ results.push({ ...worker, score: 85, matchType: 'tags' });
230
+ continue;
231
+ }
232
+
233
+ // Slower path: full fuzzy search on all fields
234
+ const fields = buildSearchFields(worker);
235
+
236
+ // Only do expensive fuzzy scoring on important fields
237
+ let bestScore = 0;
238
+ let matchType = 'combined';
239
+
240
+ // Check ID with fuzzy
241
+ const idScore = fuzzyMatchScore(fields.id, queryLower) * 1.5;
242
+ if (idScore > bestScore) {
243
+ bestScore = idScore;
244
+ matchType = 'id';
245
+ }
246
+
247
+ // Check name with fuzzy
248
+ const nameScore = fuzzyMatchScore(fields.name, queryLower) * 1.3;
249
+ if (nameScore > bestScore) {
250
+ bestScore = nameScore;
251
+ matchType = 'name';
252
+ }
253
+
254
+ // Check description (skip if we already have good score)
255
+ if (bestScore < 70) {
256
+ const descScore = fuzzyMatchScore(fields.description, queryLower) * 0.8;
257
+ if (descScore > bestScore) {
258
+ bestScore = descScore;
259
+ matchType = 'description';
260
+ }
261
+ }
262
+
263
+ // Include results with score above threshold
264
+ if (bestScore >= 20) {
265
+ results.push({
266
+ ...worker,
267
+ score: Math.round(Math.min(bestScore, 100)),
268
+ matchType: matchType,
269
+ });
270
+ }
271
+ }
272
+
273
+ // Sort by score descending
274
+ results.sort((a, b) => b.score - a.score);
275
+
276
+ return results;
277
+ }
278
+
279
+ /**
280
+ * Search by exact tag match
281
+ * @param {string[]} tags - Tags to search for
282
+ * @returns {Promise<Array>} Workers matching any tag
283
+ */
284
+ async function searchByTags(tags) {
285
+ const registry = getRegistry();
286
+ const results = [];
287
+
288
+ for (const tag of tags) {
289
+ const workers = await registry.getByTag(tag);
290
+ for (const worker of workers) {
291
+ if (!results.find(r => r.id === worker.id)) {
292
+ results.push({
293
+ ...worker,
294
+ score: 100,
295
+ matchType: 'tag-exact',
296
+ });
297
+ }
298
+ }
299
+ }
300
+
301
+ return results;
302
+ }
303
+
304
+ module.exports = {
305
+ searchKeyword,
306
+ searchByTags,
307
+ fuzzyMatchScore,
308
+ levenshteinDistance,
309
+ buildSearchFields,
310
+ };