@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,473 @@
1
+ /**
2
+ * Plugin Uninstallation System
3
+ *
4
+ * Comprehensive uninstaller supporting frameworks, add-ons, and extensions
5
+ * with dependency validation, artifact cleanup, and safe removal.
6
+ *
7
+ * Features:
8
+ * - Dependency validation (prevent orphaned add-ons)
9
+ * - Active project detection
10
+ * - Artifact cleanup (directories, registry)
11
+ * - Dry-run mode
12
+ * - Force mode (skip dependency checks)
13
+ * - Project preservation (--keep-projects)
14
+ * - Rollback on failure
15
+ *
16
+ * @module src/plugin/plugin-uninstaller
17
+ */
18
+ import * as fs from 'fs/promises';
19
+ import * as path from 'path';
20
+ /**
21
+ * PluginUninstaller - Uninstall and cleanup plugins
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const uninstaller = new PluginUninstaller('~/.local/share/ai-writing-guide');
26
+ *
27
+ * // Check dependencies before uninstall
28
+ * const deps = await uninstaller.getDependentPlugins('sdlc-complete');
29
+ * if (deps.length > 0) {
30
+ * console.log('Cannot uninstall - dependent plugins exist');
31
+ * }
32
+ *
33
+ * // Uninstall framework
34
+ * const result = await uninstaller.uninstall('my-framework');
35
+ *
36
+ * // Force uninstall (ignore dependencies)
37
+ * const forceResult = await uninstaller.uninstall('parent-framework', { force: true });
38
+ *
39
+ * // Dry-run preview
40
+ * const preview = await uninstaller.uninstall('plugin', { dryRun: true });
41
+ * ```
42
+ */
43
+ export class PluginUninstaller {
44
+ aiwgRoot;
45
+ registryPath;
46
+ backupDir;
47
+ rollbackActions = [];
48
+ constructor(aiwgRoot) {
49
+ this.aiwgRoot = aiwgRoot;
50
+ this.registryPath = path.join(aiwgRoot, 'registry.json');
51
+ this.backupDir = path.join(aiwgRoot, 'backups');
52
+ }
53
+ /**
54
+ * Uninstall a plugin
55
+ *
56
+ * @param pluginId - Plugin identifier
57
+ * @param options - Uninstall options
58
+ * @returns Uninstall result
59
+ */
60
+ async uninstall(pluginId, options = {}) {
61
+ const result = {
62
+ success: false,
63
+ pluginId,
64
+ actions: [],
65
+ errors: [],
66
+ warnings: [],
67
+ stats: {
68
+ filesRemoved: 0,
69
+ dirsRemoved: 0,
70
+ bytesFreed: 0,
71
+ projectsArchived: 0
72
+ }
73
+ };
74
+ this.rollbackActions = [];
75
+ try {
76
+ // Step 1: Validate plugin exists
77
+ const plugin = await this.getPlugin(pluginId);
78
+ if (!plugin) {
79
+ result.errors.push(`Plugin '${pluginId}' is not installed`);
80
+ return result;
81
+ }
82
+ result.actions.push({
83
+ type: 'validate',
84
+ description: `Found plugin: ${plugin.name} v${plugin.version} (${plugin.type})`,
85
+ executed: true
86
+ });
87
+ // Step 2: Check for dependent plugins
88
+ if (!options.force) {
89
+ const dependents = await this.getDependentPlugins(pluginId);
90
+ if (dependents.length > 0) {
91
+ const depNames = dependents.map(d => `${d.id} (${d.type})`).join(', ');
92
+ result.errors.push(`Cannot uninstall '${pluginId}' - the following plugins depend on it: ${depNames}. ` +
93
+ `Uninstall them first or use --force to skip this check.`);
94
+ result.actions.push({
95
+ type: 'check-deps',
96
+ description: `Found ${dependents.length} dependent plugins`,
97
+ executed: true
98
+ });
99
+ return result;
100
+ }
101
+ result.actions.push({
102
+ type: 'check-deps',
103
+ description: 'No dependent plugins found',
104
+ executed: true
105
+ });
106
+ }
107
+ else {
108
+ result.warnings.push('Dependency check skipped (--force)');
109
+ }
110
+ // Step 3: Check for active projects (warning only)
111
+ if (plugin.type === 'framework') {
112
+ const projects = await this.getActiveProjects(pluginId, plugin.path);
113
+ if (projects.length > 0) {
114
+ result.warnings.push(`Plugin has ${projects.length} active project(s): ${projects.join(', ')}`);
115
+ }
116
+ // Handle project preservation
117
+ if (projects.length > 0 && options.keepProjects && !options.dryRun) {
118
+ await this.archiveProjects(pluginId, plugin.path, projects, result);
119
+ }
120
+ }
121
+ // Step 4: Backup registry (for rollback)
122
+ if (!options.dryRun) {
123
+ await this.backupRegistry(result);
124
+ }
125
+ // Step 5: Remove plugin directory
126
+ const pluginPath = path.join(this.aiwgRoot, plugin.path);
127
+ if (!options.dryRun) {
128
+ await this.removeDirectory(pluginPath, result);
129
+ }
130
+ else {
131
+ result.actions.push({
132
+ type: 'remove-dir',
133
+ description: `Would remove directory: ${plugin.path}`,
134
+ path: pluginPath,
135
+ executed: false
136
+ });
137
+ }
138
+ // Step 6: Update registry
139
+ if (!options.dryRun) {
140
+ await this.removeFromRegistry(pluginId, result);
141
+ }
142
+ else {
143
+ result.actions.push({
144
+ type: 'update-registry',
145
+ description: `Would remove ${pluginId} from registry`,
146
+ path: this.registryPath,
147
+ executed: false
148
+ });
149
+ }
150
+ result.success = true;
151
+ }
152
+ catch (error) {
153
+ result.errors.push(`Uninstall failed: ${error.message}`);
154
+ // Rollback on failure
155
+ if (!options.dryRun && this.rollbackActions.length > 0) {
156
+ result.actions.push({
157
+ type: 'rollback',
158
+ description: 'Rolling back changes due to error',
159
+ executed: true
160
+ });
161
+ await this.rollback();
162
+ }
163
+ }
164
+ return result;
165
+ }
166
+ /**
167
+ * Get plugins that depend on the given plugin
168
+ *
169
+ * @param pluginId - Plugin identifier
170
+ * @returns Array of dependent plugins
171
+ */
172
+ async getDependentPlugins(pluginId) {
173
+ const dependents = [];
174
+ try {
175
+ const registry = await this.loadRegistry();
176
+ for (const plugin of registry.plugins) {
177
+ if (plugin.parentFramework === pluginId) {
178
+ dependents.push({
179
+ id: plugin.id,
180
+ type: plugin.type,
181
+ relationship: 'parentFramework'
182
+ });
183
+ }
184
+ }
185
+ }
186
+ catch {
187
+ // Registry doesn't exist
188
+ }
189
+ return dependents;
190
+ }
191
+ /**
192
+ * Get suggested uninstall order for a plugin and its dependents
193
+ *
194
+ * @param pluginId - Plugin identifier
195
+ * @returns Ordered list of plugins to uninstall
196
+ */
197
+ async getUninstallOrder(pluginId) {
198
+ const order = [];
199
+ const visited = new Set();
200
+ const visit = async (id) => {
201
+ if (visited.has(id))
202
+ return;
203
+ visited.add(id);
204
+ const dependents = await this.getDependentPlugins(id);
205
+ for (const dep of dependents) {
206
+ await visit(dep.id);
207
+ }
208
+ order.push(id);
209
+ };
210
+ await visit(pluginId);
211
+ return order;
212
+ }
213
+ /**
214
+ * Get plugin info from registry
215
+ */
216
+ async getPlugin(pluginId) {
217
+ try {
218
+ const registry = await this.loadRegistry();
219
+ return registry.plugins.find(p => p.id === pluginId) || null;
220
+ }
221
+ catch {
222
+ return null;
223
+ }
224
+ }
225
+ /**
226
+ * Get active projects for a framework
227
+ */
228
+ async getActiveProjects(_pluginId, pluginPath) {
229
+ const projectsDir = path.join(this.aiwgRoot, pluginPath, 'projects');
230
+ try {
231
+ const entries = await fs.readdir(projectsDir, { withFileTypes: true });
232
+ return entries
233
+ .filter(e => e.isDirectory())
234
+ .map(e => e.name);
235
+ }
236
+ catch {
237
+ return [];
238
+ }
239
+ }
240
+ /**
241
+ * Archive projects before uninstall
242
+ */
243
+ async archiveProjects(pluginId, pluginPath, projects, result) {
244
+ const now = new Date();
245
+ const yearMonth = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}`;
246
+ const archiveBase = path.join(this.aiwgRoot, 'archive', 'uninstalled', pluginId, yearMonth);
247
+ await fs.mkdir(archiveBase, { recursive: true });
248
+ const projectsDir = path.join(this.aiwgRoot, pluginPath, 'projects');
249
+ for (const project of projects) {
250
+ const srcPath = path.join(projectsDir, project);
251
+ const destPath = path.join(archiveBase, project);
252
+ await this.copyDirectory(srcPath, destPath);
253
+ result.stats.projectsArchived++;
254
+ result.actions.push({
255
+ type: 'archive',
256
+ description: `Archived project: ${project} → ${path.relative(this.aiwgRoot, destPath)}`,
257
+ path: destPath,
258
+ executed: true
259
+ });
260
+ }
261
+ }
262
+ /**
263
+ * Backup registry for rollback
264
+ */
265
+ async backupRegistry(result) {
266
+ try {
267
+ await fs.mkdir(this.backupDir, { recursive: true });
268
+ const timestamp = Date.now();
269
+ const backupPath = path.join(this.backupDir, `registry-${timestamp}.json`);
270
+ const content = await fs.readFile(this.registryPath, 'utf-8');
271
+ await fs.writeFile(backupPath, content, 'utf-8');
272
+ result.actions.push({
273
+ type: 'backup',
274
+ description: `Backed up registry to ${path.basename(backupPath)}`,
275
+ path: backupPath,
276
+ executed: true
277
+ });
278
+ // Add rollback action
279
+ this.rollbackActions.push(async () => {
280
+ await fs.copyFile(backupPath, this.registryPath);
281
+ });
282
+ }
283
+ catch {
284
+ // Registry doesn't exist, nothing to backup
285
+ }
286
+ }
287
+ /**
288
+ * Recursively remove directory and track stats
289
+ */
290
+ async removeDirectory(dirPath, result) {
291
+ try {
292
+ const stats = await this.calculateDirectoryStats(dirPath);
293
+ result.stats.filesRemoved = stats.files;
294
+ result.stats.dirsRemoved = stats.dirs;
295
+ result.stats.bytesFreed = stats.bytes;
296
+ await fs.rm(dirPath, { recursive: true, force: true });
297
+ result.actions.push({
298
+ type: 'remove-dir',
299
+ description: `Removed directory: ${path.relative(this.aiwgRoot, dirPath)} (${stats.files} files, ${this.formatBytes(stats.bytes)})`,
300
+ path: dirPath,
301
+ executed: true
302
+ });
303
+ }
304
+ catch (error) {
305
+ if (error.code !== 'ENOENT') {
306
+ throw error;
307
+ }
308
+ }
309
+ }
310
+ /**
311
+ * Calculate directory statistics
312
+ */
313
+ async calculateDirectoryStats(dirPath) {
314
+ let files = 0;
315
+ let dirs = 0;
316
+ let bytes = 0;
317
+ const scan = async (currentPath) => {
318
+ try {
319
+ const entries = await fs.readdir(currentPath, { withFileTypes: true });
320
+ for (const entry of entries) {
321
+ const entryPath = path.join(currentPath, entry.name);
322
+ if (entry.isDirectory()) {
323
+ dirs++;
324
+ await scan(entryPath);
325
+ }
326
+ else if (entry.isFile()) {
327
+ files++;
328
+ try {
329
+ const stat = await fs.stat(entryPath);
330
+ bytes += stat.size;
331
+ }
332
+ catch {
333
+ // Ignore stat errors
334
+ }
335
+ }
336
+ }
337
+ }
338
+ catch {
339
+ // Ignore read errors
340
+ }
341
+ };
342
+ await scan(dirPath);
343
+ return { files, dirs, bytes };
344
+ }
345
+ /**
346
+ * Remove plugin from registry
347
+ */
348
+ async removeFromRegistry(pluginId, result) {
349
+ const registry = await this.loadRegistry();
350
+ const originalLength = registry.plugins.length;
351
+ registry.plugins = registry.plugins.filter(p => p.id !== pluginId);
352
+ if (registry.plugins.length === originalLength) {
353
+ // Plugin wasn't in registry
354
+ return;
355
+ }
356
+ registry.lastModified = new Date().toISOString();
357
+ await fs.writeFile(this.registryPath, JSON.stringify(registry, null, 2), 'utf-8');
358
+ result.actions.push({
359
+ type: 'update-registry',
360
+ description: `Removed ${pluginId} from registry`,
361
+ path: this.registryPath,
362
+ executed: true
363
+ });
364
+ }
365
+ /**
366
+ * Load registry file
367
+ */
368
+ async loadRegistry() {
369
+ const content = await fs.readFile(this.registryPath, 'utf-8');
370
+ return JSON.parse(content);
371
+ }
372
+ /**
373
+ * Recursively copy directory
374
+ */
375
+ async copyDirectory(source, dest) {
376
+ await fs.mkdir(dest, { recursive: true });
377
+ const entries = await fs.readdir(source, { withFileTypes: true });
378
+ for (const entry of entries) {
379
+ const srcPath = path.join(source, entry.name);
380
+ const destPath = path.join(dest, entry.name);
381
+ if (entry.isDirectory()) {
382
+ await this.copyDirectory(srcPath, destPath);
383
+ }
384
+ else {
385
+ await fs.copyFile(srcPath, destPath);
386
+ }
387
+ }
388
+ }
389
+ /**
390
+ * Rollback changes on failure
391
+ */
392
+ async rollback() {
393
+ for (let i = this.rollbackActions.length - 1; i >= 0; i--) {
394
+ try {
395
+ await this.rollbackActions[i]();
396
+ }
397
+ catch {
398
+ // Ignore rollback errors
399
+ }
400
+ }
401
+ this.rollbackActions = [];
402
+ }
403
+ /**
404
+ * Format bytes as human-readable string
405
+ */
406
+ formatBytes(bytes) {
407
+ if (bytes === 0)
408
+ return '0 Bytes';
409
+ const k = 1024;
410
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
411
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
412
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
413
+ }
414
+ /**
415
+ * List all installed plugins
416
+ */
417
+ async listInstalled() {
418
+ try {
419
+ const registry = await this.loadRegistry();
420
+ return registry.plugins;
421
+ }
422
+ catch {
423
+ return [];
424
+ }
425
+ }
426
+ /**
427
+ * Check if a plugin can be safely uninstalled
428
+ *
429
+ * @param pluginId - Plugin identifier
430
+ * @returns Object with canUninstall flag and reason/warnings
431
+ */
432
+ async canUninstall(pluginId) {
433
+ const warnings = [];
434
+ // Check if plugin exists
435
+ const plugin = await this.getPlugin(pluginId);
436
+ if (!plugin) {
437
+ return {
438
+ canUninstall: false,
439
+ reason: `Plugin '${pluginId}' is not installed`,
440
+ warnings
441
+ };
442
+ }
443
+ // Check for dependents
444
+ const dependents = await this.getDependentPlugins(pluginId);
445
+ if (dependents.length > 0) {
446
+ return {
447
+ canUninstall: false,
448
+ reason: `Plugin has ${dependents.length} dependent plugin(s): ${dependents.map(d => d.id).join(', ')}`,
449
+ warnings
450
+ };
451
+ }
452
+ // Check for active projects (warning)
453
+ if (plugin.type === 'framework') {
454
+ const projects = await this.getActiveProjects(pluginId, plugin.path);
455
+ if (projects.length > 0) {
456
+ warnings.push(`Plugin has ${projects.length} active project(s)`);
457
+ }
458
+ }
459
+ return {
460
+ canUninstall: true,
461
+ warnings
462
+ };
463
+ }
464
+ }
465
+ /**
466
+ * Create a PluginUninstaller with default AIWG root
467
+ */
468
+ export function createUninstaller() {
469
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
470
+ const aiwgRoot = path.join(homeDir, '.local', 'share', 'ai-writing-guide');
471
+ return new PluginUninstaller(aiwgRoot);
472
+ }
473
+ //# sourceMappingURL=plugin-uninstaller.js.map