@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,432 @@
1
+ /**
2
+ * Refresh Command Handler (formerly Sync)
3
+ *
4
+ * Ensures the active session's AIWG deployment matches the latest published
5
+ * version under the current provider. Orchestrates: version check → update →
6
+ * re-deploy all installed frameworks → health verification.
7
+ *
8
+ * Renamed from `aiwg sync` to `aiwg refresh` to avoid collision with
9
+ * git repo sync semantics (#694). `aiwg sync` remains as a deprecated alias.
10
+ *
11
+ * @implements @agentic/code/frameworks/sdlc-complete/rules/self-maintenance.md
12
+ * @source @src/cli/router.ts
13
+ * @issue #482, #557, #694
14
+ */
15
+ import { promises as fs } from 'fs';
16
+ import path from 'path';
17
+ import { createScriptRunner } from './script-runner.js';
18
+ import { getFrameworkRoot } from '../../channel/manager.mjs';
19
+ import { refreshAllPackages } from '../../packages/registry.js';
20
+ import { resolveActiveProvider } from '../provider-resolution.js';
21
+ import { readAiwgConfig, writeAiwgConfig, hashManifest, getProviderParallelismDefaults, } from '../../config/aiwg-config.js';
22
+ import { discoverProjectLocalBundles } from '../../extensions/project-local-discovery.js';
23
+ import { collectPackagedAgentInventory, normalizeAgentArtifactName, parseManagedArtifactMarker, } from '../../agents/packaged-agent-inventory.js';
24
+ import * as ui from '../ui.js';
25
+ const PROVIDER_AGENT_DIRS = {
26
+ claude: '.claude/agents',
27
+ codex: '.codex/agents',
28
+ copilot: '.github/agents',
29
+ cursor: '.cursor/agents',
30
+ factory: '.factory/droids',
31
+ opencode: '.opencode/agent',
32
+ warp: '.warp/agents',
33
+ windsurf: '.windsurf/agents',
34
+ };
35
+ export async function currentBundledAgentBasenames(frameworkRoot) {
36
+ return new Set((await collectPackagedAgentInventory(frameworkRoot)).keys());
37
+ }
38
+ async function readFrameworkVersion(frameworkRoot) {
39
+ try {
40
+ const pkg = JSON.parse(await fs.readFile(path.join(frameworkRoot, 'package.json'), 'utf8'));
41
+ return typeof pkg.version === 'string' && pkg.version.length > 0 ? pkg.version : null;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ function isOlderManagedVersion(deployedVersion, currentVersion) {
48
+ const parse = (version) => {
49
+ const match = /^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/.exec(version);
50
+ return match
51
+ ? { core: [Number(match[1]), Number(match[2]), Number(match[3])], prerelease: match[4] ?? null }
52
+ : null;
53
+ };
54
+ const deployed = parse(deployedVersion);
55
+ const current = parse(currentVersion);
56
+ if (!deployed || !current)
57
+ return deployedVersion !== currentVersion;
58
+ for (let index = 0; index < deployed.core.length; index += 1) {
59
+ if (deployed.core[index] !== current.core[index]) {
60
+ return deployed.core[index] < current.core[index];
61
+ }
62
+ }
63
+ if (deployed.prerelease === current.prerelease)
64
+ return false;
65
+ if (deployed.prerelease === null)
66
+ return false;
67
+ if (current.prerelease === null)
68
+ return true;
69
+ return deployed.prerelease.localeCompare(current.prerelease, undefined, { numeric: true }) < 0;
70
+ }
71
+ export async function pruneStaleManagedAgentFiles(options) {
72
+ const desired = await currentBundledAgentBasenames(options.frameworkRoot);
73
+ const currentVersion = options.currentVersion ?? await readFrameworkVersion(options.frameworkRoot);
74
+ const removals = [];
75
+ for (const [provider, relDir] of Object.entries(PROVIDER_AGENT_DIRS)) {
76
+ const dir = path.join(options.projectRoot, relDir);
77
+ let entries;
78
+ try {
79
+ entries = await fs.readdir(dir, { withFileTypes: true });
80
+ }
81
+ catch {
82
+ continue;
83
+ }
84
+ for (const entry of entries) {
85
+ if (!entry.isFile() || !entry.name.endsWith('.md'))
86
+ continue;
87
+ const file = path.join(dir, entry.name);
88
+ let content;
89
+ try {
90
+ content = await fs.readFile(file, 'utf8');
91
+ }
92
+ catch {
93
+ continue;
94
+ }
95
+ const marker = parseManagedArtifactMarker(content);
96
+ if (marker?.source !== 'bundled')
97
+ continue;
98
+ const artifactName = normalizeAgentArtifactName(entry.name);
99
+ const missingFromCurrentPackage = !desired.has(artifactName);
100
+ const fromOlderPackage = currentVersion !== null && isOlderManagedVersion(marker.version, currentVersion);
101
+ if (!missingFromCurrentPackage && !fromOlderPackage)
102
+ continue;
103
+ const relFile = path.relative(options.projectRoot, file);
104
+ if (!options.dryRun)
105
+ await fs.rm(file, { force: true });
106
+ let providerRemoval = removals.find((item) => item.provider === provider);
107
+ if (!providerRemoval) {
108
+ providerRemoval = { provider, paths: [] };
109
+ removals.push(providerRemoval);
110
+ }
111
+ providerRemoval.paths.push(relFile);
112
+ }
113
+ }
114
+ for (const removal of removals)
115
+ removal.paths.sort((a, b) => a.localeCompare(b));
116
+ return removals;
117
+ }
118
+ /**
119
+ * Parse --flag value pairs from args
120
+ */
121
+ function parseFlag(args, flag) {
122
+ const idx = args.indexOf(flag);
123
+ if (idx === -1 || idx + 1 >= args.length)
124
+ return undefined;
125
+ return args[idx + 1];
126
+ }
127
+ function hasFlag(args, flag) {
128
+ return args.includes(flag);
129
+ }
130
+ const MODEL_DEPLOY_VALUE_FLAGS = new Set([
131
+ '--model', '--reasoning-model', '--coding-model', '--efficiency-model',
132
+ '--filter', '--filter-role', '--model-tier',
133
+ ]);
134
+ const MODEL_DEPLOY_BOOLEAN_FLAGS = new Set(['--save', '--save-user']);
135
+ export function collectModelDeployArgs(args) {
136
+ const forwarded = [];
137
+ for (let i = 0; i < args.length; i++) {
138
+ if (MODEL_DEPLOY_BOOLEAN_FLAGS.has(args[i]))
139
+ forwarded.push(args[i]);
140
+ else if (MODEL_DEPLOY_VALUE_FLAGS.has(args[i]) && args[i + 1]) {
141
+ forwarded.push(args[i], args[++i]);
142
+ }
143
+ }
144
+ return forwarded;
145
+ }
146
+ /**
147
+ * Refresh command handler (formerly sync)
148
+ */
149
+ export const refreshHandler = {
150
+ id: 'refresh',
151
+ name: 'Refresh',
152
+ description: 'Refresh AIWG to latest version and re-deploy all frameworks',
153
+ category: 'maintenance',
154
+ aliases: ['--refresh', 'sync', '--sync'],
155
+ async execute(ctx) {
156
+ const dryRun = hasFlag(ctx.args, '--dry-run');
157
+ const quiet = hasFlag(ctx.args, '--quiet');
158
+ const skipUpdate = hasFlag(ctx.args, '--skip-update');
159
+ const packagesOnly = hasFlag(ctx.args, '--packages-only');
160
+ const provider = parseFlag(ctx.args, '--provider');
161
+ const channel = parseFlag(ctx.args, '--channel');
162
+ const frameworksArg = parseFlag(ctx.args, '--frameworks');
163
+ const modelDeployArgs = collectModelDeployArgs(ctx.args);
164
+ const frameworkRoot = await getFrameworkRoot();
165
+ const runner = createScriptRunner(frameworkRoot);
166
+ if (!quiet) {
167
+ ui.blank();
168
+ // Deprecation notice when invoked as 'sync'
169
+ const invokedAs = ctx.rawArgs[0]?.toLowerCase();
170
+ if (invokedAs === 'sync' || invokedAs === '--sync') {
171
+ ui.warn("'aiwg sync' is deprecated — use 'aiwg refresh' instead (renamed to avoid git sync confusion)");
172
+ }
173
+ console.log(` ${ui.brandMark()} ${ui.bold('aiwg refresh')}${dryRun ? ui.dimText(' (dry run)') : ''}`);
174
+ ui.rule();
175
+ }
176
+ // Step 1: Detect provider
177
+ if (!quiet)
178
+ ui.info('Detecting provider...');
179
+ await runner.run('tools/cli/runtime-info.mjs', [], { capture: true });
180
+ const resolution = await resolveActiveProvider({ cwd: ctx.cwd, explicitProvider: provider, detectProcess: true });
181
+ if (!resolution.provider) {
182
+ if (!quiet)
183
+ ui.warn('Provider detection ambiguous: ' + resolution.reason + '. Specify --provider <name>.');
184
+ return { exitCode: 2, message: 'Provider detection ambiguous: ' + resolution.reason };
185
+ }
186
+ const detectedProvider = resolution.provider;
187
+ if (!quiet)
188
+ ui.success('Provider: ' + detectedProvider);
189
+ // Step 2: Check current version
190
+ if (!quiet)
191
+ ui.info('Checking version...');
192
+ await runner.run('tools/cli/version.mjs', ['--json'], { capture: true });
193
+ if (!quiet)
194
+ ui.success('Version check complete');
195
+ // Step 2.5: Refresh remote packages (always, unless --packages-only skips npm)
196
+ if (!quiet)
197
+ ui.info(dryRun ? 'Would refresh remote packages...' : 'Refreshing remote packages...');
198
+ if (!dryRun) {
199
+ try {
200
+ const refreshed = await refreshAllPackages();
201
+ if (refreshed.length > 0) {
202
+ if (!quiet)
203
+ ui.success(`Refreshed ${refreshed.length} remote package${refreshed.length > 1 ? 's' : ''}: ${refreshed.join(', ')}`);
204
+ }
205
+ else {
206
+ if (!quiet)
207
+ ui.dim(' No remote packages registered');
208
+ }
209
+ }
210
+ catch (error) {
211
+ if (!quiet)
212
+ ui.warn(`Remote package refresh failed: ${error instanceof Error ? error.message : String(error)}`);
213
+ }
214
+ }
215
+ if (packagesOnly) {
216
+ if (!quiet) {
217
+ ui.rule();
218
+ ui.success('Remote packages refreshed (--packages-only, skipping npm update and framework deploy)');
219
+ ui.blank();
220
+ }
221
+ return { exitCode: 0 };
222
+ }
223
+ // Step 3: Update package (unless --skip-update)
224
+ if (!skipUpdate) {
225
+ if (!quiet)
226
+ ui.info(dryRun ? 'Would check for updates...' : 'Checking for updates...');
227
+ if (!dryRun) {
228
+ const channelArgs = channel ? ['--channel', channel] : [];
229
+ const updateResult = await runner.run('tools/cli/update.mjs', channelArgs, { capture: quiet });
230
+ if (updateResult.exitCode === 0) {
231
+ if (!quiet)
232
+ ui.success('Package up to date');
233
+ }
234
+ else {
235
+ if (!quiet)
236
+ ui.warn('Update check returned non-zero (may already be current)');
237
+ }
238
+ }
239
+ }
240
+ else {
241
+ if (!quiet)
242
+ ui.dim(' Skipping package update (--skip-update)');
243
+ }
244
+ // Step 4: Re-deploy frameworks
245
+ const frameworks = frameworksArg ? frameworksArg.split(',') : undefined;
246
+ if (!quiet)
247
+ ui.info(dryRun ? 'Would re-deploy frameworks...' : 'Re-deploying frameworks...');
248
+ if (!dryRun) {
249
+ const deployTarget = frameworks || ['all'];
250
+ for (const fw of deployTarget) {
251
+ const providerArgs = ['--provider', detectedProvider, ...modelDeployArgs];
252
+ const useResult = await runner.run('tools/cli/deploy.mjs', [fw, ...providerArgs], { capture: quiet });
253
+ if (useResult.exitCode === 0) {
254
+ if (!quiet)
255
+ ui.success(`Deployed: ${fw}`);
256
+ }
257
+ else {
258
+ if (!quiet)
259
+ ui.warn(`Deploy issue: ${fw} (exit ${useResult.exitCode})`);
260
+ }
261
+ }
262
+ }
263
+ else {
264
+ const targets = frameworks || ['all installed frameworks'];
265
+ if (!quiet) {
266
+ for (const fw of targets) {
267
+ ui.dim(` Would re-deploy: ${fw}`);
268
+ }
269
+ }
270
+ }
271
+ // Step 4.25: Report planned project-local deploys (#1035).
272
+ // The actual deploy is performed by `aiwg use` underneath via deploy.mjs;
273
+ // this block surfaces what *would* happen during dry-run and what was
274
+ // covered during a real refresh.
275
+ try {
276
+ const plDiscovery = await discoverProjectLocalBundles(process.cwd());
277
+ const plCount = plDiscovery.bundles.length;
278
+ if (plCount > 0) {
279
+ if (dryRun) {
280
+ if (!quiet) {
281
+ ui.info(`Would re-deploy ${plCount} project-local bundle(s):`);
282
+ for (const b of plDiscovery.bundles) {
283
+ ui.dim(` ${b.type} '${b.id}' from ${b.localPath}`);
284
+ }
285
+ }
286
+ }
287
+ else {
288
+ if (!quiet)
289
+ ui.success(`Project-local: ${plCount} bundle(s) re-deployed via 'aiwg use'`);
290
+ }
291
+ }
292
+ if (plDiscovery.errors.length > 0 && !quiet) {
293
+ ui.warn(`Project-local discovery: ${plDiscovery.errors.length} validation error(s) — run 'aiwg list --project-local' for details`);
294
+ }
295
+ }
296
+ catch {
297
+ // Non-fatal — refresh continues
298
+ }
299
+ // Step 4.5: Stale deployment check (#621, #1460, #1799)
300
+ if (!quiet)
301
+ ui.info('Checking for stale deployments...');
302
+ let staleAgentRemovals = [];
303
+ if (!dryRun) {
304
+ try {
305
+ staleAgentRemovals = await pruneStaleManagedAgentFiles({
306
+ projectRoot: ctx.cwd,
307
+ frameworkRoot,
308
+ });
309
+ if (staleAgentRemovals.length > 0 && !quiet) {
310
+ const total = staleAgentRemovals.reduce((sum, item) => sum + item.paths.length, 0);
311
+ ui.success(`Removed ${total} stale AIWG-managed agent file${total === 1 ? '' : 's'} ` +
312
+ `across ${staleAgentRemovals.length} provider${staleAgentRemovals.length === 1 ? '' : 's'}`);
313
+ for (const removal of staleAgentRemovals) {
314
+ const shown = removal.paths.slice(0, 3).join(', ');
315
+ const remainder = removal.paths.length - 3;
316
+ ui.dim(` ${removal.provider}: ${removal.paths.length} (${shown}${remainder > 0 ? `, ...and ${remainder} more` : ''})`);
317
+ }
318
+ }
319
+ }
320
+ catch {
321
+ if (!quiet)
322
+ ui.dim(' Agent orphan cleanup skipped (non-critical)');
323
+ }
324
+ try {
325
+ const { getFrameworkRoot } = await import('../../channel/manager.mjs');
326
+ const { join } = await import('path');
327
+ const config = await readAiwgConfig(process.cwd());
328
+ if (config) {
329
+ const MANIFEST_PATHS = {
330
+ sdlc: 'agentic/code/frameworks/sdlc-complete/manifest.json',
331
+ marketing: 'agentic/code/frameworks/media-marketing-kit/manifest.json',
332
+ 'media-curator': 'agentic/code/frameworks/media-curator/manifest.json',
333
+ research: 'agentic/code/frameworks/research-complete/manifest.json',
334
+ };
335
+ const frameworkRoot = await getFrameworkRoot();
336
+ // Batch-hash manifests in parallel instead of serially awaiting each
337
+ // one. For ~10 frameworks this cuts refresh latency from ~N*I/O to
338
+ // max-single-I/O on a warm filesystem (#919 cleanup).
339
+ const hashChecks = await Promise.all(Object.entries(config.installed).map(async ([name, entry]) => {
340
+ if (!entry.manifestHash)
341
+ return null;
342
+ const relPath = MANIFEST_PATHS[name];
343
+ if (!relPath)
344
+ return null;
345
+ const currentHash = await hashManifest(join(frameworkRoot, relPath));
346
+ return currentHash && currentHash !== entry.manifestHash ? name : null;
347
+ }));
348
+ const stale = hashChecks.filter((n) => n !== null);
349
+ if (stale.length > 0) {
350
+ for (const name of stale) {
351
+ ui.warn(`Stale deployment: ${name} — run 'aiwg use ${name}' to redeploy`);
352
+ }
353
+ }
354
+ else {
355
+ if (!quiet)
356
+ ui.success('All deployments up to date');
357
+ }
358
+ }
359
+ else {
360
+ if (!quiet)
361
+ ui.dim(' No aiwg.config — skipping stale check');
362
+ }
363
+ }
364
+ catch {
365
+ if (!quiet)
366
+ ui.dim(' Stale check skipped (non-critical)');
367
+ }
368
+ }
369
+ // Step 4.6: Migrate aiwg.config — add parallelism block if missing (#1359)
370
+ if (!dryRun) {
371
+ try {
372
+ const config = await readAiwgConfig(process.cwd());
373
+ if (config && !config.parallelism) {
374
+ const primary = config.providers[0];
375
+ const defaults = getProviderParallelismDefaults(primary);
376
+ config.parallelism = {
377
+ max_parallel_subagents: defaults.max_parallel_subagents,
378
+ max_parallel_ralph_loops: defaults.max_parallel_ralph_loops,
379
+ max_parallel_mc_missions: defaults.max_parallel_mc_missions,
380
+ rationale: `Provider default for ${primary ?? 'unknown'} (migrated by aiwg refresh)`,
381
+ };
382
+ await writeAiwgConfig(process.cwd(), config);
383
+ if (!quiet) {
384
+ ui.success(`Added parallelism block to .aiwg/aiwg.config (max_parallel_subagents=${defaults.max_parallel_subagents})`);
385
+ }
386
+ }
387
+ }
388
+ catch {
389
+ // Non-fatal — refresh continues even if migration fails
390
+ }
391
+ }
392
+ // Step 5: Health check
393
+ if (!quiet)
394
+ ui.info(dryRun ? 'Would run health check...' : 'Running health check...');
395
+ if (!dryRun) {
396
+ const doctorResult = await runner.run('tools/cli/doctor.mjs', [], { capture: quiet });
397
+ if (doctorResult.exitCode === 0) {
398
+ if (!quiet)
399
+ ui.success('Health check passed');
400
+ }
401
+ else {
402
+ if (!quiet)
403
+ ui.warn('Health check found issues (run `aiwg doctor` for details)');
404
+ }
405
+ }
406
+ // Summary
407
+ if (!quiet) {
408
+ ui.rule();
409
+ if (dryRun) {
410
+ ui.info('Dry run complete — no changes made');
411
+ }
412
+ else {
413
+ ui.success('Refresh complete');
414
+ }
415
+ ui.blank();
416
+ }
417
+ // Quiet mode: JSON output
418
+ if (quiet) {
419
+ const output = JSON.stringify({
420
+ status: dryRun ? 'dry-run' : 'refreshed',
421
+ provider: detectedProvider,
422
+ frameworks: frameworks || ['all'],
423
+ skipUpdate,
424
+ channel: channel || undefined,
425
+ staleAgentRemovals,
426
+ });
427
+ console.log(output);
428
+ }
429
+ return { exitCode: dryRun ? 0 : 0 };
430
+ },
431
+ };
432
+ //# sourceMappingURL=refresh.js.map