@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,259 @@
1
+ /**
2
+ * `aiwg run skill <name>` — execute a script-bearing skill (#1227).
3
+ *
4
+ * Resolves the skill via the artifact index (the same one `aiwg discover`
5
+ * and `aiwg show` use), reads its `script:` declaration, and dispatches
6
+ * the entrypoint through the runtime registry.
7
+ *
8
+ * Critical CWD invariant: by default, the script runs from the CALLING
9
+ * project's root, not the skill's source directory. Skill scripts live
10
+ * at `$AIWG_ROOT/agentic/code/...` but operate on the user's project, so
11
+ * relative paths inside the script (`.aiwg/`, `src/`, `package.json`)
12
+ * must resolve into the user's tree. The manifest can override via
13
+ * `cwd: skill-dir` for the rare case of a script that bundles its own
14
+ * relative assets, or `cwd: aiwg-root` as an escape hatch.
15
+ *
16
+ * Env vars exported to the script:
17
+ * AIWG_SKILL_DIR absolute path to the skill's source directory
18
+ * AIWG_PROJECT_ROOT absolute path to the calling project's root
19
+ * AIWG_ROOT absolute path to the AIWG install root
20
+ *
21
+ * Stdin streams in, stdout/stderr stream out, the script's exit code is
22
+ * the CLI's exit code. No magic wrapping.
23
+ */
24
+ import { spawn } from 'node:child_process';
25
+ import { promises as fs } from 'node:fs';
26
+ import * as path from 'node:path';
27
+ import { resolveRuntime, supportedRuntimes } from './runtime.js';
28
+ /**
29
+ * Resolve the AIWG installation root. Prefers `$AIWG_ROOT` env, falls
30
+ * back to the channel manager's framework-root resolver.
31
+ */
32
+ async function getAiwgRoot() {
33
+ if (process.env.AIWG_ROOT)
34
+ return process.env.AIWG_ROOT;
35
+ try {
36
+ const mod = await import('../channel/manager.mjs');
37
+ if (typeof mod.getFrameworkRoot === 'function') {
38
+ const r = await mod.getFrameworkRoot();
39
+ return r || null;
40
+ }
41
+ }
42
+ catch {
43
+ // fall through
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * Find a skill entry by name across the framework / project / codebase
49
+ * graphs. Mirrors the lookup `aiwg show` uses — basename match against
50
+ * the skill's directory name (skills/<name>/SKILL.md).
51
+ */
52
+ async function findSkillEntry(cwd, name) {
53
+ const reader = await import('../artifacts/index-reader.js');
54
+ const entries = [];
55
+ for (const g of ['framework', 'project', 'codebase']) {
56
+ const idx = reader.loadGraphIndexFile(cwd, 'metadata.json', g);
57
+ if (idx)
58
+ entries.push(...Object.values(idx.entries));
59
+ }
60
+ if (entries.length === 0) {
61
+ const legacy = reader.loadMetadataIndex(cwd);
62
+ if (legacy)
63
+ entries.push(...Object.values(legacy.entries));
64
+ }
65
+ const skills = entries.filter(e => e.type === 'skill');
66
+ const needle = name.trim();
67
+ // Basename match — skills are conventionally `<dir>/SKILL.md`
68
+ const matches = skills.filter(e => {
69
+ const dir = path.basename(path.dirname(e.path));
70
+ const stem = path.basename(e.path).replace(/\.[^.]+$/, '');
71
+ return dir === needle || stem === needle || e.path === needle;
72
+ });
73
+ if (matches.length === 0)
74
+ return null;
75
+ // Prefer one with a script declaration over one without
76
+ const withScript = matches.find(m => m.script);
77
+ return withScript ?? matches[0];
78
+ }
79
+ /**
80
+ * Resolve the skill's source directory to an absolute path. Framework
81
+ * entries are stored relative to AIWG_ROOT; project entries relative to
82
+ * the project cwd.
83
+ */
84
+ function resolveSkillDir(entry, cwd, aiwgRoot) {
85
+ const skillFile = path.isAbsolute(entry.path)
86
+ ? entry.path
87
+ : entry.path.startsWith('agentic/code/') && aiwgRoot
88
+ ? path.join(aiwgRoot, entry.path)
89
+ : path.join(cwd, entry.path);
90
+ return path.dirname(skillFile);
91
+ }
92
+ /**
93
+ * Run a skill's script entrypoint. Returns the exit code; the caller
94
+ * decides whether to `process.exit()` with it.
95
+ */
96
+ export async function runSkill(opts) {
97
+ const aiwgRoot = await getAiwgRoot();
98
+ const entry = await findSkillEntry(opts.cwd, opts.name);
99
+ if (!entry) {
100
+ console.error(`Error: no skill matching "${opts.name}" found in the artifact index.`);
101
+ console.error('Try `aiwg discover "<phrase>"` to find the right name, or run `aiwg index build --graph framework` if the index is stale.');
102
+ return 1;
103
+ }
104
+ if (!entry.script) {
105
+ console.error(`Error: skill "${opts.name}" is instructional only — it has no script entrypoint to run.`);
106
+ console.error(`Read its instructions with: aiwg show skill ${opts.name} --first`);
107
+ console.error('If you need an executable skill, run `aiwg discover "<phrase>" --json` and choose an entry with "executable": true.');
108
+ return 1;
109
+ }
110
+ const skillDir = resolveSkillDir(entry, opts.cwd, aiwgRoot);
111
+ const entrypointPath = path.resolve(skillDir, entry.script.entrypoint);
112
+ try {
113
+ await fs.access(entrypointPath);
114
+ }
115
+ catch {
116
+ console.error(`Error: skill entrypoint not found: ${entrypointPath}`);
117
+ console.error('The skill manifest declares this entrypoint but the file is missing. Check the skill source.');
118
+ return 1;
119
+ }
120
+ const invocation = await resolveRuntime(entry.script.runtime, entrypointPath);
121
+ if (!invocation) {
122
+ console.error(`Error: unknown runtime "${entry.script.runtime}" for skill "${opts.name}".`);
123
+ console.error(`Supported runtimes: ${supportedRuntimes().join(', ')}`);
124
+ return 1;
125
+ }
126
+ // Resolve CWD per the policy: project-root (default), skill-dir, aiwg-root,
127
+ // or an explicit CLI override.
128
+ let runCwd;
129
+ if (opts.cwdOverride) {
130
+ runCwd = path.resolve(opts.cwdOverride);
131
+ }
132
+ else {
133
+ switch (entry.script.cwd ?? 'project-root') {
134
+ case 'skill-dir':
135
+ runCwd = skillDir;
136
+ break;
137
+ case 'aiwg-root':
138
+ runCwd = aiwgRoot ?? opts.cwd;
139
+ break;
140
+ case 'project-root':
141
+ default:
142
+ runCwd = opts.cwd;
143
+ break;
144
+ }
145
+ }
146
+ const env = {
147
+ ...process.env,
148
+ AIWG_SKILL_DIR: skillDir,
149
+ AIWG_PROJECT_ROOT: opts.cwd,
150
+ ...(aiwgRoot ? { AIWG_ROOT: aiwgRoot } : {}),
151
+ };
152
+ const fullArgs = [...invocation.prefixArgs, entrypointPath, ...opts.args];
153
+ return new Promise((resolve) => {
154
+ const child = spawn(invocation.command, fullArgs, {
155
+ cwd: runCwd,
156
+ env,
157
+ stdio: 'inherit',
158
+ });
159
+ child.on('error', (err) => {
160
+ console.error(`Error: failed to spawn ${invocation.command}: ${err.message}`);
161
+ resolve(127);
162
+ });
163
+ child.on('exit', (code, signal) => {
164
+ if (signal) {
165
+ // Match shell convention: signal-killed → 128 + signal number
166
+ const signalNum = process.binding?.('constants')?.[signal] ?? 0;
167
+ resolve(128 + signalNum);
168
+ }
169
+ else {
170
+ resolve(code ?? 0);
171
+ }
172
+ });
173
+ });
174
+ }
175
+ /**
176
+ * CLI entrypoint for `aiwg run skill <name> [-- args...]`.
177
+ *
178
+ * Argument convention:
179
+ * aiwg run skill <name> [--cwd <path>] [-- <args forwarded to script>]
180
+ *
181
+ * Anything after `--` is verbatim-forwarded. If no `--`, all args after
182
+ * the skill name are forwarded.
183
+ */
184
+ export async function main(args) {
185
+ // First positional must be the kind ("skill" — reserved for future kinds).
186
+ if (args.length === 0) {
187
+ printUsage();
188
+ return 1;
189
+ }
190
+ const kind = args[0];
191
+ if (kind === '--help' || kind === '-h') {
192
+ printUsage();
193
+ return 0;
194
+ }
195
+ if (kind !== 'skill') {
196
+ console.error(`Error: unknown kind "${kind}". Only "skill" is supported.`);
197
+ printUsage();
198
+ return 1;
199
+ }
200
+ if (args.length < 2) {
201
+ console.error('Error: missing skill name.');
202
+ printUsage();
203
+ return 1;
204
+ }
205
+ const name = args[1];
206
+ // #1231 — `aiwg run skill --help` should print usage, not search the
207
+ // index for a skill named "--help".
208
+ if (name === '--help' || name === '-h') {
209
+ printUsage();
210
+ return 0;
211
+ }
212
+ // Split remaining args at the first `--` separator if present.
213
+ const rest = args.slice(2);
214
+ let cwdOverride;
215
+ let scriptArgs;
216
+ const sepIndex = rest.indexOf('--');
217
+ let head;
218
+ if (sepIndex >= 0) {
219
+ head = rest.slice(0, sepIndex);
220
+ scriptArgs = rest.slice(sepIndex + 1);
221
+ }
222
+ else {
223
+ head = [];
224
+ scriptArgs = rest;
225
+ }
226
+ for (let i = 0; i < head.length; i++) {
227
+ if (head[i] === '--cwd' && i + 1 < head.length) {
228
+ cwdOverride = head[i + 1];
229
+ i++;
230
+ }
231
+ else {
232
+ // Unknown flag before `--` — treat as script arg only when no `--`
233
+ // separator was provided, otherwise error out so typos surface.
234
+ if (sepIndex >= 0) {
235
+ console.error(`Error: unknown flag "${head[i]}" before \`--\`.`);
236
+ printUsage();
237
+ return 1;
238
+ }
239
+ }
240
+ }
241
+ return runSkill({
242
+ cwd: process.cwd(),
243
+ name,
244
+ args: scriptArgs,
245
+ cwdOverride,
246
+ });
247
+ }
248
+ function printUsage() {
249
+ console.log('Usage: aiwg run skill <name> [--cwd <path>] [-- <args...>]');
250
+ console.log('');
251
+ console.log('Examples:');
252
+ console.log(' aiwg run skill voice-apply -- --voice technical-authority --input draft.md');
253
+ console.log(' aiwg run skill template-engine -- render adr-template.md --vars vars.yaml');
254
+ console.log(' aiwg run skill ai-pattern-detection -- --path docs/');
255
+ console.log('');
256
+ console.log('The script runs from the project root by default. Use `--cwd <path>` to override.');
257
+ console.log('Tip: `aiwg discover "<phrase>" --json` shows which skills have an "executable: true" flag.');
258
+ }
259
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Skill script runtime registry (#1227).
3
+ *
4
+ * Resolves a runtime name from a skill's `script.runtime` declaration to
5
+ * an interpreter command + args list. The CLI uses this dispatch table
6
+ * to invoke skill scripts with the right interpreter, regardless of the
7
+ * agent's host platform.
8
+ *
9
+ * Schema in SKILL.md frontmatter:
10
+ *
11
+ * script:
12
+ * entrypoint: scripts/voice_loader.py
13
+ * runtime: python3
14
+ *
15
+ * No silent fallbacks: an unknown runtime name produces a clear error
16
+ * with the supported list. `auto` dispatches by file extension, with
17
+ * shebang as a tiebreaker for ambiguous extensions.
18
+ */
19
+ import { promises as fs } from 'node:fs';
20
+ import * as path from 'node:path';
21
+ /**
22
+ * Built-in runtime → interpreter mapping. Keep this small and explicit.
23
+ * New runtimes go here, not in random call sites.
24
+ */
25
+ const RUNTIME_TABLE = {
26
+ node: { command: 'node', prefixArgs: [] },
27
+ python: { command: 'python3', prefixArgs: [] },
28
+ python3: { command: 'python3', prefixArgs: [] },
29
+ bash: { command: 'bash', prefixArgs: [] },
30
+ sh: { command: 'sh', prefixArgs: [] },
31
+ pwsh: { command: 'pwsh', prefixArgs: ['-File'] },
32
+ ruby: { command: 'ruby', prefixArgs: [] },
33
+ };
34
+ /**
35
+ * The set of supported runtime names — used in error messages so users
36
+ * see what they can pick from when they typo a runtime.
37
+ */
38
+ export function supportedRuntimes() {
39
+ return [...Object.keys(RUNTIME_TABLE), 'auto'];
40
+ }
41
+ /**
42
+ * Resolve a runtime name (potentially `auto`) to an invocation.
43
+ *
44
+ * `auto` resolves by file extension first; if the extension is unknown,
45
+ * it reads the entrypoint's shebang line. Returns null if neither path
46
+ * yields a known runtime — callers must surface that as a user error.
47
+ */
48
+ export async function resolveRuntime(runtimeName, entrypointAbsPath) {
49
+ const name = runtimeName.toLowerCase().trim();
50
+ if (name !== 'auto') {
51
+ return RUNTIME_TABLE[name] ?? null;
52
+ }
53
+ // auto: extension first
54
+ const ext = path.extname(entrypointAbsPath).toLowerCase();
55
+ const byExt = {
56
+ '.js': 'node',
57
+ '.mjs': 'node',
58
+ '.cjs': 'node',
59
+ '.py': 'python3',
60
+ '.sh': 'bash',
61
+ '.bash': 'bash',
62
+ '.ps1': 'pwsh',
63
+ '.rb': 'ruby',
64
+ };
65
+ const byExtName = byExt[ext];
66
+ if (byExtName)
67
+ return RUNTIME_TABLE[byExtName] ?? null;
68
+ // Shebang fallback
69
+ try {
70
+ const head = await fs.readFile(entrypointAbsPath, 'utf8');
71
+ const firstLine = head.split('\n', 1)[0] ?? '';
72
+ if (firstLine.startsWith('#!')) {
73
+ if (firstLine.includes('python3'))
74
+ return RUNTIME_TABLE.python3;
75
+ if (firstLine.includes('python'))
76
+ return RUNTIME_TABLE.python3;
77
+ if (firstLine.includes('node'))
78
+ return RUNTIME_TABLE.node;
79
+ if (firstLine.includes('bash'))
80
+ return RUNTIME_TABLE.bash;
81
+ if (firstLine.match(/\bsh\b/))
82
+ return RUNTIME_TABLE.sh;
83
+ if (firstLine.includes('ruby'))
84
+ return RUNTIME_TABLE.ruby;
85
+ if (firstLine.includes('pwsh'))
86
+ return RUNTIME_TABLE.pwsh;
87
+ }
88
+ }
89
+ catch {
90
+ // unreadable — fall through to null
91
+ }
92
+ return null;
93
+ }
94
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Skills Registry Types
3
+ *
4
+ * Defines the RegistryAdapter interface and result types for
5
+ * provider-agnostic skill search, install, and publish operations.
6
+ *
7
+ * @implements #539
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,116 @@
1
+ /**
2
+ * AgentSmith Demo
3
+ *
4
+ * Quick demonstration of AgentSmith capabilities.
5
+ * Run with: npx tsx src/smiths/agentsmith/demo.ts
6
+ */
7
+ import { AgentGenerator } from './generator.js';
8
+ import * as os from 'os';
9
+ import * as path from 'path';
10
+ async function demo() {
11
+ console.log('=== AgentSmith Demo ===\n');
12
+ const generator = new AgentGenerator();
13
+ const tempDir = os.tmpdir();
14
+ // Demo 1: List available templates
15
+ console.log('1. Available Templates:\n');
16
+ const templates = generator.listTemplates();
17
+ for (const { name, config } of templates) {
18
+ console.log(` ${name.padEnd(12)} - ${config.description}`);
19
+ console.log(` ${''.padEnd(16)} Model: ${config.modelTier}, Tools: ${config.tools.join(', ')}`);
20
+ }
21
+ // Demo 2: Generate a simple agent
22
+ console.log('\n2. Generating Simple Agent:\n');
23
+ const simpleAgent = await generator.generateAgent({
24
+ name: 'demo-simple-agent',
25
+ description: 'A simple demonstration agent for basic tasks',
26
+ template: 'simple',
27
+ platform: 'claude',
28
+ projectPath: tempDir,
29
+ dryRun: true, // Don't actually deploy
30
+ });
31
+ console.log(` Name: ${simpleAgent.name}`);
32
+ console.log(` Platform: ${simpleAgent.platform}`);
33
+ console.log(` Model: ${simpleAgent.model}`);
34
+ console.log(` Tools: ${simpleAgent.tools.join(', ')}`);
35
+ console.log(` Path: ${simpleAgent.path}`);
36
+ console.log('\n Content Preview (first 300 chars):');
37
+ console.log(' ' + simpleAgent.content.slice(0, 300).replace(/\n/g, '\n ') + '...\n');
38
+ // Demo 3: Generate a validator with guidance
39
+ console.log('3. Generating Validator with Guidance:\n');
40
+ const validatorAgent = await generator.generateAgent({
41
+ name: 'demo-security-validator',
42
+ description: 'Validates code for security vulnerabilities',
43
+ template: 'validator',
44
+ platform: 'claude',
45
+ projectPath: tempDir,
46
+ category: 'security',
47
+ version: '1.0.0',
48
+ guidance: `
49
+ Expert in OWASP Top 10 and secure coding practices.
50
+ Knowledge of SQL injection, XSS, and CSRF vulnerabilities.
51
+ Must scan for hardcoded secrets and weak cryptography.
52
+ Example: Detect "SELECT * WHERE id=" + userId as SQL injection risk.
53
+ Output format: JSON report with severity, file, line, description.
54
+ `,
55
+ dryRun: true,
56
+ });
57
+ console.log(` Name: ${validatorAgent.name}`);
58
+ console.log(` Platform: ${validatorAgent.platform}`);
59
+ console.log(` Model: ${validatorAgent.model}`);
60
+ console.log(` Tools: ${validatorAgent.tools.join(', ')}`);
61
+ console.log(` Category: ${validatorAgent.category}`);
62
+ console.log(` Version: ${validatorAgent.version}`);
63
+ console.log('\n Expertise section:');
64
+ const expertiseMatch = validatorAgent.content.match(/## Expertise\n\n([\s\S]*?)\n\n##/);
65
+ if (expertiseMatch) {
66
+ console.log(' ' + expertiseMatch[1].replace(/\n/g, '\n '));
67
+ }
68
+ // Demo 4: Generate orchestrator
69
+ console.log('\n4. Generating Orchestrator Agent:\n');
70
+ const orchestratorAgent = await generator.generateAgent({
71
+ name: 'demo-test-orchestrator',
72
+ description: 'Coordinates multiple test agents',
73
+ template: 'orchestrator',
74
+ platform: 'claude',
75
+ projectPath: tempDir,
76
+ guidance: `
77
+ Expert in test strategy and parallel execution.
78
+ Must delegate to unit-test-runner, integration-test-runner, e2e-test-runner.
79
+ Should synthesize coverage reports and failure summaries.
80
+ Output format: Aggregated results with pass/fail counts and coverage %.
81
+ `,
82
+ dryRun: true,
83
+ });
84
+ console.log(` Name: ${orchestratorAgent.name}`);
85
+ console.log(` Model: ${orchestratorAgent.model}`);
86
+ console.log(` Tools: ${orchestratorAgent.tools.join(', ')}`);
87
+ console.log('\n Workflow steps:');
88
+ const workflowMatch = orchestratorAgent.content.match(/## Workflow\n\n([\s\S]*?)\n\n##/);
89
+ if (workflowMatch) {
90
+ console.log(' ' + workflowMatch[1].replace(/\n/g, '\n '));
91
+ }
92
+ // Demo 5: Platform transformations
93
+ console.log('\n5. Platform Transformation Examples:\n');
94
+ const platforms = ['claude', 'cursor', 'codex', 'windsurf'];
95
+ for (const platform of platforms) {
96
+ const agent = await generator.generateAgent({
97
+ name: 'demo-platform-test',
98
+ description: 'Platform transformation test',
99
+ platform,
100
+ projectPath: tempDir,
101
+ dryRun: true,
102
+ });
103
+ console.log(` ${platform.padEnd(10)} -> ${path.extname(agent.path)}`);
104
+ console.log(` ${''.padEnd(16)}Format: ${agent.content.startsWith('{') ? 'JSON' : agent.content.startsWith('---') ? 'YAML+MD' : 'Plain MD'}`);
105
+ }
106
+ console.log('\n=== Demo Complete ===\n');
107
+ console.log('AgentSmith is ready for use!');
108
+ console.log('\nNext steps:');
109
+ console.log(' 1. Import AgentGenerator from "smiths/agentsmith"');
110
+ console.log(' 2. Call generateAgent() with your options');
111
+ console.log(' 3. Deploy with deployAgent() or use dryRun for preview');
112
+ console.log('\nSee README.md and examples.ts for more details.\n');
113
+ }
114
+ // Run demo
115
+ demo().catch(console.error);
116
+ //# sourceMappingURL=demo.js.map