@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,460 @@
1
+ /**
2
+ * Ground Truth Corpus Manager
3
+ *
4
+ * Manages multiple corpus types for NFR validation with versioning,
5
+ * schema validation, and statistics reporting.
6
+ *
7
+ * Supports 5 corpus types:
8
+ * - ai-vs-human: AI vs human writing classification
9
+ * - codebases: Codebase metadata validation
10
+ * - traceability: Requirements traceability links
11
+ * - security-attacks: Known attack pattern detection
12
+ * - template-recommendations: Template selection scenarios
13
+ *
14
+ * @module testing/corpus/ground-truth-manager
15
+ */
16
+ import * as fs from 'fs/promises';
17
+ import * as path from 'path';
18
+ /**
19
+ * GroundTruthCorpusManager - Manage multiple ground truth corpora
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const manager = new GroundTruthCorpusManager('./tests/fixtures/corpora');
24
+ * await manager.initialize();
25
+ *
26
+ * // Load specific corpus
27
+ * const corpus = await manager.loadCorpus('ai-vs-human', '1.0.0');
28
+ *
29
+ * // Get ground truth for item
30
+ * const truth = manager.getGroundTruth('ai-vs-human', 'item-001');
31
+ *
32
+ * // Validate against ground truth
33
+ * const result = manager.validateAgainstGroundTruth('ai-vs-human', 'item-001', actualValue);
34
+ * ```
35
+ */
36
+ export class GroundTruthCorpusManager {
37
+ corporaRoot;
38
+ manifests = new Map();
39
+ loadedCorpora = new Map();
40
+ initialized = false;
41
+ constructor(corporaRoot = './tests/fixtures/corpora') {
42
+ this.corporaRoot = corporaRoot;
43
+ }
44
+ /**
45
+ * Initialize manager and discover available corpora
46
+ */
47
+ async initialize() {
48
+ this.manifests.clear();
49
+ this.loadedCorpora.clear();
50
+ try {
51
+ await fs.access(this.corporaRoot);
52
+ }
53
+ catch {
54
+ // Create directory structure if it doesn't exist
55
+ await this.createDirectoryStructure();
56
+ }
57
+ // Discover manifests
58
+ await this.discoverManifests();
59
+ this.initialized = true;
60
+ }
61
+ /**
62
+ * Create the corpora directory structure
63
+ */
64
+ async createDirectoryStructure() {
65
+ const dirs = [
66
+ 'manifests',
67
+ 'data/ai-vs-human',
68
+ 'data/codebases',
69
+ 'data/traceability',
70
+ 'data/security-attacks',
71
+ 'data/template-recommendations'
72
+ ];
73
+ for (const dir of dirs) {
74
+ await fs.mkdir(path.join(this.corporaRoot, dir), { recursive: true });
75
+ }
76
+ }
77
+ /**
78
+ * Discover available corpus manifests
79
+ */
80
+ async discoverManifests() {
81
+ const manifestsDir = path.join(this.corporaRoot, 'manifests');
82
+ try {
83
+ const files = await fs.readdir(manifestsDir);
84
+ for (const file of files) {
85
+ if (file.endsWith('.json')) {
86
+ const manifestPath = path.join(manifestsDir, file);
87
+ try {
88
+ const content = await fs.readFile(manifestPath, 'utf-8');
89
+ const manifest = JSON.parse(content);
90
+ const key = this.getCorpusKey(manifest.type, manifest.version);
91
+ this.manifests.set(key, manifest);
92
+ }
93
+ catch (error) {
94
+ // Skip invalid manifests
95
+ console.warn(`Warning: Could not parse manifest ${file}`);
96
+ }
97
+ }
98
+ }
99
+ }
100
+ catch {
101
+ // Manifests directory doesn't exist yet
102
+ }
103
+ }
104
+ /**
105
+ * Get corpus key for map lookup
106
+ */
107
+ getCorpusKey(type, version) {
108
+ return `${type}@${version}`;
109
+ }
110
+ /**
111
+ * Load a corpus by type and version
112
+ *
113
+ * @param type - Corpus type
114
+ * @param version - Semantic version or 'latest'
115
+ * @returns Loaded corpus items
116
+ */
117
+ async loadCorpus(type, version = 'latest') {
118
+ if (!this.initialized) {
119
+ await this.initialize();
120
+ }
121
+ const resolvedVersion = version === 'latest'
122
+ ? this.getLatestVersion(type)
123
+ : version;
124
+ if (!resolvedVersion) {
125
+ throw new Error(`No corpus found for type: ${type}`);
126
+ }
127
+ const key = this.getCorpusKey(type, resolvedVersion);
128
+ // Check if already loaded
129
+ if (this.loadedCorpora.has(key)) {
130
+ return this.loadedCorpora.get(key);
131
+ }
132
+ // Load from manifest
133
+ const manifest = this.manifests.get(key);
134
+ if (!manifest) {
135
+ throw new Error(`Corpus not found: ${type}@${resolvedVersion}`);
136
+ }
137
+ // Load data files
138
+ const items = new Map();
139
+ for (const dataFile of manifest.dataFiles) {
140
+ const dataPath = path.join(this.corporaRoot, 'data', type, dataFile);
141
+ try {
142
+ const content = await fs.readFile(dataPath, 'utf-8');
143
+ const data = JSON.parse(content);
144
+ for (const item of data) {
145
+ items.set(item.id, item);
146
+ }
147
+ }
148
+ catch (error) {
149
+ throw new Error(`Failed to load corpus data file: ${dataFile}`);
150
+ }
151
+ }
152
+ this.loadedCorpora.set(key, items);
153
+ return items;
154
+ }
155
+ /**
156
+ * Get the latest version for a corpus type
157
+ */
158
+ getLatestVersion(type) {
159
+ const versions = [];
160
+ for (const [_key, manifest] of this.manifests) {
161
+ if (manifest.type === type) {
162
+ versions.push(manifest.version);
163
+ }
164
+ }
165
+ if (versions.length === 0) {
166
+ return null;
167
+ }
168
+ // Sort by semver
169
+ versions.sort((a, b) => this.compareSemver(b, a));
170
+ return versions[0];
171
+ }
172
+ /**
173
+ * Compare semver versions
174
+ */
175
+ compareSemver(a, b) {
176
+ const partsA = a.split('.').map(Number);
177
+ const partsB = b.split('.').map(Number);
178
+ for (let i = 0; i < 3; i++) {
179
+ if (partsA[i] > partsB[i])
180
+ return 1;
181
+ if (partsA[i] < partsB[i])
182
+ return -1;
183
+ }
184
+ return 0;
185
+ }
186
+ /**
187
+ * Get ground truth for a specific item
188
+ *
189
+ * @param type - Corpus type
190
+ * @param itemId - Item identifier
191
+ * @param version - Version constraint
192
+ * @returns Ground truth value
193
+ */
194
+ async getGroundTruth(type, itemId, version = 'latest') {
195
+ const corpus = await this.loadCorpus(type, version);
196
+ const item = corpus.get(itemId);
197
+ if (!item) {
198
+ throw new Error(`Item not found: ${itemId} in corpus ${type}`);
199
+ }
200
+ return item.groundTruth;
201
+ }
202
+ /**
203
+ * Validate actual value against ground truth
204
+ *
205
+ * @param type - Corpus type
206
+ * @param itemId - Item identifier
207
+ * @param actualValue - Value to compare
208
+ * @param version - Version constraint
209
+ * @returns Comparison result
210
+ */
211
+ async validateAgainstGroundTruth(type, itemId, actualValue, version = 'latest') {
212
+ const groundTruth = await this.getGroundTruth(type, itemId, version);
213
+ const matches = this.deepEquals(groundTruth, actualValue);
214
+ return {
215
+ itemId,
216
+ expected: groundTruth,
217
+ actual: actualValue,
218
+ matches
219
+ };
220
+ }
221
+ /**
222
+ * Deep equality check
223
+ */
224
+ deepEquals(a, b) {
225
+ if (a === b)
226
+ return true;
227
+ if (typeof a !== typeof b)
228
+ return false;
229
+ if (a === null || b === null)
230
+ return a === b;
231
+ if (Array.isArray(a) && Array.isArray(b)) {
232
+ if (a.length !== b.length)
233
+ return false;
234
+ return a.every((val, i) => this.deepEquals(val, b[i]));
235
+ }
236
+ if (typeof a === 'object' && typeof b === 'object') {
237
+ const keysA = Object.keys(a);
238
+ const keysB = Object.keys(b);
239
+ if (keysA.length !== keysB.length)
240
+ return false;
241
+ return keysA.every(key => this.deepEquals(a[key], b[key]));
242
+ }
243
+ return false;
244
+ }
245
+ /**
246
+ * Get corpus statistics
247
+ *
248
+ * @param type - Corpus type
249
+ * @param version - Version constraint
250
+ * @returns Statistics object
251
+ */
252
+ async getCorpusStatistics(type, version = 'latest') {
253
+ if (!this.initialized) {
254
+ await this.initialize();
255
+ }
256
+ const resolvedVersion = version === 'latest'
257
+ ? this.getLatestVersion(type)
258
+ : version;
259
+ if (!resolvedVersion) {
260
+ throw new Error(`No corpus found for type: ${type}`);
261
+ }
262
+ const key = this.getCorpusKey(type, resolvedVersion);
263
+ const manifest = this.manifests.get(key);
264
+ if (!manifest) {
265
+ throw new Error(`Corpus not found: ${type}@${resolvedVersion}`);
266
+ }
267
+ return {
268
+ type: manifest.type,
269
+ version: manifest.version,
270
+ totalItems: manifest.itemCount,
271
+ labelDistribution: manifest.labelDistribution,
272
+ linkedNFRs: manifest.linkedNFRs,
273
+ lastUpdated: manifest.updatedAt
274
+ };
275
+ }
276
+ /**
277
+ * Validate corpus schema and completeness
278
+ *
279
+ * @param type - Corpus type
280
+ * @param version - Version constraint
281
+ * @returns Validation result
282
+ */
283
+ async validateCorpus(type, version = 'latest') {
284
+ const errors = [];
285
+ const warnings = [];
286
+ try {
287
+ const corpus = await this.loadCorpus(type, version);
288
+ const resolvedVersion = version === 'latest'
289
+ ? this.getLatestVersion(type)
290
+ : version;
291
+ const key = this.getCorpusKey(type, resolvedVersion);
292
+ const manifest = this.manifests.get(key);
293
+ // Check item count matches
294
+ if (corpus.size !== manifest.itemCount) {
295
+ errors.push(`Item count mismatch: manifest says ${manifest.itemCount}, actual is ${corpus.size}`);
296
+ }
297
+ // Validate each item against schema
298
+ for (const [id, item] of corpus) {
299
+ const itemErrors = this.validateItem(item, manifest.schema);
300
+ for (const error of itemErrors) {
301
+ errors.push(`Item ${id}: ${error}`);
302
+ }
303
+ }
304
+ // Check for duplicate IDs (already handled by Map)
305
+ // Warn if corpus is small
306
+ if (corpus.size < 10) {
307
+ warnings.push(`Corpus has only ${corpus.size} items - may not be statistically significant`);
308
+ }
309
+ }
310
+ catch (error) {
311
+ errors.push(`Failed to load corpus: ${error.message}`);
312
+ }
313
+ return {
314
+ valid: errors.length === 0,
315
+ errors,
316
+ warnings
317
+ };
318
+ }
319
+ /**
320
+ * Validate a single item against schema
321
+ */
322
+ validateItem(item, schema) {
323
+ const errors = [];
324
+ // Check required item fields
325
+ if (!item.id) {
326
+ errors.push('Missing required field: id');
327
+ }
328
+ if (item.content === undefined) {
329
+ errors.push('Missing required field: content');
330
+ }
331
+ if (item.groundTruth === undefined) {
332
+ errors.push('Missing required field: groundTruth');
333
+ }
334
+ // Validate ground truth type
335
+ const gtType = typeof item.groundTruth;
336
+ if (schema.groundTruthType === 'boolean' && gtType !== 'boolean') {
337
+ errors.push(`Ground truth should be boolean, got ${gtType}`);
338
+ }
339
+ if (schema.groundTruthType === 'string' && gtType !== 'string') {
340
+ errors.push(`Ground truth should be string, got ${gtType}`);
341
+ }
342
+ if (schema.groundTruthType === 'number' && gtType !== 'number') {
343
+ errors.push(`Ground truth should be number, got ${gtType}`);
344
+ }
345
+ if (schema.groundTruthType === 'object' && (gtType !== 'object' || Array.isArray(item.groundTruth))) {
346
+ errors.push(`Ground truth should be object, got ${gtType}`);
347
+ }
348
+ if (schema.groundTruthType === 'array' && !Array.isArray(item.groundTruth)) {
349
+ errors.push(`Ground truth should be array, got ${gtType}`);
350
+ }
351
+ // Check required fields for object type
352
+ if (schema.groundTruthType === 'object' && schema.requiredFields && typeof item.groundTruth === 'object') {
353
+ for (const field of schema.requiredFields) {
354
+ if (!(field in item.groundTruth)) {
355
+ errors.push(`Ground truth missing required field: ${field}`);
356
+ }
357
+ }
358
+ }
359
+ // Check enum values for string type
360
+ if (schema.groundTruthType === 'string' && schema.enumValues && typeof item.groundTruth === 'string') {
361
+ if (!schema.enumValues.includes(item.groundTruth)) {
362
+ errors.push(`Ground truth value '${item.groundTruth}' not in allowed values: ${schema.enumValues.join(', ')}`);
363
+ }
364
+ }
365
+ return errors;
366
+ }
367
+ /**
368
+ * List all available corpora
369
+ *
370
+ * @returns Array of corpus type and version pairs
371
+ */
372
+ async listCorpora() {
373
+ if (!this.initialized) {
374
+ await this.initialize();
375
+ }
376
+ const result = [];
377
+ for (const manifest of this.manifests.values()) {
378
+ result.push({
379
+ type: manifest.type,
380
+ version: manifest.version
381
+ });
382
+ }
383
+ return result.sort((a, b) => {
384
+ if (a.type !== b.type) {
385
+ return a.type.localeCompare(b.type);
386
+ }
387
+ return this.compareSemver(b.version, a.version);
388
+ });
389
+ }
390
+ /**
391
+ * Check if a corpus exists
392
+ *
393
+ * @param type - Corpus type
394
+ * @param version - Version constraint
395
+ * @returns True if corpus exists
396
+ */
397
+ async hasCorpus(type, version = 'latest') {
398
+ if (!this.initialized) {
399
+ await this.initialize();
400
+ }
401
+ if (version === 'latest') {
402
+ return this.getLatestVersion(type) !== null;
403
+ }
404
+ const key = this.getCorpusKey(type, version);
405
+ return this.manifests.has(key);
406
+ }
407
+ /**
408
+ * Get all items from a corpus
409
+ *
410
+ * @param type - Corpus type
411
+ * @param version - Version constraint
412
+ * @returns Array of all items
413
+ */
414
+ async getAllItems(type, version = 'latest') {
415
+ const corpus = await this.loadCorpus(type, version);
416
+ return Array.from(corpus.values());
417
+ }
418
+ /**
419
+ * Batch validate multiple items against ground truth
420
+ *
421
+ * @param type - Corpus type
422
+ * @param predictions - Map of itemId to predicted value
423
+ * @param version - Version constraint
424
+ * @returns Array of comparison results with overall statistics
425
+ */
426
+ async batchValidate(type, predictions, version = 'latest') {
427
+ const results = [];
428
+ let totalCorrect = 0;
429
+ for (const [itemId, actualValue] of predictions) {
430
+ try {
431
+ const result = await this.validateAgainstGroundTruth(type, itemId, actualValue, version);
432
+ results.push(result);
433
+ if (result.matches) {
434
+ totalCorrect++;
435
+ }
436
+ }
437
+ catch {
438
+ results.push({
439
+ itemId,
440
+ expected: undefined,
441
+ actual: actualValue,
442
+ matches: false
443
+ });
444
+ }
445
+ }
446
+ return {
447
+ results,
448
+ accuracy: results.length > 0 ? totalCorrect / results.length : 0,
449
+ totalCorrect,
450
+ totalItems: results.length
451
+ };
452
+ }
453
+ /**
454
+ * Get the corpora root path
455
+ */
456
+ getRoot() {
457
+ return this.corporaRoot;
458
+ }
459
+ }
460
+ //# sourceMappingURL=ground-truth-manager.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Ground Truth Corpus Module
3
+ *
4
+ * Multi-corpus management system for NFR validation.
5
+ *
6
+ * @module testing/corpus
7
+ */
8
+ export { GroundTruthCorpusManager } from './ground-truth-manager.js';
9
+ export { CorpusBuilder } from './corpus-builder.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Test Fixtures Module
3
+ *
4
+ * Exports test data factory and fixture generation utilities.
5
+ *
6
+ * @module src/testing/fixtures
7
+ */
8
+ export * from './test-data-factory.js';
9
+ //# sourceMappingURL=index.js.map