@aiwg/cli 0.0.0-bootstrap.0 → 2026.7.18

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 (467) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -1
  3. package/bin/aiwg.mjs +349 -0
  4. package/dist/src/a2a/agent-card.js +145 -0
  5. package/dist/src/a2a/client.js +411 -0
  6. package/dist/src/a2a/hitl-cli.js +171 -0
  7. package/dist/src/a2a/hitl-driver.js +370 -0
  8. package/dist/src/a2a/hitl.js +181 -0
  9. package/dist/src/a2a/http.js +193 -0
  10. package/dist/src/a2a/jcs.js +128 -0
  11. package/dist/src/a2a/jws.js +187 -0
  12. package/dist/src/a2a/types.js +24 -0
  13. package/dist/src/a2a/webhook.js +240 -0
  14. package/dist/src/activity-log/cli.js +348 -0
  15. package/dist/src/activity-log/parser.js +81 -0
  16. package/dist/src/activity-log/types.js +50 -0
  17. package/dist/src/agents/agent-deployer.js +367 -0
  18. package/dist/src/agents/agent-packager.js +271 -0
  19. package/dist/src/agents/agent-validator.js +271 -0
  20. package/dist/src/agents/grounding/knowledge-base.js +161 -0
  21. package/dist/src/agents/grounding/types.js +12 -0
  22. package/dist/src/agents/index.js +10 -0
  23. package/dist/src/agents/packaged-agent-inventory.js +75 -0
  24. package/dist/src/agents/types.js +7 -0
  25. package/dist/src/api/index.d.ts +10 -0
  26. package/dist/src/api/index.js +10 -0
  27. package/dist/src/artifacts/address-parser.js +73 -0
  28. package/dist/src/artifacts/audit/cli.js +183 -0
  29. package/dist/src/artifacts/audit/drift.js +122 -0
  30. package/dist/src/artifacts/audit/types.js +12 -0
  31. package/dist/src/artifacts/backends/graphology-backend.js +160 -0
  32. package/dist/src/artifacts/backends/json-backend.js +129 -0
  33. package/dist/src/artifacts/backends/sqlite-backend.js +199 -0
  34. package/dist/src/artifacts/browser-export.js +622 -0
  35. package/dist/src/artifacts/capability-resolver.js +94 -0
  36. package/dist/src/artifacts/checksum-manifest.js +91 -0
  37. package/dist/src/artifacts/citation-parser.js +162 -0
  38. package/dist/src/artifacts/cli.js +1486 -0
  39. package/dist/src/artifacts/corpus-tools/citation-densify.js +311 -0
  40. package/dist/src/artifacts/corpus-tools/cli.js +393 -0
  41. package/dist/src/artifacts/corpus-tools/corpus-graph.js +225 -0
  42. package/dist/src/artifacts/corpus-tools/curator.js +186 -0
  43. package/dist/src/artifacts/corpus-tools/discovery-log.js +70 -0
  44. package/dist/src/artifacts/corpus-tools/funder-network.js +141 -0
  45. package/dist/src/artifacts/corpus-tools/induction-audit.js +233 -0
  46. package/dist/src/artifacts/corpus-tools/integrity-scan.js +202 -0
  47. package/dist/src/artifacts/corpus-tools/profile-communities.js +166 -0
  48. package/dist/src/artifacts/corpus-tools/profile-edges.js +72 -0
  49. package/dist/src/artifacts/corpus-tools/profile-embed.js +113 -0
  50. package/dist/src/artifacts/corpus-tools/profile-generate-fm.js +167 -0
  51. package/dist/src/artifacts/corpus-tools/profile-generate.js +181 -0
  52. package/dist/src/artifacts/corpus-tools/profile-metrics.js +98 -0
  53. package/dist/src/artifacts/corpus-tools/profile-status.js +86 -0
  54. package/dist/src/artifacts/corpus-tools/profile-temporal.js +139 -0
  55. package/dist/src/artifacts/corpus-tools/radar-init.js +93 -0
  56. package/dist/src/artifacts/corpus-tools/radar-report.js +118 -0
  57. package/dist/src/artifacts/corpus-tools/radar-shared.js +189 -0
  58. package/dist/src/artifacts/corpus-tools/radar-status.js +68 -0
  59. package/dist/src/artifacts/corpus-tools/sidecar-lint.js +233 -0
  60. package/dist/src/artifacts/corpus-tools/sidecar-repair.js +277 -0
  61. package/dist/src/artifacts/corpus-tools/snapshot.js +591 -0
  62. package/dist/src/artifacts/corpus-tools/source-types.js +164 -0
  63. package/dist/src/artifacts/corpus-tools/vision-extract.js +243 -0
  64. package/dist/src/artifacts/corpus-views/build.js +126 -0
  65. package/dist/src/artifacts/corpus-views/corpus-config.js +124 -0
  66. package/dist/src/artifacts/corpus-views/ref-parser.js +437 -0
  67. package/dist/src/artifacts/corpus-views/renderers.js +353 -0
  68. package/dist/src/artifacts/corpus-views/taxonomies.js +131 -0
  69. package/dist/src/artifacts/dep-graph.js +173 -0
  70. package/dist/src/artifacts/discover-facets.js +375 -0
  71. package/dist/src/artifacts/embedding-index.js +354 -0
  72. package/dist/src/artifacts/enrichment/cli.js +240 -0
  73. package/dist/src/artifacts/enrichment/prompt.js +47 -0
  74. package/dist/src/artifacts/enrichment/store.js +90 -0
  75. package/dist/src/artifacts/enrichment/types.js +12 -0
  76. package/dist/src/artifacts/fortemi-core-query-adapter.js +475 -0
  77. package/dist/src/artifacts/fortemi-core-sync.js +251 -0
  78. package/dist/src/artifacts/fortemi-shard-export.js +44 -0
  79. package/dist/src/artifacts/fulltext.js +108 -0
  80. package/dist/src/artifacts/graph-backend.js +51 -0
  81. package/dist/src/artifacts/graph-query.js +247 -0
  82. package/dist/src/artifacts/hybrid-query.js +225 -0
  83. package/dist/src/artifacts/index-builder.js +1089 -0
  84. package/dist/src/artifacts/index-reader.js +112 -0
  85. package/dist/src/artifacts/index-status.js +193 -0
  86. package/dist/src/artifacts/legacy-index-migration.js +169 -0
  87. package/dist/src/artifacts/move.js +154 -0
  88. package/dist/src/artifacts/operational-state.js +239 -0
  89. package/dist/src/artifacts/prebuilt-build-lock.js +49 -0
  90. package/dist/src/artifacts/query-engine.js +1955 -0
  91. package/dist/src/artifacts/source-graph.js +529 -0
  92. package/dist/src/artifacts/stats.js +169 -0
  93. package/dist/src/artifacts/types.js +606 -0
  94. package/dist/src/artifacts/views/cli.js +293 -0
  95. package/dist/src/artifacts/views/definition.js +170 -0
  96. package/dist/src/artifacts/views/store.js +149 -0
  97. package/dist/src/artifacts/views/types.js +8 -0
  98. package/dist/src/artifacts/watcher.js +255 -0
  99. package/dist/src/catalog/builtin-models.json +636 -0
  100. package/dist/src/catalog/cli.js +228 -0
  101. package/dist/src/catalog/cli.mjs +289 -0
  102. package/dist/src/catalog/index.js +15 -0
  103. package/dist/src/catalog/loader.js +217 -0
  104. package/dist/src/catalog/loader.mjs +251 -0
  105. package/dist/src/catalog/sources.json +41 -0
  106. package/dist/src/catalog/types.js +8 -0
  107. package/dist/src/channel/manager.mjs +504 -0
  108. package/dist/src/cli/agent-spawn.js +178 -0
  109. package/dist/src/cli/cli-extension-loader.js +245 -0
  110. package/dist/src/cli/command-log.js +275 -0
  111. package/dist/src/cli/config-loader.js +232 -0
  112. package/dist/src/cli/env.js +82 -0
  113. package/dist/src/cli/errors.js +150 -0
  114. package/dist/src/cli/find-package-root.js +40 -0
  115. package/dist/src/cli/git-hooks.js +250 -0
  116. package/dist/src/cli/handlers/agentcard.js +206 -0
  117. package/dist/src/cli/handlers/artifacts.js +76 -0
  118. package/dist/src/cli/handlers/best-practices-audit.js +280 -0
  119. package/dist/src/cli/handlers/cockpit.js +137 -0
  120. package/dist/src/cli/handlers/command-log.js +37 -0
  121. package/dist/src/cli/handlers/daemon.js +59 -0
  122. package/dist/src/cli/handlers/diagnose.js +300 -0
  123. package/dist/src/cli/handlers/execution-mode.js +105 -0
  124. package/dist/src/cli/handlers/feedback.js +341 -0
  125. package/dist/src/cli/handlers/help.js +147 -0
  126. package/dist/src/cli/handlers/index.js +302 -0
  127. package/dist/src/cli/handlers/init.js +179 -0
  128. package/dist/src/cli/handlers/install.js +129 -0
  129. package/dist/src/cli/handlers/issues.js +46 -0
  130. package/dist/src/cli/handlers/lint.js +42 -0
  131. package/dist/src/cli/handlers/local-executor.js +315 -0
  132. package/dist/src/cli/handlers/marketplace.js +168 -0
  133. package/dist/src/cli/handlers/mc.js +1010 -0
  134. package/dist/src/cli/handlers/models.js +352 -0
  135. package/dist/src/cli/handlers/packages.js +155 -0
  136. package/dist/src/cli/handlers/ralph-launcher.js +717 -0
  137. package/dist/src/cli/handlers/ralph.js +575 -0
  138. package/dist/src/cli/handlers/refresh.js +432 -0
  139. package/dist/src/cli/handlers/regenerate.js +336 -0
  140. package/dist/src/cli/handlers/repo-access.js +109 -0
  141. package/dist/src/cli/handlers/run.js +165 -0
  142. package/dist/src/cli/handlers/runtime-info.js +301 -0
  143. package/dist/src/cli/handlers/sandbox.js +197 -0
  144. package/dist/src/cli/handlers/scaffolding.js +149 -0
  145. package/dist/src/cli/handlers/script-runner.js +121 -0
  146. package/dist/src/cli/handlers/sdlc-accelerate.js +148 -0
  147. package/dist/src/cli/handlers/serve.js +1835 -0
  148. package/dist/src/cli/handlers/session.js +348 -0
  149. package/dist/src/cli/handlers/setup.js +440 -0
  150. package/dist/src/cli/handlers/skill-lint.js +367 -0
  151. package/dist/src/cli/handlers/skill-usage.js +74 -0
  152. package/dist/src/cli/handlers/steward.js +567 -0
  153. package/dist/src/cli/handlers/subcommands.js +1702 -0
  154. package/dist/src/cli/handlers/team.js +337 -0
  155. package/dist/src/cli/handlers/types.js +11 -0
  156. package/dist/src/cli/handlers/use.js +2772 -0
  157. package/dist/src/cli/handlers/utilities.js +703 -0
  158. package/dist/src/cli/handlers/version.js +134 -0
  159. package/dist/src/cli/handlers/workspace-context.js +93 -0
  160. package/dist/src/cli/handlers/workspace.js +126 -0
  161. package/dist/src/cli/help-generator.js +178 -0
  162. package/dist/src/cli/hooks/builtin/activity-log-hook.js +126 -0
  163. package/dist/src/cli/hooks/executor.js +96 -0
  164. package/dist/src/cli/hooks/index.js +15 -0
  165. package/dist/src/cli/hooks/registry.js +143 -0
  166. package/dist/src/cli/hooks/types.js +13 -0
  167. package/dist/src/cli/log.js +492 -0
  168. package/dist/src/cli/project-isolation/detect.js +70 -0
  169. package/dist/src/cli/project-isolation/index.js +7 -0
  170. package/dist/src/cli/project-isolation/signals.js +17 -0
  171. package/dist/src/cli/project-isolation/warning.js +102 -0
  172. package/dist/src/cli/prompt-utils.js +155 -0
  173. package/dist/src/cli/provider-deployment-plan.js +126 -0
  174. package/dist/src/cli/provider-resolution.js +119 -0
  175. package/dist/src/cli/router.js +305 -0
  176. package/dist/src/cli/scope-resolver.js +392 -0
  177. package/dist/src/cli/skill-usage.js +616 -0
  178. package/dist/src/cli/ui.js +224 -0
  179. package/dist/src/cli/watch-service.js +203 -0
  180. package/dist/src/cli/workflow-orchestrator.js +478 -0
  181. package/dist/src/cli/workspace-signals.js +321 -0
  182. package/dist/src/community/footer.js +14 -0
  183. package/dist/src/community/links.js +123 -0
  184. package/dist/src/community/milestones.js +46 -0
  185. package/dist/src/community/nudge-policy.js +93 -0
  186. package/dist/src/config/aiwg-config.js +883 -0
  187. package/dist/src/config/cli.js +703 -0
  188. package/dist/src/config/gitignore.js +156 -0
  189. package/dist/src/config/project-artifacts.js +76 -0
  190. package/dist/src/config/user-config.js +428 -0
  191. package/dist/src/config/user-registry.js +127 -0
  192. package/dist/src/config/workspace.js +276 -0
  193. package/dist/src/contributors/detect.js +39 -0
  194. package/dist/src/contributors/discover.js +172 -0
  195. package/dist/src/contributors/heuristic.js +186 -0
  196. package/dist/src/contributors/index.js +11 -0
  197. package/dist/src/contributors/types.js +13 -0
  198. package/dist/src/contributors/validation.js +116 -0
  199. package/dist/src/data/community.schema.json +43 -0
  200. package/dist/src/data/community.yaml +16 -0
  201. package/dist/src/extensions/capability-index.js +270 -0
  202. package/dist/src/extensions/claude-hooks-installer.js +268 -0
  203. package/dist/src/extensions/commands/definitions.js +3485 -0
  204. package/dist/src/extensions/deployment-registration.js +463 -0
  205. package/dist/src/extensions/index.js +22 -0
  206. package/dist/src/extensions/loader.js +132 -0
  207. package/dist/src/extensions/managed-marker.js +100 -0
  208. package/dist/src/extensions/manifest.js +196 -0
  209. package/dist/src/extensions/project-local-activity.js +114 -0
  210. package/dist/src/extensions/project-local-discovery.js +261 -0
  211. package/dist/src/extensions/project-local-doctor.js +281 -0
  212. package/dist/src/extensions/project-local-gitignore.js +176 -0
  213. package/dist/src/extensions/project-local-paths.js +121 -0
  214. package/dist/src/extensions/project-local-promote.js +218 -0
  215. package/dist/src/extensions/project-local-remove.js +373 -0
  216. package/dist/src/extensions/project-local-scaffold.js +252 -0
  217. package/dist/src/extensions/project-quickref.js +291 -0
  218. package/dist/src/extensions/registry.js +368 -0
  219. package/dist/src/extensions/shadow-resolver.js +271 -0
  220. package/dist/src/extensions/types.js +86 -0
  221. package/dist/src/extensions/upstream-registry.js +195 -0
  222. package/dist/src/extensions/validation.js +631 -0
  223. package/dist/src/features/catalog.js +88 -0
  224. package/dist/src/features/cli.js +197 -0
  225. package/dist/src/features/installer.js +57 -0
  226. package/dist/src/features/paths.js +14 -0
  227. package/dist/src/features/runtime.js +21 -0
  228. package/dist/src/features/status.js +134 -0
  229. package/dist/src/hooks/laziness-detection.js +532 -0
  230. package/dist/src/intake/git-history-analyzer.js +486 -0
  231. package/dist/src/intake/index.js +9 -0
  232. package/dist/src/issues/cli.js +327 -0
  233. package/dist/src/issues/index.js +5 -0
  234. package/dist/src/issues/live.js +154 -0
  235. package/dist/src/issues/local.js +666 -0
  236. package/dist/src/issues/sync.js +143 -0
  237. package/dist/src/issues/types.js +2 -0
  238. package/dist/src/issues/workflows.js +164 -0
  239. package/dist/src/kb/cli.js +173 -0
  240. package/dist/src/lint/cli.js +171 -0
  241. package/dist/src/lint/loader.js +225 -0
  242. package/dist/src/lint/reporters.js +141 -0
  243. package/dist/src/lint/runner.js +364 -0
  244. package/dist/src/lint/types.js +10 -0
  245. package/dist/src/marketplace/cache.js +110 -0
  246. package/dist/src/marketplace/identifier.js +63 -0
  247. package/dist/src/marketplace/registry.js +36 -0
  248. package/dist/src/marketplace/sources/clawhub.js +53 -0
  249. package/dist/src/marketplace/sources/git.js +45 -0
  250. package/dist/src/marketplace/types.js +9 -0
  251. package/dist/src/mcp/adapters/codex-runtime.js +224 -0
  252. package/dist/src/mcp/cli.mjs +1197 -0
  253. package/dist/src/mcp/elicitation.mjs +149 -0
  254. package/dist/src/mcp/helpers.mjs +287 -0
  255. package/dist/src/mcp/index.mjs +11 -0
  256. package/dist/src/mcp/profiles.js +263 -0
  257. package/dist/src/mcp/profiles.mjs +360 -0
  258. package/dist/src/mcp/registry.js +376 -0
  259. package/dist/src/mcp/registry.mjs +387 -0
  260. package/dist/src/mcp/server.mjs +633 -0
  261. package/dist/src/mcp/test-simple.mjs +271 -0
  262. package/dist/src/mcp/tools/command-run.mjs +101 -0
  263. package/dist/src/mcp/tools/discovery.mjs +291 -0
  264. package/dist/src/mcp/tools/interaction.mjs +87 -0
  265. package/dist/src/mcp/tools/orchestration.mjs +320 -0
  266. package/dist/src/mcp/tools/subsystems.mjs +640 -0
  267. package/dist/src/memory/cli.js +166 -0
  268. package/dist/src/memory/project-registry.js +282 -0
  269. package/dist/src/metrics/artifact-metrics.js +184 -0
  270. package/dist/src/metrics/context-budget.js +174 -0
  271. package/dist/src/metrics/token-counter.js +133 -0
  272. package/dist/src/models/config-loader.js +228 -0
  273. package/dist/src/models/index.js +22 -0
  274. package/dist/src/models/model-capabilities.v1.json +120 -0
  275. package/dist/src/models/model-catalog.v1.json +96 -0
  276. package/dist/src/models/model-discovery.js +521 -0
  277. package/dist/src/models/provider-models.js +73 -0
  278. package/dist/src/models/provider-policy.js +273 -0
  279. package/dist/src/models/resolver.js +245 -0
  280. package/dist/src/models/router.js +70 -0
  281. package/dist/src/models/types.js +8 -0
  282. package/dist/src/models/wrapper-deployment.js +178 -0
  283. package/dist/src/models/wrapper-route.js +54 -0
  284. package/dist/src/ops/cli.js +268 -0
  285. package/dist/src/ops/registry.js +623 -0
  286. package/dist/src/packages/adapters/clawhub.js +113 -0
  287. package/dist/src/packages/adapters/git.js +153 -0
  288. package/dist/src/packages/adapters/gitea.js +93 -0
  289. package/dist/src/packages/adapters/github.js +69 -0
  290. package/dist/src/packages/adapters/local-cache.js +89 -0
  291. package/dist/src/packages/package-registry.js +143 -0
  292. package/dist/src/packages/registry.js +238 -0
  293. package/dist/src/packages/types.js +11 -0
  294. package/dist/src/plugin/cross-framework-ops.js +475 -0
  295. package/dist/src/plugin/framework-config-loader.js +235 -0
  296. package/dist/src/plugin/framework-detector.js +186 -0
  297. package/dist/src/plugin/framework-isolator.js +341 -0
  298. package/dist/src/plugin/framework-migration.js +371 -0
  299. package/dist/src/plugin/metadata-validator.js +906 -0
  300. package/dist/src/plugin/plugin-installer.js +436 -0
  301. package/dist/src/plugin/plugin-status.js +369 -0
  302. package/dist/src/plugin/plugin-uninstaller.js +473 -0
  303. package/dist/src/plugin/registry-validator.js +344 -0
  304. package/dist/src/plugin/skill-command-translator.js +415 -0
  305. package/dist/src/plugin/workspace-creator.js +189 -0
  306. package/dist/src/plugin/workspace-migrator.js +821 -0
  307. package/dist/src/policy/authorization.js +390 -0
  308. package/dist/src/policy/repo-access.js +215 -0
  309. package/dist/src/provenance/cli.js +16 -0
  310. package/dist/src/providers/capability-matrix.js +300 -0
  311. package/dist/src/providers/capability-matrix.yaml +514 -0
  312. package/dist/src/providers/provider-definitions.js +977 -0
  313. package/dist/src/providers/provider-definitions.mjs +159 -0
  314. package/dist/src/providers/provider-inventory.js +169 -0
  315. package/dist/src/quality/feedback-ab.js +174 -0
  316. package/dist/src/quality/feedback-collector.js +176 -0
  317. package/dist/src/quality/feedback-tracker.js +123 -0
  318. package/dist/src/quality/patterns/adr.json +24 -0
  319. package/dist/src/quality/patterns/sad.json +24 -0
  320. package/dist/src/quality/patterns/test-plan.json +24 -0
  321. package/dist/src/quality/patterns/use-case.json +24 -0
  322. package/dist/src/quality/scoring.js +157 -0
  323. package/dist/src/reflections/cli.js +15 -0
  324. package/dist/src/release/plan.js +139 -0
  325. package/dist/src/research/cache/manager.js +227 -0
  326. package/dist/src/research/clients/arxiv.js +156 -0
  327. package/dist/src/research/clients/base.js +197 -0
  328. package/dist/src/research/clients/crossref.js +112 -0
  329. package/dist/src/research/clients/semantic-scholar.js +126 -0
  330. package/dist/src/research/clients/unpaywall.js +87 -0
  331. package/dist/src/research/index.js +14 -0
  332. package/dist/src/research/query-cli.js +336 -0
  333. package/dist/src/research/services/acquisition.js +313 -0
  334. package/dist/src/research/services/archival.js +225 -0
  335. package/dist/src/research/services/citation.js +279 -0
  336. package/dist/src/research/services/discovery.js +243 -0
  337. package/dist/src/research/services/documentation.js +269 -0
  338. package/dist/src/research/services/index.js +14 -0
  339. package/dist/src/research/services/provenance.js +279 -0
  340. package/dist/src/research/services/quality.js +370 -0
  341. package/dist/src/research/services/types.js +7 -0
  342. package/dist/src/research/storage-cli.js +20 -0
  343. package/dist/src/research/types.js +47 -0
  344. package/dist/src/resources/index.d.ts +2 -0
  345. package/dist/src/resources/index.js +2 -0
  346. package/dist/src/resources/web-release.d.ts +89 -0
  347. package/dist/src/resources/web-release.js +886 -0
  348. package/dist/src/rlm/cache/cli.js +162 -0
  349. package/dist/src/rlm/cache/hash.js +35 -0
  350. package/dist/src/rlm/cache/store.js +170 -0
  351. package/dist/src/rlm/cache/types.js +8 -0
  352. package/dist/src/rlm/cli.js +650 -0
  353. package/dist/src/serve/a2a-terminal-observer.js +120 -0
  354. package/dist/src/serve/agent-router.js +205 -0
  355. package/dist/src/serve/dispatch-router.js +171 -0
  356. package/dist/src/serve/executor-registry.js +715 -0
  357. package/dist/src/serve/mission-conductor.js +177 -0
  358. package/dist/src/serve/orchestrator-adapter.js +113 -0
  359. package/dist/src/serve/orchestrator-override.js +94 -0
  360. package/dist/src/serve/orchestrator-pty.js +133 -0
  361. package/dist/src/serve/pty-bridge.js +799 -0
  362. package/dist/src/serve/sandbox-registry.js +832 -0
  363. package/dist/src/serve/screen-reader.js +228 -0
  364. package/dist/src/serve/stack-adapters.js +68 -0
  365. package/dist/src/serve/telemetry.js +143 -0
  366. package/dist/src/skills/adapters/clawhub.js +250 -0
  367. package/dist/src/skills/adapters/local.js +335 -0
  368. package/dist/src/skills/adapters/openclaw.js +316 -0
  369. package/dist/src/skills/cli.js +334 -0
  370. package/dist/src/skills/registry.js +117 -0
  371. package/dist/src/skills/run.js +259 -0
  372. package/dist/src/skills/runtime.js +94 -0
  373. package/dist/src/skills/types.js +10 -0
  374. package/dist/src/smiths/agentsmith/demo.js +116 -0
  375. package/dist/src/smiths/agentsmith/examples.js +300 -0
  376. package/dist/src/smiths/agentsmith/generator.js +503 -0
  377. package/dist/src/smiths/agentsmith/index.js +11 -0
  378. package/dist/src/smiths/agentsmith/types.js +8 -0
  379. package/dist/src/smiths/commandsmith/example.js +220 -0
  380. package/dist/src/smiths/commandsmith/generator.js +288 -0
  381. package/dist/src/smiths/commandsmith/index.js +41 -0
  382. package/dist/src/smiths/commandsmith/templates.js +296 -0
  383. package/dist/src/smiths/commandsmith/types.js +7 -0
  384. package/dist/src/smiths/context-pipeline/aiwg-md.js +104 -0
  385. package/dist/src/smiths/context-pipeline/allowlist.js +195 -0
  386. package/dist/src/smiths/context-pipeline/claude-hook.js +127 -0
  387. package/dist/src/smiths/context-pipeline/discovery.js +187 -0
  388. package/dist/src/smiths/context-pipeline/external-links-section.js +49 -0
  389. package/dist/src/smiths/context-pipeline/finalization.js +147 -0
  390. package/dist/src/smiths/context-pipeline/generator.js +477 -0
  391. package/dist/src/smiths/context-pipeline/index.js +30 -0
  392. package/dist/src/smiths/context-pipeline/legacy-inject.js +103 -0
  393. package/dist/src/smiths/context-pipeline/managed-hook.js +95 -0
  394. package/dist/src/smiths/context-pipeline/overflow.js +212 -0
  395. package/dist/src/smiths/context-pipeline/parallelism-section.js +94 -0
  396. package/dist/src/smiths/context-pipeline/provider-policy.js +64 -0
  397. package/dist/src/smiths/context-pipeline/sanitizer.js +93 -0
  398. package/dist/src/smiths/context-pipeline/types.js +23 -0
  399. package/dist/src/smiths/context-pipeline/workspace-context.js +988 -0
  400. package/dist/src/smiths/hook-bridge/codex-translator.js +129 -0
  401. package/dist/src/smiths/hook-bridge/copilot-translator.js +64 -0
  402. package/dist/src/smiths/hook-bridge/factory-translator.js +43 -0
  403. package/dist/src/smiths/hook-bridge/hermes-translator.js +88 -0
  404. package/dist/src/smiths/hook-bridge/index.js +79 -0
  405. package/dist/src/smiths/hook-bridge/loader.js +116 -0
  406. package/dist/src/smiths/hook-bridge/shim.js +89 -0
  407. package/dist/src/smiths/hook-bridge/types.js +31 -0
  408. package/dist/src/smiths/index.js +39 -0
  409. package/dist/src/smiths/mcpsmith/analyzers/cli-analyzer.js +390 -0
  410. package/dist/src/smiths/mcpsmith/example.js +119 -0
  411. package/dist/src/smiths/mcpsmith/generator.js +236 -0
  412. package/dist/src/smiths/mcpsmith/index.js +17 -0
  413. package/dist/src/smiths/mcpsmith/types.js +10 -0
  414. package/dist/src/smiths/platform-paths.js +101 -0
  415. package/dist/src/smiths/skillsmith/codex-sidecar.js +85 -0
  416. package/dist/src/smiths/skillsmith/collision-detector.js +249 -0
  417. package/dist/src/smiths/skillsmith/demo.js +83 -0
  418. package/dist/src/smiths/skillsmith/examples.js +161 -0
  419. package/dist/src/smiths/skillsmith/generator.js +316 -0
  420. package/dist/src/smiths/skillsmith/index.js +12 -0
  421. package/dist/src/smiths/skillsmith/namespace-adapter.js +180 -0
  422. package/dist/src/smiths/skillsmith/platform-resolver.js +157 -0
  423. package/dist/src/smiths/skillsmith/types.js +9 -0
  424. package/dist/src/smiths/toolsmith/index.js +10 -0
  425. package/dist/src/smiths/toolsmith/runtime-discovery.mjs +710 -0
  426. package/dist/src/smiths/toolsmith/types.js +8 -0
  427. package/dist/src/storage/backends/fortemi.js +227 -0
  428. package/dist/src/storage/backends/fs.js +134 -0
  429. package/dist/src/storage/backends/logseq.js +309 -0
  430. package/dist/src/storage/backends/obsidian.js +233 -0
  431. package/dist/src/storage/cli.js +468 -0
  432. package/dist/src/storage/config.js +272 -0
  433. package/dist/src/storage/index.js +108 -0
  434. package/dist/src/storage/subsystem-cli.js +201 -0
  435. package/dist/src/storage/types.js +33 -0
  436. package/dist/src/testing/corpus/corpus-builder.js +383 -0
  437. package/dist/src/testing/corpus/ground-truth-manager.js +460 -0
  438. package/dist/src/testing/corpus/index.js +10 -0
  439. package/dist/src/testing/fixtures/index.js +9 -0
  440. package/dist/src/testing/fixtures/test-data-factory.js +472 -0
  441. package/dist/src/testing/generators/index.js +11 -0
  442. package/dist/src/testing/generators/test-case-generator.js +393 -0
  443. package/dist/src/testing/generators/test-code-generator.js +384 -0
  444. package/dist/src/testing/generators/use-case-parser.js +325 -0
  445. package/dist/src/testing/index.js +11 -0
  446. package/dist/src/tracker/capability-protocol.js +118 -0
  447. package/dist/src/update/checker.mjs +396 -0
  448. package/dist/src/update/notifier.mjs +235 -0
  449. package/dist/src/writing/content-diversifier.js +804 -0
  450. package/dist/src/writing/example-generator.js +959 -0
  451. package/dist/src/writing/example-templates.js +99 -0
  452. package/dist/src/writing/pattern-library.js +486 -0
  453. package/dist/src/writing/patterns/banned-phrases.json +4413 -0
  454. package/dist/src/writing/patterns/formulaic-structures.json +1300 -0
  455. package/dist/src/writing/patterns/generic-adjectives.json +1510 -0
  456. package/dist/src/writing/patterns/hedging-language.json +2096 -0
  457. package/dist/src/writing/patterns/transition-words.json +1285 -0
  458. package/dist/src/writing/patterns/weak-verbs.json +1112 -0
  459. package/dist/src/writing/prompt-optimizer.js +660 -0
  460. package/dist/src/writing/prompt-templates.js +583 -0
  461. package/dist/src/writing/scoring-config-loader.js +168 -0
  462. package/dist/src/writing/validation-engine.js +595 -0
  463. package/dist/src/writing/validation-rules.js +380 -0
  464. package/dist/src/writing/voice-analyzer.js +439 -0
  465. package/dist/src/writing/voice-calibration.js +661 -0
  466. package/dist/src/writing/voice-profiles.json +588 -0
  467. package/package.json +65 -9
