@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,380 @@
1
+ /**
2
+ * Validation Rules Module
3
+ *
4
+ * Loads and manages validation rules from AIWG markdown files.
5
+ * Provides structured rule definitions for banned phrases, AI patterns, and authenticity markers.
6
+ */
7
+ import { readFile } from 'fs/promises';
8
+ import { existsSync } from 'fs';
9
+ import { join } from 'path';
10
+ /**
11
+ * Loads validation rules from AIWG markdown files
12
+ */
13
+ export class ValidationRuleLoader {
14
+ guideBasePath;
15
+ ruleCache = new Map();
16
+ constructor(guideBasePath) {
17
+ this.guideBasePath = guideBasePath;
18
+ // Default to ~/.local/share/ai-writing-guide if not specified
19
+ this.guideBasePath = guideBasePath || join(process.env.HOME || '', '.local/share/ai-writing-guide');
20
+ }
21
+ /**
22
+ * Load complete rule set from AIWG
23
+ */
24
+ async loadRuleSet() {
25
+ const cacheKey = this.guideBasePath || 'default';
26
+ if (this.ruleCache.has(cacheKey)) {
27
+ return this.ruleCache.get(cacheKey);
28
+ }
29
+ // New addon structure paths (preferred)
30
+ const addonBase = join(this.guideBasePath, 'agentic', 'code', 'addons', 'writing-quality');
31
+ // Legacy paths (fallback for backward compatibility)
32
+ const legacyBase = this.guideBasePath;
33
+ // Check for addon structure first, fall back to legacy
34
+ const bannedPatternsPath = existsSync(join(addonBase, 'validation/banned-patterns.md'))
35
+ ? join(addonBase, 'validation/banned-patterns.md')
36
+ : join(legacyBase, 'validation/banned-patterns.md');
37
+ const aiTellsPath = existsSync(join(addonBase, 'patterns/common-ai-tells.md'))
38
+ ? join(addonBase, 'patterns/common-ai-tells.md')
39
+ : join(legacyBase, 'patterns/common-ai-tells.md');
40
+ const sophisticationPath = existsSync(join(addonBase, 'core/sophistication-guide.md'))
41
+ ? join(addonBase, 'core/sophistication-guide.md')
42
+ : join(legacyBase, 'core/sophistication-guide.md');
43
+ // Start with default rules (core patterns that should always be present)
44
+ const defaults = this.getDefaultRules();
45
+ const ruleSet = {
46
+ bannedPhrases: [...defaults.bannedPhrases],
47
+ aiPatterns: [...defaults.aiPatterns],
48
+ authenticityMarkers: [...defaults.authenticityMarkers],
49
+ structuralPatterns: [...defaults.structuralPatterns]
50
+ };
51
+ // Load and merge banned phrases from guide
52
+ if (existsSync(bannedPatternsPath)) {
53
+ const bannedRules = await this.loadFromMarkdown(bannedPatternsPath);
54
+ ruleSet.bannedPhrases = this.mergeRules(ruleSet.bannedPhrases, bannedRules.filter(r => r.type === 'banned_phrase'));
55
+ ruleSet.structuralPatterns = this.mergeRules(ruleSet.structuralPatterns, bannedRules.filter(r => r.type === 'formulaic_structure'));
56
+ }
57
+ // Load and merge AI tells from guide
58
+ if (existsSync(aiTellsPath)) {
59
+ const aiRules = await this.loadFromMarkdown(aiTellsPath);
60
+ ruleSet.aiPatterns = this.mergeRules(ruleSet.aiPatterns, aiRules);
61
+ }
62
+ // Load authenticity markers from sophistication guide
63
+ if (existsSync(sophisticationPath)) {
64
+ const authRules = await this.loadAuthenticityMarkers(sophisticationPath);
65
+ ruleSet.authenticityMarkers = this.mergeRules(ruleSet.authenticityMarkers, authRules);
66
+ }
67
+ this.ruleCache.set(cacheKey, ruleSet);
68
+ return ruleSet;
69
+ }
70
+ /**
71
+ * Load rules from a markdown file
72
+ */
73
+ async loadFromMarkdown(path) {
74
+ if (!existsSync(path)) {
75
+ return [];
76
+ }
77
+ const content = await readFile(path, 'utf-8');
78
+ return this.parseMarkdownRules(content, path);
79
+ }
80
+ /**
81
+ * Parse markdown content into validation rules
82
+ */
83
+ parseMarkdownRules(markdown, sourcePath) {
84
+ const rules = [];
85
+ const lines = markdown.split('\n');
86
+ let currentSection = '';
87
+ let currentCategory = '';
88
+ let currentSeverity = 'warning';
89
+ // Determine base severity from file type
90
+ if (sourcePath.includes('banned-patterns')) {
91
+ currentSeverity = 'critical';
92
+ }
93
+ else if (sourcePath.includes('common-ai-tells')) {
94
+ currentSeverity = 'warning';
95
+ }
96
+ for (let i = 0; i < lines.length; i++) {
97
+ const line = lines[i].trim();
98
+ // Track sections for context
99
+ if (line.startsWith('## ')) {
100
+ currentSection = line.replace('## ', '');
101
+ currentCategory = currentSection;
102
+ }
103
+ else if (line.startsWith('### ')) {
104
+ currentCategory = line.replace('### ', '');
105
+ }
106
+ // Parse banned phrase patterns
107
+ if (line.startsWith('- ')) {
108
+ const phrase = line.substring(2).trim();
109
+ // Skip example lines, explanations, and replacement guides
110
+ if (phrase.startsWith('❌') || phrase.startsWith('✅') || phrase.startsWith('**')) {
111
+ continue;
112
+ }
113
+ // Skip replacement guide lines (e.g., "revolutionary" → "different")
114
+ if (phrase.includes('→') || phrase.includes('->')) {
115
+ continue;
116
+ }
117
+ // Skip lines that are quoted replacement mappings (e.g., "phrase" → "replacement")
118
+ if (phrase.startsWith('"') && (phrase.includes('→') || phrase.includes('->'))) {
119
+ continue;
120
+ }
121
+ const rule = this.createRuleFromPhrase(phrase, currentCategory, currentSeverity, sourcePath);
122
+ if (rule) {
123
+ rules.push(rule);
124
+ }
125
+ }
126
+ // Parse structural patterns
127
+ if (line.includes('❌') && line.includes('"')) {
128
+ const matches = line.match(/"([^"]+)"/g);
129
+ if (matches) {
130
+ matches.forEach(match => {
131
+ const pattern = match.replace(/"/g, '');
132
+ const rule = {
133
+ id: `struct_${this.generateId(pattern)}`,
134
+ type: 'formulaic_structure',
135
+ pattern: this.createPattern(pattern),
136
+ severity: 'warning',
137
+ message: `Formulaic structure detected: ${pattern}`,
138
+ suggestion: this.extractSuggestion(line),
139
+ category: currentCategory
140
+ };
141
+ rules.push(rule);
142
+ });
143
+ }
144
+ }
145
+ }
146
+ return rules;
147
+ }
148
+ /**
149
+ * Create a validation rule from a banned phrase
150
+ */
151
+ createRuleFromPhrase(phrase, category, severity, sourcePath) {
152
+ // Clean up the phrase
153
+ let cleanPhrase = phrase;
154
+ let suggestion;
155
+ // Extract suggestion if present (format: "phrase (use X instead)")
156
+ const suggestionMatch = phrase.match(/\(([^)]+)\)/);
157
+ if (suggestionMatch) {
158
+ suggestion = suggestionMatch[1];
159
+ cleanPhrase = phrase.replace(/\([^)]+\)/, '').trim();
160
+ }
161
+ // Skip empty or meta-instructions
162
+ if (!cleanPhrase || cleanPhrase.startsWith('just use')) {
163
+ return null;
164
+ }
165
+ // Determine rule type
166
+ let ruleType = 'banned_phrase';
167
+ if (category.toLowerCase().includes('structure') || category.toLowerCase().includes('pattern')) {
168
+ ruleType = 'formulaic_structure';
169
+ }
170
+ else if (sourcePath.includes('ai-tells')) {
171
+ ruleType = 'ai_pattern';
172
+ }
173
+ return {
174
+ id: `${ruleType}_${this.generateId(cleanPhrase)}`,
175
+ type: ruleType,
176
+ pattern: this.createPattern(cleanPhrase),
177
+ severity,
178
+ message: `Avoid: "${cleanPhrase}" (${category})`,
179
+ suggestion,
180
+ category
181
+ };
182
+ }
183
+ /**
184
+ * Load authenticity markers from sophistication guide
185
+ */
186
+ async loadAuthenticityMarkers(_path) {
187
+ const markers = [];
188
+ // Positive markers (things that indicate human writing)
189
+ const humanMarkers = [
190
+ { pattern: /\bI think\b/gi, message: 'Opinion statement (human marker)' },
191
+ { pattern: /\bin my experience\b/gi, message: 'Personal experience (human marker)' },
192
+ { pattern: /\bwe found that\b/gi, message: 'Specific finding (human marker)' },
193
+ { pattern: /\bwe chose\b/gi, message: 'Decision explanation (human marker)' },
194
+ { pattern: /\bwe decided\b/gi, message: 'Decision explanation (human marker)' },
195
+ { pattern: /\bwhile .+ (is|was|are|were).+, .+ (must|should|need)/gi, message: 'Trade-off acknowledgment (human marker)' },
196
+ { pattern: /\breduced .+ by \d+(%|ms|s|KB|MB)/gi, message: 'Specific metric (human marker)' },
197
+ { pattern: /\bincreased .+ by \d+(%|ms|s|KB|MB)/gi, message: 'Specific metric (human marker)' },
198
+ { pattern: /\bp\d{2} latency/gi, message: 'Specific performance metric (human marker)' },
199
+ { pattern: /\bversion \d+\.\d+/gi, message: 'Specific version (human marker)' },
200
+ { pattern: /\b\d+% (improvement|reduction|increase)/gi, message: 'Specific percentage (human marker)' }
201
+ ];
202
+ humanMarkers.forEach((marker, idx) => {
203
+ markers.push({
204
+ id: `auth_positive_${idx}`,
205
+ type: 'authenticity_marker',
206
+ pattern: marker.pattern,
207
+ severity: 'info',
208
+ message: marker.message,
209
+ category: 'Human Markers'
210
+ });
211
+ });
212
+ return markers;
213
+ }
214
+ /**
215
+ * Create a regex pattern from a phrase string
216
+ */
217
+ createPattern(phrase) {
218
+ // Handle wildcard patterns (e.g., "vital/crucial/key" or "cutting-edge technology/solution")
219
+ if (phrase.includes('/')) {
220
+ // Split the phrase and check if we have multi-word alternatives
221
+ // For "plays a vital/crucial/key role" we want to match the alternatives in context
222
+ const parts = phrase.split('/').map(p => p.trim());
223
+ // If first/last parts contain multi-word context, extract the common prefix/suffix
224
+ // e.g., "cutting-edge technology/solution/platform" should match full phrases
225
+ const firstPart = parts[0];
226
+ const hasPrefix = firstPart.includes(' ');
227
+ if (hasPrefix) {
228
+ // Has leading context - match each alternative with the prefix
229
+ // e.g., "seamlessly integrates/integrated" -> match "seamlessly integrates" OR "seamlessly integrated"
230
+ const words = firstPart.split(' ');
231
+ const prefix = words.slice(0, -1).join(' '); // All but last word
232
+ const firstAlt = words[words.length - 1]; // Last word is first alternative
233
+ const alternatives = [firstAlt, ...parts.slice(1)].map(alt => {
234
+ const escaped = `${prefix} ${alt}`.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
235
+ return escaped;
236
+ });
237
+ return new RegExp(`\\b(${alternatives.join('|')})\\b`, 'gi');
238
+ }
239
+ // Simple alternatives without context - escape each and join
240
+ const alternatives = parts.map(p => p.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|');
241
+ return new RegExp(`\\b(${alternatives})\\b`, 'gi');
242
+ }
243
+ // Handle variable parts in brackets
244
+ if (phrase.includes('[') && phrase.includes(']')) {
245
+ const patternStr = phrase
246
+ .replace(/\[([^\]]+)\]/g, '(?:$1)?')
247
+ .replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
248
+ return new RegExp(`\\b${patternStr}\\b`, 'gi');
249
+ }
250
+ // Standard phrase matching (word boundaries)
251
+ const escaped = phrase.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
252
+ return new RegExp(`\\b${escaped}\\b`, 'gi');
253
+ }
254
+ /**
255
+ * Generate a unique ID from a phrase
256
+ */
257
+ generateId(phrase) {
258
+ return phrase
259
+ .toLowerCase()
260
+ .replace(/[^a-z0-9]+/g, '_')
261
+ .replace(/^_+|_+$/g, '')
262
+ .substring(0, 50);
263
+ }
264
+ /**
265
+ * Extract suggestion from a line
266
+ */
267
+ extractSuggestion(line) {
268
+ const suggestionMatch = line.match(/✅[^"]*"([^"]+)"/);
269
+ return suggestionMatch ? suggestionMatch[1] : undefined;
270
+ }
271
+ /**
272
+ * Merge multiple rule sets
273
+ */
274
+ mergeRules(rules1, rules2) {
275
+ const merged = [...rules1];
276
+ const existingIds = new Set(rules1.map(r => r.id));
277
+ for (const rule of rules2) {
278
+ if (!existingIds.has(rule.id)) {
279
+ merged.push(rule);
280
+ existingIds.add(rule.id);
281
+ }
282
+ }
283
+ return merged;
284
+ }
285
+ /**
286
+ * Filter rules by context
287
+ */
288
+ filterByContext(rules, context) {
289
+ return rules.filter(rule => {
290
+ if (!rule.contexts || rule.contexts.length === 0) {
291
+ return true; // Apply to all contexts if not specified
292
+ }
293
+ return rule.contexts.includes(context);
294
+ });
295
+ }
296
+ /**
297
+ * Get default rule set (built-in rules when guide is not available)
298
+ */
299
+ getDefaultRules() {
300
+ return {
301
+ bannedPhrases: this.getDefaultBannedPhrases(),
302
+ aiPatterns: this.getDefaultAIPatterns(),
303
+ authenticityMarkers: this.getDefaultAuthenticityMarkers(),
304
+ structuralPatterns: this.getDefaultStructuralPatterns()
305
+ };
306
+ }
307
+ getDefaultBannedPhrases() {
308
+ const criticalPhrases = [
309
+ 'seamlessly', 'cutting-edge', 'state-of-the-art', 'revolutionary',
310
+ 'game-changing', 'paradigm shift', 'best-in-class', 'industry-leading',
311
+ 'comprehensive solution', 'robust and scalable', 'innovative approach',
312
+ 'next-generation', 'transformative', 'groundbreaking'
313
+ ];
314
+ return criticalPhrases.map((phrase, idx) => ({
315
+ id: `default_banned_${idx}`,
316
+ type: 'banned_phrase',
317
+ pattern: new RegExp(`\\b${phrase.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\b`, 'gi'),
318
+ severity: 'critical',
319
+ message: `Banned phrase: "${phrase}"`,
320
+ category: 'Critical Banned Phrases'
321
+ }));
322
+ }
323
+ getDefaultAIPatterns() {
324
+ return [
325
+ {
326
+ id: 'ai_moreover',
327
+ type: 'ai_pattern',
328
+ pattern: /^Moreover,/gm,
329
+ severity: 'warning',
330
+ message: 'Formulaic transition word',
331
+ suggestion: 'Remove transition or rephrase',
332
+ category: 'Transitions'
333
+ },
334
+ {
335
+ id: 'ai_furthermore',
336
+ type: 'ai_pattern',
337
+ pattern: /^Furthermore,/gm,
338
+ severity: 'warning',
339
+ message: 'Formulaic transition word',
340
+ suggestion: 'Remove transition or rephrase',
341
+ category: 'Transitions'
342
+ },
343
+ {
344
+ id: 'ai_in_conclusion',
345
+ type: 'ai_pattern',
346
+ pattern: /\bIn conclusion,/gi,
347
+ severity: 'warning',
348
+ message: 'Formulaic conclusion phrase',
349
+ suggestion: 'Just end when done',
350
+ category: 'Conclusions'
351
+ }
352
+ ];
353
+ }
354
+ getDefaultAuthenticityMarkers() {
355
+ return [
356
+ {
357
+ id: 'auth_metric',
358
+ type: 'authenticity_marker',
359
+ pattern: /\d+(%|ms|s|KB|MB|GB|x)\b/g,
360
+ severity: 'info',
361
+ message: 'Specific metric found (human marker)',
362
+ category: 'Metrics'
363
+ }
364
+ ];
365
+ }
366
+ getDefaultStructuralPatterns() {
367
+ return [
368
+ {
369
+ id: 'struct_three_items',
370
+ type: 'formulaic_structure',
371
+ pattern: /\b(\w+),\s+(\w+),\s+and\s+(\w+)\b/g,
372
+ severity: 'info',
373
+ message: 'Three-item list detected',
374
+ suggestion: 'Consider using 2, 4, or no list',
375
+ category: 'Lists'
376
+ }
377
+ ];
378
+ }
379
+ }
380
+ //# sourceMappingURL=validation-rules.js.map