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,265 @@
1
+ /**
2
+ * List Table Formatter
3
+ *
4
+ * Formats worker list as a table with columns.
5
+ *
6
+ * @module cli/commands/workers/formatters/list-table
7
+ * @version 1.0.0
8
+ * @story 2.8-2.9 - Discovery CLI Info & List
9
+ */
10
+
11
+ const yaml = require('js-yaml');
12
+
13
+ /**
14
+ * Column definitions with default widths
15
+ */
16
+ const COLUMNS = {
17
+ num: { header: '#', width: 4 },
18
+ id: { header: 'ID', width: 30 },
19
+ name: { header: 'NAME', width: 30 },
20
+ category: { header: 'CATEGORY', width: 12 },
21
+ subcategory: { header: 'SUBCATEGORY', width: 15 },
22
+ };
23
+
24
+ /**
25
+ * Format workers as table
26
+ * @param {Array} workers - Array of workers
27
+ * @param {object} options - Formatting options
28
+ * @param {object} options.pagination - Pagination info
29
+ * @param {boolean} options.verbose - Show verbose output
30
+ * @returns {string} Table formatted output
31
+ */
32
+ function formatTable(workers, options = {}) {
33
+ const { pagination, verbose = false } = options;
34
+
35
+ if (workers.length === 0) {
36
+ return 'No workers found.\n';
37
+ }
38
+
39
+ // Calculate dynamic column widths based on content
40
+ const idWidth = Math.min(35, Math.max(COLUMNS.id.width, ...workers.map(w => w.id.length)));
41
+ const nameWidth = Math.min(35, Math.max(COLUMNS.name.width, ...workers.map(w => w.name.length)));
42
+ const categoryWidth = Math.min(15, Math.max(COLUMNS.category.width, ...workers.map(w => (w.category || '').length)));
43
+ const subcategoryWidth = Math.min(15, Math.max(COLUMNS.subcategory.width, ...workers.map(w => (w.subcategory || '').length)));
44
+
45
+ let output = '';
46
+
47
+ // Table header
48
+ output += `${'#'.padEnd(4)} `;
49
+ output += `${'ID'.padEnd(idWidth)} `;
50
+ output += `${'NAME'.padEnd(nameWidth)} `;
51
+ output += `${'CATEGORY'.padEnd(categoryWidth)} `;
52
+ output += `${'SUBCATEGORY'.padEnd(subcategoryWidth)}\n`;
53
+
54
+ // Header separator
55
+ output += `${'─'.repeat(4)} `;
56
+ output += `${'─'.repeat(idWidth)} `;
57
+ output += `${'─'.repeat(nameWidth)} `;
58
+ output += `${'─'.repeat(categoryWidth)} `;
59
+ output += `${'─'.repeat(subcategoryWidth)}\n`;
60
+
61
+ // Determine starting row number based on pagination
62
+ const startNum = pagination ? pagination.startIndex : 1;
63
+
64
+ // Table rows
65
+ workers.forEach((worker, index) => {
66
+ const num = (startNum + index).toString().padEnd(4);
67
+ const id = truncate(worker.id, idWidth).padEnd(idWidth);
68
+ const name = truncate(worker.name, nameWidth).padEnd(nameWidth);
69
+ const category = truncate(worker.category || '', categoryWidth).padEnd(categoryWidth);
70
+ const subcategory = truncate(worker.subcategory || '', subcategoryWidth).padEnd(subcategoryWidth);
71
+
72
+ output += `${num} ${id} ${name} ${category} ${subcategory}\n`;
73
+ });
74
+
75
+ // Pagination info
76
+ if (pagination) {
77
+ output += `\n${formatPaginationLine(pagination)}`;
78
+ }
79
+
80
+ // Verbose debug info
81
+ if (verbose) {
82
+ output += '\n[Debug Info]\n';
83
+ output += ` Displayed: ${workers.length} workers\n`;
84
+ if (pagination) {
85
+ output += ` Page: ${pagination.page}/${pagination.totalPages}\n`;
86
+ }
87
+ }
88
+
89
+ return output;
90
+ }
91
+
92
+ /**
93
+ * Format workers as JSON list
94
+ * @param {Array} workers - Array of workers
95
+ * @param {object} options - Formatting options
96
+ * @param {object} options.pagination - Pagination info
97
+ * @returns {string} JSON string
98
+ */
99
+ function formatJSON(workers, options = {}) {
100
+ const { pagination } = options;
101
+
102
+ const output = workers.map(worker => ({
103
+ id: worker.id,
104
+ name: worker.name,
105
+ category: worker.category,
106
+ subcategory: worker.subcategory || null,
107
+ tags: worker.tags || [],
108
+ path: worker.path,
109
+ }));
110
+
111
+ if (pagination) {
112
+ return JSON.stringify({
113
+ data: output,
114
+ pagination: {
115
+ page: pagination.page,
116
+ limit: pagination.limit,
117
+ totalItems: pagination.totalItems,
118
+ totalPages: pagination.totalPages,
119
+ },
120
+ }, null, 2);
121
+ }
122
+
123
+ return JSON.stringify(output, null, 2);
124
+ }
125
+
126
+ /**
127
+ * Format workers as YAML list
128
+ * @param {Array} workers - Array of workers
129
+ * @param {object} options - Formatting options
130
+ * @param {object} options.pagination - Pagination info
131
+ * @returns {string} YAML string
132
+ */
133
+ function formatYAML(workers, options = {}) {
134
+ const { pagination } = options;
135
+
136
+ const output = workers.map(worker => ({
137
+ id: worker.id,
138
+ name: worker.name,
139
+ category: worker.category,
140
+ subcategory: worker.subcategory || null,
141
+ tags: worker.tags || [],
142
+ path: worker.path,
143
+ }));
144
+
145
+ if (pagination) {
146
+ return yaml.dump({
147
+ data: output,
148
+ pagination: {
149
+ page: pagination.page,
150
+ limit: pagination.limit,
151
+ totalItems: pagination.totalItems,
152
+ totalPages: pagination.totalPages,
153
+ },
154
+ }, {
155
+ indent: 2,
156
+ lineWidth: 120,
157
+ noRefs: true,
158
+ });
159
+ }
160
+
161
+ return yaml.dump(output, {
162
+ indent: 2,
163
+ lineWidth: 120,
164
+ noRefs: true,
165
+ });
166
+ }
167
+
168
+ /**
169
+ * Format count summary
170
+ * @param {object} categories - Categories object with counts
171
+ * @param {number} totalWorkers - Total worker count
172
+ * @param {object} options - Formatting options
173
+ * @returns {string} Count summary output
174
+ */
175
+ function formatCount(categories, totalWorkers, options = {}) {
176
+ const { verbose = false } = options;
177
+
178
+ let output = `Total: ${totalWorkers} workers\n\n`;
179
+
180
+ // Sort categories by count descending
181
+ const sorted = Object.entries(categories)
182
+ .sort((a, b) => b[1].count - a[1].count);
183
+
184
+ for (const [name, data] of sorted) {
185
+ output += `${name.toUpperCase().padEnd(15)} ${data.count.toString().padStart(4)} workers\n`;
186
+
187
+ // Show subcategories if verbose
188
+ if (verbose && data.subcategories && data.subcategories.length > 0) {
189
+ for (const sub of data.subcategories) {
190
+ output += ` └── ${sub}\n`;
191
+ }
192
+ }
193
+ }
194
+
195
+ return output;
196
+ }
197
+
198
+ /**
199
+ * Format list output based on format option
200
+ * @param {Array} workers - Array of workers
201
+ * @param {object} options - Formatting options
202
+ * @param {string} options.format - Output format (table, json, yaml, tree)
203
+ * @param {object} options.pagination - Pagination info
204
+ * @param {boolean} options.verbose - Show verbose output
205
+ * @returns {string} Formatted output
206
+ */
207
+ function formatList(workers, options = {}) {
208
+ const format = (options.format || 'table').toLowerCase();
209
+
210
+ switch (format) {
211
+ case 'json':
212
+ return formatJSON(workers, options);
213
+ case 'yaml':
214
+ return formatYAML(workers, options);
215
+ case 'table':
216
+ default:
217
+ return formatTable(workers, options);
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Truncate string with ellipsis
223
+ * @param {string} str - String to truncate
224
+ * @param {number} maxLen - Maximum length
225
+ * @returns {string} Truncated string
226
+ */
227
+ function truncate(str, maxLen) {
228
+ if (!str) return '';
229
+ if (str.length <= maxLen) return str;
230
+ return str.substring(0, maxLen - 1) + '…';
231
+ }
232
+
233
+ /**
234
+ * Format pagination line
235
+ * @param {object} pagination - Pagination object
236
+ * @returns {string} Pagination line
237
+ */
238
+ function formatPaginationLine(pagination) {
239
+ const { startIndex, endIndex, totalItems, page, totalPages } = pagination;
240
+
241
+ if (totalItems === 0) return 'No items found.';
242
+ if (totalPages === 1) return `Showing all ${totalItems} workers.`;
243
+
244
+ let line = `Showing ${startIndex}-${endIndex} of ${totalItems} workers`;
245
+ line += ` (page ${page}/${totalPages})`;
246
+
247
+ const hints = [];
248
+ if (page > 1) hints.push(`--page=${page - 1} prev`);
249
+ if (page < totalPages) hints.push(`--page=${page + 1} next`);
250
+
251
+ if (hints.length > 0) {
252
+ line += ` [${hints.join(', ')}]`;
253
+ }
254
+
255
+ return line;
256
+ }
257
+
258
+ module.exports = {
259
+ formatTable,
260
+ formatJSON,
261
+ formatYAML,
262
+ formatList,
263
+ formatCount,
264
+ truncate,
265
+ };
@@ -0,0 +1,159 @@
1
+ /**
2
+ * List Tree Formatter
3
+ *
4
+ * Formats worker list as a tree view grouped by category/subcategory.
5
+ *
6
+ * @module cli/commands/workers/formatters/list-tree
7
+ * @version 1.0.0
8
+ * @story 2.8-2.9 - Discovery CLI Info & List
9
+ */
10
+
11
+ /**
12
+ * Tree drawing characters
13
+ */
14
+ const TREE = {
15
+ branch: '├──',
16
+ lastBranch: '└──',
17
+ vertical: '│',
18
+ empty: ' ',
19
+ };
20
+
21
+ /**
22
+ * Group workers by category and subcategory
23
+ * @param {Array} workers - Array of workers
24
+ * @returns {object} Grouped workers
25
+ */
26
+ function groupWorkers(workers) {
27
+ const groups = {};
28
+
29
+ for (const worker of workers) {
30
+ const category = worker.category || 'uncategorized';
31
+ const subcategory = worker.subcategory || 'general';
32
+
33
+ if (!groups[category]) {
34
+ groups[category] = {
35
+ count: 0,
36
+ subcategories: {},
37
+ };
38
+ }
39
+
40
+ if (!groups[category].subcategories[subcategory]) {
41
+ groups[category].subcategories[subcategory] = [];
42
+ }
43
+
44
+ groups[category].subcategories[subcategory].push(worker);
45
+ groups[category].count++;
46
+ }
47
+
48
+ return groups;
49
+ }
50
+
51
+ /**
52
+ * Format workers as tree view
53
+ * @param {Array} workers - Array of workers
54
+ * @param {object} options - Formatting options
55
+ * @param {boolean} options.collapsed - Show collapsed view (hide individual workers)
56
+ * @param {number} options.maxPerSubcategory - Max workers to show per subcategory
57
+ * @param {boolean} options.verbose - Show verbose output
58
+ * @returns {string} Tree formatted output
59
+ */
60
+ function formatTree(workers, options = {}) {
61
+ const { collapsed = false, maxPerSubcategory = 4, verbose = false } = options;
62
+
63
+ if (workers.length === 0) {
64
+ return 'No workers found.\n';
65
+ }
66
+
67
+ const groups = groupWorkers(workers);
68
+ const categories = Object.keys(groups).sort();
69
+
70
+ let output = '';
71
+ output += `${workers.length} workers available in ${categories.length} categories:\n\n`;
72
+
73
+ for (let catIdx = 0; catIdx < categories.length; catIdx++) {
74
+ const category = categories[catIdx];
75
+ const group = groups[category];
76
+ const isLastCategory = catIdx === categories.length - 1;
77
+
78
+ // Category header (uppercase)
79
+ output += `${category.toUpperCase()} (${group.count} workers)\n`;
80
+
81
+ // Subcategories
82
+ const subcategories = Object.keys(group.subcategories).sort();
83
+
84
+ for (let subIdx = 0; subIdx < subcategories.length; subIdx++) {
85
+ const subcategory = subcategories[subIdx];
86
+ const subWorkers = group.subcategories[subcategory];
87
+ const isLastSubcategory = subIdx === subcategories.length - 1;
88
+ const subPrefix = isLastSubcategory ? TREE.lastBranch : TREE.branch;
89
+
90
+ // Subcategory header with count
91
+ const subcategoryTitle = capitalize(subcategory);
92
+ output += `${subPrefix} ${subcategoryTitle} (${subWorkers.length})\n`;
93
+
94
+ // Workers (if not collapsed)
95
+ if (!collapsed) {
96
+ const workersToShow = subWorkers.slice(0, maxPerSubcategory);
97
+ const hiddenCount = subWorkers.length - workersToShow.length;
98
+ const continuePrefix = isLastSubcategory ? TREE.empty : TREE.vertical;
99
+
100
+ for (let workerIdx = 0; workerIdx < workersToShow.length; workerIdx++) {
101
+ const worker = workersToShow[workerIdx];
102
+ const isLastWorker = workerIdx === workersToShow.length - 1 && hiddenCount === 0;
103
+ const workerPrefix = isLastWorker ? TREE.lastBranch : TREE.branch;
104
+
105
+ output += `${continuePrefix} ${workerPrefix} ${worker.id}\n`;
106
+ }
107
+
108
+ // Show hidden count
109
+ if (hiddenCount > 0) {
110
+ output += `${continuePrefix} ${TREE.lastBranch} ... (+${hiddenCount} more)\n`;
111
+ }
112
+ }
113
+ }
114
+
115
+ // Add blank line between categories (except last)
116
+ if (!isLastCategory) {
117
+ output += '\n';
118
+ }
119
+ }
120
+
121
+ // Footer hints
122
+ output += '\nUse \'aios workers info <id>\' for details.\n';
123
+ output += 'Use \'aios workers search <query>\' to search.\n';
124
+
125
+ // Verbose debug info
126
+ if (verbose) {
127
+ output += '\n[Debug Info]\n';
128
+ output += ` Total workers: ${workers.length}\n`;
129
+ output += ` Categories: ${categories.join(', ')}\n`;
130
+ }
131
+
132
+ return output;
133
+ }
134
+
135
+ /**
136
+ * Format workers as collapsed tree (categories only)
137
+ * @param {Array} workers - Array of workers
138
+ * @param {object} options - Formatting options
139
+ * @returns {string} Collapsed tree output
140
+ */
141
+ function formatTreeCollapsed(workers, options = {}) {
142
+ return formatTree(workers, { ...options, collapsed: true });
143
+ }
144
+
145
+ /**
146
+ * Capitalize first letter
147
+ * @param {string} str - String to capitalize
148
+ * @returns {string} Capitalized string
149
+ */
150
+ function capitalize(str) {
151
+ if (!str) return '';
152
+ return str.charAt(0).toUpperCase() + str.slice(1);
153
+ }
154
+
155
+ module.exports = {
156
+ formatTree,
157
+ formatTreeCollapsed,
158
+ groupWorkers,
159
+ };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Workers Command Module
3
+ *
4
+ * Entry point for all workers-related CLI commands.
5
+ * Includes search, list, and info subcommands.
6
+ *
7
+ * @module cli/commands/workers
8
+ * @version 1.1.0
9
+ * @story 2.7 - Discovery CLI Search
10
+ * @story 2.8-2.9 - Discovery CLI Info & List
11
+ */
12
+
13
+ const { Command } = require('commander');
14
+ const { createSearchCommand } = require('./search');
15
+ const { createInfoCommand } = require('./info');
16
+ const { createListCommand } = require('./list');
17
+
18
+ /**
19
+ * Create the workers command with all subcommands
20
+ * @returns {Command} Commander command instance
21
+ */
22
+ function createWorkersCommand() {
23
+ const workers = new Command('workers');
24
+
25
+ workers
26
+ .description('Manage and discover workers in the service registry')
27
+ .addHelpText('after', `
28
+ Commands:
29
+ search <query> Search for workers matching a query
30
+ list List all workers grouped by category
31
+ info <id> Show detailed information about a worker
32
+
33
+ Examples:
34
+ $ aios workers search "json transformation"
35
+ $ aios workers search "data" --category=etl
36
+ $ aios workers list --category=testing
37
+ $ aios workers list --format=table --page=2
38
+ $ aios workers info json-csv-transformer
39
+ $ aios workers info architect-checklist --format=json
40
+ `);
41
+
42
+ // Add search subcommand (Story 2.7)
43
+ workers.addCommand(createSearchCommand());
44
+
45
+ // Add info subcommand (Story 2.8)
46
+ workers.addCommand(createInfoCommand());
47
+
48
+ // Add list subcommand (Story 2.9)
49
+ workers.addCommand(createListCommand());
50
+
51
+ return workers;
52
+ }
53
+
54
+ module.exports = {
55
+ createWorkersCommand,
56
+ };
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Info Command - Show detailed worker information
3
+ *
4
+ * Implements `aios workers info <id>` CLI command.
5
+ * Displays complete worker metadata, usage examples, and related workers.
6
+ *
7
+ * @module cli/commands/workers/info
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 { formatInfo, formatNotFoundError } = require('./formatters/info-formatter');
15
+ const { levenshteinDistance } = require('./search-keyword');
16
+
17
+ /**
18
+ * Create the info command
19
+ * @returns {Command} Commander command instance
20
+ */
21
+ function createInfoCommand() {
22
+ const info = new Command('info');
23
+
24
+ info
25
+ .description('Show detailed information about a worker')
26
+ .argument('<id>', 'Worker ID to display')
27
+ .option('-f, --format <format>', 'Output format: pretty, json, yaml', 'pretty')
28
+ .option('-v, --verbose', 'Show verbose/debug output')
29
+ .addHelpText('after', `
30
+ Examples:
31
+ $ aios workers info json-csv-transformer
32
+ $ aios workers info architect-checklist --format=json
33
+ $ aios workers info create-story --format=yaml
34
+ $ aios workers info data-analyzer --verbose
35
+
36
+ Output Formats:
37
+ pretty Formatted text with sections and boxes (default)
38
+ json JSON object with all metadata
39
+ yaml YAML document with all metadata
40
+ `)
41
+ .action(executeInfo);
42
+
43
+ return info;
44
+ }
45
+
46
+ /**
47
+ * Execute the info command
48
+ * @param {string} id - Worker ID to lookup
49
+ * @param {object} options - Command options
50
+ */
51
+ async function executeInfo(id, options) {
52
+ const startTime = Date.now();
53
+
54
+ try {
55
+ // Validate ID
56
+ if (!id || id.trim().length === 0) {
57
+ console.error('Error: Worker ID cannot be empty');
58
+ process.exit(1);
59
+ }
60
+
61
+ const trimmedId = id.trim().toLowerCase();
62
+ const registry = getRegistry();
63
+
64
+ if (options.verbose) {
65
+ console.log(`Looking up worker: "${trimmedId}"`);
66
+ console.log(`Output format: ${options.format}`);
67
+ console.log('');
68
+ }
69
+
70
+ // Try to get worker by exact ID
71
+ const worker = await registry.getById(trimmedId);
72
+
73
+ if (!worker) {
74
+ // Worker not found - find suggestions
75
+ const suggestions = await findSuggestions(registry, trimmedId);
76
+ console.error(formatNotFoundError(trimmedId, suggestions));
77
+ process.exit(1);
78
+ }
79
+
80
+ // Find related workers (same category/subcategory or shared tags)
81
+ const relatedWorkers = await findRelatedWorkers(registry, worker);
82
+
83
+ // Format and output
84
+ const output = formatInfo(worker, {
85
+ format: options.format,
86
+ relatedWorkers,
87
+ verbose: options.verbose,
88
+ });
89
+
90
+ console.log(output);
91
+
92
+ // Performance check
93
+ const duration = Date.now() - startTime;
94
+ if (options.verbose) {
95
+ console.log(`\n[Performance: ${duration}ms]`);
96
+ }
97
+
98
+ // Warn if over target
99
+ if (duration > 500) {
100
+ console.warn(`\nWarning: Info command took ${duration}ms (target: < 500ms)`);
101
+ }
102
+
103
+ } catch (error) {
104
+ console.error(`Error: ${error.message}`);
105
+ if (options.verbose) {
106
+ console.error(error.stack);
107
+ }
108
+ process.exit(1);
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Find worker suggestions for "did you mean?" feature
114
+ * @param {ServiceRegistry} registry - Registry instance
115
+ * @param {string} invalidId - Invalid ID entered by user
116
+ * @returns {Promise<Array>} Array of suggested workers
117
+ */
118
+ async function findSuggestions(registry, invalidId) {
119
+ const workers = await registry.getAll();
120
+ const suggestions = [];
121
+
122
+ for (const worker of workers) {
123
+ const idLower = worker.id.toLowerCase();
124
+
125
+ // Check for partial match
126
+ if (idLower.includes(invalidId) || invalidId.includes(idLower)) {
127
+ suggestions.push({ worker, score: 90 });
128
+ continue;
129
+ }
130
+
131
+ // Check Levenshtein distance for similar IDs
132
+ const distance = levenshteinDistance(invalidId, idLower);
133
+ const maxLen = Math.max(invalidId.length, idLower.length);
134
+ const similarity = 1 - (distance / maxLen);
135
+
136
+ if (similarity >= 0.5) {
137
+ suggestions.push({ worker, score: Math.round(similarity * 100) });
138
+ }
139
+ }
140
+
141
+ // Sort by score descending and return top 5
142
+ suggestions.sort((a, b) => b.score - a.score);
143
+ return suggestions.slice(0, 5).map(s => s.worker);
144
+ }
145
+
146
+ /**
147
+ * Find related workers based on category and tags
148
+ * @param {ServiceRegistry} registry - Registry instance
149
+ * @param {object} worker - Current worker
150
+ * @returns {Promise<Array>} Array of related workers
151
+ */
152
+ async function findRelatedWorkers(registry, worker) {
153
+ const related = new Map();
154
+
155
+ // Get workers in same category/subcategory
156
+ const categoryWorkers = await registry.getByCategory(worker.category);
157
+
158
+ for (const catWorker of categoryWorkers) {
159
+ if (catWorker.id === worker.id) continue;
160
+
161
+ // Higher priority for same subcategory
162
+ const score = catWorker.subcategory === worker.subcategory ? 10 : 5;
163
+ related.set(catWorker.id, { worker: catWorker, score });
164
+ }
165
+
166
+ // Get workers with shared tags
167
+ for (const tag of worker.tags || []) {
168
+ const tagWorkers = await registry.getByTag(tag);
169
+
170
+ for (const tagWorker of tagWorkers) {
171
+ if (tagWorker.id === worker.id) continue;
172
+
173
+ if (related.has(tagWorker.id)) {
174
+ // Increment score for shared tag
175
+ related.get(tagWorker.id).score += 2;
176
+ } else {
177
+ related.set(tagWorker.id, { worker: tagWorker, score: 2 });
178
+ }
179
+ }
180
+ }
181
+
182
+ // Sort by score descending
183
+ const sorted = Array.from(related.values())
184
+ .sort((a, b) => b.score - a.score);
185
+
186
+ return sorted.slice(0, 5).map(r => r.worker);
187
+ }
188
+
189
+ module.exports = {
190
+ createInfoCommand,
191
+ executeInfo,
192
+ findSuggestions,
193
+ findRelatedWorkers,
194
+ };