@@ -0,0 +1,390 @@
1
+ /**
2
+ * CLI Analyzer for MCPsmith
3
+ *
4
+ * Parses CLI tool help output to extract tool definitions.
5
+ *
6
+ * @architecture @.aiwg/architecture/mcpsmith-architecture.md - Section 5.1
7
+ * @implements @.aiwg/architecture/decisions/ADR-014-mcpsmith-mcp-server-generator.md
8
+ */
9
+ import { spawn } from 'child_process';
10
+ /**
11
+ * Analyze a CLI tool and extract MCP tool definitions
12
+ */
13
+ export async function analyzeCLI(options) {
14
+ const { command, includeSubcommands = true,
15
+ // maxDepth and parseManPage reserved for future use
16
+ timeout = 5000 } = options;
17
+ // Get command version
18
+ const version = await getCommandVersion(command, timeout);
19
+ // Get help output
20
+ const helpText = await getHelpOutput(command, timeout);
21
+ // Parse help text
22
+ const parsed = parseHelpText(helpText, command);
23
+ // Extract tool definitions
24
+ const tools = [];
25
+ // If there are subcommands, generate tools for each
26
+ if (includeSubcommands && parsed.subcommands.length > 0) {
27
+ for (const subcommand of parsed.subcommands) {
28
+ const tool = subcommandToTool(command, subcommand, parsed.globalFlags);
29
+ tools.push(tool);
30
+ }
31
+ }
32
+ else {
33
+ // Generate single tool for the command
34
+ const tool = commandToTool(command, parsed);
35
+ tools.push(tool);
36
+ }
37
+ return {
38
+ tools,
39
+ metadata: {
40
+ sourceType: 'cli',
41
+ sourceName: command,
42
+ sourceVersion: version,
43
+ discoveredAt: new Date().toISOString(),
44
+ toolCount: tools.length
45
+ }
46
+ };
47
+ }
48
+ /**
49
+ * Get command version
50
+ */
51
+ async function getCommandVersion(command, timeout) {
52
+ try {
53
+ // Try common version flags
54
+ const versionFlags = ['--version', '-v', 'version', '-V'];
55
+ for (const flag of versionFlags) {
56
+ try {
57
+ const output = await executeCommand(command, [flag], timeout);
58
+ if (output && output.trim().length > 0) {
59
+ // Extract version number from output
60
+ const versionMatch = output.match(/\d+\.\d+(\.\d+)?/);
61
+ if (versionMatch) {
62
+ return versionMatch[0];
63
+ }
64
+ // Return first line if no version number found
65
+ return output.split('\n')[0].trim();
66
+ }
67
+ }
68
+ catch {
69
+ continue;
70
+ }
71
+ }
72
+ return undefined;
73
+ }
74
+ catch {
75
+ return undefined;
76
+ }
77
+ }
78
+ /**
79
+ * Get help output for command
80
+ */
81
+ async function getHelpOutput(command, timeout) {
82
+ const helpFlags = ['--help', '-h', 'help'];
83
+ for (const flag of helpFlags) {
84
+ try {
85
+ const output = await executeCommand(command, [flag], timeout);
86
+ if (output && output.trim().length > 0) {
87
+ return output;
88
+ }
89
+ }
90
+ catch {
91
+ continue;
92
+ }
93
+ }
94
+ throw new Error(`Could not get help output for command: ${command}`);
95
+ }
96
+ /**
97
+ * Execute command and capture output
98
+ */
99
+ function executeCommand(command, args, timeout) {
100
+ return new Promise((resolve, reject) => {
101
+ const proc = spawn(command, args, {
102
+ timeout,
103
+ stdio: ['ignore', 'pipe', 'pipe']
104
+ });
105
+ let stdout = '';
106
+ let stderr = '';
107
+ proc.stdout.on('data', (data) => {
108
+ stdout += data.toString();
109
+ });
110
+ proc.stderr.on('data', (data) => {
111
+ stderr += data.toString();
112
+ });
113
+ proc.on('close', (code) => {
114
+ // Many commands output help to stderr
115
+ const output = stdout || stderr;
116
+ if (output.trim().length > 0) {
117
+ resolve(output);
118
+ }
119
+ else {
120
+ reject(new Error(`Command exited with code ${code}`));
121
+ }
122
+ });
123
+ proc.on('error', reject);
124
+ });
125
+ }
126
+ /**
127
+ * Parse help text into structured format
128
+ */
129
+ function parseHelpText(helpText, command) {
130
+ const lines = helpText.split('\n');
131
+ // Extract description (usually first non-empty line or after "NAME:")
132
+ const description = extractDescription(lines);
133
+ // Extract subcommands
134
+ const subcommands = extractSubcommands(lines);
135
+ // Extract global flags/options
136
+ const globalFlags = extractFlags(lines);
137
+ return {
138
+ command,
139
+ description,
140
+ subcommands,
141
+ globalFlags
142
+ };
143
+ }
144
+ /**
145
+ * Extract description from help text
146
+ */
147
+ function extractDescription(lines) {
148
+ // Look for description after NAME: or DESCRIPTION:
149
+ for (let i = 0; i < lines.length; i++) {
150
+ const line = lines[i];
151
+ if (/^(NAME|DESCRIPTION):/i.test(line)) {
152
+ // Next line is usually the description
153
+ if (i + 1 < lines.length) {
154
+ return lines[i + 1].trim();
155
+ }
156
+ }
157
+ }
158
+ // Otherwise use first non-empty line
159
+ for (const line of lines) {
160
+ const trimmed = line.trim();
161
+ if (trimmed && !trimmed.startsWith('-') && !trimmed.startsWith('Usage:')) {
162
+ return trimmed;
163
+ }
164
+ }
165
+ return 'CLI tool';
166
+ }
167
+ /**
168
+ * Extract subcommands from help text
169
+ */
170
+ function extractSubcommands(lines) {
171
+ const subcommands = [];
172
+ let inSubcommandsSection = false;
173
+ // Patterns for subcommand sections
174
+ const sectionPatterns = /^(COMMANDS|SUBCOMMANDS|Available commands):/i;
175
+ // Pattern for subcommand line: " command description"
176
+ const subcommandPattern = /^ ([a-z][a-z0-9-_]*)\s{2,}(.+)$/i;
177
+ for (const line of lines) {
178
+ // Check if we're entering subcommands section
179
+ if (sectionPatterns.test(line)) {
180
+ inSubcommandsSection = true;
181
+ continue;
182
+ }
183
+ // Check if we're leaving section (next section header or empty line)
184
+ if (inSubcommandsSection && (/^[A-Z\s]+:/.test(line) || line.trim() === '')) {
185
+ if (/^[A-Z\s]+:/.test(line)) {
186
+ inSubcommandsSection = false;
187
+ }
188
+ continue;
189
+ }
190
+ // Parse subcommand line
191
+ if (inSubcommandsSection) {
192
+ const match = line.match(subcommandPattern);
193
+ if (match) {
194
+ subcommands.push({
195
+ name: match[1],
196
+ description: match[2].trim(),
197
+ flags: [],
198
+ arguments: []
199
+ });
200
+ }
201
+ }
202
+ }
203
+ return subcommands;
204
+ }
205
+ /**
206
+ * Extract flags/options from help text
207
+ */
208
+ function extractFlags(lines) {
209
+ const flags = [];
210
+ let inOptionsSection = false;
211
+ // Patterns for options section
212
+ const sectionPatterns = /^(OPTIONS|FLAGS):/i;
213
+ // Pattern for flag line: " -s, --long <arg> description"
214
+ const flagPattern = /^\s+(-[a-z])?,?\s*(--[a-z][a-z0-9-_]*)?(?:\s+<([^>]+)>|\s+\[([^\]]+)\])?\s{2,}(.+)$/i;
215
+ for (const line of lines) {
216
+ // Check if we're entering options section
217
+ if (sectionPatterns.test(line)) {
218
+ inOptionsSection = true;
219
+ continue;
220
+ }
221
+ // Check if we're leaving section
222
+ if (inOptionsSection && /^[A-Z\s]+:/.test(line)) {
223
+ inOptionsSection = false;
224
+ continue;
225
+ }
226
+ // Parse flag line
227
+ if (inOptionsSection) {
228
+ const match = line.match(flagPattern);
229
+ if (match) {
230
+ const [, short, long, requiredArg, optionalArg, description] = match;
231
+ const hasArg = !!(requiredArg || optionalArg);
232
+ flags.push({
233
+ short,
234
+ long,
235
+ description: description.trim(),
236
+ type: hasArg ? 'string' : 'boolean',
237
+ required: !!requiredArg
238
+ });
239
+ }
240
+ }
241
+ }
242
+ return flags;
243
+ }
244
+ /**
245
+ * Convert subcommand to MCP tool definition
246
+ */
247
+ function subcommandToTool(command, subcommand, globalFlags) {
248
+ const toolName = `${command}-${subcommand.name}`;
249
+ const mapping = {};
250
+ const properties = {};
251
+ const required = [];
252
+ // Add flags to schema
253
+ const allFlags = [...globalFlags, ...subcommand.flags];
254
+ for (const flag of allFlags) {
255
+ const paramName = (flag.long || flag.short || '').replace(/^-+/, '');
256
+ if (!paramName)
257
+ continue;
258
+ mapping[paramName] = {
259
+ flag: flag.long || flag.short,
260
+ type: flag.type
261
+ };
262
+ properties[paramName] = {
263
+ type: flag.type,
264
+ description: flag.description
265
+ };
266
+ if (flag.required) {
267
+ required.push(paramName);
268
+ }
269
+ if (flag.default) {
270
+ properties[paramName].default = flag.default;
271
+ }
272
+ }
273
+ // Add arguments to schema
274
+ for (const arg of subcommand.arguments) {
275
+ mapping[arg.name] = {
276
+ position: arg.position,
277
+ type: arg.type
278
+ };
279
+ properties[arg.name] = {
280
+ type: arg.type,
281
+ description: arg.description
282
+ };
283
+ if (arg.required) {
284
+ required.push(arg.name);
285
+ }
286
+ }
287
+ return {
288
+ name: toolName,
289
+ title: `${command} ${subcommand.name}`,
290
+ description: subcommand.description,
291
+ source: {
292
+ type: 'cli',
293
+ command,
294
+ subcommand: subcommand.name,
295
+ mapping
296
+ },
297
+ inputSchema: {
298
+ type: 'object',
299
+ properties,
300
+ required: required.length > 0 ? required : undefined
301
+ },
302
+ examples: [],
303
+ metadata: {
304
+ dangerous: isDangerousCommand(command, subcommand.name),
305
+ requiresConfirmation: requiresConfirmation(command, subcommand.name),
306
+ retryable: true
307
+ }
308
+ };
309
+ }
310
+ /**
311
+ * Convert command to MCP tool definition (for commands without subcommands)
312
+ */
313
+ function commandToTool(command, parsed) {
314
+ const mapping = {};
315
+ const properties = {};
316
+ const required = [];
317
+ // Add flags to schema
318
+ for (const flag of parsed.globalFlags) {
319
+ const paramName = (flag.long || flag.short || '').replace(/^-+/, '');
320
+ if (!paramName)
321
+ continue;
322
+ mapping[paramName] = {
323
+ flag: flag.long || flag.short,
324
+ type: flag.type
325
+ };
326
+ properties[paramName] = {
327
+ type: flag.type,
328
+ description: flag.description
329
+ };
330
+ if (flag.required) {
331
+ required.push(paramName);
332
+ }
333
+ if (flag.default) {
334
+ properties[paramName].default = flag.default;
335
+ }
336
+ }
337
+ return {
338
+ name: command,
339
+ title: command,
340
+ description: parsed.description,
341
+ source: {
342
+ type: 'cli',
343
+ command,
344
+ mapping
345
+ },
346
+ inputSchema: {
347
+ type: 'object',
348
+ properties,
349
+ required: required.length > 0 ? required : undefined
350
+ },
351
+ examples: [],
352
+ metadata: {
353
+ dangerous: isDangerousCommand(command),
354
+ requiresConfirmation: requiresConfirmation(command),
355
+ retryable: true
356
+ }
357
+ };
358
+ }
359
+ /**
360
+ * Check if command/subcommand is dangerous
361
+ */
362
+ function isDangerousCommand(command, subcommand) {
363
+ const dangerousPatterns = [
364
+ /rm/i,
365
+ /delete/i,
366
+ /remove/i,
367
+ /format/i,
368
+ /erase/i,
369
+ /destroy/i,
370
+ /force/i,
371
+ /hard/i
372
+ ];
373
+ const fullCommand = subcommand ? `${command}-${subcommand}` : command;
374
+ return dangerousPatterns.some(pattern => pattern.test(fullCommand));
375
+ }
376
+ /**
377
+ * Check if command requires confirmation
378
+ */
379
+ function requiresConfirmation(command, subcommand) {
380
+ const confirmationPatterns = [
381
+ /push/i,
382
+ /deploy/i,
383
+ /publish/i,
384
+ /reset/i,
385
+ /rebase/i
386
+ ];
387
+ const fullCommand = subcommand ? `${command}-${subcommand}` : command;
388
+ return confirmationPatterns.some(pattern => pattern.test(fullCommand));
389
+ }
390
+ //# sourceMappingURL=cli-analyzer.js.map
@@ -0,0 +1,119 @@
1
+ /**
2
+ * MCPsmith Example Usage
3
+ *
4
+ * Demonstrates how to use MCPsmith to generate MCP servers.
5
+ *
6
+ * @example
7
+ * ```bash
8
+ * node --loader ts-node/esm src/smiths/mcpsmith/example.ts
9
+ * ```
10
+ */
11
+ import { analyzeCLI } from './analyzers/cli-analyzer.js';
12
+ import { generateServer, updateRegistry } from './generator.js';
13
+ import path from 'path';
14
+ import { fileURLToPath } from 'url';
15
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
16
+ async function main() {
17
+ console.log('MCPsmith Example: Generating Git MCP Server\n');
18
+ // Step 1: Analyze the git CLI tool
19
+ console.log('Step 1: Analyzing git command...');
20
+ const analyzerResult = await analyzeCLI({
21
+ command: 'git',
22
+ includeSubcommands: true,
23
+ maxDepth: 1,
24
+ timeout: 5000
25
+ });
26
+ console.log(` Found ${analyzerResult.tools.length} tools`);
27
+ console.log(` Version: ${analyzerResult.metadata.sourceVersion || 'unknown'}`);
28
+ console.log();
29
+ // Step 2: Generate the MCP server
30
+ console.log('Step 2: Generating MCP server...');
31
+ const outputDir = path.join(__dirname, '..', '..', '..', '.aiwg', 'smiths', 'mcpsmith', 'servers');
32
+ const generatedServer = await generateServer({
33
+ serverId: 'git',
34
+ serverName: 'Git CLI MCP Server',
35
+ description: 'Exposes git commands as MCP tools',
36
+ analyzerResult,
37
+ config: {
38
+ tools: {
39
+ // Only allow safe git commands
40
+ prefix: 'git',
41
+ allowlist: ['status', 'log', 'diff', 'branch', 'show'],
42
+ denylist: ['push', 'force', 'reset'],
43
+ dangerousCommands: {
44
+ require_confirmation: ['checkout', 'merge'],
45
+ blocked: ['push --force', 'reset --hard', 'clean -fd']
46
+ }
47
+ },
48
+ security: {
49
+ sandboxed: true,
50
+ maxExecutionTime: 30000,
51
+ allowedPaths: [process.cwd()],
52
+ blockedCommands: [],
53
+ requireConfirmation: []
54
+ }
55
+ },
56
+ outputDir
57
+ });
58
+ console.log(` Server generated at: ${generatedServer.path}`);
59
+ console.log(` Files created:`);
60
+ console.log(` - ${path.basename(generatedServer.files.server)}`);
61
+ console.log(` - ${path.basename(generatedServer.files.config)}`);
62
+ console.log(` - ${path.basename(generatedServer.files.manifest)}`);
63
+ console.log(` - ${generatedServer.files.tools.length} tool definitions`);
64
+ console.log();
65
+ // Step 3: Update registry
66
+ console.log('Step 3: Updating registry...');
67
+ const registryPath = path.join(path.dirname(outputDir), 'registry.json');
68
+ const serverEntry = {
69
+ id: 'git',
70
+ name: 'Git CLI MCP Server',
71
+ description: 'Exposes git commands as MCP tools',
72
+ version: '1.0.0',
73
+ source: {
74
+ type: 'cli',
75
+ command: 'git',
76
+ discovery: 'help-parsing'
77
+ },
78
+ status: 'active',
79
+ path: `servers/${generatedServer.id}/`,
80
+ transport: 'stdio',
81
+ createdAt: new Date().toISOString(),
82
+ updatedAt: new Date().toISOString(),
83
+ tools: analyzerResult.tools.map(t => t.name),
84
+ resources: [],
85
+ prompts: [],
86
+ health: {
87
+ status: 'unknown',
88
+ lastCheck: new Date().toISOString()
89
+ }
90
+ };
91
+ await updateRegistry(registryPath, 'git', serverEntry);
92
+ console.log(` Registry updated at: ${registryPath}`);
93
+ console.log();
94
+ // Step 4: Display usage instructions
95
+ console.log('Step 4: Usage Instructions');
96
+ console.log(' To test the generated server:');
97
+ console.log(` node ${generatedServer.files.server}`);
98
+ console.log();
99
+ console.log(' To register with Claude Code:');
100
+ console.log(' Add to .claude/settings.local.json:');
101
+ console.log(' {');
102
+ console.log(' "mcpServers": {');
103
+ console.log(' "git": {');
104
+ console.log(' "command": "node",');
105
+ console.log(` "args": ["${generatedServer.files.server}"]`);
106
+ console.log(' }');
107
+ console.log(' }');
108
+ console.log(' }');
109
+ console.log();
110
+ console.log('Example complete!');
111
+ }
112
+ // Run example if executed directly
113
+ if (process.argv[1] === fileURLToPath(import.meta.url)) {
114
+ main().catch(error => {
115
+ console.error('Error:', error);
116
+ process.exit(1);
117
+ });
118
+ }
119
+ //# sourceMappingURL=example.js.map