@aiwg/cli 0.0.0-bootstrap.0 → 2026.7.17

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 (466) hide show
  1. package/README.md +21 -1
  2. package/bin/aiwg.mjs +349 -0
  3. package/dist/src/a2a/agent-card.js +145 -0
  4. package/dist/src/a2a/client.js +411 -0
  5. package/dist/src/a2a/hitl-cli.js +171 -0
  6. package/dist/src/a2a/hitl-driver.js +370 -0
  7. package/dist/src/a2a/hitl.js +181 -0
  8. package/dist/src/a2a/http.js +193 -0
  9. package/dist/src/a2a/jcs.js +128 -0
  10. package/dist/src/a2a/jws.js +187 -0
  11. package/dist/src/a2a/types.js +24 -0
  12. package/dist/src/a2a/webhook.js +240 -0
  13. package/dist/src/activity-log/cli.js +348 -0
  14. package/dist/src/activity-log/parser.js +81 -0
  15. package/dist/src/activity-log/types.js +50 -0
  16. package/dist/src/agents/agent-deployer.js +367 -0
  17. package/dist/src/agents/agent-packager.js +271 -0
  18. package/dist/src/agents/agent-validator.js +271 -0
  19. package/dist/src/agents/grounding/knowledge-base.js +161 -0
  20. package/dist/src/agents/grounding/types.js +12 -0
  21. package/dist/src/agents/index.js +10 -0
  22. package/dist/src/agents/packaged-agent-inventory.js +75 -0
  23. package/dist/src/agents/types.js +7 -0
  24. package/dist/src/api/index.d.ts +10 -0
  25. package/dist/src/api/index.js +10 -0
  26. package/dist/src/artifacts/address-parser.js +73 -0
  27. package/dist/src/artifacts/audit/cli.js +183 -0
  28. package/dist/src/artifacts/audit/drift.js +122 -0
  29. package/dist/src/artifacts/audit/types.js +12 -0
  30. package/dist/src/artifacts/backends/graphology-backend.js +160 -0
  31. package/dist/src/artifacts/backends/json-backend.js +129 -0
  32. package/dist/src/artifacts/backends/sqlite-backend.js +199 -0
  33. package/dist/src/artifacts/browser-export.js +622 -0
  34. package/dist/src/artifacts/capability-resolver.js +94 -0
  35. package/dist/src/artifacts/checksum-manifest.js +91 -0
  36. package/dist/src/artifacts/citation-parser.js +162 -0
  37. package/dist/src/artifacts/cli.js +1462 -0
  38. package/dist/src/artifacts/corpus-tools/citation-densify.js +311 -0
  39. package/dist/src/artifacts/corpus-tools/cli.js +393 -0
  40. package/dist/src/artifacts/corpus-tools/corpus-graph.js +225 -0
  41. package/dist/src/artifacts/corpus-tools/curator.js +186 -0
  42. package/dist/src/artifacts/corpus-tools/discovery-log.js +70 -0
  43. package/dist/src/artifacts/corpus-tools/funder-network.js +141 -0
  44. package/dist/src/artifacts/corpus-tools/induction-audit.js +233 -0
  45. package/dist/src/artifacts/corpus-tools/integrity-scan.js +202 -0
  46. package/dist/src/artifacts/corpus-tools/profile-communities.js +166 -0
  47. package/dist/src/artifacts/corpus-tools/profile-edges.js +72 -0
  48. package/dist/src/artifacts/corpus-tools/profile-embed.js +113 -0
  49. package/dist/src/artifacts/corpus-tools/profile-generate-fm.js +167 -0
  50. package/dist/src/artifacts/corpus-tools/profile-generate.js +181 -0
  51. package/dist/src/artifacts/corpus-tools/profile-metrics.js +98 -0
  52. package/dist/src/artifacts/corpus-tools/profile-status.js +86 -0
  53. package/dist/src/artifacts/corpus-tools/profile-temporal.js +139 -0
  54. package/dist/src/artifacts/corpus-tools/radar-init.js +93 -0
  55. package/dist/src/artifacts/corpus-tools/radar-report.js +118 -0
  56. package/dist/src/artifacts/corpus-tools/radar-shared.js +189 -0
  57. package/dist/src/artifacts/corpus-tools/radar-status.js +68 -0
  58. package/dist/src/artifacts/corpus-tools/sidecar-lint.js +233 -0
  59. package/dist/src/artifacts/corpus-tools/sidecar-repair.js +277 -0
  60. package/dist/src/artifacts/corpus-tools/snapshot.js +591 -0
  61. package/dist/src/artifacts/corpus-tools/source-types.js +164 -0
  62. package/dist/src/artifacts/corpus-tools/vision-extract.js +243 -0
  63. package/dist/src/artifacts/corpus-views/build.js +126 -0
  64. package/dist/src/artifacts/corpus-views/corpus-config.js +124 -0
  65. package/dist/src/artifacts/corpus-views/ref-parser.js +437 -0
  66. package/dist/src/artifacts/corpus-views/renderers.js +353 -0
  67. package/dist/src/artifacts/corpus-views/taxonomies.js +131 -0
  68. package/dist/src/artifacts/dep-graph.js +173 -0
  69. package/dist/src/artifacts/discover-facets.js +375 -0
  70. package/dist/src/artifacts/embedding-index.js +354 -0
  71. package/dist/src/artifacts/enrichment/cli.js +240 -0
  72. package/dist/src/artifacts/enrichment/prompt.js +47 -0
  73. package/dist/src/artifacts/enrichment/store.js +90 -0
  74. package/dist/src/artifacts/enrichment/types.js +12 -0
  75. package/dist/src/artifacts/fortemi-core-query-adapter.js +475 -0
  76. package/dist/src/artifacts/fortemi-core-sync.js +251 -0
  77. package/dist/src/artifacts/fortemi-shard-export.js +44 -0
  78. package/dist/src/artifacts/fulltext.js +108 -0
  79. package/dist/src/artifacts/graph-backend.js +51 -0
  80. package/dist/src/artifacts/graph-query.js +247 -0
  81. package/dist/src/artifacts/hybrid-query.js +225 -0
  82. package/dist/src/artifacts/index-builder.js +1089 -0
  83. package/dist/src/artifacts/index-reader.js +112 -0
  84. package/dist/src/artifacts/index-status.js +193 -0
  85. package/dist/src/artifacts/legacy-index-migration.js +169 -0
  86. package/dist/src/artifacts/move.js +154 -0
  87. package/dist/src/artifacts/operational-state.js +239 -0
  88. package/dist/src/artifacts/prebuilt-build-lock.js +49 -0
  89. package/dist/src/artifacts/query-engine.js +1955 -0
  90. package/dist/src/artifacts/source-graph.js +529 -0
  91. package/dist/src/artifacts/stats.js +169 -0
  92. package/dist/src/artifacts/types.js +606 -0
  93. package/dist/src/artifacts/views/cli.js +293 -0
  94. package/dist/src/artifacts/views/definition.js +170 -0
  95. package/dist/src/artifacts/views/store.js +149 -0
  96. package/dist/src/artifacts/views/types.js +8 -0
  97. package/dist/src/artifacts/watcher.js +255 -0
  98. package/dist/src/catalog/builtin-models.json +636 -0
  99. package/dist/src/catalog/cli.js +228 -0
  100. package/dist/src/catalog/cli.mjs +289 -0
  101. package/dist/src/catalog/index.js +15 -0
  102. package/dist/src/catalog/loader.js +217 -0
  103. package/dist/src/catalog/loader.mjs +251 -0
  104. package/dist/src/catalog/sources.json +41 -0
  105. package/dist/src/catalog/types.js +8 -0
  106. package/dist/src/channel/manager.mjs +504 -0
  107. package/dist/src/cli/agent-spawn.js +178 -0
  108. package/dist/src/cli/cli-extension-loader.js +245 -0
  109. package/dist/src/cli/command-log.js +275 -0
  110. package/dist/src/cli/config-loader.js +232 -0
  111. package/dist/src/cli/env.js +82 -0
  112. package/dist/src/cli/errors.js +150 -0
  113. package/dist/src/cli/find-package-root.js +40 -0
  114. package/dist/src/cli/git-hooks.js +250 -0
  115. package/dist/src/cli/handlers/agentcard.js +206 -0
  116. package/dist/src/cli/handlers/artifacts.js +76 -0
  117. package/dist/src/cli/handlers/best-practices-audit.js +280 -0
  118. package/dist/src/cli/handlers/cockpit.js +137 -0
  119. package/dist/src/cli/handlers/command-log.js +37 -0
  120. package/dist/src/cli/handlers/daemon.js +59 -0
  121. package/dist/src/cli/handlers/diagnose.js +300 -0
  122. package/dist/src/cli/handlers/execution-mode.js +105 -0
  123. package/dist/src/cli/handlers/feedback.js +341 -0
  124. package/dist/src/cli/handlers/help.js +147 -0
  125. package/dist/src/cli/handlers/index.js +302 -0
  126. package/dist/src/cli/handlers/init.js +179 -0
  127. package/dist/src/cli/handlers/install.js +129 -0
  128. package/dist/src/cli/handlers/issues.js +46 -0
  129. package/dist/src/cli/handlers/lint.js +42 -0
  130. package/dist/src/cli/handlers/local-executor.js +315 -0
  131. package/dist/src/cli/handlers/marketplace.js +168 -0
  132. package/dist/src/cli/handlers/mc.js +1010 -0
  133. package/dist/src/cli/handlers/models.js +352 -0
  134. package/dist/src/cli/handlers/packages.js +155 -0
  135. package/dist/src/cli/handlers/ralph-launcher.js +717 -0
  136. package/dist/src/cli/handlers/ralph.js +575 -0
  137. package/dist/src/cli/handlers/refresh.js +432 -0
  138. package/dist/src/cli/handlers/regenerate.js +336 -0
  139. package/dist/src/cli/handlers/repo-access.js +109 -0
  140. package/dist/src/cli/handlers/run.js +165 -0
  141. package/dist/src/cli/handlers/runtime-info.js +301 -0
  142. package/dist/src/cli/handlers/sandbox.js +197 -0
  143. package/dist/src/cli/handlers/scaffolding.js +149 -0
  144. package/dist/src/cli/handlers/script-runner.js +121 -0
  145. package/dist/src/cli/handlers/sdlc-accelerate.js +148 -0
  146. package/dist/src/cli/handlers/serve.js +1835 -0
  147. package/dist/src/cli/handlers/session.js +348 -0
  148. package/dist/src/cli/handlers/setup.js +440 -0
  149. package/dist/src/cli/handlers/skill-lint.js +367 -0
  150. package/dist/src/cli/handlers/skill-usage.js +74 -0
  151. package/dist/src/cli/handlers/steward.js +567 -0
  152. package/dist/src/cli/handlers/subcommands.js +1702 -0
  153. package/dist/src/cli/handlers/team.js +337 -0
  154. package/dist/src/cli/handlers/types.js +11 -0
  155. package/dist/src/cli/handlers/use.js +2772 -0
  156. package/dist/src/cli/handlers/utilities.js +703 -0
  157. package/dist/src/cli/handlers/version.js +134 -0
  158. package/dist/src/cli/handlers/workspace-context.js +93 -0
  159. package/dist/src/cli/handlers/workspace.js +126 -0
  160. package/dist/src/cli/help-generator.js +178 -0
  161. package/dist/src/cli/hooks/builtin/activity-log-hook.js +126 -0
  162. package/dist/src/cli/hooks/executor.js +96 -0
  163. package/dist/src/cli/hooks/index.js +15 -0
  164. package/dist/src/cli/hooks/registry.js +143 -0
  165. package/dist/src/cli/hooks/types.js +13 -0
  166. package/dist/src/cli/log.js +492 -0
  167. package/dist/src/cli/project-isolation/detect.js +70 -0
  168. package/dist/src/cli/project-isolation/index.js +7 -0
  169. package/dist/src/cli/project-isolation/signals.js +17 -0
  170. package/dist/src/cli/project-isolation/warning.js +102 -0
  171. package/dist/src/cli/prompt-utils.js +155 -0
  172. package/dist/src/cli/provider-deployment-plan.js +126 -0
  173. package/dist/src/cli/provider-resolution.js +119 -0
  174. package/dist/src/cli/router.js +305 -0
  175. package/dist/src/cli/scope-resolver.js +392 -0
  176. package/dist/src/cli/skill-usage.js +616 -0
  177. package/dist/src/cli/ui.js +224 -0
  178. package/dist/src/cli/watch-service.js +203 -0
  179. package/dist/src/cli/workflow-orchestrator.js +478 -0
  180. package/dist/src/cli/workspace-signals.js +321 -0
  181. package/dist/src/community/footer.js +14 -0
  182. package/dist/src/community/links.js +123 -0
  183. package/dist/src/community/milestones.js +46 -0
  184. package/dist/src/community/nudge-policy.js +93 -0
  185. package/dist/src/config/aiwg-config.js +883 -0
  186. package/dist/src/config/cli.js +703 -0
  187. package/dist/src/config/gitignore.js +156 -0
  188. package/dist/src/config/project-artifacts.js +76 -0
  189. package/dist/src/config/user-config.js +428 -0
  190. package/dist/src/config/user-registry.js +127 -0
  191. package/dist/src/config/workspace.js +276 -0
  192. package/dist/src/contributors/detect.js +39 -0
  193. package/dist/src/contributors/discover.js +172 -0
  194. package/dist/src/contributors/heuristic.js +186 -0
  195. package/dist/src/contributors/index.js +11 -0
  196. package/dist/src/contributors/types.js +13 -0
  197. package/dist/src/contributors/validation.js +116 -0
  198. package/dist/src/data/community.schema.json +43 -0
  199. package/dist/src/data/community.yaml +16 -0
  200. package/dist/src/extensions/capability-index.js +270 -0
  201. package/dist/src/extensions/claude-hooks-installer.js +268 -0
  202. package/dist/src/extensions/commands/definitions.js +3485 -0
  203. package/dist/src/extensions/deployment-registration.js +463 -0
  204. package/dist/src/extensions/index.js +22 -0
  205. package/dist/src/extensions/loader.js +132 -0
  206. package/dist/src/extensions/managed-marker.js +100 -0
  207. package/dist/src/extensions/manifest.js +196 -0
  208. package/dist/src/extensions/project-local-activity.js +114 -0
  209. package/dist/src/extensions/project-local-discovery.js +261 -0
  210. package/dist/src/extensions/project-local-doctor.js +281 -0
  211. package/dist/src/extensions/project-local-gitignore.js +176 -0
  212. package/dist/src/extensions/project-local-paths.js +121 -0
  213. package/dist/src/extensions/project-local-promote.js +218 -0
  214. package/dist/src/extensions/project-local-remove.js +373 -0
  215. package/dist/src/extensions/project-local-scaffold.js +252 -0
  216. package/dist/src/extensions/project-quickref.js +291 -0
  217. package/dist/src/extensions/registry.js +368 -0
  218. package/dist/src/extensions/shadow-resolver.js +271 -0
  219. package/dist/src/extensions/types.js +86 -0
  220. package/dist/src/extensions/upstream-registry.js +195 -0
  221. package/dist/src/extensions/validation.js +631 -0
  222. package/dist/src/features/catalog.js +88 -0
  223. package/dist/src/features/cli.js +197 -0
  224. package/dist/src/features/installer.js +57 -0
  225. package/dist/src/features/paths.js +14 -0
  226. package/dist/src/features/runtime.js +21 -0
  227. package/dist/src/features/status.js +134 -0
  228. package/dist/src/hooks/laziness-detection.js +532 -0
  229. package/dist/src/intake/git-history-analyzer.js +486 -0
  230. package/dist/src/intake/index.js +9 -0
  231. package/dist/src/issues/cli.js +327 -0
  232. package/dist/src/issues/index.js +5 -0
  233. package/dist/src/issues/live.js +154 -0
  234. package/dist/src/issues/local.js +666 -0
  235. package/dist/src/issues/sync.js +143 -0
  236. package/dist/src/issues/types.js +2 -0
  237. package/dist/src/issues/workflows.js +164 -0
  238. package/dist/src/kb/cli.js +173 -0
  239. package/dist/src/lint/cli.js +171 -0
  240. package/dist/src/lint/loader.js +225 -0
  241. package/dist/src/lint/reporters.js +141 -0
  242. package/dist/src/lint/runner.js +364 -0
  243. package/dist/src/lint/types.js +10 -0
  244. package/dist/src/marketplace/cache.js +110 -0
  245. package/dist/src/marketplace/identifier.js +63 -0
  246. package/dist/src/marketplace/registry.js +36 -0
  247. package/dist/src/marketplace/sources/clawhub.js +53 -0
  248. package/dist/src/marketplace/sources/git.js +45 -0
  249. package/dist/src/marketplace/types.js +9 -0
  250. package/dist/src/mcp/adapters/codex-runtime.js +224 -0
  251. package/dist/src/mcp/cli.mjs +1197 -0
  252. package/dist/src/mcp/elicitation.mjs +149 -0
  253. package/dist/src/mcp/helpers.mjs +287 -0
  254. package/dist/src/mcp/index.mjs +11 -0
  255. package/dist/src/mcp/profiles.js +263 -0
  256. package/dist/src/mcp/profiles.mjs +360 -0
  257. package/dist/src/mcp/registry.js +376 -0
  258. package/dist/src/mcp/registry.mjs +387 -0
  259. package/dist/src/mcp/server.mjs +633 -0
  260. package/dist/src/mcp/test-simple.mjs +271 -0
  261. package/dist/src/mcp/tools/command-run.mjs +101 -0
  262. package/dist/src/mcp/tools/discovery.mjs +291 -0
  263. package/dist/src/mcp/tools/interaction.mjs +87 -0
  264. package/dist/src/mcp/tools/orchestration.mjs +320 -0
  265. package/dist/src/mcp/tools/subsystems.mjs +640 -0
  266. package/dist/src/memory/cli.js +166 -0
  267. package/dist/src/memory/project-registry.js +282 -0
  268. package/dist/src/metrics/artifact-metrics.js +184 -0
  269. package/dist/src/metrics/context-budget.js +174 -0
  270. package/dist/src/metrics/token-counter.js +133 -0
  271. package/dist/src/models/config-loader.js +228 -0
  272. package/dist/src/models/index.js +22 -0
  273. package/dist/src/models/model-capabilities.v1.json +120 -0
  274. package/dist/src/models/model-catalog.v1.json +96 -0
  275. package/dist/src/models/model-discovery.js +521 -0
  276. package/dist/src/models/provider-models.js +73 -0
  277. package/dist/src/models/provider-policy.js +273 -0
  278. package/dist/src/models/resolver.js +245 -0
  279. package/dist/src/models/router.js +70 -0
  280. package/dist/src/models/types.js +8 -0
  281. package/dist/src/models/wrapper-deployment.js +178 -0
  282. package/dist/src/models/wrapper-route.js +54 -0
  283. package/dist/src/ops/cli.js +268 -0
  284. package/dist/src/ops/registry.js +623 -0
  285. package/dist/src/packages/adapters/clawhub.js +113 -0
  286. package/dist/src/packages/adapters/git.js +153 -0
  287. package/dist/src/packages/adapters/gitea.js +93 -0
  288. package/dist/src/packages/adapters/github.js +69 -0
  289. package/dist/src/packages/adapters/local-cache.js +89 -0
  290. package/dist/src/packages/package-registry.js +143 -0
  291. package/dist/src/packages/registry.js +238 -0
  292. package/dist/src/packages/types.js +11 -0
  293. package/dist/src/plugin/cross-framework-ops.js +475 -0
  294. package/dist/src/plugin/framework-config-loader.js +235 -0
  295. package/dist/src/plugin/framework-detector.js +186 -0
  296. package/dist/src/plugin/framework-isolator.js +341 -0
  297. package/dist/src/plugin/framework-migration.js +371 -0
  298. package/dist/src/plugin/metadata-validator.js +906 -0
  299. package/dist/src/plugin/plugin-installer.js +436 -0
  300. package/dist/src/plugin/plugin-status.js +369 -0
  301. package/dist/src/plugin/plugin-uninstaller.js +473 -0
  302. package/dist/src/plugin/registry-validator.js +344 -0
  303. package/dist/src/plugin/skill-command-translator.js +415 -0
  304. package/dist/src/plugin/workspace-creator.js +189 -0
  305. package/dist/src/plugin/workspace-migrator.js +821 -0
  306. package/dist/src/policy/authorization.js +390 -0
  307. package/dist/src/policy/repo-access.js +215 -0
  308. package/dist/src/provenance/cli.js +16 -0
  309. package/dist/src/providers/capability-matrix.js +300 -0
  310. package/dist/src/providers/capability-matrix.yaml +514 -0
  311. package/dist/src/providers/provider-definitions.js +977 -0
  312. package/dist/src/providers/provider-definitions.mjs +159 -0
  313. package/dist/src/providers/provider-inventory.js +169 -0
  314. package/dist/src/quality/feedback-ab.js +174 -0
  315. package/dist/src/quality/feedback-collector.js +176 -0
  316. package/dist/src/quality/feedback-tracker.js +123 -0
  317. package/dist/src/quality/patterns/adr.json +24 -0
  318. package/dist/src/quality/patterns/sad.json +24 -0
  319. package/dist/src/quality/patterns/test-plan.json +24 -0
  320. package/dist/src/quality/patterns/use-case.json +24 -0
  321. package/dist/src/quality/scoring.js +157 -0
  322. package/dist/src/reflections/cli.js +15 -0
  323. package/dist/src/release/plan.js +139 -0
  324. package/dist/src/research/cache/manager.js +227 -0
  325. package/dist/src/research/clients/arxiv.js +156 -0
  326. package/dist/src/research/clients/base.js +197 -0
  327. package/dist/src/research/clients/crossref.js +112 -0
  328. package/dist/src/research/clients/semantic-scholar.js +126 -0
  329. package/dist/src/research/clients/unpaywall.js +87 -0
  330. package/dist/src/research/index.js +14 -0
  331. package/dist/src/research/query-cli.js +336 -0
  332. package/dist/src/research/services/acquisition.js +313 -0
  333. package/dist/src/research/services/archival.js +225 -0
  334. package/dist/src/research/services/citation.js +279 -0
  335. package/dist/src/research/services/discovery.js +243 -0
  336. package/dist/src/research/services/documentation.js +269 -0
  337. package/dist/src/research/services/index.js +14 -0
  338. package/dist/src/research/services/provenance.js +279 -0
  339. package/dist/src/research/services/quality.js +370 -0
  340. package/dist/src/research/services/types.js +7 -0
  341. package/dist/src/research/storage-cli.js +20 -0
  342. package/dist/src/research/types.js +47 -0
  343. package/dist/src/resources/index.d.ts +2 -0
  344. package/dist/src/resources/index.js +2 -0
  345. package/dist/src/resources/web-release.d.ts +89 -0
  346. package/dist/src/resources/web-release.js +882 -0
  347. package/dist/src/rlm/cache/cli.js +162 -0
  348. package/dist/src/rlm/cache/hash.js +35 -0
  349. package/dist/src/rlm/cache/store.js +170 -0
  350. package/dist/src/rlm/cache/types.js +8 -0
  351. package/dist/src/rlm/cli.js +650 -0
  352. package/dist/src/serve/a2a-terminal-observer.js +120 -0
  353. package/dist/src/serve/agent-router.js +205 -0
  354. package/dist/src/serve/dispatch-router.js +171 -0
  355. package/dist/src/serve/executor-registry.js +715 -0
  356. package/dist/src/serve/mission-conductor.js +177 -0
  357. package/dist/src/serve/orchestrator-adapter.js +113 -0
  358. package/dist/src/serve/orchestrator-override.js +94 -0
  359. package/dist/src/serve/orchestrator-pty.js +133 -0
  360. package/dist/src/serve/pty-bridge.js +799 -0
  361. package/dist/src/serve/sandbox-registry.js +832 -0
  362. package/dist/src/serve/screen-reader.js +228 -0
  363. package/dist/src/serve/stack-adapters.js +68 -0
  364. package/dist/src/serve/telemetry.js +143 -0
  365. package/dist/src/skills/adapters/clawhub.js +250 -0
  366. package/dist/src/skills/adapters/local.js +335 -0
  367. package/dist/src/skills/adapters/openclaw.js +316 -0
  368. package/dist/src/skills/cli.js +334 -0
  369. package/dist/src/skills/registry.js +117 -0
  370. package/dist/src/skills/run.js +259 -0
  371. package/dist/src/skills/runtime.js +94 -0
  372. package/dist/src/skills/types.js +10 -0
  373. package/dist/src/smiths/agentsmith/demo.js +116 -0
  374. package/dist/src/smiths/agentsmith/examples.js +300 -0
  375. package/dist/src/smiths/agentsmith/generator.js +503 -0
  376. package/dist/src/smiths/agentsmith/index.js +11 -0
  377. package/dist/src/smiths/agentsmith/types.js +8 -0
  378. package/dist/src/smiths/commandsmith/example.js +220 -0
  379. package/dist/src/smiths/commandsmith/generator.js +288 -0
  380. package/dist/src/smiths/commandsmith/index.js +41 -0
  381. package/dist/src/smiths/commandsmith/templates.js +296 -0
  382. package/dist/src/smiths/commandsmith/types.js +7 -0
  383. package/dist/src/smiths/context-pipeline/aiwg-md.js +104 -0
  384. package/dist/src/smiths/context-pipeline/allowlist.js +195 -0
  385. package/dist/src/smiths/context-pipeline/claude-hook.js +127 -0
  386. package/dist/src/smiths/context-pipeline/discovery.js +187 -0
  387. package/dist/src/smiths/context-pipeline/external-links-section.js +49 -0
  388. package/dist/src/smiths/context-pipeline/finalization.js +147 -0
  389. package/dist/src/smiths/context-pipeline/generator.js +477 -0
  390. package/dist/src/smiths/context-pipeline/index.js +30 -0
  391. package/dist/src/smiths/context-pipeline/legacy-inject.js +103 -0
  392. package/dist/src/smiths/context-pipeline/managed-hook.js +95 -0
  393. package/dist/src/smiths/context-pipeline/overflow.js +212 -0
  394. package/dist/src/smiths/context-pipeline/parallelism-section.js +94 -0
  395. package/dist/src/smiths/context-pipeline/provider-policy.js +64 -0
  396. package/dist/src/smiths/context-pipeline/sanitizer.js +93 -0
  397. package/dist/src/smiths/context-pipeline/types.js +23 -0
  398. package/dist/src/smiths/context-pipeline/workspace-context.js +988 -0
  399. package/dist/src/smiths/hook-bridge/codex-translator.js +129 -0
  400. package/dist/src/smiths/hook-bridge/copilot-translator.js +64 -0
  401. package/dist/src/smiths/hook-bridge/factory-translator.js +43 -0
  402. package/dist/src/smiths/hook-bridge/hermes-translator.js +88 -0
  403. package/dist/src/smiths/hook-bridge/index.js +79 -0
  404. package/dist/src/smiths/hook-bridge/loader.js +116 -0
  405. package/dist/src/smiths/hook-bridge/shim.js +89 -0
  406. package/dist/src/smiths/hook-bridge/types.js +31 -0
  407. package/dist/src/smiths/index.js +39 -0
  408. package/dist/src/smiths/mcpsmith/analyzers/cli-analyzer.js +390 -0
  409. package/dist/src/smiths/mcpsmith/example.js +119 -0
  410. package/dist/src/smiths/mcpsmith/generator.js +236 -0
  411. package/dist/src/smiths/mcpsmith/index.js +17 -0
  412. package/dist/src/smiths/mcpsmith/types.js +10 -0
  413. package/dist/src/smiths/platform-paths.js +101 -0
  414. package/dist/src/smiths/skillsmith/codex-sidecar.js +85 -0
  415. package/dist/src/smiths/skillsmith/collision-detector.js +249 -0
  416. package/dist/src/smiths/skillsmith/demo.js +83 -0
  417. package/dist/src/smiths/skillsmith/examples.js +161 -0
  418. package/dist/src/smiths/skillsmith/generator.js +316 -0
  419. package/dist/src/smiths/skillsmith/index.js +12 -0
  420. package/dist/src/smiths/skillsmith/namespace-adapter.js +180 -0
  421. package/dist/src/smiths/skillsmith/platform-resolver.js +157 -0
  422. package/dist/src/smiths/skillsmith/types.js +9 -0
  423. package/dist/src/smiths/toolsmith/index.js +10 -0
  424. package/dist/src/smiths/toolsmith/runtime-discovery.mjs +710 -0
  425. package/dist/src/smiths/toolsmith/types.js +8 -0
  426. package/dist/src/storage/backends/fortemi.js +227 -0
  427. package/dist/src/storage/backends/fs.js +134 -0
  428. package/dist/src/storage/backends/logseq.js +309 -0
  429. package/dist/src/storage/backends/obsidian.js +233 -0
  430. package/dist/src/storage/cli.js +468 -0
  431. package/dist/src/storage/config.js +272 -0
  432. package/dist/src/storage/index.js +108 -0
  433. package/dist/src/storage/subsystem-cli.js +201 -0
  434. package/dist/src/storage/types.js +33 -0
  435. package/dist/src/testing/corpus/corpus-builder.js +383 -0
  436. package/dist/src/testing/corpus/ground-truth-manager.js +460 -0
  437. package/dist/src/testing/corpus/index.js +10 -0
  438. package/dist/src/testing/fixtures/index.js +9 -0
  439. package/dist/src/testing/fixtures/test-data-factory.js +472 -0
  440. package/dist/src/testing/generators/index.js +11 -0
  441. package/dist/src/testing/generators/test-case-generator.js +393 -0
  442. package/dist/src/testing/generators/test-code-generator.js +384 -0
  443. package/dist/src/testing/generators/use-case-parser.js +325 -0
  444. package/dist/src/testing/index.js +11 -0
  445. package/dist/src/tracker/capability-protocol.js +118 -0
  446. package/dist/src/update/checker.mjs +396 -0
  447. package/dist/src/update/notifier.mjs +235 -0
  448. package/dist/src/writing/content-diversifier.js +804 -0
  449. package/dist/src/writing/example-generator.js +959 -0
  450. package/dist/src/writing/example-templates.js +99 -0
  451. package/dist/src/writing/pattern-library.js +486 -0
  452. package/dist/src/writing/patterns/banned-phrases.json +4413 -0
  453. package/dist/src/writing/patterns/formulaic-structures.json +1300 -0
  454. package/dist/src/writing/patterns/generic-adjectives.json +1510 -0
  455. package/dist/src/writing/patterns/hedging-language.json +2096 -0
  456. package/dist/src/writing/patterns/transition-words.json +1285 -0
  457. package/dist/src/writing/patterns/weak-verbs.json +1112 -0
  458. package/dist/src/writing/prompt-optimizer.js +660 -0
  459. package/dist/src/writing/prompt-templates.js +583 -0
  460. package/dist/src/writing/scoring-config-loader.js +168 -0
  461. package/dist/src/writing/validation-engine.js +595 -0
  462. package/dist/src/writing/validation-rules.js +380 -0
  463. package/dist/src/writing/voice-analyzer.js +439 -0
  464. package/dist/src/writing/voice-calibration.js +661 -0
  465. package/dist/src/writing/voice-profiles.json +588 -0
  466. package/package.json +64 -9
