@claude-flow/cli 3.32.3 → 3.32.5

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 (683) hide show
  1. package/.claude/helpers/helpers.manifest.json +2 -2
  2. package/catalog-manifest.json +2 -2
  3. package/dist/src/agenticow/speculative-exploration.d.ts +148 -0
  4. package/dist/src/agenticow/speculative-exploration.js +218 -0
  5. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  6. package/dist/src/appliance/gguf-engine.js +425 -0
  7. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  8. package/dist/src/appliance/ruvllm-bridge.js +292 -0
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.js +329 -0
  11. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  12. package/dist/src/appliance/rvfa-distribution.js +370 -0
  13. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  14. package/dist/src/appliance/rvfa-format.js +393 -0
  15. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  16. package/dist/src/appliance/rvfa-runner.js +237 -0
  17. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  18. package/dist/src/appliance/rvfa-signing.js +347 -0
  19. package/dist/src/auth/client.d.ts +89 -0
  20. package/dist/src/auth/client.js +242 -0
  21. package/dist/src/auth/constants.d.ts +7 -0
  22. package/dist/src/auth/constants.js +7 -0
  23. package/dist/src/auth/scopes.d.ts +14 -0
  24. package/dist/src/auth/scopes.js +21 -0
  25. package/dist/src/auth/security-bridge.d.ts +36 -0
  26. package/dist/src/auth/security-bridge.js +42 -0
  27. package/dist/src/auth/session.d.ts +20 -0
  28. package/dist/src/auth/session.js +32 -0
  29. package/dist/src/auth/state.d.ts +19 -0
  30. package/dist/src/auth/state.js +53 -0
  31. package/dist/src/auth/types.d.ts +27 -0
  32. package/dist/src/auth/types.js +11 -0
  33. package/dist/src/autopilot-state.d.ts +77 -0
  34. package/dist/src/autopilot-state.js +271 -0
  35. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +18 -0
  36. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +253 -0
  37. package/dist/src/benchmarks/gaia-agent.d.ts +198 -0
  38. package/dist/src/benchmarks/gaia-agent.js +651 -0
  39. package/dist/src/benchmarks/gaia-causal-memory.d.ts +133 -0
  40. package/dist/src/benchmarks/gaia-causal-memory.js +281 -0
  41. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +22 -0
  42. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +300 -0
  43. package/dist/src/benchmarks/gaia-convergence.d.ts +138 -0
  44. package/dist/src/benchmarks/gaia-convergence.js +260 -0
  45. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +19 -0
  46. package/dist/src/benchmarks/gaia-convergence.smoke.js +246 -0
  47. package/dist/src/benchmarks/gaia-critic.d.ts +123 -0
  48. package/dist/src/benchmarks/gaia-critic.js +312 -0
  49. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +21 -0
  50. package/dist/src/benchmarks/gaia-critic.smoke.js +327 -0
  51. package/dist/src/benchmarks/gaia-decomposer.d.ts +125 -0
  52. package/dist/src/benchmarks/gaia-decomposer.js +350 -0
  53. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +21 -0
  54. package/dist/src/benchmarks/gaia-decomposer.smoke.js +228 -0
  55. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +27 -0
  56. package/dist/src/benchmarks/gaia-e2e-smoke.js +136 -0
  57. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +45 -0
  58. package/dist/src/benchmarks/gaia-extract.smoke.js +242 -0
  59. package/dist/src/benchmarks/gaia-hardness/features.d.ts +46 -0
  60. package/dist/src/benchmarks/gaia-hardness/features.js +170 -0
  61. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +105 -0
  62. package/dist/src/benchmarks/gaia-hardness/predictor.js +260 -0
  63. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +20 -0
  64. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +235 -0
  65. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +51 -0
  66. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +179 -0
  67. package/dist/src/benchmarks/gaia-judge.d.ts +88 -0
  68. package/dist/src/benchmarks/gaia-judge.js +437 -0
  69. package/dist/src/benchmarks/gaia-loader.d.ts +87 -0
  70. package/dist/src/benchmarks/gaia-loader.js +326 -0
  71. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +35 -0
  72. package/dist/src/benchmarks/gaia-tools/file_read.js +403 -0
  73. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +126 -0
  74. package/dist/src/benchmarks/gaia-tools/grounded_query.js +225 -0
  75. package/dist/src/benchmarks/gaia-tools/index.d.ts +32 -0
  76. package/dist/src/benchmarks/gaia-tools/index.js +36 -0
  77. package/dist/src/benchmarks/gaia-tools/types.d.ts +62 -0
  78. package/dist/src/benchmarks/gaia-tools/types.js +12 -0
  79. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +30 -0
  80. package/dist/src/benchmarks/gaia-tools/web_search.js +210 -0
  81. package/dist/src/benchmarks/gaia-voting.d.ts +88 -0
  82. package/dist/src/benchmarks/gaia-voting.js +297 -0
  83. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +20 -0
  84. package/dist/src/benchmarks/gaia-voting.smoke.js +332 -0
  85. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  86. package/dist/src/benchmarks/pretrain/index.js +404 -0
  87. package/dist/src/business-pods/bbs-budget-tracker.d.ts +139 -0
  88. package/dist/src/business-pods/bbs-budget-tracker.js +358 -0
  89. package/dist/src/business-pods/domain-affinity-policy.d.ts +47 -0
  90. package/dist/src/business-pods/domain-affinity-policy.js +65 -0
  91. package/dist/src/business-pods/pod-schema.d.ts +96 -0
  92. package/dist/src/business-pods/pod-schema.js +225 -0
  93. package/dist/src/commands/advisor.d.ts +15 -0
  94. package/dist/src/commands/advisor.js +94 -0
  95. package/dist/src/commands/agent-wasm.d.ts +14 -0
  96. package/dist/src/commands/agent-wasm.js +333 -0
  97. package/dist/src/commands/agent.d.ts +8 -0
  98. package/dist/src/commands/agent.js +927 -0
  99. package/dist/src/commands/analyze.d.ts +19 -0
  100. package/dist/src/commands/analyze.js +2047 -0
  101. package/dist/src/commands/announcements.d.ts +17 -0
  102. package/dist/src/commands/announcements.js +0 -0
  103. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  104. package/dist/src/commands/appliance-advanced.js +215 -0
  105. package/dist/src/commands/appliance.d.ts +8 -0
  106. package/dist/src/commands/appliance.js +404 -0
  107. package/dist/src/commands/auth.d.ts +15 -0
  108. package/dist/src/commands/auth.js +244 -0
  109. package/dist/src/commands/autopilot.d.ts +15 -0
  110. package/dist/src/commands/autopilot.js +407 -0
  111. package/dist/src/commands/benchmark.d.ts +10 -0
  112. package/dist/src/commands/benchmark.js +460 -0
  113. package/dist/src/commands/claims.d.ts +10 -0
  114. package/dist/src/commands/claims.js +620 -0
  115. package/dist/src/commands/cleanup.d.ts +13 -0
  116. package/dist/src/commands/cleanup.js +250 -0
  117. package/dist/src/commands/completions.d.ts +10 -0
  118. package/dist/src/commands/completions.js +539 -0
  119. package/dist/src/commands/config.d.ts +8 -0
  120. package/dist/src/commands/config.js +428 -0
  121. package/dist/src/commands/daemon.d.ts +59 -0
  122. package/dist/src/commands/daemon.js +1733 -0
  123. package/dist/src/commands/deployment.d.ts +10 -0
  124. package/dist/src/commands/deployment.js +672 -0
  125. package/dist/src/commands/doctor.d.ts +10 -0
  126. package/dist/src/commands/doctor.js +1902 -0
  127. package/dist/src/commands/eject.d.ts +33 -0
  128. package/dist/src/commands/eject.js +195 -0
  129. package/dist/src/commands/embeddings.d.ts +18 -0
  130. package/dist/src/commands/embeddings.js +1623 -0
  131. package/dist/src/commands/funnel.d.ts +18 -0
  132. package/dist/src/commands/funnel.js +302 -0
  133. package/dist/src/commands/gaia-bench.d.ts +40 -0
  134. package/dist/src/commands/gaia-bench.js +597 -0
  135. package/dist/src/commands/guidance.d.ts +8 -0
  136. package/dist/src/commands/guidance.js +556 -0
  137. package/dist/src/commands/hive-mind.d.ts +11 -0
  138. package/dist/src/commands/hive-mind.js +1319 -0
  139. package/dist/src/commands/hooks.d.ts +8 -0
  140. package/dist/src/commands/hooks.js +4606 -0
  141. package/dist/src/commands/index.d.ts +118 -0
  142. package/dist/src/commands/index.js +366 -0
  143. package/dist/src/commands/init.d.ts +13 -0
  144. package/dist/src/commands/init.js +1297 -0
  145. package/dist/src/commands/issues.d.ts +21 -0
  146. package/dist/src/commands/issues.js +567 -0
  147. package/dist/src/commands/mcp.d.ts +11 -0
  148. package/dist/src/commands/mcp.js +732 -0
  149. package/dist/src/commands/memory-backup.d.ts +11 -0
  150. package/dist/src/commands/memory-backup.js +46 -0
  151. package/dist/src/commands/memory-distill.d.ts +27 -0
  152. package/dist/src/commands/memory-distill.js +374 -0
  153. package/dist/src/commands/memory.d.ts +8 -0
  154. package/dist/src/commands/memory.js +1596 -0
  155. package/dist/src/commands/metaharness.d.ts +39 -0
  156. package/dist/src/commands/metaharness.js +215 -0
  157. package/dist/src/commands/migrate.d.ts +8 -0
  158. package/dist/src/commands/migrate.js +742 -0
  159. package/dist/src/commands/neural.d.ts +10 -0
  160. package/dist/src/commands/neural.js +4331 -0
  161. package/dist/src/commands/performance.d.ts +10 -0
  162. package/dist/src/commands/performance.js +583 -0
  163. package/dist/src/commands/plugins.d.ts +11 -0
  164. package/dist/src/commands/plugins.js +826 -0
  165. package/dist/src/commands/process.d.ts +10 -0
  166. package/dist/src/commands/process.js +694 -0
  167. package/dist/src/commands/progress.d.ts +11 -0
  168. package/dist/src/commands/progress.js +259 -0
  169. package/dist/src/commands/providers.d.ts +10 -0
  170. package/dist/src/commands/providers.js +502 -0
  171. package/dist/src/commands/proxy-lifecycle.d.ts +20 -0
  172. package/dist/src/commands/proxy-lifecycle.js +277 -0
  173. package/dist/src/commands/proxy.d.ts +21 -0
  174. package/dist/src/commands/proxy.js +403 -0
  175. package/dist/src/commands/route.d.ts +16 -0
  176. package/dist/src/commands/route.js +822 -0
  177. package/dist/src/commands/ruvector/backup.d.ts +11 -0
  178. package/dist/src/commands/ruvector/backup.js +747 -0
  179. package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  180. package/dist/src/commands/ruvector/benchmark.js +490 -0
  181. package/dist/src/commands/ruvector/import.d.ts +18 -0
  182. package/dist/src/commands/ruvector/import.js +373 -0
  183. package/dist/src/commands/ruvector/index.d.ts +29 -0
  184. package/dist/src/commands/ruvector/index.js +129 -0
  185. package/dist/src/commands/ruvector/init.d.ts +11 -0
  186. package/dist/src/commands/ruvector/init.js +467 -0
  187. package/dist/src/commands/ruvector/migrate.d.ts +11 -0
  188. package/dist/src/commands/ruvector/migrate.js +498 -0
  189. package/dist/src/commands/ruvector/optimize.d.ts +11 -0
  190. package/dist/src/commands/ruvector/optimize.js +505 -0
  191. package/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
  192. package/dist/src/commands/ruvector/pg-utils.js +41 -0
  193. package/dist/src/commands/ruvector/setup.d.ts +18 -0
  194. package/dist/src/commands/ruvector/setup.js +765 -0
  195. package/dist/src/commands/ruvector/status.d.ts +11 -0
  196. package/dist/src/commands/ruvector/status.js +479 -0
  197. package/dist/src/commands/security.d.ts +10 -0
  198. package/dist/src/commands/security.js +1012 -0
  199. package/dist/src/commands/session.d.ts +8 -0
  200. package/dist/src/commands/session.js +757 -0
  201. package/dist/src/commands/settings.d.ts +19 -0
  202. package/dist/src/commands/settings.js +180 -0
  203. package/dist/src/commands/spinner.d.ts +16 -0
  204. package/dist/src/commands/spinner.js +329 -0
  205. package/dist/src/commands/start.d.ts +8 -0
  206. package/dist/src/commands/start.js +418 -0
  207. package/dist/src/commands/status.d.ts +8 -0
  208. package/dist/src/commands/status.js +608 -0
  209. package/dist/src/commands/swarm.d.ts +8 -0
  210. package/dist/src/commands/swarm.js +891 -0
  211. package/dist/src/commands/task.d.ts +8 -0
  212. package/dist/src/commands/task.js +675 -0
  213. package/dist/src/commands/transfer-store.d.ts +13 -0
  214. package/dist/src/commands/transfer-store.js +428 -0
  215. package/dist/src/commands/update.d.ts +8 -0
  216. package/dist/src/commands/update.js +276 -0
  217. package/dist/src/commands/verify.d.ts +19 -0
  218. package/dist/src/commands/verify.js +261 -0
  219. package/dist/src/commands/version.d.ts +42 -0
  220. package/dist/src/commands/version.js +106 -0
  221. package/dist/src/commands/workflow.d.ts +8 -0
  222. package/dist/src/commands/workflow.js +617 -0
  223. package/dist/src/config/harness-feedback-applier.d.ts +50 -0
  224. package/dist/src/config/harness-feedback-applier.js +122 -0
  225. package/dist/src/config/proven-config-refresh.d.ts +39 -0
  226. package/dist/src/config/proven-config-refresh.js +154 -0
  227. package/dist/src/config/proven-config-rvfa.d.ts +23 -0
  228. package/dist/src/config/proven-config-rvfa.js +73 -0
  229. package/dist/src/config/proven-config.d.ts +86 -0
  230. package/dist/src/config/proven-config.js +176 -0
  231. package/dist/src/config-adapter.d.ts +15 -0
  232. package/dist/src/config-adapter.js +186 -0
  233. package/dist/src/encryption/vault.d.ts +94 -0
  234. package/dist/src/encryption/vault.js +172 -0
  235. package/dist/src/fs-secure.d.ts +86 -0
  236. package/dist/src/fs-secure.js +133 -0
  237. package/dist/src/funnel/advisor-tip.d.ts +58 -0
  238. package/dist/src/funnel/advisor-tip.js +92 -0
  239. package/dist/src/funnel/attribution.d.ts +37 -0
  240. package/dist/src/funnel/attribution.js +101 -0
  241. package/dist/src/funnel/consent.d.ts +22 -0
  242. package/dist/src/funnel/consent.js +58 -0
  243. package/dist/src/funnel/credit-errors.d.ts +31 -0
  244. package/dist/src/funnel/credit-errors.js +88 -0
  245. package/dist/src/funnel/credit-notifier.d.ts +44 -0
  246. package/dist/src/funnel/credit-notifier.js +74 -0
  247. package/dist/src/funnel/disclosure.d.ts +47 -0
  248. package/dist/src/funnel/disclosure.js +109 -0
  249. package/dist/src/funnel/enrollment.d.ts +36 -0
  250. package/dist/src/funnel/enrollment.js +64 -0
  251. package/dist/src/funnel/environment.d.ts +17 -0
  252. package/dist/src/funnel/environment.js +39 -0
  253. package/dist/src/funnel/event-transport.d.ts +51 -0
  254. package/dist/src/funnel/event-transport.js +199 -0
  255. package/dist/src/funnel/events.d.ts +42 -0
  256. package/dist/src/funnel/events.js +150 -0
  257. package/dist/src/funnel/index.d.ts +21 -0
  258. package/dist/src/funnel/index.js +21 -0
  259. package/dist/src/funnel/insights.d.ts +50 -0
  260. package/dist/src/funnel/insights.js +120 -0
  261. package/dist/src/funnel/local-signals.d.ts +20 -0
  262. package/dist/src/funnel/local-signals.js +77 -0
  263. package/dist/src/funnel/message-transport.d.ts +51 -0
  264. package/dist/src/funnel/message-transport.js +149 -0
  265. package/dist/src/funnel/messages.d.ts +55 -0
  266. package/dist/src/funnel/messages.js +160 -0
  267. package/dist/src/funnel/payout.d.ts +40 -0
  268. package/dist/src/funnel/payout.js +60 -0
  269. package/dist/src/funnel/power-saver-notifier.d.ts +44 -0
  270. package/dist/src/funnel/power-saver-notifier.js +92 -0
  271. package/dist/src/funnel/precedence.d.ts +16 -0
  272. package/dist/src/funnel/precedence.js +85 -0
  273. package/dist/src/funnel/promo.d.ts +41 -0
  274. package/dist/src/funnel/promo.js +144 -0
  275. package/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
  276. package/dist/src/funnel/rate-limit-notifier.js +102 -0
  277. package/dist/src/funnel/rotation.d.ts +19 -0
  278. package/dist/src/funnel/rotation.js +70 -0
  279. package/dist/src/funnel/state.d.ts +13 -0
  280. package/dist/src/funnel/state.js +52 -0
  281. package/dist/src/funnel/toggle-cooldown.d.ts +17 -0
  282. package/dist/src/funnel/toggle-cooldown.js +32 -0
  283. package/dist/src/funnel/types.d.ts +98 -0
  284. package/dist/src/funnel/types.js +26 -0
  285. package/dist/src/index.d.ts +81 -0
  286. package/dist/src/index.js +609 -0
  287. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  288. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  289. package/dist/src/init/claudemd-generator.d.ts +16 -0
  290. package/dist/src/init/claudemd-generator.js +368 -0
  291. package/dist/src/init/executor.d.ts +41 -0
  292. package/dist/src/init/executor.js +2142 -0
  293. package/dist/src/init/helper-refresh.d.ts +79 -0
  294. package/dist/src/init/helper-refresh.js +347 -0
  295. package/dist/src/init/helper-signing.d.ts +37 -0
  296. package/dist/src/init/helper-signing.js +67 -0
  297. package/dist/src/init/helpers-generator.d.ts +87 -0
  298. package/dist/src/init/helpers-generator.js +1456 -0
  299. package/dist/src/init/index.d.ts +13 -0
  300. package/dist/src/init/index.js +15 -0
  301. package/dist/src/init/mcp-generator.d.ts +26 -0
  302. package/dist/src/init/mcp-generator.js +126 -0
  303. package/dist/src/init/memory-package-resolver.d.ts +53 -0
  304. package/dist/src/init/memory-package-resolver.js +118 -0
  305. package/dist/src/init/settings-generator.d.ts +14 -0
  306. package/dist/src/init/settings-generator.js +462 -0
  307. package/dist/src/init/statusline-generator.d.ts +28 -0
  308. package/dist/src/init/statusline-generator.js +177 -0
  309. package/dist/src/init/types.d.ts +331 -0
  310. package/dist/src/init/types.js +276 -0
  311. package/dist/src/log-filters.d.ts +46 -0
  312. package/dist/src/log-filters.js +107 -0
  313. package/dist/src/mcp-client.d.ts +92 -0
  314. package/dist/src/mcp-client.js +397 -0
  315. package/dist/src/mcp-server.d.ts +163 -0
  316. package/dist/src/mcp-server.js +751 -0
  317. package/dist/src/mcp-tools/agent-execute-core.d.ts +115 -0
  318. package/dist/src/mcp-tools/agent-execute-core.js +587 -0
  319. package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  320. package/dist/src/mcp-tools/agent-tools.js +837 -0
  321. package/dist/src/mcp-tools/agentbbs-tools.d.ts +28 -0
  322. package/dist/src/mcp-tools/agentbbs-tools.js +394 -0
  323. package/dist/src/mcp-tools/agentdb-tools.d.ts +35 -0
  324. package/dist/src/mcp-tools/agentdb-tools.js +1473 -0
  325. package/dist/src/mcp-tools/agenticow-loader.d.ts +59 -0
  326. package/dist/src/mcp-tools/agenticow-loader.js +105 -0
  327. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +24 -0
  328. package/dist/src/mcp-tools/agenticow-speculate-tools.js +209 -0
  329. package/dist/src/mcp-tools/agenticow-tools.d.ts +36 -0
  330. package/dist/src/mcp-tools/agenticow-tools.js +360 -0
  331. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  332. package/dist/src/mcp-tools/analyze-tools.js +346 -0
  333. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  334. package/dist/src/mcp-tools/auto-install.js +131 -0
  335. package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  336. package/dist/src/mcp-tools/autopilot-tools.js +231 -0
  337. package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
  338. package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
  339. package/dist/src/mcp-tools/browser-session-tools.d.ts +27 -0
  340. package/dist/src/mcp-tools/browser-session-tools.js +398 -0
  341. package/dist/src/mcp-tools/browser-tools.d.ts +21 -0
  342. package/dist/src/mcp-tools/browser-tools.js +760 -0
  343. package/dist/src/mcp-tools/business-pod-tools.d.ts +20 -0
  344. package/dist/src/mcp-tools/business-pod-tools.js +169 -0
  345. package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  346. package/dist/src/mcp-tools/claims-tools.js +863 -0
  347. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  348. package/dist/src/mcp-tools/config-tools.js +411 -0
  349. package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  350. package/dist/src/mcp-tools/coordination-tools.js +729 -0
  351. package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  352. package/dist/src/mcp-tools/daa-tools.js +534 -0
  353. package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  354. package/dist/src/mcp-tools/embeddings-tools.js +904 -0
  355. package/dist/src/mcp-tools/github-tools.d.ts +9 -0
  356. package/dist/src/mcp-tools/github-tools.js +659 -0
  357. package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  358. package/dist/src/mcp-tools/guidance-tools.js +639 -0
  359. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  360. package/dist/src/mcp-tools/hive-mind-tools.js +953 -0
  361. package/dist/src/mcp-tools/hooks-tools.d.ts +65 -0
  362. package/dist/src/mcp-tools/hooks-tools.js +4836 -0
  363. package/dist/src/mcp-tools/http-fetch-tools.d.ts +55 -0
  364. package/dist/src/mcp-tools/http-fetch-tools.js +329 -0
  365. package/dist/src/mcp-tools/index.d.ts +34 -0
  366. package/dist/src/mcp-tools/index.js +40 -0
  367. package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
  368. package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
  369. package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  370. package/dist/src/mcp-tools/memory-tools.js +1330 -0
  371. package/dist/src/mcp-tools/metaharness-tools.d.ts +51 -0
  372. package/dist/src/mcp-tools/metaharness-tools.js +684 -0
  373. package/dist/src/mcp-tools/neural-tools.d.ts +54 -0
  374. package/dist/src/mcp-tools/neural-tools.js +1168 -0
  375. package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  376. package/dist/src/mcp-tools/performance-tools.js +675 -0
  377. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  378. package/dist/src/mcp-tools/progress-tools.js +348 -0
  379. package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  380. package/dist/src/mcp-tools/request-tracker.js +27 -0
  381. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  382. package/dist/src/mcp-tools/ruvllm-tools.js +355 -0
  383. package/dist/src/mcp-tools/security-tools.d.ts +18 -0
  384. package/dist/src/mcp-tools/security-tools.js +556 -0
  385. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  386. package/dist/src/mcp-tools/session-tools.js +517 -0
  387. package/dist/src/mcp-tools/swarm-tools.d.ts +37 -0
  388. package/dist/src/mcp-tools/swarm-tools.js +390 -0
  389. package/dist/src/mcp-tools/system-tools.d.ts +13 -0
  390. package/dist/src/mcp-tools/system-tools.js +688 -0
  391. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  392. package/dist/src/mcp-tools/task-tools.js +487 -0
  393. package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  394. package/dist/src/mcp-tools/terminal-tools.js +306 -0
  395. package/dist/src/mcp-tools/testgen-tools.d.ts +26 -0
  396. package/dist/src/mcp-tools/testgen-tools.js +168 -0
  397. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +31 -0
  398. package/dist/src/mcp-tools/tool-loop-guardrail.js +71 -0
  399. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  400. package/dist/src/mcp-tools/transfer-tools.js +447 -0
  401. package/dist/src/mcp-tools/types.d.ts +8 -0
  402. package/dist/src/mcp-tools/types.js +8 -0
  403. package/dist/src/mcp-tools/validate-input.d.ts +9 -0
  404. package/dist/src/mcp-tools/validate-input.js +9 -0
  405. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +13 -0
  406. package/dist/src/mcp-tools/wasm-agent-tools.js +840 -0
  407. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  408. package/dist/src/mcp-tools/workflow-tools.js +884 -0
  409. package/dist/src/memory/bge-embedder.d.ts +25 -0
  410. package/dist/src/memory/bge-embedder.js +121 -0
  411. package/dist/src/memory/cross-encoder-rerank.d.ts +33 -0
  412. package/dist/src/memory/cross-encoder-rerank.js +123 -0
  413. package/dist/src/memory/embedding-policy.d.ts +21 -0
  414. package/dist/src/memory/embedding-policy.js +30 -0
  415. package/dist/src/memory/embedding-quantization.d.ts +62 -0
  416. package/dist/src/memory/embedding-quantization.js +156 -0
  417. package/dist/src/memory/ewc-consolidation.d.ts +305 -0
  418. package/dist/src/memory/ewc-consolidation.js +611 -0
  419. package/dist/src/memory/graph-edge-writer.d.ts +95 -0
  420. package/dist/src/memory/graph-edge-writer.js +217 -0
  421. package/dist/src/memory/hybrid-retrieval.d.ts +77 -0
  422. package/dist/src/memory/hybrid-retrieval.js +192 -0
  423. package/dist/src/memory/intelligence.d.ts +405 -0
  424. package/dist/src/memory/intelligence.js +1316 -0
  425. package/dist/src/memory/lucene-bm25.d.ts +19 -0
  426. package/dist/src/memory/lucene-bm25.js +308 -0
  427. package/dist/src/memory/memory-bridge.d.ts +537 -0
  428. package/dist/src/memory/memory-bridge.js +2460 -0
  429. package/dist/src/memory/memory-initializer.d.ts +556 -0
  430. package/dist/src/memory/memory-initializer.js +3021 -0
  431. package/dist/src/memory/neural-package-bridge.d.ts +48 -0
  432. package/dist/src/memory/neural-package-bridge.js +87 -0
  433. package/dist/src/memory/rabitq-index.d.ts +60 -0
  434. package/dist/src/memory/rabitq-index.js +242 -0
  435. package/dist/src/memory/sona-optimizer.d.ts +267 -0
  436. package/dist/src/memory/sona-optimizer.js +779 -0
  437. package/dist/src/memory/structured-distill.d.ts +48 -0
  438. package/dist/src/memory/structured-distill.js +125 -0
  439. package/dist/src/output.d.ts +9 -0
  440. package/dist/src/output.js +9 -0
  441. package/dist/src/parser.d.ts +89 -0
  442. package/dist/src/parser.js +516 -0
  443. package/dist/src/plugins/manager.d.ts +133 -0
  444. package/dist/src/plugins/manager.js +415 -0
  445. package/dist/src/plugins/store/discovery.d.ts +99 -0
  446. package/dist/src/plugins/store/discovery.js +1224 -0
  447. package/dist/src/plugins/store/index.d.ts +76 -0
  448. package/dist/src/plugins/store/index.js +141 -0
  449. package/dist/src/plugins/store/search.d.ts +46 -0
  450. package/dist/src/plugins/store/search.js +230 -0
  451. package/dist/src/plugins/store/types.d.ts +279 -0
  452. package/dist/src/plugins/store/types.js +7 -0
  453. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  454. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  455. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  456. package/dist/src/plugins/tests/standalone-test.js +188 -0
  457. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  458. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  459. package/dist/src/production/circuit-breaker.d.ts +101 -0
  460. package/dist/src/production/circuit-breaker.js +241 -0
  461. package/dist/src/production/error-handler.d.ts +92 -0
  462. package/dist/src/production/error-handler.js +299 -0
  463. package/dist/src/production/index.d.ts +23 -0
  464. package/dist/src/production/index.js +18 -0
  465. package/dist/src/production/monitoring.d.ts +161 -0
  466. package/dist/src/production/monitoring.js +356 -0
  467. package/dist/src/production/rate-limiter.d.ts +80 -0
  468. package/dist/src/production/rate-limiter.js +201 -0
  469. package/dist/src/production/retry.d.ts +48 -0
  470. package/dist/src/production/retry.js +179 -0
  471. package/dist/src/prompt.d.ts +44 -0
  472. package/dist/src/prompt.js +501 -0
  473. package/dist/src/proxy/install.d.ts +29 -0
  474. package/dist/src/proxy/install.js +135 -0
  475. package/dist/src/proxy/lifecycle.d.ts +61 -0
  476. package/dist/src/proxy/lifecycle.js +249 -0
  477. package/dist/src/proxy/paths.d.ts +34 -0
  478. package/dist/src/proxy/paths.js +70 -0
  479. package/dist/src/proxy/release.d.ts +47 -0
  480. package/dist/src/proxy/release.js +138 -0
  481. package/dist/src/proxy/token-bridge.d.ts +5 -0
  482. package/dist/src/proxy/token-bridge.js +61 -0
  483. package/dist/src/proxy/verify.d.ts +44 -0
  484. package/dist/src/proxy/verify.js +68 -0
  485. package/dist/src/runtime/headless.d.ts +60 -0
  486. package/dist/src/runtime/headless.js +284 -0
  487. package/dist/src/runtime/parent-death-watchdog.d.ts +42 -0
  488. package/dist/src/runtime/parent-death-watchdog.js +70 -0
  489. package/dist/src/ruvector/agent-wasm.d.ts +228 -0
  490. package/dist/src/ruvector/agent-wasm.js +463 -0
  491. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  492. package/dist/src/ruvector/ast-analyzer.js +277 -0
  493. package/dist/src/ruvector/codemods/engine.d.ts +45 -0
  494. package/dist/src/ruvector/codemods/engine.js +291 -0
  495. package/dist/src/ruvector/codemods/scope-analysis.d.ts +29 -0
  496. package/dist/src/ruvector/codemods/scope-analysis.js +162 -0
  497. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  498. package/dist/src/ruvector/coverage-router.js +531 -0
  499. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  500. package/dist/src/ruvector/coverage-tools.js +157 -0
  501. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  502. package/dist/src/ruvector/diff-classifier.js +699 -0
  503. package/dist/src/ruvector/diskann-backend.d.ts +78 -0
  504. package/dist/src/ruvector/diskann-backend.js +310 -0
  505. package/dist/src/ruvector/enhanced-model-router.d.ts +172 -0
  506. package/dist/src/ruvector/enhanced-model-router.js +577 -0
  507. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  508. package/dist/src/ruvector/graph-analyzer.js +929 -0
  509. package/dist/src/ruvector/graph-backend.d.ts +79 -0
  510. package/dist/src/ruvector/graph-backend.js +220 -0
  511. package/dist/src/ruvector/index.d.ts +38 -0
  512. package/dist/src/ruvector/index.js +86 -0
  513. package/dist/src/ruvector/lora-adapter.d.ts +292 -0
  514. package/dist/src/ruvector/lora-adapter.js +710 -0
  515. package/dist/src/ruvector/model-prices.d.ts +50 -0
  516. package/dist/src/ruvector/model-prices.js +72 -0
  517. package/dist/src/ruvector/model-router.d.ts +408 -0
  518. package/dist/src/ruvector/model-router.js +1162 -0
  519. package/dist/src/ruvector/neural-router.d.ts +182 -0
  520. package/dist/src/ruvector/neural-router.js +825 -0
  521. package/dist/src/ruvector/output-verifier.d.ts +83 -0
  522. package/dist/src/ruvector/output-verifier.js +277 -0
  523. package/dist/src/ruvector/q-learning-router.d.ts +227 -0
  524. package/dist/src/ruvector/q-learning-router.js +721 -0
  525. package/dist/src/ruvector/router-calibrator.d.ts +65 -0
  526. package/dist/src/ruvector/router-calibrator.js +120 -0
  527. package/dist/src/ruvector/router-parallel-recorder.d.ts +127 -0
  528. package/dist/src/ruvector/router-parallel-recorder.js +183 -0
  529. package/dist/src/ruvector/router-trajectory.d.ts +194 -0
  530. package/dist/src/ruvector/router-trajectory.js +281 -0
  531. package/dist/src/ruvector/run-transcript-recorder.d.ts +154 -0
  532. package/dist/src/ruvector/run-transcript-recorder.js +209 -0
  533. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  534. package/dist/src/ruvector/ruvllm-wasm.js +379 -0
  535. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  536. package/dist/src/ruvector/semantic-router.js +178 -0
  537. package/dist/src/ruvector/task-embedder.d.ts +56 -0
  538. package/dist/src/ruvector/task-embedder.js +237 -0
  539. package/dist/src/ruvector/trajectory-tree.d.ts +113 -0
  540. package/dist/src/ruvector/trajectory-tree.js +237 -0
  541. package/dist/src/ruvector/vector-db.d.ts +73 -0
  542. package/dist/src/ruvector/vector-db.js +301 -0
  543. package/dist/src/ruvector/wasm-embedder.d.ts +13 -0
  544. package/dist/src/ruvector/wasm-embedder.js +143 -0
  545. package/dist/src/security/builtin-aidefence.d.ts +34 -0
  546. package/dist/src/security/builtin-aidefence.js +86 -0
  547. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  548. package/dist/src/services/agentic-flow-bridge.js +95 -0
  549. package/dist/src/services/ai-job-dedup.d.ts +61 -0
  550. package/dist/src/services/ai-job-dedup.js +136 -0
  551. package/dist/src/services/checkpoint-gate.d.ts +140 -0
  552. package/dist/src/services/checkpoint-gate.js +223 -0
  553. package/dist/src/services/claim-service.d.ts +204 -0
  554. package/dist/src/services/claim-service.js +818 -0
  555. package/dist/src/services/config-file-manager.d.ts +37 -0
  556. package/dist/src/services/config-file-manager.js +224 -0
  557. package/dist/src/services/container-worker-pool.d.ts +204 -0
  558. package/dist/src/services/container-worker-pool.js +589 -0
  559. package/dist/src/services/daemon-autostart.d.ts +17 -0
  560. package/dist/src/services/daemon-autostart.js +102 -0
  561. package/dist/src/services/distill-oracle.d.ts +190 -0
  562. package/dist/src/services/distill-oracle.js +349 -0
  563. package/dist/src/services/distill-tuning.d.ts +111 -0
  564. package/dist/src/services/distill-tuning.js +510 -0
  565. package/dist/src/services/evolve-proof.d.ts +253 -0
  566. package/dist/src/services/evolve-proof.js +343 -0
  567. package/dist/src/services/fable-harness.d.ts +208 -0
  568. package/dist/src/services/fable-harness.js +388 -0
  569. package/dist/src/services/git-workspace-identity.d.ts +42 -0
  570. package/dist/src/services/git-workspace-identity.js +99 -0
  571. package/dist/src/services/global-ai-budget.d.ts +135 -0
  572. package/dist/src/services/global-ai-budget.js +415 -0
  573. package/dist/src/services/harness-benchmark.d.ts +68 -0
  574. package/dist/src/services/harness-benchmark.js +94 -0
  575. package/dist/src/services/harness-canary.d.ts +60 -0
  576. package/dist/src/services/harness-canary.js +69 -0
  577. package/dist/src/services/harness-corpus-harvester.d.ts +51 -0
  578. package/dist/src/services/harness-corpus-harvester.js +74 -0
  579. package/dist/src/services/harness-flywheel-generations.d.ts +115 -0
  580. package/dist/src/services/harness-flywheel-generations.js +360 -0
  581. package/dist/src/services/harness-flywheel-runtime.d.ts +25 -0
  582. package/dist/src/services/harness-flywheel-runtime.js +92 -0
  583. package/dist/src/services/harness-flywheel.d.ts +48 -0
  584. package/dist/src/services/harness-flywheel.js +207 -0
  585. package/dist/src/services/harness-frozen-eval.d.ts +22 -0
  586. package/dist/src/services/harness-frozen-eval.js +66 -0
  587. package/dist/src/services/harness-hosts.d.ts +40 -0
  588. package/dist/src/services/harness-hosts.js +88 -0
  589. package/dist/src/services/harness-improvement-ledger.d.ts +63 -0
  590. package/dist/src/services/harness-improvement-ledger.js +101 -0
  591. package/dist/src/services/harness-loop.d.ts +53 -0
  592. package/dist/src/services/harness-loop.js +85 -0
  593. package/dist/src/services/harness-qualification.d.ts +66 -0
  594. package/dist/src/services/harness-qualification.js +143 -0
  595. package/dist/src/services/harness-replay.d.ts +37 -0
  596. package/dist/src/services/harness-replay.js +92 -0
  597. package/dist/src/services/harness-verify.d.ts +33 -0
  598. package/dist/src/services/harness-verify.js +26 -0
  599. package/dist/src/services/harness-worker.d.ts +23 -0
  600. package/dist/src/services/harness-worker.js +66 -0
  601. package/dist/src/services/headless-worker-executor.d.ts +358 -0
  602. package/dist/src/services/headless-worker-executor.js +1269 -0
  603. package/dist/src/services/index.d.ts +13 -0
  604. package/dist/src/services/index.js +11 -0
  605. package/dist/src/services/memory-backup.d.ts +53 -0
  606. package/dist/src/services/memory-backup.js +198 -0
  607. package/dist/src/services/memory-distillation.d.ts +41 -0
  608. package/dist/src/services/memory-distillation.js +277 -0
  609. package/dist/src/services/native-training.d.ts +68 -0
  610. package/dist/src/services/native-training.js +141 -0
  611. package/dist/src/services/registry-api.d.ts +58 -0
  612. package/dist/src/services/registry-api.js +146 -0
  613. package/dist/src/services/repo-supervisor.d.ts +70 -0
  614. package/dist/src/services/repo-supervisor.js +228 -0
  615. package/dist/src/services/ruvector-training.d.ts +222 -0
  616. package/dist/src/services/ruvector-training.js +693 -0
  617. package/dist/src/services/swarm-memory-branches.d.ts +135 -0
  618. package/dist/src/services/swarm-memory-branches.js +213 -0
  619. package/dist/src/services/weight-eft.d.ts +305 -0
  620. package/dist/src/services/weight-eft.js +296 -0
  621. package/dist/src/services/worker-daemon.d.ts +439 -0
  622. package/dist/src/services/worker-daemon.js +1865 -0
  623. package/dist/src/services/worker-queue.d.ts +194 -0
  624. package/dist/src/services/worker-queue.js +513 -0
  625. package/dist/src/services/workspace-lease.d.ts +55 -0
  626. package/dist/src/services/workspace-lease.js +191 -0
  627. package/dist/src/suggest.d.ts +53 -0
  628. package/dist/src/suggest.js +200 -0
  629. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  630. package/dist/src/transfer/anonymization/index.js +175 -0
  631. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  632. package/dist/src/transfer/deploy-seraphine.js +205 -0
  633. package/dist/src/transfer/export.d.ts +25 -0
  634. package/dist/src/transfer/export.js +113 -0
  635. package/dist/src/transfer/index.d.ts +12 -0
  636. package/dist/src/transfer/index.js +31 -0
  637. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  638. package/dist/src/transfer/ipfs/client.js +307 -0
  639. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  640. package/dist/src/transfer/ipfs/upload.js +413 -0
  641. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  642. package/dist/src/transfer/models/seraphine.js +373 -0
  643. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  644. package/dist/src/transfer/serialization/cfp.js +183 -0
  645. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  646. package/dist/src/transfer/storage/gcs.js +272 -0
  647. package/dist/src/transfer/storage/index.d.ts +6 -0
  648. package/dist/src/transfer/storage/index.js +6 -0
  649. package/dist/src/transfer/store/discovery.d.ts +84 -0
  650. package/dist/src/transfer/store/discovery.js +382 -0
  651. package/dist/src/transfer/store/download.d.ts +70 -0
  652. package/dist/src/transfer/store/download.js +334 -0
  653. package/dist/src/transfer/store/index.d.ts +84 -0
  654. package/dist/src/transfer/store/index.js +153 -0
  655. package/dist/src/transfer/store/publish.d.ts +76 -0
  656. package/dist/src/transfer/store/publish.js +294 -0
  657. package/dist/src/transfer/store/registry.d.ts +58 -0
  658. package/dist/src/transfer/store/registry.js +285 -0
  659. package/dist/src/transfer/store/search.d.ts +54 -0
  660. package/dist/src/transfer/store/search.js +232 -0
  661. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  662. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  663. package/dist/src/transfer/store/types.d.ts +193 -0
  664. package/dist/src/transfer/store/types.js +6 -0
  665. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  666. package/dist/src/transfer/test-seraphine.js +105 -0
  667. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  668. package/dist/src/transfer/tests/test-store.js +214 -0
  669. package/dist/src/transfer/types.d.ts +245 -0
  670. package/dist/src/transfer/types.js +6 -0
  671. package/dist/src/types.d.ts +13 -0
  672. package/dist/src/types.js +13 -0
  673. package/dist/src/update/checker.d.ts +34 -0
  674. package/dist/src/update/checker.js +191 -0
  675. package/dist/src/update/executor.d.ts +33 -0
  676. package/dist/src/update/executor.js +217 -0
  677. package/dist/src/update/index.d.ts +33 -0
  678. package/dist/src/update/index.js +64 -0
  679. package/dist/src/update/rate-limiter.d.ts +20 -0
  680. package/dist/src/update/rate-limiter.js +96 -0
  681. package/dist/src/update/validator.d.ts +17 -0
  682. package/dist/src/update/validator.js +123 -0
  683. package/package.json +1 -1
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Pod template schema validator (ADR-164 §3.3 + ADR-164.1 §3.2).
3
+ *
4
+ * Defines the `PodTemplate` type that every business-pod JSON file under
5
+ * `plugins/ruflo-business-pods/templates/` MUST conform to, and a hand-rolled
6
+ * validator that throws structured errors on invalid templates. No external
7
+ * deps (no AJV, no zod) — the schema is small enough to validate by hand and
8
+ * doing so keeps the cli's optional-dep surface unchanged.
9
+ *
10
+ * @module @claude-flow/cli/business-pods/pod-schema
11
+ */
12
+ /**
13
+ * Structured validation error — carries the JSON pointer that caused it so
14
+ * callers can render a precise message.
15
+ */
16
+ export class PodTemplateValidationError extends Error {
17
+ path;
18
+ constructor(message, path) {
19
+ super(`pod-template at ${path}: ${message}`);
20
+ this.path = path;
21
+ this.name = 'PodTemplateValidationError';
22
+ }
23
+ }
24
+ const PII_POLICIES = ['soc2', 'gdpr', 'hipaa', 'permissive'];
25
+ function isObject(v) {
26
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
27
+ }
28
+ function requireString(parent, key, path) {
29
+ const v = parent[key];
30
+ if (typeof v !== 'string' || v.length === 0) {
31
+ throw new PodTemplateValidationError(`field "${key}" must be a non-empty string`, path);
32
+ }
33
+ return v;
34
+ }
35
+ function requireNumber(parent, key, path) {
36
+ const v = parent[key];
37
+ if (typeof v !== 'number' || !Number.isFinite(v)) {
38
+ throw new PodTemplateValidationError(`field "${key}" must be a finite number`, path);
39
+ }
40
+ return v;
41
+ }
42
+ function requireBoolean(parent, key, path) {
43
+ const v = parent[key];
44
+ if (typeof v !== 'boolean') {
45
+ throw new PodTemplateValidationError(`field "${key}" must be a boolean`, path);
46
+ }
47
+ return v;
48
+ }
49
+ function requireArray(parent, key, path, itemValidator) {
50
+ const v = parent[key];
51
+ if (!Array.isArray(v)) {
52
+ throw new PodTemplateValidationError(`field "${key}" must be an array`, path);
53
+ }
54
+ return v.map((item, idx) => itemValidator(item, `${path}/${key}[${idx}]`));
55
+ }
56
+ function validatePodAgent(item, path) {
57
+ if (!isObject(item))
58
+ throw new PodTemplateValidationError('agent must be an object', path);
59
+ return {
60
+ role: requireString(item, 'role', path),
61
+ agentType: requireString(item, 'agentType', path),
62
+ description: requireString(item, 'description', path),
63
+ preferLocal: requireBoolean(item, 'preferLocal', path),
64
+ };
65
+ }
66
+ function validatePodBench(item, path) {
67
+ if (!isObject(item))
68
+ throw new PodTemplateValidationError('bench must be an object', path);
69
+ const name = requireString(item, 'name', path);
70
+ const description = requireString(item, 'description', path);
71
+ const successCriteria = requireArray(item, 'successCriteria', path, (s, sp) => {
72
+ if (typeof s !== 'string' || s.length === 0) {
73
+ throw new PodTemplateValidationError('successCriteria entries must be non-empty strings', sp);
74
+ }
75
+ return s;
76
+ });
77
+ if (successCriteria.length === 0) {
78
+ throw new PodTemplateValidationError('bench.successCriteria must have ≥1 entry', path);
79
+ }
80
+ const scheduleHours = requireNumber(item, 'scheduleHours', path);
81
+ if (scheduleHours < 1) {
82
+ throw new PodTemplateValidationError('bench.scheduleHours must be ≥1', path);
83
+ }
84
+ return { name, description, successCriteria, scheduleHours };
85
+ }
86
+ function validateAuditReadView(item, path) {
87
+ if (!isObject(item)) {
88
+ throw new PodTemplateValidationError('auditReadView must be an object', path);
89
+ }
90
+ const includedEventTypes = requireArray(item, 'includedEventTypes', path, (s, sp) => {
91
+ if (typeof s !== 'string' || s.length === 0) {
92
+ throw new PodTemplateValidationError('includedEventTypes entries must be non-empty strings', sp);
93
+ }
94
+ return s;
95
+ });
96
+ const retentionDays = requireNumber(item, 'retentionDays', path);
97
+ if (retentionDays < 1) {
98
+ throw new PodTemplateValidationError('auditReadView.retentionDays must be ≥1', path);
99
+ }
100
+ return { includedEventTypes, retentionDays };
101
+ }
102
+ // POSIX cron — five or six space-separated fields. Permissive on field
103
+ // contents (digits, *, -, /, ,) — actual cron evaluation happens at schedule
104
+ // time. We only catch obviously malformed values here.
105
+ const CRON_RE = /^([\d*/,\-]+\s+){4,5}[\d*/,\-]+$/;
106
+ /**
107
+ * Validate `json` and return a typed `PodTemplate`. Throws
108
+ * `PodTemplateValidationError` with a JSON-pointer-style path on failure.
109
+ *
110
+ * Used by:
111
+ * - `business_pod_validate` MCP tool — returns the error verbatim
112
+ * - `pod-tick.mjs` — pre-flight check before any pod execution
113
+ * - any external schema-loader that wants typed templates
114
+ */
115
+ export function validatePodTemplate(json) {
116
+ if (!isObject(json)) {
117
+ throw new PodTemplateValidationError('pod-template must be a JSON object', '/');
118
+ }
119
+ const name = requireString(json, 'name', '/');
120
+ if (!/^[a-z][a-z0-9-]*$/.test(name)) {
121
+ throw new PodTemplateValidationError('name must be lowercase-kebab (e.g. "sales")', '/');
122
+ }
123
+ const displayName = requireString(json, 'displayName', '/');
124
+ const roomId = requireString(json, 'roomId', '/');
125
+ if (!/^[A-Za-z0-9_.\-:/@#]+$/.test(roomId)) {
126
+ throw new PodTemplateValidationError('roomId may only contain [A-Za-z0-9_.\\-:/@#]', '/');
127
+ }
128
+ const agents = requireArray(json, 'agents', '/', validatePodAgent);
129
+ if (agents.length === 0) {
130
+ throw new PodTemplateValidationError('agents must have ≥1 entry', '/');
131
+ }
132
+ const allowedMcpTools = requireArray(json, 'allowedMcpTools', '/', (t, tp) => {
133
+ if (typeof t !== 'string' || t.length === 0) {
134
+ throw new PodTemplateValidationError('allowedMcpTools entries must be non-empty strings', tp);
135
+ }
136
+ return t;
137
+ });
138
+ if (allowedMcpTools.length === 0) {
139
+ throw new PodTemplateValidationError('allowedMcpTools must have ≥1 entry', '/');
140
+ }
141
+ const bench = validatePodBench(json.bench, '/bench');
142
+ const piiPolicy = requireString(json, 'piiPolicy', '/');
143
+ if (!PII_POLICIES.includes(piiPolicy)) {
144
+ throw new PodTemplateValidationError(`piiPolicy must be one of: ${PII_POLICIES.join(', ')}`, '/');
145
+ }
146
+ const budgetUsdMonthly = requireNumber(json, 'budgetUsdMonthly', '/');
147
+ if (budgetUsdMonthly < 0) {
148
+ throw new PodTemplateValidationError('budgetUsdMonthly must be ≥0', '/');
149
+ }
150
+ const budgetUsdPerRun = requireNumber(json, 'budgetUsdPerRun', '/');
151
+ if (budgetUsdPerRun < 0) {
152
+ throw new PodTemplateValidationError('budgetUsdPerRun must be ≥0', '/');
153
+ }
154
+ if (budgetUsdMonthly > 0 && budgetUsdPerRun > budgetUsdMonthly) {
155
+ throw new PodTemplateValidationError('budgetUsdPerRun must not exceed budgetUsdMonthly', '/');
156
+ }
157
+ const preferLocalExecution = requireBoolean(json, 'preferLocalExecution', '/');
158
+ const cronSchedule = requireString(json, 'cronSchedule', '/');
159
+ if (!CRON_RE.test(cronSchedule)) {
160
+ throw new PodTemplateValidationError('cronSchedule must be a POSIX cron expression (5 or 6 fields)', '/');
161
+ }
162
+ const auditReadView = validateAuditReadView(json.auditReadView, '/auditReadView');
163
+ let reservationExpiryMs;
164
+ if (json.reservationExpiryMs !== undefined) {
165
+ const v = requireNumber(json, 'reservationExpiryMs', '/');
166
+ // ADR-164.1 §3.2 — bounded to [5_000, 300_000] ms.
167
+ if (v < 5_000 || v > 300_000) {
168
+ throw new PodTemplateValidationError('reservationExpiryMs must be within [5000, 300000] ms (ADR-164.1 §3.2)', '/');
169
+ }
170
+ reservationExpiryMs = v;
171
+ }
172
+ return {
173
+ name,
174
+ displayName,
175
+ roomId,
176
+ agents,
177
+ allowedMcpTools,
178
+ bench,
179
+ piiPolicy: piiPolicy,
180
+ budgetUsdMonthly,
181
+ budgetUsdPerRun,
182
+ preferLocalExecution,
183
+ cronSchedule,
184
+ auditReadView,
185
+ reservationExpiryMs,
186
+ };
187
+ }
188
+ /**
189
+ * Known ruflo agent types — kept in sync with src/commands/agent.ts AGENT_TYPES.
190
+ * The list is duplicated here intentionally so pod-tick.mjs can run without
191
+ * importing the entire commands module.
192
+ *
193
+ * If a new agent type is added to AGENT_TYPES, mirror it here.
194
+ */
195
+ export const KNOWN_AGENT_TYPES = [
196
+ 'coder',
197
+ 'researcher',
198
+ 'tester',
199
+ 'reviewer',
200
+ 'architect',
201
+ 'system-architect',
202
+ 'coordinator',
203
+ 'analyst',
204
+ 'optimizer',
205
+ 'security-architect',
206
+ 'security-auditor',
207
+ 'memory-specialist',
208
+ 'swarm-specialist',
209
+ 'performance-engineer',
210
+ 'core-architect',
211
+ 'test-architect',
212
+ 'planner',
213
+ 'task-orchestrator',
214
+ 'perf-analyzer',
215
+ 'backend-dev',
216
+ 'api-docs',
217
+ 'cicd-engineer',
218
+ 'code-analyzer',
219
+ 'database-specialist',
220
+ // ADR-164 Phase 3 — added for the marketing/hr pods (content drafting +
221
+ // onboarding-template generation). Mirror this addition in the JS copy
222
+ // inside plugins/ruflo-business-pods/scripts/pod-tick.mjs.
223
+ 'base-template-generator',
224
+ ];
225
+ //# sourceMappingURL=pod-schema.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `ruflo advisor` — Fable co-pilot advisor tip in the statusline insight
3
+ * ticker (ADR-316).
4
+ *
5
+ * Client-side only — unlike `proxy.ts`'s sponsored-downtime/power-saver/
6
+ * training-share domains, this feature has NO proxy-config.toml mirror,
7
+ * because it never talks to the meta-proxy Rust binary. It calls
8
+ * `claude -p` directly via services/fable-harness.ts (ADR-172's existing
9
+ * cost-disciplined harness) and caches the result for the insight ticker
10
+ * (funnel/insights.ts) to read synchronously.
11
+ */
12
+ import type { Command } from '../types.js';
13
+ export declare const advisorCommand: Command;
14
+ export default advisorCommand;
15
+ //# sourceMappingURL=advisor.d.ts.map
@@ -0,0 +1,94 @@
1
+ /**
2
+ * `ruflo advisor` — Fable co-pilot advisor tip in the statusline insight
3
+ * ticker (ADR-316).
4
+ *
5
+ * Client-side only — unlike `proxy.ts`'s sponsored-downtime/power-saver/
6
+ * training-share domains, this feature has NO proxy-config.toml mirror,
7
+ * because it never talks to the meta-proxy Rust binary. It calls
8
+ * `claude -p` directly via services/fable-harness.ts (ADR-172's existing
9
+ * cost-disciplined harness) and caches the result for the insight ticker
10
+ * (funnel/insights.ts) to read synchronously.
11
+ */
12
+ import { output } from '../output.js';
13
+ import { hasConsent, recordConsent, revokeConsent } from '../funnel/consent.js';
14
+ import { recordFunnelEvent } from '../funnel/events.js';
15
+ import { getInstalledCliVersion } from '../init/helper-refresh.js';
16
+ import { readAdvisorTip, ADVISOR_DEFAULT_BUDGET_USD } from '../funnel/advisor-tip.js';
17
+ const ADVISOR_DISCLOSURE = [
18
+ 'Enabling the co-pilot advisor tip.',
19
+ '',
20
+ 'At most once per day, ruflo will send a small STRUCTURAL snapshot of your',
21
+ 'session — security scan status, swarm/agent state, git uncommitted-file',
22
+ 'COUNT — never raw prompts, file contents, or commands — to a headless',
23
+ 'Fable model (via `claude -p`) and cache one short, actionable tip for the',
24
+ 'statusline insight ticker.',
25
+ '',
26
+ `This is a real, metered API call (~$${ADVISOR_DEFAULT_BUDGET_USD.toFixed(2)} budget cap per`,
27
+ 'refresh, at most once/day). Disable anytime: ruflo advisor disable',
28
+ ].join('\n');
29
+ const enableSub = {
30
+ name: 'enable',
31
+ description: 'Opt into the co-pilot advisor tip (ADR-316)',
32
+ options: [
33
+ { name: 'yes', description: 'Skip the confirmation prompt', type: 'boolean', default: false },
34
+ ],
35
+ action: async (ctx) => {
36
+ if (hasConsent('advisor-tips')) {
37
+ output.writeln('Advisor tip is already enabled.');
38
+ return { success: true, data: { alreadyEnabled: true } };
39
+ }
40
+ output.writeln(ADVISOR_DISCLOSURE);
41
+ output.writeln('');
42
+ if (!ctx.flags.yes) {
43
+ output.writeln('Re-run with --yes to confirm: ruflo advisor enable --yes');
44
+ return { success: true, data: { confirmed: false } };
45
+ }
46
+ recordConsent('advisor-tips', true, 'advisor-enable');
47
+ recordFunnelEvent('advisor_tip_enabled', 'statusline', getInstalledCliVersion());
48
+ output.printSuccess('Advisor tip enabled.');
49
+ output.writeln('It refreshes at most once/day, in the background, on session-restore.');
50
+ output.writeln('Disable anytime: ruflo advisor disable');
51
+ return { success: true, data: { confirmed: true } };
52
+ },
53
+ };
54
+ const disableSub = {
55
+ name: 'disable',
56
+ description: 'Revoke advisor-tip consent and stop generating new tips',
57
+ action: async () => {
58
+ revokeConsent('advisor-tips', 'advisor-disable');
59
+ recordFunnelEvent('advisor_tip_disabled', 'statusline', getInstalledCliVersion());
60
+ output.printSuccess('Advisor tip disabled.');
61
+ return { success: true };
62
+ },
63
+ };
64
+ const statusSub = {
65
+ name: 'status',
66
+ description: 'Show advisor-tip consent state and the current cached tip',
67
+ action: async () => {
68
+ const consented = hasConsent('advisor-tips');
69
+ output.writeln(`Advisor tip consent: ${consented ? 'granted' : 'not granted'}`);
70
+ const tip = consented ? readAdvisorTip() : null;
71
+ if (tip) {
72
+ output.writeln(`Current tip: ${tip.headline}`);
73
+ if (tip.detail)
74
+ output.writeln(` ${tip.detail}`);
75
+ }
76
+ else if (consented) {
77
+ output.writeln('No cached tip yet (refreshes at most once/day on session-restore).');
78
+ }
79
+ return { success: true, data: { consented, tip } };
80
+ },
81
+ };
82
+ export const advisorCommand = {
83
+ name: 'advisor',
84
+ description: 'Fable co-pilot advisor tip in the statusline insight ticker (ADR-316)',
85
+ subcommands: [enableSub, disableSub, statusSub],
86
+ examples: [
87
+ { command: 'ruflo advisor enable --yes', description: 'Opt into the co-pilot advisor tip' },
88
+ { command: 'ruflo advisor status', description: 'Show consent state + current cached tip' },
89
+ { command: 'ruflo advisor disable', description: 'Revoke consent and stop generating tips' },
90
+ ],
91
+ action: statusSub.action,
92
+ };
93
+ export default advisorCommand;
94
+ //# sourceMappingURL=advisor.js.map
@@ -0,0 +1,14 @@
1
+ /**
2
+ * WASM Agent CLI Subcommands
3
+ *
4
+ * Exposes @ruvector/rvagent-wasm operations via the `agent` CLI command.
5
+ * Wraps functions from ruvector/agent-wasm.ts for CLI usage.
6
+ */
7
+ import type { Command } from '../types.js';
8
+ export declare const wasmStatusCommand: Command;
9
+ export declare const wasmCreateCommand: Command;
10
+ export declare const wasmPromptCommand: Command;
11
+ export declare const wasmGalleryCommand: Command;
12
+ /** All WASM subcommands for the agent command */
13
+ export declare const wasmSubcommands: Command[];
14
+ //# sourceMappingURL=agent-wasm.d.ts.map
@@ -0,0 +1,333 @@
1
+ /**
2
+ * WASM Agent CLI Subcommands
3
+ *
4
+ * Exposes @ruvector/rvagent-wasm operations via the `agent` CLI command.
5
+ * Wraps functions from ruvector/agent-wasm.ts for CLI usage.
6
+ */
7
+ import { output } from '../output.js';
8
+ const WASM_NOT_AVAILABLE_MSG = '@ruvector/rvagent-wasm is not installed.\n' +
9
+ 'Install it with: npm install @ruvector/rvagent-wasm';
10
+ async function loadWasm() {
11
+ const mod = await import('../ruvector/agent-wasm.js');
12
+ return mod;
13
+ }
14
+ // agent wasm-status
15
+ export const wasmStatusCommand = {
16
+ name: 'wasm-status',
17
+ description: 'Check rvagent-wasm availability, version, and capabilities',
18
+ options: [],
19
+ examples: [
20
+ { command: 'claude-flow agent wasm-status', description: 'Check WASM agent runtime status' },
21
+ ],
22
+ action: async (ctx) => {
23
+ try {
24
+ const wasm = await loadWasm();
25
+ const available = await wasm.isAgentWasmAvailable();
26
+ if (!available) {
27
+ output.writeln();
28
+ output.printWarning(WASM_NOT_AVAILABLE_MSG);
29
+ if (ctx.flags.format === 'json') {
30
+ output.printJson({ available: false });
31
+ }
32
+ return { success: true, data: { available: false } };
33
+ }
34
+ // Init to get full status
35
+ await wasm.initAgentWasm();
36
+ const agents = wasm.listWasmAgents();
37
+ let galleryCount = 0;
38
+ let categories = {};
39
+ try {
40
+ galleryCount = await wasm.getGalleryCount();
41
+ categories = await wasm.getGalleryCategories();
42
+ }
43
+ catch {
44
+ // Gallery may not be available in all builds
45
+ }
46
+ const statusData = {
47
+ available: true,
48
+ activeAgents: agents.length,
49
+ gallery: {
50
+ templates: galleryCount,
51
+ categories,
52
+ },
53
+ tools: ['read_file', 'write_file', 'edit_file', 'write_todos', 'list_files'],
54
+ features: ['sandboxed-execution', 'virtual-filesystem', 'gallery-templates', 'rvf-containers', 'mcp-bridge'],
55
+ };
56
+ if (ctx.flags.format === 'json') {
57
+ output.printJson(statusData);
58
+ return { success: true, data: statusData };
59
+ }
60
+ output.writeln();
61
+ output.writeln(output.bold('WASM Agent Runtime'));
62
+ output.writeln();
63
+ output.printTable({
64
+ columns: [
65
+ { key: 'property', header: 'Property', width: 20 },
66
+ { key: 'value', header: 'Value', width: 40 },
67
+ ],
68
+ data: [
69
+ { property: 'Available', value: output.success('yes') },
70
+ { property: 'Active Agents', value: String(agents.length) },
71
+ { property: 'Gallery Templates', value: String(galleryCount) },
72
+ { property: 'Sandbox Tools', value: statusData.tools.join(', ') },
73
+ { property: 'Features', value: statusData.features.join(', ') },
74
+ ],
75
+ });
76
+ if (Object.keys(categories).length > 0) {
77
+ output.writeln();
78
+ output.writeln(output.bold('Gallery Categories'));
79
+ output.printTable({
80
+ columns: [
81
+ { key: 'category', header: 'Category', width: 20 },
82
+ { key: 'count', header: 'Templates', width: 10, align: 'right' },
83
+ ],
84
+ data: Object.entries(categories).map(([category, count]) => ({ category, count })),
85
+ });
86
+ }
87
+ return { success: true, data: statusData };
88
+ }
89
+ catch (error) {
90
+ output.printError(`WASM status check failed: ${String(error)}`);
91
+ return { success: false, exitCode: 1 };
92
+ }
93
+ },
94
+ };
95
+ // agent wasm-create
96
+ export const wasmCreateCommand = {
97
+ name: 'wasm-create',
98
+ description: 'Create a WASM-sandboxed agent',
99
+ options: [
100
+ {
101
+ name: 'template',
102
+ short: 't',
103
+ description: 'Gallery template (coder, researcher, tester, reviewer, security, swarm)',
104
+ type: 'string',
105
+ },
106
+ {
107
+ name: 'model',
108
+ short: 'm',
109
+ description: 'Model identifier (default: anthropic:claude-sonnet-4-6)',
110
+ type: 'string',
111
+ },
112
+ {
113
+ name: 'instructions',
114
+ short: 'i',
115
+ description: 'System instructions for the agent',
116
+ type: 'string',
117
+ },
118
+ {
119
+ name: 'max-turns',
120
+ description: 'Maximum conversation turns (default: 50)',
121
+ type: 'number',
122
+ default: 50,
123
+ },
124
+ ],
125
+ examples: [
126
+ { command: 'claude-flow agent wasm-create', description: 'Create a default WASM agent' },
127
+ { command: 'claude-flow agent wasm-create -t coder', description: 'Create from gallery template' },
128
+ { command: 'claude-flow agent wasm-create -m "anthropic:claude-sonnet-4-6" -i "You are a security auditor"', description: 'Create with custom config' },
129
+ ],
130
+ action: async (ctx) => {
131
+ try {
132
+ const wasm = await loadWasm();
133
+ const available = await wasm.isAgentWasmAvailable();
134
+ if (!available) {
135
+ output.printError(WASM_NOT_AVAILABLE_MSG);
136
+ return { success: false, exitCode: 1 };
137
+ }
138
+ const template = ctx.flags.template;
139
+ let info;
140
+ if (template) {
141
+ output.printInfo(`Creating WASM agent from template: ${output.highlight(template)}`);
142
+ info = await wasm.createAgentFromTemplate(template);
143
+ }
144
+ else {
145
+ output.printInfo('Creating WASM agent...');
146
+ info = await wasm.createWasmAgent({
147
+ model: ctx.flags.model,
148
+ instructions: ctx.flags.instructions,
149
+ maxTurns: ctx.flags['max-turns'],
150
+ });
151
+ }
152
+ if (ctx.flags.format === 'json') {
153
+ output.printJson({ success: true, agent: info, source: template ? 'gallery' : 'custom' });
154
+ return { success: true, data: info };
155
+ }
156
+ output.writeln();
157
+ output.printTable({
158
+ columns: [
159
+ { key: 'property', header: 'Property', width: 15 },
160
+ { key: 'value', header: 'Value', width: 45 },
161
+ ],
162
+ data: [
163
+ { property: 'ID', value: info.id },
164
+ { property: 'State', value: info.state },
165
+ { property: 'Model', value: info.model },
166
+ { property: 'Turn Count', value: String(info.turnCount) },
167
+ { property: 'File Count', value: String(info.fileCount) },
168
+ { property: 'Created', value: info.createdAt },
169
+ ...(template ? [{ property: 'Template', value: template }] : []),
170
+ ],
171
+ });
172
+ output.writeln();
173
+ output.printSuccess(`WASM agent created: ${info.id}`);
174
+ return { success: true, data: info };
175
+ }
176
+ catch (error) {
177
+ output.printError(`Failed to create WASM agent: ${String(error)}`);
178
+ return { success: false, exitCode: 1 };
179
+ }
180
+ },
181
+ };
182
+ // agent wasm-prompt
183
+ export const wasmPromptCommand = {
184
+ name: 'wasm-prompt',
185
+ description: 'Send a prompt to a WASM agent',
186
+ options: [
187
+ {
188
+ name: 'agent-id',
189
+ short: 'a',
190
+ description: 'WASM agent ID (required)',
191
+ type: 'string',
192
+ },
193
+ {
194
+ name: 'input',
195
+ short: 'i',
196
+ description: 'Prompt text to send',
197
+ type: 'string',
198
+ },
199
+ ],
200
+ examples: [
201
+ { command: 'claude-flow agent wasm-prompt -a wasm-agent-1-abc -i "Write a hello world"', description: 'Send prompt to WASM agent' },
202
+ ],
203
+ action: async (ctx) => {
204
+ const agentId = ctx.flags['agent-id'] || ctx.args[0];
205
+ const promptInput = ctx.flags.input || ctx.args[1];
206
+ if (!agentId) {
207
+ output.printError('Agent ID is required. Use --agent-id or -a');
208
+ return { success: false, exitCode: 1 };
209
+ }
210
+ if (!promptInput) {
211
+ output.printError('Prompt input is required. Use --input or -i');
212
+ return { success: false, exitCode: 1 };
213
+ }
214
+ try {
215
+ const wasm = await loadWasm();
216
+ const available = await wasm.isAgentWasmAvailable();
217
+ if (!available) {
218
+ output.printError(WASM_NOT_AVAILABLE_MSG);
219
+ return { success: false, exitCode: 1 };
220
+ }
221
+ output.printInfo(`Sending prompt to ${output.highlight(agentId)}...`);
222
+ const result = await wasm.promptWasmAgent(agentId, promptInput);
223
+ if (ctx.flags.format === 'json') {
224
+ output.printJson({ agentId, response: result });
225
+ return { success: true, data: { agentId, response: result } };
226
+ }
227
+ output.writeln();
228
+ output.writeln(output.bold('Response'));
229
+ output.writeln();
230
+ output.writeln(result);
231
+ // Show updated agent info
232
+ const info = wasm.getWasmAgent(agentId);
233
+ if (info) {
234
+ output.writeln();
235
+ output.writeln(output.dim(`[turns: ${info.turnCount}, files: ${info.fileCount}, state: ${info.state}]`));
236
+ }
237
+ return { success: true, data: { agentId, response: result } };
238
+ }
239
+ catch (error) {
240
+ output.printError(`Prompt failed: ${String(error)}`);
241
+ return { success: false, exitCode: 1 };
242
+ }
243
+ },
244
+ };
245
+ // agent wasm-gallery
246
+ export const wasmGalleryCommand = {
247
+ name: 'wasm-gallery',
248
+ description: 'List available WASM agent gallery templates',
249
+ options: [
250
+ {
251
+ name: 'search',
252
+ short: 's',
253
+ description: 'Search templates by query',
254
+ type: 'string',
255
+ },
256
+ {
257
+ name: 'category',
258
+ short: 'c',
259
+ description: 'Filter by category',
260
+ type: 'string',
261
+ },
262
+ ],
263
+ examples: [
264
+ { command: 'claude-flow agent wasm-gallery', description: 'List all gallery templates' },
265
+ { command: 'claude-flow agent wasm-gallery -s coder', description: 'Search gallery templates' },
266
+ ],
267
+ action: async (ctx) => {
268
+ try {
269
+ const wasm = await loadWasm();
270
+ const available = await wasm.isAgentWasmAvailable();
271
+ if (!available) {
272
+ output.printError(WASM_NOT_AVAILABLE_MSG);
273
+ return { success: false, exitCode: 1 };
274
+ }
275
+ const searchQuery = ctx.flags.search;
276
+ const category = ctx.flags.category;
277
+ let templates;
278
+ if (searchQuery) {
279
+ output.printInfo(`Searching gallery for: ${output.highlight(searchQuery)}`);
280
+ templates = await wasm.searchGalleryTemplates(searchQuery);
281
+ }
282
+ else {
283
+ templates = await wasm.listGalleryTemplates();
284
+ }
285
+ // Filter by category if specified
286
+ if (category) {
287
+ templates = templates.filter((t) => t.category.toLowerCase() === category.toLowerCase());
288
+ }
289
+ if (ctx.flags.format === 'json') {
290
+ output.printJson({ templates, count: templates.length });
291
+ return { success: true, data: { templates, count: templates.length } };
292
+ }
293
+ output.writeln();
294
+ output.writeln(output.bold('WASM Agent Gallery'));
295
+ output.writeln();
296
+ if (templates.length === 0) {
297
+ output.printInfo('No templates found matching criteria');
298
+ return { success: true, data: { templates: [], count: 0 } };
299
+ }
300
+ output.printTable({
301
+ columns: [
302
+ { key: 'id', header: 'ID', width: 20 },
303
+ { key: 'name', header: 'Name', width: 18 },
304
+ { key: 'category', header: 'Category', width: 12 },
305
+ { key: 'description', header: 'Description', width: 35 },
306
+ { key: 'version', header: 'Version', width: 10 },
307
+ ],
308
+ data: templates.map((t) => ({
309
+ id: t.id,
310
+ name: t.name,
311
+ category: t.category,
312
+ description: t.description.length > 35 ? t.description.slice(0, 32) + '...' : t.description,
313
+ version: t.version,
314
+ })),
315
+ });
316
+ output.writeln();
317
+ output.printInfo(`${templates.length} template(s) found. Create with: agent wasm-create -t <id>`);
318
+ return { success: true, data: { templates, count: templates.length } };
319
+ }
320
+ catch (error) {
321
+ output.printError(`Gallery listing failed: ${String(error)}`);
322
+ return { success: false, exitCode: 1 };
323
+ }
324
+ },
325
+ };
326
+ /** All WASM subcommands for the agent command */
327
+ export const wasmSubcommands = [
328
+ wasmStatusCommand,
329
+ wasmCreateCommand,
330
+ wasmPromptCommand,
331
+ wasmGalleryCommand,
332
+ ];
333
+ //# sourceMappingURL=agent-wasm.js.map