@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,436 @@
1
+ /**
2
+ * Plugin Installation System
3
+ *
4
+ * Comprehensive installer supporting frameworks, add-ons, and extensions
5
+ * with dependency resolution, registry management, and atomic installation.
6
+ *
7
+ * Features:
8
+ * - Install from local path or plugin ID
9
+ * - Dependency resolution (add-ons require parent framework)
10
+ * - Automatic registry updates
11
+ * - Directory structure creation
12
+ * - Manifest validation
13
+ * - Atomic installation (rollback on failure)
14
+ * - Dry-run mode
15
+ *
16
+ * @module src/plugin/plugin-installer
17
+ * @implements @.aiwg/requirements/use-cases/UC-010-rollback-plugin-installation.md
18
+ * @architecture @.aiwg/architecture/software-architecture-doc.md - Section 5.1 PluginManager
19
+ * @adr @.aiwg/architecture/decisions/ADR-006-plugin-rollback-strategy.md
20
+ * @nfr @.aiwg/requirements/nfr-modules/reliability.md - NFR-REL-002 (zero data loss)
21
+ * @tests @test/unit/plugin/plugin-installer.test.ts
22
+ * @depends @src/plugin/metadata-validator.ts
23
+ * @depends @src/plugin/framework-config-loader.ts
24
+ */
25
+ import * as fs from 'fs/promises';
26
+ import * as path from 'path';
27
+ /**
28
+ * PluginInstaller - Install and manage plugins
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const installer = new PluginInstaller('~/.local/share/ai-writing-guide');
33
+ *
34
+ * // Install framework
35
+ * const result = await installer.install('/path/to/sdlc-complete');
36
+ *
37
+ * // Install add-on with parent
38
+ * const addonResult = await installer.install('/path/to/gdpr-compliance', {
39
+ * type: 'add-on',
40
+ * parentFramework: 'sdlc-complete'
41
+ * });
42
+ *
43
+ * // Dry-run preview
44
+ * const preview = await installer.install('/path/to/plugin', { dryRun: true });
45
+ * ```
46
+ */
47
+ export class PluginInstaller {
48
+ aiwgRoot;
49
+ registryPath;
50
+ rollbackActions = [];
51
+ constructor(aiwgRoot) {
52
+ this.aiwgRoot = aiwgRoot;
53
+ this.registryPath = path.join(aiwgRoot, 'registry.json');
54
+ }
55
+ /**
56
+ * Install a plugin from a source path
57
+ *
58
+ * @param source - Path to plugin directory or plugin ID
59
+ * @param options - Installation options
60
+ * @returns Installation result
61
+ */
62
+ async install(source, options = {}) {
63
+ const result = {
64
+ success: false,
65
+ pluginId: '',
66
+ version: '',
67
+ installPath: '',
68
+ actions: [],
69
+ errors: [],
70
+ warnings: []
71
+ };
72
+ this.rollbackActions = [];
73
+ try {
74
+ // Step 1: Load and validate manifest
75
+ const manifest = await this.loadManifest(source);
76
+ result.pluginId = manifest.id;
77
+ result.version = manifest.version;
78
+ result.actions.push({
79
+ type: 'validate',
80
+ description: `Validated manifest for ${manifest.name} v${manifest.version}`,
81
+ executed: true
82
+ });
83
+ // Override type if specified
84
+ if (options.type) {
85
+ manifest.type = options.type;
86
+ }
87
+ // Override parent framework if specified
88
+ if (options.parentFramework) {
89
+ manifest.parentFramework = options.parentFramework;
90
+ }
91
+ // Step 2: Check if already installed
92
+ const isInstalled = await this.isPluginInstalled(manifest.id);
93
+ if (isInstalled && !options.force) {
94
+ result.errors.push(`Plugin '${manifest.id}' is already installed. Use --force to reinstall.`);
95
+ return result;
96
+ }
97
+ if (isInstalled && options.force) {
98
+ result.warnings.push(`Reinstalling existing plugin '${manifest.id}'`);
99
+ }
100
+ // Step 3: Validate dependencies
101
+ if (!options.skipDependencyCheck) {
102
+ const depErrors = await this.validateDependencies(manifest);
103
+ if (depErrors.length > 0) {
104
+ result.errors.push(...depErrors);
105
+ return result;
106
+ }
107
+ }
108
+ // Step 4: Calculate installation path
109
+ const targetDir = options.targetDir || this.aiwgRoot;
110
+ const installPath = this.getInstallPath(manifest.type, manifest.id, targetDir);
111
+ result.installPath = installPath;
112
+ // Step 5: Create directory structure
113
+ if (!options.dryRun) {
114
+ await this.createDirectoryStructure(manifest.type, manifest.id, targetDir, result);
115
+ }
116
+ else {
117
+ result.actions.push({
118
+ type: 'create-dir',
119
+ description: `Would create directory structure at ${installPath}`,
120
+ path: installPath,
121
+ executed: false
122
+ });
123
+ }
124
+ // Step 6: Copy plugin files
125
+ if (!options.dryRun) {
126
+ await this.copyPluginFiles(source, installPath, result);
127
+ }
128
+ else {
129
+ result.actions.push({
130
+ type: 'copy-file',
131
+ description: `Would copy plugin files from ${source} to ${installPath}`,
132
+ path: installPath,
133
+ executed: false
134
+ });
135
+ }
136
+ // Step 7: Update registry
137
+ if (!options.dryRun) {
138
+ await this.updateRegistry(manifest, installPath, result);
139
+ }
140
+ else {
141
+ result.actions.push({
142
+ type: 'update-registry',
143
+ description: `Would update registry with ${manifest.id}`,
144
+ path: this.registryPath,
145
+ executed: false
146
+ });
147
+ }
148
+ result.success = true;
149
+ }
150
+ catch (error) {
151
+ result.errors.push(`Installation failed: ${error.message}`);
152
+ // Rollback on failure
153
+ if (!options.dryRun && this.rollbackActions.length > 0) {
154
+ result.actions.push({
155
+ type: 'rollback',
156
+ description: 'Rolling back changes due to error',
157
+ executed: true
158
+ });
159
+ await this.rollback();
160
+ }
161
+ }
162
+ return result;
163
+ }
164
+ /**
165
+ * Load and validate plugin manifest
166
+ */
167
+ async loadManifest(source) {
168
+ const manifestPath = path.join(source, 'manifest.json');
169
+ try {
170
+ const content = await fs.readFile(manifestPath, 'utf-8');
171
+ const manifest = JSON.parse(content);
172
+ // Validate required fields
173
+ this.validateManifest(manifest);
174
+ return manifest;
175
+ }
176
+ catch (error) {
177
+ if (error.code === 'ENOENT') {
178
+ throw new Error(`Manifest not found at ${manifestPath}. Ensure the plugin has a valid manifest.json`);
179
+ }
180
+ throw error;
181
+ }
182
+ }
183
+ /**
184
+ * Validate manifest has required fields
185
+ */
186
+ validateManifest(manifest) {
187
+ const required = ['id', 'type', 'name', 'version'];
188
+ const missing = required.filter(field => !(field in manifest));
189
+ if (missing.length > 0) {
190
+ throw new Error(`Manifest missing required fields: ${missing.join(', ')}`);
191
+ }
192
+ // Validate plugin ID format
193
+ if (!/^[a-z0-9-]+$/.test(manifest.id)) {
194
+ throw new Error(`Invalid plugin ID '${manifest.id}'. Use lowercase letters, numbers, and hyphens only.`);
195
+ }
196
+ // Validate version format (semver-like)
197
+ if (!/^\d+\.\d+\.\d+/.test(manifest.version)) {
198
+ throw new Error(`Invalid version '${manifest.version}'. Use semver format (e.g., 1.0.0).`);
199
+ }
200
+ // Validate type
201
+ const validTypes = ['framework', 'add-on', 'extension'];
202
+ if (!validTypes.includes(manifest.type)) {
203
+ throw new Error(`Invalid plugin type '${manifest.type}'. Must be one of: ${validTypes.join(', ')}`);
204
+ }
205
+ // Add-ons require parentFramework
206
+ if (manifest.type === 'add-on' && !manifest.parentFramework) {
207
+ throw new Error(`Add-on plugins require a 'parentFramework' field in manifest.json`);
208
+ }
209
+ }
210
+ /**
211
+ * Check if plugin is already installed
212
+ */
213
+ async isPluginInstalled(pluginId) {
214
+ try {
215
+ const registry = await this.loadRegistry();
216
+ return registry.plugins.some(p => p.id === pluginId);
217
+ }
218
+ catch {
219
+ return false;
220
+ }
221
+ }
222
+ /**
223
+ * Validate plugin dependencies
224
+ */
225
+ async validateDependencies(manifest) {
226
+ const errors = [];
227
+ // Check parent framework for add-ons
228
+ if (manifest.type === 'add-on' && manifest.parentFramework) {
229
+ const parentInstalled = await this.isPluginInstalled(manifest.parentFramework);
230
+ if (!parentInstalled) {
231
+ errors.push(`Parent framework '${manifest.parentFramework}' is not installed. ` +
232
+ `Install it first: aiwg -install-plugin ${manifest.parentFramework}`);
233
+ }
234
+ }
235
+ // Check other dependencies
236
+ if (manifest.dependencies) {
237
+ for (const [depId, depVersion] of Object.entries(manifest.dependencies)) {
238
+ const depInstalled = await this.isPluginInstalled(depId);
239
+ if (!depInstalled) {
240
+ errors.push(`Required dependency '${depId}' (${depVersion}) is not installed. ` +
241
+ `Install it first: aiwg -install-plugin ${depId}`);
242
+ }
243
+ }
244
+ }
245
+ return errors;
246
+ }
247
+ /**
248
+ * Get installation path for plugin type
249
+ */
250
+ getInstallPath(type, pluginId, targetDir) {
251
+ const typeDir = type === 'add-on' ? 'add-ons' : `${type}s`;
252
+ return path.join(targetDir, typeDir, pluginId);
253
+ }
254
+ /**
255
+ * Create directory structure for plugin
256
+ */
257
+ async createDirectoryStructure(type, pluginId, targetDir, result) {
258
+ const basePath = this.getInstallPath(type, pluginId, targetDir);
259
+ // Define directory structure based on type
260
+ const dirs = [basePath];
261
+ if (type === 'framework') {
262
+ dirs.push(path.join(basePath, 'repo'), path.join(basePath, 'projects'), path.join(basePath, 'working'), path.join(basePath, 'archive'));
263
+ }
264
+ // Create directories
265
+ for (const dir of dirs) {
266
+ await fs.mkdir(dir, { recursive: true });
267
+ result.actions.push({
268
+ type: 'create-dir',
269
+ description: `Created directory: ${path.relative(this.aiwgRoot, dir)}`,
270
+ path: dir,
271
+ executed: true
272
+ });
273
+ // Add rollback action
274
+ this.rollbackActions.push(async () => {
275
+ await fs.rm(dir, { recursive: true, force: true });
276
+ });
277
+ }
278
+ }
279
+ /**
280
+ * Copy plugin files to installation directory
281
+ */
282
+ async copyPluginFiles(source, dest, result) {
283
+ // For frameworks, copy to repo subdirectory
284
+ const targetPath = dest.includes('/frameworks/') ? path.join(dest, 'repo') : dest;
285
+ await this.copyDirectory(source, targetPath);
286
+ result.actions.push({
287
+ type: 'copy-file',
288
+ description: `Copied plugin files to ${path.relative(this.aiwgRoot, targetPath)}`,
289
+ path: targetPath,
290
+ executed: true
291
+ });
292
+ // Add rollback action
293
+ this.rollbackActions.push(async () => {
294
+ await fs.rm(targetPath, { recursive: true, force: true });
295
+ });
296
+ }
297
+ /**
298
+ * Recursively copy directory
299
+ */
300
+ async copyDirectory(source, dest) {
301
+ await fs.mkdir(dest, { recursive: true });
302
+ const entries = await fs.readdir(source, { withFileTypes: true });
303
+ for (const entry of entries) {
304
+ const srcPath = path.join(source, entry.name);
305
+ const destPath = path.join(dest, entry.name);
306
+ if (entry.isDirectory()) {
307
+ await this.copyDirectory(srcPath, destPath);
308
+ }
309
+ else {
310
+ await fs.copyFile(srcPath, destPath);
311
+ }
312
+ }
313
+ }
314
+ /**
315
+ * Update registry with new plugin
316
+ */
317
+ async updateRegistry(manifest, installPath, result) {
318
+ let registry;
319
+ try {
320
+ registry = await this.loadRegistry();
321
+ }
322
+ catch {
323
+ // Create new registry if it doesn't exist
324
+ registry = {
325
+ version: '1.0.0',
326
+ lastModified: new Date().toISOString(),
327
+ plugins: []
328
+ };
329
+ }
330
+ // Save old state for rollback
331
+ const oldContent = JSON.stringify(registry, null, 2);
332
+ this.rollbackActions.push(async () => {
333
+ await fs.writeFile(this.registryPath, oldContent, 'utf-8');
334
+ });
335
+ // Remove existing entry if force reinstall
336
+ registry.plugins = registry.plugins.filter(p => p.id !== manifest.id);
337
+ // Add new entry
338
+ const relativePath = path.relative(this.aiwgRoot, installPath);
339
+ const entry = {
340
+ id: manifest.id,
341
+ type: manifest.type,
342
+ name: manifest.name,
343
+ version: manifest.version,
344
+ path: relativePath,
345
+ installedAt: new Date().toISOString(),
346
+ health: {
347
+ status: 'healthy',
348
+ lastCheck: new Date().toISOString()
349
+ }
350
+ };
351
+ if (manifest.parentFramework) {
352
+ entry.parentFramework = manifest.parentFramework;
353
+ }
354
+ registry.plugins.push(entry);
355
+ registry.lastModified = new Date().toISOString();
356
+ // Ensure registry directory exists
357
+ await fs.mkdir(path.dirname(this.registryPath), { recursive: true });
358
+ // Write registry
359
+ await fs.writeFile(this.registryPath, JSON.stringify(registry, null, 2), 'utf-8');
360
+ result.actions.push({
361
+ type: 'update-registry',
362
+ description: `Updated registry: added ${manifest.id} v${manifest.version}`,
363
+ path: this.registryPath,
364
+ executed: true
365
+ });
366
+ }
367
+ /**
368
+ * Load registry file
369
+ */
370
+ async loadRegistry() {
371
+ const content = await fs.readFile(this.registryPath, 'utf-8');
372
+ return JSON.parse(content);
373
+ }
374
+ /**
375
+ * Rollback changes on failure
376
+ */
377
+ async rollback() {
378
+ // Execute rollback actions in reverse order
379
+ for (let i = this.rollbackActions.length - 1; i >= 0; i--) {
380
+ try {
381
+ await this.rollbackActions[i]();
382
+ }
383
+ catch {
384
+ // Ignore rollback errors
385
+ }
386
+ }
387
+ this.rollbackActions = [];
388
+ }
389
+ /**
390
+ * List installed plugins
391
+ */
392
+ async listInstalled() {
393
+ try {
394
+ const registry = await this.loadRegistry();
395
+ return registry.plugins;
396
+ }
397
+ catch {
398
+ return [];
399
+ }
400
+ }
401
+ /**
402
+ * Get plugin info by ID
403
+ */
404
+ async getPluginInfo(pluginId) {
405
+ try {
406
+ const registry = await this.loadRegistry();
407
+ return registry.plugins.find(p => p.id === pluginId) || null;
408
+ }
409
+ catch {
410
+ return null;
411
+ }
412
+ }
413
+ /**
414
+ * Validate manifest without installing
415
+ */
416
+ async validatePlugin(source) {
417
+ const errors = [];
418
+ try {
419
+ const manifest = await this.loadManifest(source);
420
+ return { valid: true, manifest, errors };
421
+ }
422
+ catch (error) {
423
+ errors.push(error.message);
424
+ return { valid: false, errors };
425
+ }
426
+ }
427
+ }
428
+ /**
429
+ * Create a PluginInstaller with default AIWG root
430
+ */
431
+ export function createInstaller() {
432
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
433
+ const aiwgRoot = path.join(homeDir, '.local', 'share', 'ai-writing-guide');
434
+ return new PluginInstaller(aiwgRoot);
435
+ }
436
+ //# sourceMappingURL=plugin-installer.js.map