@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,271 @@
1
+ /**
2
+ * Agent Validator
3
+ *
4
+ * Validates agent metadata, content, and dependencies.
5
+ */
6
+ import { validateCanonicalModelPolicy } from '../models/provider-policy.js';
7
+ const VALID_TOOLS = [
8
+ 'Read',
9
+ 'Write',
10
+ 'Bash',
11
+ 'Grep',
12
+ 'Glob',
13
+ 'WebFetch',
14
+ 'MultiEdit',
15
+ 'Task',
16
+ ];
17
+ const REQUIRED_FIELDS = [
18
+ 'name',
19
+ 'description',
20
+ ];
21
+ export class AgentValidator {
22
+ /**
23
+ * Validate an agent
24
+ */
25
+ async validate(agent) {
26
+ const issues = [];
27
+ // Validate metadata
28
+ issues.push(...this.validateMetadata(agent.metadata));
29
+ // Validate tools
30
+ if (agent.metadata.tools) {
31
+ issues.push(...this.validateTools(agent.metadata.tools));
32
+ }
33
+ // Validate content
34
+ issues.push(...this.validatePrompt(agent.content));
35
+ // Check for errors
36
+ const hasErrors = issues.some((issue) => issue.type === 'error');
37
+ return {
38
+ valid: !hasErrors,
39
+ issues,
40
+ agent,
41
+ };
42
+ }
43
+ /**
44
+ * Validate metadata fields
45
+ */
46
+ validateMetadata(metadata) {
47
+ const issues = [];
48
+ // Check required fields
49
+ for (const field of REQUIRED_FIELDS) {
50
+ const value = metadata[field];
51
+ if (!value || (typeof value === 'string' && value.trim() === '')) {
52
+ issues.push({
53
+ type: 'error',
54
+ field,
55
+ message: `Required field '${field}' is missing or empty`,
56
+ suggestion: `Add ${field} to agent frontmatter`,
57
+ });
58
+ }
59
+ }
60
+ // Validate name format
61
+ if (metadata.name) {
62
+ if (!/^[a-z0-9-]+$/.test(metadata.name)) {
63
+ issues.push({
64
+ type: 'error',
65
+ field: 'name',
66
+ message: 'Agent name must be lowercase alphanumeric with hyphens',
67
+ suggestion: `Use format: ${metadata.name.toLowerCase().replace(/[^a-z0-9-]/g, '-')}`,
68
+ });
69
+ }
70
+ }
71
+ // Validate description length
72
+ if (metadata.description) {
73
+ if (metadata.description.length < 20) {
74
+ issues.push({
75
+ type: 'warning',
76
+ field: 'description',
77
+ message: 'Description is too short (minimum 20 characters)',
78
+ suggestion: 'Provide a more detailed description of agent capabilities',
79
+ });
80
+ }
81
+ if (metadata.description.length > 500) {
82
+ issues.push({
83
+ type: 'warning',
84
+ field: 'description',
85
+ message: 'Description is very long (maximum 500 characters recommended)',
86
+ suggestion: 'Keep description concise',
87
+ });
88
+ }
89
+ }
90
+ if (metadata.modelRole || metadata.modelTier) {
91
+ const policy = validateCanonicalModelPolicy({
92
+ role: metadata.modelRole ?? 'coding',
93
+ tier: metadata.modelTier ?? 'standard',
94
+ });
95
+ if (!policy.valid) {
96
+ issues.push(...policy.diagnostics.map(diagnostic => ({
97
+ type: diagnostic.severity === 'error' ? 'error' : 'warning',
98
+ field: 'model-policy',
99
+ message: diagnostic.message,
100
+ suggestion: 'Use canonical model-role/model-tier values from the shared model policy schema',
101
+ })));
102
+ }
103
+ }
104
+ // Legacy exact model aliases remain readable, but new scaffolds should use
105
+ // canonical model-role/model-tier intent so providers compile the final ID.
106
+ if (metadata.model) {
107
+ const compatibilityAliases = new Set(['sonnet', 'opus', 'haiku', 'gpt-4', 'gpt-3.5-turbo']);
108
+ if (!compatibilityAliases.has(metadata.model)) {
109
+ issues.push({
110
+ type: 'warning',
111
+ field: 'model',
112
+ message: `Legacy exact model field is provider-specific: ${metadata.model}`,
113
+ suggestion: 'Prefer model-role and model-tier; exact IDs should be compiled from the effective provider catalog',
114
+ });
115
+ }
116
+ }
117
+ // Validate version format
118
+ if (metadata.version) {
119
+ if (!/^\d+\.\d+\.\d+$/.test(metadata.version)) {
120
+ issues.push({
121
+ type: 'warning',
122
+ field: 'version',
123
+ message: 'Version should follow semantic versioning (e.g., 1.0.0)',
124
+ suggestion: 'Use format: MAJOR.MINOR.PATCH',
125
+ });
126
+ }
127
+ }
128
+ // Validate triggers completeness (#1623). When `triggers` is declared it
129
+ // must be a non-empty array of non-empty phrases. An explicit empty
130
+ // `triggers: []` (or whitespace-only entries) is the discoverability
131
+ // anti-pattern: a declared-but-empty NL routing surface that silently
132
+ // fails `aiwg discover`. Omitting the field is allowed; declaring it
133
+ // empty is an error so the persona-metadata regression cannot recur.
134
+ if (metadata.triggers !== undefined) {
135
+ if (!Array.isArray(metadata.triggers) || metadata.triggers.length === 0) {
136
+ issues.push({
137
+ type: 'error',
138
+ field: 'triggers',
139
+ message: 'triggers is declared but empty — the discoverability anti-pattern',
140
+ suggestion: 'Add at least one natural-language trigger phrase, or remove the empty field',
141
+ });
142
+ }
143
+ else if (metadata.triggers.some((t) => typeof t !== 'string' || t.trim() === '')) {
144
+ issues.push({
145
+ type: 'error',
146
+ field: 'triggers',
147
+ message: 'triggers contains an empty or non-string phrase',
148
+ suggestion: 'Remove empty trigger entries; each phrase must be a non-empty string',
149
+ });
150
+ }
151
+ }
152
+ return issues;
153
+ }
154
+ /**
155
+ * Validate tool names
156
+ */
157
+ validateTools(tools) {
158
+ const issues = [];
159
+ if (!Array.isArray(tools)) {
160
+ issues.push({
161
+ type: 'error',
162
+ field: 'tools',
163
+ message: 'Tools must be an array',
164
+ suggestion: 'Provide tools as comma-separated list or array',
165
+ });
166
+ return issues;
167
+ }
168
+ if (tools.length === 0) {
169
+ issues.push({
170
+ type: 'warning',
171
+ field: 'tools',
172
+ message: 'No tools specified',
173
+ suggestion: 'Agents typically need at least Read and Write tools',
174
+ });
175
+ }
176
+ // Check each tool
177
+ for (const tool of tools) {
178
+ const trimmedTool = tool.trim();
179
+ if (!VALID_TOOLS.includes(trimmedTool)) {
180
+ issues.push({
181
+ type: 'warning',
182
+ field: 'tools',
183
+ message: `Unknown tool: ${trimmedTool}`,
184
+ suggestion: `Valid tools: ${VALID_TOOLS.join(', ')}`,
185
+ });
186
+ }
187
+ }
188
+ return issues;
189
+ }
190
+ /**
191
+ * Validate prompt content
192
+ */
193
+ validatePrompt(prompt) {
194
+ const issues = [];
195
+ if (!prompt || prompt.trim() === '') {
196
+ issues.push({
197
+ type: 'error',
198
+ field: 'content',
199
+ message: 'Agent content/prompt is empty',
200
+ suggestion: 'Provide agent instructions and behavior',
201
+ });
202
+ return issues;
203
+ }
204
+ // Check minimum length
205
+ if (prompt.length < 100) {
206
+ issues.push({
207
+ type: 'warning',
208
+ field: 'content',
209
+ message: 'Agent content is very short (< 100 characters)',
210
+ suggestion: 'Provide more detailed instructions for the agent',
211
+ });
212
+ }
213
+ // Check for common issues
214
+ if (!prompt.includes('#')) {
215
+ issues.push({
216
+ type: 'info',
217
+ field: 'content',
218
+ message: 'Content has no headings - consider adding structure',
219
+ suggestion: 'Use markdown headings to organize agent instructions',
220
+ });
221
+ }
222
+ return issues;
223
+ }
224
+ /**
225
+ * Check dependencies
226
+ */
227
+ checkDependencies(agent, availableAgents) {
228
+ const issues = [];
229
+ if (!agent.metadata.dependencies || agent.metadata.dependencies.length === 0) {
230
+ return issues;
231
+ }
232
+ const availableNames = new Set(availableAgents.map((a) => a.metadata.name));
233
+ for (const dep of agent.metadata.dependencies) {
234
+ if (!availableNames.has(dep)) {
235
+ issues.push({
236
+ type: 'error',
237
+ field: 'dependencies',
238
+ message: `Dependency not found: ${dep}`,
239
+ suggestion: 'Ensure all dependencies are available for deployment',
240
+ });
241
+ }
242
+ }
243
+ // Check for circular dependencies (simple check)
244
+ if (agent.metadata.dependencies.includes(agent.metadata.name)) {
245
+ issues.push({
246
+ type: 'error',
247
+ field: 'dependencies',
248
+ message: 'Agent cannot depend on itself',
249
+ suggestion: 'Remove self-reference from dependencies',
250
+ });
251
+ }
252
+ return issues;
253
+ }
254
+ /**
255
+ * Validate batch of agents
256
+ */
257
+ async validateBatch(agents) {
258
+ const results = [];
259
+ for (const agent of agents) {
260
+ const result = await this.validate(agent);
261
+ // Also check dependencies
262
+ const depIssues = this.checkDependencies(agent, agents);
263
+ result.issues.push(...depIssues);
264
+ // Re-evaluate validity
265
+ result.valid = !result.issues.some((issue) => issue.type === 'error');
266
+ results.push(result);
267
+ }
268
+ return results;
269
+ }
270
+ }
271
+ //# sourceMappingURL=agent-validator.js.map
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Knowledge Base — load and search domain knowledge for grounding agents
3
+ *
4
+ * @module agents/grounding/knowledge-base
5
+ * @issue #184
6
+ */
7
+ import { promises as fs } from 'fs';
8
+ import path from 'path';
9
+ import { projectAiwgPath } from '../../config/project-artifacts.js';
10
+ // ============================================================================
11
+ // KnowledgeStore
12
+ // ============================================================================
13
+ export class KnowledgeStore {
14
+ bases;
15
+ projectPath;
16
+ constructor(projectPath) {
17
+ this.projectPath = projectPath;
18
+ this.bases = new Map();
19
+ }
20
+ /**
21
+ * Load knowledge bases from .aiwg/knowledge/
22
+ */
23
+ async load() {
24
+ const knowledgeDir = projectAiwgPath(this.projectPath, 'knowledge');
25
+ try {
26
+ const domains = await fs.readdir(knowledgeDir);
27
+ for (const domain of domains) {
28
+ const domainPath = path.join(knowledgeDir, domain);
29
+ const stat = await fs.stat(domainPath);
30
+ if (!stat.isDirectory())
31
+ continue;
32
+ const files = await fs.readdir(domainPath);
33
+ const entries = [];
34
+ for (const file of files) {
35
+ if (!file.endsWith('.json'))
36
+ continue;
37
+ try {
38
+ const content = await fs.readFile(path.join(domainPath, file), 'utf-8');
39
+ const parsed = JSON.parse(content);
40
+ if (Array.isArray(parsed.entries)) {
41
+ entries.push(...parsed.entries);
42
+ }
43
+ else if (parsed.id) {
44
+ entries.push(parsed);
45
+ }
46
+ }
47
+ catch {
48
+ // Skip malformed files
49
+ }
50
+ }
51
+ if (entries.length > 0) {
52
+ this.bases.set(domain, {
53
+ domain,
54
+ version: '1.0.0',
55
+ entries,
56
+ });
57
+ }
58
+ }
59
+ }
60
+ catch {
61
+ // Knowledge directory doesn't exist yet
62
+ }
63
+ }
64
+ /**
65
+ * Add a knowledge base from a JSON file
66
+ */
67
+ async addFromFile(domain, filePath) {
68
+ const content = await fs.readFile(filePath, 'utf-8');
69
+ const parsed = JSON.parse(content);
70
+ const entries = Array.isArray(parsed.entries)
71
+ ? parsed.entries
72
+ : Array.isArray(parsed) ? parsed : [parsed];
73
+ const existing = this.bases.get(domain) || { domain, version: '1.0.0', entries: [] };
74
+ existing.entries.push(...entries);
75
+ this.bases.set(domain, existing);
76
+ // Persist
77
+ const domainDir = projectAiwgPath(this.projectPath, 'knowledge', domain);
78
+ await fs.mkdir(domainDir, { recursive: true });
79
+ const outFile = path.join(domainDir, path.basename(filePath));
80
+ await fs.copyFile(filePath, outFile);
81
+ return entries.length;
82
+ }
83
+ /**
84
+ * Search knowledge across all domains or a specific domain
85
+ */
86
+ search(query, options) {
87
+ const limit = options?.limit ?? 5;
88
+ const queryTerms = query.toLowerCase().split(/\s+/).filter((t) => t.length > 2);
89
+ const results = [];
90
+ const domains = options?.domain
91
+ ? [this.bases.get(options.domain)].filter(Boolean)
92
+ : Array.from(this.bases.values());
93
+ for (const base of domains) {
94
+ for (const entry of base.entries) {
95
+ const score = calculateRelevance(entry, queryTerms);
96
+ if (score > 0) {
97
+ results.push({
98
+ content: entry.content,
99
+ source: `${base.domain}/${entry.source || entry.id}`,
100
+ relevance_score: score,
101
+ metadata: { topic: entry.topic, id: entry.id },
102
+ });
103
+ }
104
+ }
105
+ }
106
+ return results
107
+ .sort((a, b) => b.relevance_score - a.relevance_score)
108
+ .slice(0, limit);
109
+ }
110
+ /**
111
+ * Verify a claim against domain knowledge
112
+ */
113
+ verifyClaim(claim, domain) {
114
+ const fragments = this.search(claim, { domain, limit: 3 });
115
+ if (fragments.length === 0) {
116
+ return {
117
+ claim,
118
+ verified: false,
119
+ confidence: 0,
120
+ sources: [],
121
+ correction: 'No relevant knowledge found in knowledge base',
122
+ };
123
+ }
124
+ // Simple verification: check if top fragments support or contradict
125
+ const topFragment = fragments[0];
126
+ const confidence = Math.min(topFragment.relevance_score, 1.0);
127
+ return {
128
+ claim,
129
+ verified: confidence > 0.3,
130
+ confidence,
131
+ sources: fragments.map((f) => f.source),
132
+ };
133
+ }
134
+ listDomains() {
135
+ return Array.from(this.bases.keys());
136
+ }
137
+ getDomainStats() {
138
+ return Array.from(this.bases.entries()).map(([domain, base]) => ({
139
+ domain,
140
+ entries: base.entries.length,
141
+ }));
142
+ }
143
+ }
144
+ // ============================================================================
145
+ // Helpers
146
+ // ============================================================================
147
+ function calculateRelevance(entry, queryTerms) {
148
+ const searchable = [
149
+ entry.topic,
150
+ entry.content,
151
+ ...(entry.keywords || []),
152
+ ].join(' ').toLowerCase();
153
+ let matches = 0;
154
+ for (const term of queryTerms) {
155
+ if (searchable.includes(term)) {
156
+ matches++;
157
+ }
158
+ }
159
+ return queryTerms.length > 0 ? matches / queryTerms.length : 0;
160
+ }
161
+ //# sourceMappingURL=knowledge-base.js.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Grounding Agent Types
3
+ *
4
+ * Interfaces for domain knowledge injection agents that verify claims,
5
+ * retrieve knowledge, and ground conversations with factual context.
6
+ *
7
+ * @module agents/grounding/types
8
+ * @issue #184
9
+ * @research REF-022 AutoGen (ALFChat case study — 40% domain accuracy improvement)
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Agent Deployment System
3
+ *
4
+ * Multi-platform agent deployment with validation and packaging.
5
+ */
6
+ export * from './types.js';
7
+ export { AgentDeployer } from './agent-deployer.js';
8
+ export { AgentValidator } from './agent-validator.js';
9
+ export { AgentPackager } from './agent-packager.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,75 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ const MANAGED_MARKER_RE = /(?:^|\n)(?:#|<!--)\s*aiwg:managed\s+v?([^\s]+)\s+([^\s>]+)(?:\s*-->)?/;
4
+ /** Normalize provider-specific deployed filenames to the source agent id. */
5
+ export function normalizeAgentArtifactName(filename) {
6
+ return path.basename(filename)
7
+ .replace(/\.agent\.md$/i, '')
8
+ .replace(/\.soul\.md$/i, '')
9
+ .replace(/\.(?:md|mdc|toml)$/i, '');
10
+ }
11
+ export function parseManagedArtifactMarker(content) {
12
+ const match = MANAGED_MARKER_RE.exec(content);
13
+ return match ? { version: match[1], source: match[2] } : null;
14
+ }
15
+ async function collectAgentSources(frameworkRoot, rootDir, inventory, allMarkdownFiles) {
16
+ let entries;
17
+ try {
18
+ entries = await fs.readdir(rootDir, { withFileTypes: true });
19
+ }
20
+ catch {
21
+ return;
22
+ }
23
+ await Promise.all(entries.map(async (entry) => {
24
+ const absolute = path.join(rootDir, entry.name);
25
+ if (entry.isDirectory()) {
26
+ await collectAgentSources(frameworkRoot, absolute, inventory, allMarkdownFiles);
27
+ return;
28
+ }
29
+ if (!entry.isFile() || !entry.name.endsWith('.md'))
30
+ return;
31
+ if (!allMarkdownFiles && path.basename(rootDir) !== 'agents')
32
+ return;
33
+ let stat;
34
+ try {
35
+ stat = await fs.stat(absolute);
36
+ }
37
+ catch {
38
+ return;
39
+ }
40
+ const name = normalizeAgentArtifactName(entry.name);
41
+ const sources = inventory.get(name) ?? [];
42
+ sources.push({
43
+ path: path.relative(frameworkRoot, absolute),
44
+ size: stat.size,
45
+ });
46
+ inventory.set(name, sources);
47
+ }));
48
+ }
49
+ /**
50
+ * Inventory every packaged agent source that can contribute to provider output.
51
+ * Framework, addon, and plugin agents live in named `agents/` directories;
52
+ * root personas live recursively below `agentic/code/agents/`.
53
+ */
54
+ export async function collectPackagedAgentInventory(frameworkRoot) {
55
+ const inventory = new Map();
56
+ const codeRoot = path.join(frameworkRoot, 'agentic', 'code');
57
+ await Promise.all([
58
+ collectAgentSources(frameworkRoot, path.join(codeRoot, 'frameworks'), inventory, false),
59
+ collectAgentSources(frameworkRoot, path.join(codeRoot, 'addons'), inventory, false),
60
+ collectAgentSources(frameworkRoot, path.join(codeRoot, 'plugins'), inventory, false),
61
+ collectAgentSources(frameworkRoot, path.join(codeRoot, 'agents'), inventory, true),
62
+ ]);
63
+ return inventory;
64
+ }
65
+ /** Classify a deployed oversized file without assuming it came from the package. */
66
+ export function diagnoseOversizedAgent(filename, content, inventory, ceilingBytes) {
67
+ const packaged = inventory.get(normalizeAgentArtifactName(filename)) ?? [];
68
+ if (packaged.some((source) => source.size > ceilingBytes))
69
+ return 'current-package';
70
+ const marker = parseManagedArtifactMarker(content);
71
+ if (marker?.source === 'bundled')
72
+ return 'stale-deployment';
73
+ return 'unmanaged-local';
74
+ }
75
+ //# sourceMappingURL=packaged-agent-inventory.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Agent Deployment System - Type Definitions
3
+ *
4
+ * Defines interfaces and types for multi-platform agent deployment.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Supported programmatic entry points for the installed AIWG package.
3
+ *
4
+ * `run()` dispatches through the same router used by `bin/aiwg.mjs`. Resource
5
+ * helpers expose the signed web-release contract without requiring callers to
6
+ * import private `dist/` paths.
7
+ */
8
+ export { run } from '../cli/router.js';
9
+ export * from '../resources/index.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Supported programmatic entry points for the installed AIWG package.
3
+ *
4
+ * `run()` dispatches through the same router used by `bin/aiwg.mjs`. Resource
5
+ * helpers expose the signed web-release contract without requiring callers to
6
+ * import private `dist/` paths.
7
+ */
8
+ export { run } from '../cli/router.js';
9
+ export * from '../resources/index.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Address Parser — parse hybrid addressing syntax into queries
3
+ *
4
+ * Syntaxes:
5
+ * @.aiwg/requirements/UC-001.md → location
6
+ * @?"user authentication" → semantic
7
+ * @.aiwg/requirements/?"auth" → hybrid
8
+ * @#security,authentication → tags
9
+ * @phase:requirements → phase
10
+ *
11
+ * @module artifacts/address-parser
12
+ * @issue #187
13
+ */
14
+ // ============================================================================
15
+ // Parser
16
+ // ============================================================================
17
+ /**
18
+ * Parse an address string into a HybridQuery.
19
+ */
20
+ export function parseAddress(input) {
21
+ const raw = input.trim();
22
+ // Remove leading @ if present
23
+ const addr = raw.startsWith('@') ? raw.slice(1) : raw;
24
+ // @#tag1,tag2 → tags
25
+ if (addr.startsWith('#')) {
26
+ const tags = addr.slice(1).split(',').map((t) => t.trim()).filter(Boolean);
27
+ return { type: 'tags', query: { tags }, raw };
28
+ }
29
+ // @phase:requirements → phase
30
+ if (addr.startsWith('phase:')) {
31
+ const phase = addr.slice(6).trim();
32
+ return { type: 'phase', query: { phase }, raw };
33
+ }
34
+ // @?"query" → semantic
35
+ if (addr.startsWith('?"') || addr.startsWith('?\'')) {
36
+ const semanticQuery = addr.slice(2, -1);
37
+ return { type: 'semantic', query: { semanticQuery }, raw };
38
+ }
39
+ // @path/?"query" → hybrid
40
+ const hybridMatch = addr.match(/^(.+?)\/\?"([^"]+)"$/);
41
+ if (hybridMatch) {
42
+ return {
43
+ type: 'hybrid',
44
+ query: { path: hybridMatch[1], semanticQuery: hybridMatch[2] },
45
+ raw,
46
+ };
47
+ }
48
+ const hybridMatchSingle = addr.match(/^(.+?)\/\?'([^']+)'$/);
49
+ if (hybridMatchSingle) {
50
+ return {
51
+ type: 'hybrid',
52
+ query: { path: hybridMatchSingle[1], semanticQuery: hybridMatchSingle[2] },
53
+ raw,
54
+ };
55
+ }
56
+ // Default: location (file path or glob)
57
+ return { type: 'location', query: { path: addr }, raw };
58
+ }
59
+ /**
60
+ * Build a HybridQuery from multiple criteria (CLI-style).
61
+ */
62
+ export function buildQuery(options) {
63
+ return {
64
+ path: options.path,
65
+ semanticQuery: options.query,
66
+ tags: options.tags?.split(',').map((t) => t.trim()).filter(Boolean),
67
+ phase: options.phase,
68
+ type: options.type,
69
+ updatedAfter: options.since,
70
+ limit: options.limit,
71
+ };
72
+ }
73
+ //# sourceMappingURL=address-parser.js.map