@@ -0,0 +1,302 @@
1
+ /**
2
+ * CLI Handler Index
3
+ *
4
+ * Aggregates all extracted command handlers for registry-based routing.
5
+ *
6
+ * @implements @.aiwg/architecture/decisions/ADR-001-unified-extension-system.md
7
+ * @tests @test/unit/cli/handlers/index.test.ts
8
+ * @issue #42
9
+ */
10
+ // Re-export types
11
+ export * from './types.js';
12
+ export { createScriptRunner, DefaultScriptRunner } from './script-runner.js';
13
+ // Import all handlers
14
+ import { helpHandler } from './help.js';
15
+ import { versionHandler } from './version.js';
16
+ import { useHandler } from './use.js';
17
+ import { statusHandler, wizardHandler, migrateWorkspaceHandler, rollbackWorkspaceHandler, workspaceHandlers, } from './workspace.js';
18
+ import { prefillCardsHandler, contributeStartHandler, validateMetadataHandler, doctorHandler, updateHandler, utilityHandlers, } from './utilities.js';
19
+ import { skillLintHandler } from './skill-lint.js';
20
+ import { addAgentHandler, addCommandHandler, addSkillHandler, addBehaviorHandler, addTemplateHandler, scaffoldAddonHandler, scaffoldExtensionHandler, scaffoldFrameworkHandler, scaffoldingHandlers, } from './scaffolding.js';
21
+ import { behaviorHandler, daemonInitHandler, daemonHandlers, } from './daemon.js';
22
+ import { ralphHandler, ralphStatusHandler, ralphAbortHandler, ralphResumeHandler, ralphAttachHandler, ralphExternalHandler, ralphMemoryHandler, ralphConfigHandler, ralphHandlers, } from './ralph.js';
23
+ import { mcpHandler, catalogHandler, listHandler, removeHandler, promoteHandler, newBundleHandler, quickrefHandler, newProjectHandler, installPluginHandler, uninstallPluginHandler, pluginStatusHandler, packagePluginHandler, packageAllPluginsHandler, indexHandler, corpusHandler, discoverHandler, showHandler, featuresHandler, skillsHandler, configHandler, opsHandler, storageHandler, activityLogHandler, kbHandler, memoryHandler, reflectionsHandler, provenanceHandler, researchStoreHandler, researchQueryHandler, chunkHandler, fanoutHandler, rlmPrepHandler, rlmSearchHandler, rlmStatusCliHandler, rlmCacheHandler, subcommandHandlers, } from './subcommands.js';
24
+ import { runtimeInfoHandler } from './runtime-info.js';
25
+ import { agentcardHandler } from './agentcard.js';
26
+ import { bestPracticesAuditHandler } from './best-practices-audit.js';
27
+ // sync was renamed to refresh (#694). refreshHandler exposes both 'refresh'
28
+ // (primary) and 'sync' (deprecated alias) to preserve backward compatibility.
29
+ import { refreshHandler } from './refresh.js';
30
+ import { regenerateHandler, regenerateHandlers } from './regenerate.js';
31
+ import { workspaceContextHandler, workspaceContextHandlers } from './workspace-context.js';
32
+ import { artifactsHandler, artifactsHandlers } from './artifacts.js';
33
+ import { mcHandler, mcHandlers } from './mc.js';
34
+ import { sdlcAccelerateHandler } from './sdlc-accelerate.js';
35
+ import { teamHandler, teamHandlers } from './team.js';
36
+ import { installHandler } from './install.js';
37
+ import { packagesHandler } from './packages.js';
38
+ import { marketplaceHandler } from './marketplace.js';
39
+ import { initHandler } from './init.js';
40
+ import { setupHandler } from './setup.js';
41
+ import { runHandler } from './run.js';
42
+ import { stewardHandler, stewardHandlers } from './steward.js';
43
+ import { serveHandler } from './serve.js';
44
+ import { lintHandler } from './lint.js';
45
+ import { feedbackHandler } from './feedback.js';
46
+ import { sessionHandler } from './session.js';
47
+ import { sandboxHandler, sandboxHandlers } from './sandbox.js';
48
+ import { diagnoseHandler } from './diagnose.js';
49
+ import { localExecutorHandler, localExecutorServeHandler } from './local-executor.js';
50
+ import { executionModeHandler } from './execution-mode.js';
51
+ import { repoAccessHandler, repoAccessHandlers } from './repo-access.js';
52
+ import { issueHandler, issueAuditHandler } from './issues.js';
53
+ import { cockpitHandler } from './cockpit.js';
54
+ import { commandLogHandler } from './command-log.js';
55
+ import { skillUsageHandler } from './skill-usage.js';
56
+ import { modelsHandler } from './models.js';
57
+ // Re-export individual handlers
58
+ export {
59
+ // Maintenance
60
+ helpHandler, versionHandler, doctorHandler, updateHandler, refreshHandler, regenerateHandler, workspaceContextHandler,
61
+ // Framework management
62
+ useHandler, listHandler, removeHandler, promoteHandler, installHandler, packagesHandler, marketplaceHandler, initHandler, setupHandler, issueHandler, issueAuditHandler, runHandler,
63
+ // Project
64
+ newBundleHandler, quickrefHandler, newProjectHandler,
65
+ // Workspace
66
+ statusHandler, wizardHandler, migrateWorkspaceHandler, rollbackWorkspaceHandler,
67
+ // Subcommands
68
+ mcpHandler, catalogHandler, modelsHandler, indexHandler, artifactsHandler, corpusHandler, discoverHandler, showHandler, featuresHandler, skillsHandler, configHandler, opsHandler, storageHandler, activityLogHandler, commandLogHandler, skillUsageHandler, kbHandler, memoryHandler, reflectionsHandler, provenanceHandler, researchStoreHandler, researchQueryHandler, runtimeInfoHandler, agentcardHandler,
69
+ // Agentic Tools (RLM)
70
+ chunkHandler, fanoutHandler, rlmPrepHandler, rlmSearchHandler, rlmStatusCliHandler, rlmCacheHandler,
71
+ // Utilities
72
+ prefillCardsHandler, contributeStartHandler, validateMetadataHandler, skillLintHandler, cockpitHandler,
73
+ // Plugin
74
+ installPluginHandler, uninstallPluginHandler, pluginStatusHandler, packagePluginHandler, packageAllPluginsHandler,
75
+ // Scaffolding
76
+ addAgentHandler, addCommandHandler, addSkillHandler, addBehaviorHandler, addTemplateHandler, scaffoldAddonHandler, scaffoldExtensionHandler, scaffoldFrameworkHandler,
77
+ // Daemon
78
+ behaviorHandler, daemonInitHandler,
79
+ // Ralph
80
+ ralphHandler, ralphStatusHandler, ralphAbortHandler, ralphResumeHandler, ralphAttachHandler, ralphExternalHandler, ralphMemoryHandler, ralphConfigHandler,
81
+ // Mission Control
82
+ mcHandler,
83
+ // SDLC Orchestration
84
+ sdlcAccelerateHandler,
85
+ // Research / Validation
86
+ bestPracticesAuditHandler,
87
+ // Agent Teams
88
+ teamHandler,
89
+ // Steward
90
+ stewardHandler,
91
+ // Serve
92
+ serveHandler,
93
+ // Local Executor (#1181)
94
+ localExecutorHandler, localExecutorServeHandler,
95
+ // Sandbox management
96
+ sandboxHandler,
97
+ // Diagnose
98
+ diagnoseHandler, executionModeHandler,
99
+ // Repo Access
100
+ repoAccessHandler,
101
+ // Lint
102
+ lintHandler, };
103
+ // Re-export handler arrays
104
+ export { workspaceHandlers, utilityHandlers, scaffoldingHandlers, ralphHandlers, subcommandHandlers, mcHandlers, teamHandlers, stewardHandlers, regenerateHandlers, workspaceContextHandlers, artifactsHandlers, daemonHandlers, sandboxHandlers, repoAccessHandlers, };
105
+ /**
106
+ * All registered command handlers
107
+ *
108
+ * Used by the registry to build the command routing table.
109
+ */
110
+ export const allHandlers = [
111
+ // Maintenance (shown first in help)
112
+ helpHandler,
113
+ versionHandler,
114
+ doctorHandler,
115
+ updateHandler,
116
+ refreshHandler,
117
+ regenerateHandler,
118
+ workspaceContextHandler,
119
+ // Framework management
120
+ useHandler,
121
+ listHandler,
122
+ removeHandler,
123
+ promoteHandler,
124
+ installHandler,
125
+ packagesHandler,
126
+ marketplaceHandler,
127
+ // Project setup
128
+ newBundleHandler,
129
+ quickrefHandler,
130
+ newProjectHandler,
131
+ initHandler,
132
+ setupHandler,
133
+ issueHandler,
134
+ issueAuditHandler,
135
+ runHandler,
136
+ // Workspace management
137
+ ...workspaceHandlers,
138
+ // Subcommand handlers (MCP, catalog, index, skills)
139
+ mcpHandler,
140
+ catalogHandler,
141
+ modelsHandler,
142
+ indexHandler,
143
+ artifactsHandler,
144
+ corpusHandler,
145
+ discoverHandler,
146
+ showHandler,
147
+ featuresHandler,
148
+ skillsHandler,
149
+ runtimeInfoHandler,
150
+ agentcardHandler,
151
+ // Utilities
152
+ prefillCardsHandler,
153
+ contributeStartHandler,
154
+ validateMetadataHandler,
155
+ skillLintHandler,
156
+ cockpitHandler,
157
+ // Plugin packaging
158
+ installPluginHandler,
159
+ uninstallPluginHandler,
160
+ pluginStatusHandler,
161
+ packagePluginHandler,
162
+ packageAllPluginsHandler,
163
+ // Scaffolding
164
+ ...scaffoldingHandlers,
165
+ // Agent loop
166
+ ...ralphHandlers,
167
+ // Mission Control
168
+ ...mcHandlers,
169
+ // Agent Teams
170
+ ...teamHandlers,
171
+ // Steward (capability awareness)
172
+ ...stewardHandlers,
173
+ // SDLC Orchestration
174
+ sdlcAccelerateHandler,
175
+ // Research / Validation
176
+ bestPracticesAuditHandler,
177
+ // Daemon
178
+ ...daemonHandlers,
179
+ // Config
180
+ configHandler,
181
+ executionModeHandler,
182
+ // Ops
183
+ opsHandler,
184
+ // Storage (#934)
185
+ storageHandler,
186
+ // Activity Log (#934, #964)
187
+ activityLogHandler,
188
+ // Command invocation log (#1614)
189
+ commandLogHandler,
190
+ // Skill usage telemetry (#1649)
191
+ skillUsageHandler,
192
+ // Knowledge Base (#934, #965)
193
+ kbHandler,
194
+ // Memory subsystem (#934, #966)
195
+ memoryHandler,
196
+ // Reflections subsystem (#934, #967)
197
+ reflectionsHandler,
198
+ // Provenance subsystem (#934, #968)
199
+ provenanceHandler,
200
+ // Research subsystem (#934, #968)
201
+ researchStoreHandler,
202
+ researchQueryHandler,
203
+ // Agentic Tools (RLM support tools)
204
+ chunkHandler,
205
+ fanoutHandler,
206
+ rlmPrepHandler,
207
+ rlmSearchHandler,
208
+ rlmStatusCliHandler,
209
+ rlmCacheHandler,
210
+ // Web dashboard
211
+ serveHandler,
212
+ // Local Executor (#1181)
213
+ localExecutorHandler,
214
+ localExecutorServeHandler,
215
+ // Sandbox management (#917)
216
+ ...sandboxHandlers,
217
+ // Diagnose bundle (#925)
218
+ diagnoseHandler,
219
+ // Lint
220
+ lintHandler,
221
+ // Feedback (#885)
222
+ feedbackHandler,
223
+ // Session (#884)
224
+ sessionHandler,
225
+ // Repo access policy (#1376)
226
+ ...repoAccessHandlers,
227
+ ];
228
+ /**
229
+ * Build alias map from all handlers
230
+ *
231
+ * Maps command aliases to canonical handler IDs.
232
+ *
233
+ * @returns Map of alias -> handler ID
234
+ */
235
+ export function buildAliasMap() {
236
+ const aliasMap = new Map();
237
+ for (const handler of allHandlers) {
238
+ // Add canonical ID
239
+ aliasMap.set(handler.id, handler.id);
240
+ // Add all aliases
241
+ for (const alias of handler.aliases) {
242
+ aliasMap.set(alias, handler.id);
243
+ }
244
+ }
245
+ return aliasMap;
246
+ }
247
+ /**
248
+ * Build handler map for O(1) lookup
249
+ *
250
+ * @returns Map of handler ID -> handler
251
+ */
252
+ export function buildHandlerMap() {
253
+ const handlerMap = new Map();
254
+ for (const handler of allHandlers) {
255
+ handlerMap.set(handler.id, handler);
256
+ }
257
+ return handlerMap;
258
+ }
259
+ /**
260
+ * Resolve a command to its handler
261
+ *
262
+ * @param command - Raw command from CLI (may be alias)
263
+ * @param aliasMap - Alias map from buildAliasMap()
264
+ * @param handlerMap - Handler map from buildHandlerMap()
265
+ * @returns Handler or undefined if not found
266
+ */
267
+ export function resolveHandler(command, aliasMap, handlerMap) {
268
+ const canonicalId = aliasMap.get(command);
269
+ if (!canonicalId)
270
+ return undefined;
271
+ return handlerMap.get(canonicalId);
272
+ }
273
+ /**
274
+ * Get handlers grouped by category
275
+ *
276
+ * Used for generating organized help text.
277
+ *
278
+ * @returns Map of category -> handlers
279
+ */
280
+ export function getHandlersByCategory() {
281
+ const categoryMap = new Map();
282
+ for (const handler of allHandlers) {
283
+ const category = handler.category;
284
+ const handlers = categoryMap.get(category) || [];
285
+ handlers.push(handler);
286
+ categoryMap.set(category, handlers);
287
+ }
288
+ return categoryMap;
289
+ }
290
+ /**
291
+ * Get total handler count
292
+ */
293
+ export function getHandlerCount() {
294
+ return allHandlers.length;
295
+ }
296
+ /**
297
+ * Get total alias count (including canonical IDs)
298
+ */
299
+ export function getAliasCount() {
300
+ return buildAliasMap().size;
301
+ }
302
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Init Command Handler
3
+ *
4
+ * Implements `aiwg init` — the first-run wizard that creates
5
+ * `.aiwg/aiwg.config` for the current project.
6
+ *
7
+ * Prompts:
8
+ * 1. Which AI provider toolchains does this project target?
9
+ * 2. Would you like to add any scripts? (optional)
10
+ *
11
+ * Runs automatically on first `aiwg use` when no config exists.
12
+ * Can also be run explicitly to reconfigure.
13
+ *
14
+ * @implements #621
15
+ */
16
+ import readline from 'readline';
17
+ import { readAiwgConfig, writeAiwgConfig, emptyConfig, populateDeployedTo, VALID_PROVIDERS, getConfigPath, } from '../../config/aiwg-config.js';
18
+ import * as ui from '../ui.js';
19
+ import { askString as sharedAskString, askYesNo as sharedAskYesNo } from '../prompt-utils.js';
20
+ import { writeNormalizedAiwgMd } from '../../smiths/context-pipeline/finalization.js';
21
+ import { ensureWorkspaceContext } from '../../smiths/context-pipeline/workspace-context.js';
22
+ const PROVIDER_LABELS = {
23
+ claude: 'Claude Code .claude/',
24
+ copilot: 'GitHub Copilot .github/',
25
+ cursor: 'Cursor .cursor/',
26
+ opencode: 'OpenCode .opencode/',
27
+ warp: 'Warp Terminal .warp/',
28
+ windsurf: 'Windsurf AGENTS.md',
29
+ factory: 'Factory AI .factory/',
30
+ codex: 'OpenAI Codex ~/.codex/',
31
+ openclaw: 'OpenClaw ~/.openclaw/',
32
+ hermes: 'Hermes (MCP) aiwg mcp',
33
+ };
34
+ // Local aliases for the shared prompt utilities. These preserve existing
35
+ // call sites (askYesNo/askString) while routing through a single timeout
36
+ // and unref-discipline implementation in `src/cli/prompt-utils.ts`.
37
+ // Phase 3 (#920) will replace these with @clack/prompts.
38
+ const askYesNo = sharedAskYesNo;
39
+ const askString = sharedAskString;
40
+ /**
41
+ * Prompt for a comma-separated provider selection
42
+ */
43
+ async function askProviders(rl, signal) {
44
+ const list = VALID_PROVIDERS.map((p, i) => ` ${i + 1}. ${PROVIDER_LABELS[p] ?? p}`).join('\n');
45
+ console.log('');
46
+ console.log(' Available providers:');
47
+ console.log(list);
48
+ console.log('');
49
+ // Multi-select (comma-separated) — stays hand-rolled rather than adopting
50
+ // listSelect because #926's POC targets single-select only. `signal`
51
+ // threading is the full migration from the spike.
52
+ const answer = await askString(rl, ' Enter provider numbers (comma-separated) or names [1]: ', '', signal);
53
+ if (!answer)
54
+ return ['claude']; // default
55
+ const parts = answer.split(',').map(s => s.trim()).filter(Boolean);
56
+ const selected = [];
57
+ for (const part of parts) {
58
+ const num = parseInt(part, 10);
59
+ if (!isNaN(num) && num >= 1 && num <= VALID_PROVIDERS.length) {
60
+ selected.push(VALID_PROVIDERS[num - 1]);
61
+ }
62
+ else if (VALID_PROVIDERS.includes(part)) {
63
+ selected.push(part);
64
+ }
65
+ else {
66
+ ui.warn(` Unknown provider '${part}' — skipped`);
67
+ }
68
+ }
69
+ return selected.length > 0 ? selected : ['claude'];
70
+ }
71
+ export const initHandler = {
72
+ id: 'init',
73
+ name: 'Init',
74
+ description: 'Initialise the baseline .aiwg/aiwg.config for an agent-led project setup',
75
+ category: 'project',
76
+ aliases: [],
77
+ async execute(ctx) {
78
+ const force = ctx.args.includes('--force');
79
+ // Treat a missing stdin TTY as non-interactive so piped/backgrounded
80
+ // invocations never attempt to create a readline interface. This is a
81
+ // single authoritative check — downstream code MUST NOT re-derive
82
+ // interactive-ness from process.stdin.isTTY again.
83
+ const nonInteractive = ctx.args.includes('--non-interactive') ||
84
+ ctx.args.includes('--yes') ||
85
+ !process.stdin.isTTY ||
86
+ !process.stdout.isTTY ||
87
+ process.env['CI'] === 'true';
88
+ const projectDir = ctx.cwd;
89
+ ui.blank();
90
+ console.log(` ${ui.brandMark()} ${ui.bold('AIWG Baseline Config')}`);
91
+ ui.rule();
92
+ // Check for existing config
93
+ const existing = await readAiwgConfig(projectDir);
94
+ if (existing && !force) {
95
+ ui.info(`Config already exists: ${getConfigPath(projectDir)}`);
96
+ await writeNormalizedAiwgMd(projectDir);
97
+ console.log(` Providers: ${existing.providers.join(', ')}`);
98
+ const scriptCount = Object.keys(existing.scripts).length;
99
+ if (scriptCount > 0) {
100
+ console.log(` Scripts: ${Object.keys(existing.scripts).join(', ')}`);
101
+ }
102
+ ui.blank();
103
+ ui.dim(' Ask your AIWG agent to review repo, tracker, delivery, signing, and provider policy.');
104
+ ui.dim(' Agents may use `aiwg setup project --dry-run` as the CLI helper for that review.');
105
+ ui.dim(' Run `aiwg init --force` only when you need to recreate the baseline config.');
106
+ ui.blank();
107
+ return { exitCode: 0 };
108
+ }
109
+ let providers;
110
+ let scripts = {};
111
+ if (nonInteractive) {
112
+ // Non-interactive: use defaults
113
+ providers = ['claude'];
114
+ scripts = {
115
+ deploy: 'aiwg use all',
116
+ doctor: 'aiwg doctor',
117
+ sync: 'aiwg sync',
118
+ };
119
+ }
120
+ else {
121
+ // Interactive wizard
122
+ const rl = readline.createInterface({
123
+ input: process.stdin,
124
+ output: process.stdout,
125
+ });
126
+ try {
127
+ // Thread ctx.signal through every prompt so Ctrl-C during the wizard
128
+ // cancels cleanly instead of being absorbed by readline (POC #926).
129
+ providers = await askProviders(rl, ctx.signal);
130
+ console.log('');
131
+ const addScripts = await askYesNo(rl, ' Add default scripts (deploy, doctor, sync)? [Y/n]: ', true, ctx.signal);
132
+ if (addScripts) {
133
+ scripts = {
134
+ deploy: 'aiwg use all',
135
+ doctor: 'aiwg doctor',
136
+ sync: 'aiwg sync',
137
+ };
138
+ const addCustom = await askYesNo(rl, ' Add a custom script? [y/N]: ', false, ctx.signal);
139
+ if (addCustom) {
140
+ const name = await askString(rl, ' Script name: ', '', ctx.signal);
141
+ const cmd = await askString(rl, ' Command: ', '', ctx.signal);
142
+ if (name && cmd) {
143
+ scripts[name] = cmd;
144
+ }
145
+ }
146
+ }
147
+ }
148
+ finally {
149
+ rl.close();
150
+ }
151
+ }
152
+ // Build config
153
+ let config = emptyConfig(providers);
154
+ config.scripts = scripts;
155
+ // Populate deployedTo from disk for entries with empty deployedTo (#721)
156
+ config = await populateDeployedTo(config, projectDir);
157
+ // Write
158
+ await writeAiwgConfig(projectDir, config);
159
+ const normalizedAiwgMdPath = await writeNormalizedAiwgMd(projectDir);
160
+ const workspace = await ensureWorkspaceContext(projectDir);
161
+ ui.blank();
162
+ ui.success(`Created ${getConfigPath(projectDir)}`);
163
+ ui.success(`Created ${normalizedAiwgMdPath}`);
164
+ ui.success(`${workspace.action === 'created' ? 'Created' : 'Preserved'} WORKSPACE.md`);
165
+ ui.success(`Providers: ${providers.join(', ')}`);
166
+ if (Object.keys(scripts).length > 0) {
167
+ ui.success(`Scripts: ${Object.keys(scripts).join(', ')}`);
168
+ }
169
+ ui.blank();
170
+ console.log(' Next steps:');
171
+ console.log(' Ask your AIWG agent: "Help me set up this project for AIWG."');
172
+ console.log(' The agent may use `aiwg setup project --dry-run` to preview policy choices.');
173
+ console.log(' aiwg use sdlc Deploy SDLC framework to configured providers');
174
+ console.log(' aiwg run List all defined scripts');
175
+ ui.blank();
176
+ return { exitCode: 0 };
177
+ },
178
+ };
179
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Install Command Handler
3
+ *
4
+ * Implements `aiwg install <ref>` for installing frameworks, addons, and
5
+ * extensions from Git repositories into the local package cache.
6
+ *
7
+ * Supported ref formats:
8
+ * owner/name → Gitea shorthand (configured host)
9
+ * owner/name@v1.2.0 → Gitea shorthand with version
10
+ * github:owner/name → GitHub shorthand
11
+ * github:owner/name@v1.2.0 → GitHub shorthand with version
12
+ * clawhub:owner/name → ClawHub / OpenClaw registry
13
+ * openclaw:owner/name → ClawHub alias
14
+ * https://... → direct Git URL
15
+ * git@host:owner/name.git → SSH URL
16
+ *
17
+ * @implements #557
18
+ * @implements #804
19
+ */
20
+ import path from 'path';
21
+ import { installPackage } from '../../packages/registry.js';
22
+ import { recordDeployment } from '../../packages/package-registry.js';
23
+ import { createScriptRunner } from './script-runner.js';
24
+ import { handlerResultFromError } from '../errors.js';
25
+ import * as ui from '../ui.js';
26
+ function parseFlag(args, flag) {
27
+ const idx = args.indexOf(flag);
28
+ if (idx === -1 || idx + 1 >= args.length)
29
+ return undefined;
30
+ return args[idx + 1];
31
+ }
32
+ function hasFlag(args, flag) {
33
+ return args.includes(flag);
34
+ }
35
+ export const installHandler = {
36
+ id: 'install',
37
+ name: 'Install Package',
38
+ description: 'Install a framework, addon, or extension from a Git repository',
39
+ category: 'framework',
40
+ aliases: [],
41
+ async execute(ctx) {
42
+ const rawRef = ctx.args[0];
43
+ if (!rawRef) {
44
+ return {
45
+ exitCode: 1,
46
+ message: [
47
+ 'Error: Package reference required',
48
+ '',
49
+ 'Usage:',
50
+ ' aiwg install owner/name # Gitea shorthand',
51
+ ' aiwg install github:owner/name # GitHub shorthand',
52
+ ' aiwg install clawhub:owner/name # ClawHub / OpenClaw registry',
53
+ ' aiwg install openclaw:owner/name # ClawHub alias',
54
+ ' aiwg install owner/name@v1.2.0 # Pin to version',
55
+ ' aiwg install https://git.example.com/a/b # Direct URL',
56
+ '',
57
+ 'Options:',
58
+ ' --deploy Deploy immediately after install',
59
+ ' --provider <name> Target provider (claude, copilot, cursor...)',
60
+ ' --target <dir> Project directory to deploy into',
61
+ ' --refresh Force re-pull even if cached',
62
+ ].join('\n'),
63
+ };
64
+ }
65
+ const deploy = hasFlag(ctx.args, '--deploy');
66
+ const refresh = hasFlag(ctx.args, '--refresh');
67
+ const provider = parseFlag(ctx.args, '--provider') ?? 'claude';
68
+ const target = parseFlag(ctx.args, '--target') ?? ctx.cwd;
69
+ ui.blank();
70
+ console.log(` ${ui.brandMark()} ${ui.bold('aiwg install')} ${ui.dimText(rawRef)}`);
71
+ ui.rule();
72
+ // Fetch package
73
+ ui.info(`Resolving ${rawRef}...`);
74
+ let cachePath;
75
+ let key;
76
+ let type;
77
+ let namespace;
78
+ try {
79
+ ({ cachePath, key, type, namespace } = await installPackage(rawRef, { refresh }));
80
+ }
81
+ catch (error) {
82
+ // Preserve AiwgError.exitCode while keeping the "Error: " prefix users
83
+ // are used to seeing from `aiwg install`.
84
+ const result = handlerResultFromError(error);
85
+ return { ...result, message: `Error: ${result.message}` };
86
+ }
87
+ ui.success(`Installed: ${key} (${type})`);
88
+ ui.dimText(` Cache: ${cachePath}`);
89
+ if (namespace !== 'aiwg') {
90
+ ui.dimText(` Namespace: ${namespace}`);
91
+ }
92
+ // Optionally deploy
93
+ if (deploy) {
94
+ ui.info(`Deploying ${key} to ${provider}...`);
95
+ const runner = createScriptRunner(ctx.frameworkRoot);
96
+ const deployArgs = [
97
+ '--source', cachePath,
98
+ '--deploy-commands',
99
+ '--deploy-skills',
100
+ '--deploy-rules',
101
+ '--provider', provider,
102
+ '--target', target,
103
+ '--namespace', namespace,
104
+ '--quiet',
105
+ ];
106
+ const deployResult = await runner.run('tools/agents/deploy-agents.mjs', deployArgs, { capture: true });
107
+ if (deployResult.exitCode !== 0) {
108
+ ui.warn(`Deploy failed (exit ${deployResult.exitCode})`);
109
+ if (deployResult.message)
110
+ ui.dim(` ${deployResult.message}`);
111
+ }
112
+ else {
113
+ ui.success(`Deployed to ${provider} in ${path.relative(process.cwd(), target) || '.'}`);
114
+ // Record deployment
115
+ await recordDeployment(key, {
116
+ projectPath: target,
117
+ provider,
118
+ deployedAt: new Date().toISOString(),
119
+ });
120
+ }
121
+ }
122
+ ui.blank();
123
+ if (!deploy) {
124
+ ui.info(`To deploy: aiwg use ${key.split('/').pop() ?? key}`);
125
+ }
126
+ return { exitCode: 0 };
127
+ },
128
+ };
129
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Issue command handler.
3
+ *
4
+ * Routes `aiwg issue ...` to the local issue CLI. External tracker operations
5
+ * remain governed by `.aiwg/aiwg.config` `remotes.issue_tracker`.
6
+ *
7
+ * @issue #1462
8
+ */
9
+ import { handlerResultFromError } from '../errors.js';
10
+ export const issueHandler = {
11
+ id: 'issue',
12
+ name: 'Issue',
13
+ description: 'Local issue storage commands under .aiwg/issues/',
14
+ category: 'project',
15
+ aliases: ['issues'],
16
+ async execute(ctx) {
17
+ try {
18
+ const { main } = await import('../../issues/cli.js');
19
+ await main(ctx.args, ctx.cwd);
20
+ return { exitCode: 0 };
21
+ }
22
+ catch (error) {
23
+ const result = handlerResultFromError(error);
24
+ return { ...result, message: `Issue command failed: ${result.message}` };
25
+ }
26
+ },
27
+ };
28
+ export const issueAuditHandler = {
29
+ id: 'issue-audit',
30
+ name: 'Issue Audit',
31
+ description: 'Audit local issues under .aiwg/issues/ when --provider local is supplied',
32
+ category: 'project',
33
+ aliases: ['audit-issues'],
34
+ async execute(ctx) {
35
+ try {
36
+ const { auditLocalIssuesCli } = await import('../../issues/workflows.js');
37
+ await auditLocalIssuesCli(ctx.args, ctx.cwd);
38
+ return { exitCode: 0 };
39
+ }
40
+ catch (error) {
41
+ const result = handlerResultFromError(error);
42
+ return { ...result, message: `Issue audit failed: ${result.message}` };
43
+ }
44
+ },
45
+ };
46
+ //# sourceMappingURL=issues.js.map