@claude-flow/cli 3.32.2 → 3.32.3

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 (655) hide show
  1. package/.claude/helpers/helpers.manifest.json +3 -3
  2. package/.claude/helpers/statusline.cjs +38 -38
  3. package/catalog-manifest.json +2 -2
  4. package/package.json +2 -2
  5. package/plugins/ruflo-metaharness/scripts/smoke.sh +11 -11
  6. package/dist/src/agenticow/speculative-exploration.d.ts +0 -148
  7. package/dist/src/agenticow/speculative-exploration.js +0 -218
  8. package/dist/src/appliance/gguf-engine.d.ts +0 -91
  9. package/dist/src/appliance/gguf-engine.js +0 -425
  10. package/dist/src/appliance/ruvllm-bridge.d.ts +0 -102
  11. package/dist/src/appliance/ruvllm-bridge.js +0 -292
  12. package/dist/src/appliance/rvfa-builder.d.ts +0 -44
  13. package/dist/src/appliance/rvfa-builder.js +0 -329
  14. package/dist/src/appliance/rvfa-distribution.d.ts +0 -97
  15. package/dist/src/appliance/rvfa-distribution.js +0 -370
  16. package/dist/src/appliance/rvfa-format.d.ts +0 -111
  17. package/dist/src/appliance/rvfa-format.js +0 -393
  18. package/dist/src/appliance/rvfa-runner.d.ts +0 -69
  19. package/dist/src/appliance/rvfa-runner.js +0 -237
  20. package/dist/src/appliance/rvfa-signing.d.ts +0 -123
  21. package/dist/src/appliance/rvfa-signing.js +0 -347
  22. package/dist/src/autopilot-state.d.ts +0 -77
  23. package/dist/src/autopilot-state.js +0 -271
  24. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +0 -18
  25. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +0 -253
  26. package/dist/src/benchmarks/gaia-agent.d.ts +0 -198
  27. package/dist/src/benchmarks/gaia-agent.js +0 -651
  28. package/dist/src/benchmarks/gaia-causal-memory.d.ts +0 -133
  29. package/dist/src/benchmarks/gaia-causal-memory.js +0 -281
  30. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +0 -22
  31. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +0 -300
  32. package/dist/src/benchmarks/gaia-convergence.d.ts +0 -138
  33. package/dist/src/benchmarks/gaia-convergence.js +0 -260
  34. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +0 -19
  35. package/dist/src/benchmarks/gaia-convergence.smoke.js +0 -246
  36. package/dist/src/benchmarks/gaia-critic.d.ts +0 -123
  37. package/dist/src/benchmarks/gaia-critic.js +0 -312
  38. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +0 -21
  39. package/dist/src/benchmarks/gaia-critic.smoke.js +0 -327
  40. package/dist/src/benchmarks/gaia-decomposer.d.ts +0 -125
  41. package/dist/src/benchmarks/gaia-decomposer.js +0 -350
  42. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +0 -21
  43. package/dist/src/benchmarks/gaia-decomposer.smoke.js +0 -228
  44. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +0 -27
  45. package/dist/src/benchmarks/gaia-e2e-smoke.js +0 -136
  46. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +0 -45
  47. package/dist/src/benchmarks/gaia-extract.smoke.js +0 -242
  48. package/dist/src/benchmarks/gaia-hardness/features.d.ts +0 -46
  49. package/dist/src/benchmarks/gaia-hardness/features.js +0 -170
  50. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +0 -105
  51. package/dist/src/benchmarks/gaia-hardness/predictor.js +0 -260
  52. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +0 -20
  53. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +0 -235
  54. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +0 -51
  55. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +0 -179
  56. package/dist/src/benchmarks/gaia-judge.d.ts +0 -88
  57. package/dist/src/benchmarks/gaia-judge.js +0 -437
  58. package/dist/src/benchmarks/gaia-loader.d.ts +0 -87
  59. package/dist/src/benchmarks/gaia-loader.js +0 -326
  60. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +0 -35
  61. package/dist/src/benchmarks/gaia-tools/file_read.js +0 -403
  62. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +0 -126
  63. package/dist/src/benchmarks/gaia-tools/grounded_query.js +0 -225
  64. package/dist/src/benchmarks/gaia-tools/index.d.ts +0 -32
  65. package/dist/src/benchmarks/gaia-tools/index.js +0 -36
  66. package/dist/src/benchmarks/gaia-tools/types.d.ts +0 -62
  67. package/dist/src/benchmarks/gaia-tools/types.js +0 -12
  68. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +0 -30
  69. package/dist/src/benchmarks/gaia-tools/web_search.js +0 -210
  70. package/dist/src/benchmarks/gaia-voting.d.ts +0 -88
  71. package/dist/src/benchmarks/gaia-voting.js +0 -297
  72. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +0 -20
  73. package/dist/src/benchmarks/gaia-voting.smoke.js +0 -332
  74. package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  75. package/dist/src/benchmarks/pretrain/index.js +0 -404
  76. package/dist/src/business-pods/bbs-budget-tracker.d.ts +0 -139
  77. package/dist/src/business-pods/bbs-budget-tracker.js +0 -358
  78. package/dist/src/business-pods/domain-affinity-policy.d.ts +0 -47
  79. package/dist/src/business-pods/domain-affinity-policy.js +0 -65
  80. package/dist/src/business-pods/pod-schema.d.ts +0 -96
  81. package/dist/src/business-pods/pod-schema.js +0 -225
  82. package/dist/src/commands/advisor.d.ts +0 -15
  83. package/dist/src/commands/advisor.js +0 -94
  84. package/dist/src/commands/agent-wasm.d.ts +0 -14
  85. package/dist/src/commands/agent-wasm.js +0 -333
  86. package/dist/src/commands/agent.d.ts +0 -8
  87. package/dist/src/commands/agent.js +0 -927
  88. package/dist/src/commands/analyze.d.ts +0 -19
  89. package/dist/src/commands/analyze.js +0 -2047
  90. package/dist/src/commands/announcements.d.ts +0 -17
  91. package/dist/src/commands/announcements.js +0 -0
  92. package/dist/src/commands/appliance-advanced.d.ts +0 -9
  93. package/dist/src/commands/appliance-advanced.js +0 -215
  94. package/dist/src/commands/appliance.d.ts +0 -8
  95. package/dist/src/commands/appliance.js +0 -404
  96. package/dist/src/commands/autopilot.d.ts +0 -15
  97. package/dist/src/commands/autopilot.js +0 -407
  98. package/dist/src/commands/benchmark.d.ts +0 -10
  99. package/dist/src/commands/benchmark.js +0 -460
  100. package/dist/src/commands/claims.d.ts +0 -10
  101. package/dist/src/commands/claims.js +0 -620
  102. package/dist/src/commands/cleanup.d.ts +0 -13
  103. package/dist/src/commands/cleanup.js +0 -250
  104. package/dist/src/commands/completions.d.ts +0 -10
  105. package/dist/src/commands/completions.js +0 -539
  106. package/dist/src/commands/config.d.ts +0 -8
  107. package/dist/src/commands/config.js +0 -428
  108. package/dist/src/commands/daemon.d.ts +0 -59
  109. package/dist/src/commands/daemon.js +0 -1733
  110. package/dist/src/commands/deployment.d.ts +0 -10
  111. package/dist/src/commands/deployment.js +0 -672
  112. package/dist/src/commands/doctor.d.ts +0 -10
  113. package/dist/src/commands/doctor.js +0 -1695
  114. package/dist/src/commands/eject.d.ts +0 -33
  115. package/dist/src/commands/eject.js +0 -195
  116. package/dist/src/commands/embeddings.d.ts +0 -18
  117. package/dist/src/commands/embeddings.js +0 -1623
  118. package/dist/src/commands/funnel.d.ts +0 -18
  119. package/dist/src/commands/funnel.js +0 -302
  120. package/dist/src/commands/gaia-bench.d.ts +0 -40
  121. package/dist/src/commands/gaia-bench.js +0 -597
  122. package/dist/src/commands/guidance.d.ts +0 -8
  123. package/dist/src/commands/guidance.js +0 -556
  124. package/dist/src/commands/hive-mind.d.ts +0 -11
  125. package/dist/src/commands/hive-mind.js +0 -1319
  126. package/dist/src/commands/hooks.d.ts +0 -8
  127. package/dist/src/commands/hooks.js +0 -4606
  128. package/dist/src/commands/index.d.ts +0 -118
  129. package/dist/src/commands/index.js +0 -364
  130. package/dist/src/commands/init.d.ts +0 -13
  131. package/dist/src/commands/init.js +0 -1297
  132. package/dist/src/commands/issues.d.ts +0 -21
  133. package/dist/src/commands/issues.js +0 -567
  134. package/dist/src/commands/mcp.d.ts +0 -11
  135. package/dist/src/commands/mcp.js +0 -732
  136. package/dist/src/commands/memory-backup.d.ts +0 -11
  137. package/dist/src/commands/memory-backup.js +0 -46
  138. package/dist/src/commands/memory-distill.d.ts +0 -27
  139. package/dist/src/commands/memory-distill.js +0 -374
  140. package/dist/src/commands/memory.d.ts +0 -8
  141. package/dist/src/commands/memory.js +0 -1596
  142. package/dist/src/commands/metaharness.d.ts +0 -39
  143. package/dist/src/commands/metaharness.js +0 -215
  144. package/dist/src/commands/migrate.d.ts +0 -8
  145. package/dist/src/commands/migrate.js +0 -742
  146. package/dist/src/commands/neural.d.ts +0 -10
  147. package/dist/src/commands/neural.js +0 -4331
  148. package/dist/src/commands/performance.d.ts +0 -10
  149. package/dist/src/commands/performance.js +0 -583
  150. package/dist/src/commands/plugins.d.ts +0 -11
  151. package/dist/src/commands/plugins.js +0 -826
  152. package/dist/src/commands/process.d.ts +0 -10
  153. package/dist/src/commands/process.js +0 -694
  154. package/dist/src/commands/progress.d.ts +0 -11
  155. package/dist/src/commands/progress.js +0 -259
  156. package/dist/src/commands/providers.d.ts +0 -10
  157. package/dist/src/commands/providers.js +0 -502
  158. package/dist/src/commands/proxy.d.ts +0 -21
  159. package/dist/src/commands/proxy.js +0 -310
  160. package/dist/src/commands/route.d.ts +0 -16
  161. package/dist/src/commands/route.js +0 -822
  162. package/dist/src/commands/ruvector/backup.d.ts +0 -11
  163. package/dist/src/commands/ruvector/backup.js +0 -747
  164. package/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  165. package/dist/src/commands/ruvector/benchmark.js +0 -490
  166. package/dist/src/commands/ruvector/import.d.ts +0 -18
  167. package/dist/src/commands/ruvector/import.js +0 -373
  168. package/dist/src/commands/ruvector/index.d.ts +0 -29
  169. package/dist/src/commands/ruvector/index.js +0 -129
  170. package/dist/src/commands/ruvector/init.d.ts +0 -11
  171. package/dist/src/commands/ruvector/init.js +0 -467
  172. package/dist/src/commands/ruvector/migrate.d.ts +0 -11
  173. package/dist/src/commands/ruvector/migrate.js +0 -498
  174. package/dist/src/commands/ruvector/optimize.d.ts +0 -11
  175. package/dist/src/commands/ruvector/optimize.js +0 -505
  176. package/dist/src/commands/ruvector/pg-utils.d.ts +0 -14
  177. package/dist/src/commands/ruvector/pg-utils.js +0 -41
  178. package/dist/src/commands/ruvector/setup.d.ts +0 -18
  179. package/dist/src/commands/ruvector/setup.js +0 -765
  180. package/dist/src/commands/ruvector/status.d.ts +0 -11
  181. package/dist/src/commands/ruvector/status.js +0 -479
  182. package/dist/src/commands/security.d.ts +0 -10
  183. package/dist/src/commands/security.js +0 -1012
  184. package/dist/src/commands/session.d.ts +0 -8
  185. package/dist/src/commands/session.js +0 -757
  186. package/dist/src/commands/settings.d.ts +0 -19
  187. package/dist/src/commands/settings.js +0 -180
  188. package/dist/src/commands/spinner.d.ts +0 -16
  189. package/dist/src/commands/spinner.js +0 -329
  190. package/dist/src/commands/start.d.ts +0 -8
  191. package/dist/src/commands/start.js +0 -418
  192. package/dist/src/commands/status.d.ts +0 -8
  193. package/dist/src/commands/status.js +0 -608
  194. package/dist/src/commands/swarm.d.ts +0 -8
  195. package/dist/src/commands/swarm.js +0 -891
  196. package/dist/src/commands/task.d.ts +0 -8
  197. package/dist/src/commands/task.js +0 -675
  198. package/dist/src/commands/transfer-store.d.ts +0 -13
  199. package/dist/src/commands/transfer-store.js +0 -428
  200. package/dist/src/commands/update.d.ts +0 -8
  201. package/dist/src/commands/update.js +0 -276
  202. package/dist/src/commands/verify.d.ts +0 -19
  203. package/dist/src/commands/verify.js +0 -261
  204. package/dist/src/commands/version.d.ts +0 -42
  205. package/dist/src/commands/version.js +0 -106
  206. package/dist/src/commands/workflow.d.ts +0 -8
  207. package/dist/src/commands/workflow.js +0 -617
  208. package/dist/src/config/harness-feedback-applier.d.ts +0 -50
  209. package/dist/src/config/harness-feedback-applier.js +0 -122
  210. package/dist/src/config/proven-config-refresh.d.ts +0 -39
  211. package/dist/src/config/proven-config-refresh.js +0 -154
  212. package/dist/src/config/proven-config-rvfa.d.ts +0 -23
  213. package/dist/src/config/proven-config-rvfa.js +0 -73
  214. package/dist/src/config/proven-config.d.ts +0 -86
  215. package/dist/src/config/proven-config.js +0 -176
  216. package/dist/src/config-adapter.d.ts +0 -15
  217. package/dist/src/config-adapter.js +0 -186
  218. package/dist/src/encryption/vault.d.ts +0 -94
  219. package/dist/src/encryption/vault.js +0 -172
  220. package/dist/src/fs-secure.d.ts +0 -86
  221. package/dist/src/fs-secure.js +0 -133
  222. package/dist/src/funnel/advisor-tip.d.ts +0 -58
  223. package/dist/src/funnel/advisor-tip.js +0 -92
  224. package/dist/src/funnel/attribution.d.ts +0 -37
  225. package/dist/src/funnel/attribution.js +0 -101
  226. package/dist/src/funnel/consent.d.ts +0 -22
  227. package/dist/src/funnel/consent.js +0 -58
  228. package/dist/src/funnel/credit-errors.d.ts +0 -31
  229. package/dist/src/funnel/credit-errors.js +0 -88
  230. package/dist/src/funnel/credit-notifier.d.ts +0 -44
  231. package/dist/src/funnel/credit-notifier.js +0 -74
  232. package/dist/src/funnel/disclosure.d.ts +0 -47
  233. package/dist/src/funnel/disclosure.js +0 -109
  234. package/dist/src/funnel/enrollment.d.ts +0 -36
  235. package/dist/src/funnel/enrollment.js +0 -64
  236. package/dist/src/funnel/environment.d.ts +0 -17
  237. package/dist/src/funnel/environment.js +0 -39
  238. package/dist/src/funnel/event-transport.d.ts +0 -51
  239. package/dist/src/funnel/event-transport.js +0 -199
  240. package/dist/src/funnel/events.d.ts +0 -42
  241. package/dist/src/funnel/events.js +0 -150
  242. package/dist/src/funnel/index.d.ts +0 -21
  243. package/dist/src/funnel/index.js +0 -21
  244. package/dist/src/funnel/insights.d.ts +0 -50
  245. package/dist/src/funnel/insights.js +0 -120
  246. package/dist/src/funnel/local-signals.d.ts +0 -20
  247. package/dist/src/funnel/local-signals.js +0 -77
  248. package/dist/src/funnel/message-transport.d.ts +0 -51
  249. package/dist/src/funnel/message-transport.js +0 -149
  250. package/dist/src/funnel/messages.d.ts +0 -55
  251. package/dist/src/funnel/messages.js +0 -160
  252. package/dist/src/funnel/payout.d.ts +0 -40
  253. package/dist/src/funnel/payout.js +0 -60
  254. package/dist/src/funnel/power-saver-notifier.d.ts +0 -44
  255. package/dist/src/funnel/power-saver-notifier.js +0 -92
  256. package/dist/src/funnel/precedence.d.ts +0 -16
  257. package/dist/src/funnel/precedence.js +0 -85
  258. package/dist/src/funnel/promo.d.ts +0 -41
  259. package/dist/src/funnel/promo.js +0 -144
  260. package/dist/src/funnel/rate-limit-notifier.d.ts +0 -55
  261. package/dist/src/funnel/rate-limit-notifier.js +0 -102
  262. package/dist/src/funnel/rotation.d.ts +0 -19
  263. package/dist/src/funnel/rotation.js +0 -70
  264. package/dist/src/funnel/state.d.ts +0 -13
  265. package/dist/src/funnel/state.js +0 -52
  266. package/dist/src/funnel/toggle-cooldown.d.ts +0 -17
  267. package/dist/src/funnel/toggle-cooldown.js +0 -32
  268. package/dist/src/funnel/types.d.ts +0 -98
  269. package/dist/src/funnel/types.js +0 -26
  270. package/dist/src/index.d.ts +0 -81
  271. package/dist/src/index.js +0 -609
  272. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  273. package/dist/src/infrastructure/in-memory-repositories.js +0 -264
  274. package/dist/src/init/claudemd-generator.d.ts +0 -16
  275. package/dist/src/init/claudemd-generator.js +0 -368
  276. package/dist/src/init/executor.d.ts +0 -41
  277. package/dist/src/init/executor.js +0 -2142
  278. package/dist/src/init/helper-refresh.d.ts +0 -79
  279. package/dist/src/init/helper-refresh.js +0 -347
  280. package/dist/src/init/helper-signing.d.ts +0 -37
  281. package/dist/src/init/helper-signing.js +0 -67
  282. package/dist/src/init/helpers-generator.d.ts +0 -87
  283. package/dist/src/init/helpers-generator.js +0 -1456
  284. package/dist/src/init/index.d.ts +0 -13
  285. package/dist/src/init/index.js +0 -15
  286. package/dist/src/init/mcp-generator.d.ts +0 -26
  287. package/dist/src/init/mcp-generator.js +0 -126
  288. package/dist/src/init/memory-package-resolver.d.ts +0 -53
  289. package/dist/src/init/memory-package-resolver.js +0 -118
  290. package/dist/src/init/settings-generator.d.ts +0 -14
  291. package/dist/src/init/settings-generator.js +0 -462
  292. package/dist/src/init/statusline-generator.d.ts +0 -28
  293. package/dist/src/init/statusline-generator.js +0 -177
  294. package/dist/src/init/types.d.ts +0 -331
  295. package/dist/src/init/types.js +0 -276
  296. package/dist/src/log-filters.d.ts +0 -46
  297. package/dist/src/log-filters.js +0 -107
  298. package/dist/src/mcp-client.d.ts +0 -92
  299. package/dist/src/mcp-client.js +0 -397
  300. package/dist/src/mcp-server.d.ts +0 -163
  301. package/dist/src/mcp-server.js +0 -751
  302. package/dist/src/mcp-tools/agent-execute-core.d.ts +0 -115
  303. package/dist/src/mcp-tools/agent-execute-core.js +0 -587
  304. package/dist/src/mcp-tools/agent-tools.d.ts +0 -9
  305. package/dist/src/mcp-tools/agent-tools.js +0 -837
  306. package/dist/src/mcp-tools/agentbbs-tools.d.ts +0 -28
  307. package/dist/src/mcp-tools/agentbbs-tools.js +0 -394
  308. package/dist/src/mcp-tools/agentdb-tools.d.ts +0 -35
  309. package/dist/src/mcp-tools/agentdb-tools.js +0 -1473
  310. package/dist/src/mcp-tools/agenticow-loader.d.ts +0 -59
  311. package/dist/src/mcp-tools/agenticow-loader.js +0 -105
  312. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +0 -24
  313. package/dist/src/mcp-tools/agenticow-speculate-tools.js +0 -209
  314. package/dist/src/mcp-tools/agenticow-tools.d.ts +0 -36
  315. package/dist/src/mcp-tools/agenticow-tools.js +0 -360
  316. package/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
  317. package/dist/src/mcp-tools/analyze-tools.js +0 -346
  318. package/dist/src/mcp-tools/auto-install.d.ts +0 -83
  319. package/dist/src/mcp-tools/auto-install.js +0 -131
  320. package/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
  321. package/dist/src/mcp-tools/autopilot-tools.js +0 -231
  322. package/dist/src/mcp-tools/browser-intent-tools.d.ts +0 -162
  323. package/dist/src/mcp-tools/browser-intent-tools.js +0 -548
  324. package/dist/src/mcp-tools/browser-session-tools.d.ts +0 -27
  325. package/dist/src/mcp-tools/browser-session-tools.js +0 -398
  326. package/dist/src/mcp-tools/browser-tools.d.ts +0 -21
  327. package/dist/src/mcp-tools/browser-tools.js +0 -760
  328. package/dist/src/mcp-tools/business-pod-tools.d.ts +0 -20
  329. package/dist/src/mcp-tools/business-pod-tools.js +0 -169
  330. package/dist/src/mcp-tools/claims-tools.d.ts +0 -12
  331. package/dist/src/mcp-tools/claims-tools.js +0 -863
  332. package/dist/src/mcp-tools/config-tools.d.ts +0 -8
  333. package/dist/src/mcp-tools/config-tools.js +0 -411
  334. package/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  335. package/dist/src/mcp-tools/coordination-tools.js +0 -729
  336. package/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  337. package/dist/src/mcp-tools/daa-tools.js +0 -534
  338. package/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
  339. package/dist/src/mcp-tools/embeddings-tools.js +0 -904
  340. package/dist/src/mcp-tools/github-tools.d.ts +0 -9
  341. package/dist/src/mcp-tools/github-tools.js +0 -659
  342. package/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
  343. package/dist/src/mcp-tools/guidance-tools.js +0 -639
  344. package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
  345. package/dist/src/mcp-tools/hive-mind-tools.js +0 -953
  346. package/dist/src/mcp-tools/hooks-tools.d.ts +0 -65
  347. package/dist/src/mcp-tools/hooks-tools.js +0 -4836
  348. package/dist/src/mcp-tools/http-fetch-tools.d.ts +0 -55
  349. package/dist/src/mcp-tools/http-fetch-tools.js +0 -329
  350. package/dist/src/mcp-tools/index.d.ts +0 -34
  351. package/dist/src/mcp-tools/index.js +0 -40
  352. package/dist/src/mcp-tools/managed-agent-tools.d.ts +0 -22
  353. package/dist/src/mcp-tools/managed-agent-tools.js +0 -357
  354. package/dist/src/mcp-tools/memory-tools.d.ts +0 -14
  355. package/dist/src/mcp-tools/memory-tools.js +0 -1330
  356. package/dist/src/mcp-tools/metaharness-tools.d.ts +0 -51
  357. package/dist/src/mcp-tools/metaharness-tools.js +0 -684
  358. package/dist/src/mcp-tools/neural-tools.d.ts +0 -54
  359. package/dist/src/mcp-tools/neural-tools.js +0 -1168
  360. package/dist/src/mcp-tools/performance-tools.d.ts +0 -16
  361. package/dist/src/mcp-tools/performance-tools.js +0 -675
  362. package/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  363. package/dist/src/mcp-tools/progress-tools.js +0 -348
  364. package/dist/src/mcp-tools/request-tracker.d.ts +0 -17
  365. package/dist/src/mcp-tools/request-tracker.js +0 -27
  366. package/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
  367. package/dist/src/mcp-tools/ruvllm-tools.js +0 -355
  368. package/dist/src/mcp-tools/security-tools.d.ts +0 -18
  369. package/dist/src/mcp-tools/security-tools.js +0 -556
  370. package/dist/src/mcp-tools/session-tools.d.ts +0 -8
  371. package/dist/src/mcp-tools/session-tools.js +0 -517
  372. package/dist/src/mcp-tools/swarm-tools.d.ts +0 -37
  373. package/dist/src/mcp-tools/swarm-tools.js +0 -390
  374. package/dist/src/mcp-tools/system-tools.d.ts +0 -13
  375. package/dist/src/mcp-tools/system-tools.js +0 -688
  376. package/dist/src/mcp-tools/task-tools.d.ts +0 -8
  377. package/dist/src/mcp-tools/task-tools.js +0 -487
  378. package/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
  379. package/dist/src/mcp-tools/terminal-tools.js +0 -306
  380. package/dist/src/mcp-tools/testgen-tools.d.ts +0 -26
  381. package/dist/src/mcp-tools/testgen-tools.js +0 -168
  382. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +0 -31
  383. package/dist/src/mcp-tools/tool-loop-guardrail.js +0 -71
  384. package/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
  385. package/dist/src/mcp-tools/transfer-tools.js +0 -447
  386. package/dist/src/mcp-tools/types.d.ts +0 -8
  387. package/dist/src/mcp-tools/types.js +0 -8
  388. package/dist/src/mcp-tools/validate-input.d.ts +0 -9
  389. package/dist/src/mcp-tools/validate-input.js +0 -9
  390. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -13
  391. package/dist/src/mcp-tools/wasm-agent-tools.js +0 -840
  392. package/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  393. package/dist/src/mcp-tools/workflow-tools.js +0 -884
  394. package/dist/src/memory/bge-embedder.d.ts +0 -25
  395. package/dist/src/memory/bge-embedder.js +0 -121
  396. package/dist/src/memory/cross-encoder-rerank.d.ts +0 -33
  397. package/dist/src/memory/cross-encoder-rerank.js +0 -123
  398. package/dist/src/memory/embedding-policy.d.ts +0 -21
  399. package/dist/src/memory/embedding-policy.js +0 -30
  400. package/dist/src/memory/embedding-quantization.d.ts +0 -62
  401. package/dist/src/memory/embedding-quantization.js +0 -156
  402. package/dist/src/memory/ewc-consolidation.d.ts +0 -305
  403. package/dist/src/memory/ewc-consolidation.js +0 -611
  404. package/dist/src/memory/graph-edge-writer.d.ts +0 -95
  405. package/dist/src/memory/graph-edge-writer.js +0 -217
  406. package/dist/src/memory/hybrid-retrieval.d.ts +0 -77
  407. package/dist/src/memory/hybrid-retrieval.js +0 -192
  408. package/dist/src/memory/intelligence.d.ts +0 -405
  409. package/dist/src/memory/intelligence.js +0 -1316
  410. package/dist/src/memory/lucene-bm25.d.ts +0 -19
  411. package/dist/src/memory/lucene-bm25.js +0 -308
  412. package/dist/src/memory/memory-bridge.d.ts +0 -537
  413. package/dist/src/memory/memory-bridge.js +0 -2460
  414. package/dist/src/memory/memory-initializer.d.ts +0 -556
  415. package/dist/src/memory/memory-initializer.js +0 -3021
  416. package/dist/src/memory/neural-package-bridge.d.ts +0 -48
  417. package/dist/src/memory/neural-package-bridge.js +0 -87
  418. package/dist/src/memory/rabitq-index.d.ts +0 -60
  419. package/dist/src/memory/rabitq-index.js +0 -242
  420. package/dist/src/memory/sona-optimizer.d.ts +0 -267
  421. package/dist/src/memory/sona-optimizer.js +0 -779
  422. package/dist/src/memory/structured-distill.d.ts +0 -48
  423. package/dist/src/memory/structured-distill.js +0 -125
  424. package/dist/src/output.d.ts +0 -9
  425. package/dist/src/output.js +0 -9
  426. package/dist/src/parser.d.ts +0 -89
  427. package/dist/src/parser.js +0 -516
  428. package/dist/src/plugins/manager.d.ts +0 -133
  429. package/dist/src/plugins/manager.js +0 -415
  430. package/dist/src/plugins/store/discovery.d.ts +0 -99
  431. package/dist/src/plugins/store/discovery.js +0 -1224
  432. package/dist/src/plugins/store/index.d.ts +0 -76
  433. package/dist/src/plugins/store/index.js +0 -141
  434. package/dist/src/plugins/store/search.d.ts +0 -46
  435. package/dist/src/plugins/store/search.js +0 -230
  436. package/dist/src/plugins/store/types.d.ts +0 -279
  437. package/dist/src/plugins/store/types.js +0 -7
  438. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  439. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  440. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  441. package/dist/src/plugins/tests/standalone-test.js +0 -188
  442. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  443. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  444. package/dist/src/production/circuit-breaker.d.ts +0 -101
  445. package/dist/src/production/circuit-breaker.js +0 -241
  446. package/dist/src/production/error-handler.d.ts +0 -92
  447. package/dist/src/production/error-handler.js +0 -299
  448. package/dist/src/production/index.d.ts +0 -23
  449. package/dist/src/production/index.js +0 -18
  450. package/dist/src/production/monitoring.d.ts +0 -161
  451. package/dist/src/production/monitoring.js +0 -356
  452. package/dist/src/production/rate-limiter.d.ts +0 -80
  453. package/dist/src/production/rate-limiter.js +0 -201
  454. package/dist/src/production/retry.d.ts +0 -48
  455. package/dist/src/production/retry.js +0 -179
  456. package/dist/src/prompt.d.ts +0 -44
  457. package/dist/src/prompt.js +0 -501
  458. package/dist/src/runtime/headless.d.ts +0 -60
  459. package/dist/src/runtime/headless.js +0 -284
  460. package/dist/src/runtime/parent-death-watchdog.d.ts +0 -42
  461. package/dist/src/runtime/parent-death-watchdog.js +0 -70
  462. package/dist/src/ruvector/agent-wasm.d.ts +0 -228
  463. package/dist/src/ruvector/agent-wasm.js +0 -463
  464. package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  465. package/dist/src/ruvector/ast-analyzer.js +0 -277
  466. package/dist/src/ruvector/codemods/engine.d.ts +0 -45
  467. package/dist/src/ruvector/codemods/engine.js +0 -291
  468. package/dist/src/ruvector/codemods/scope-analysis.d.ts +0 -29
  469. package/dist/src/ruvector/codemods/scope-analysis.js +0 -162
  470. package/dist/src/ruvector/coverage-router.d.ts +0 -160
  471. package/dist/src/ruvector/coverage-router.js +0 -531
  472. package/dist/src/ruvector/coverage-tools.d.ts +0 -33
  473. package/dist/src/ruvector/coverage-tools.js +0 -157
  474. package/dist/src/ruvector/diff-classifier.d.ts +0 -175
  475. package/dist/src/ruvector/diff-classifier.js +0 -699
  476. package/dist/src/ruvector/diskann-backend.d.ts +0 -78
  477. package/dist/src/ruvector/diskann-backend.js +0 -310
  478. package/dist/src/ruvector/enhanced-model-router.d.ts +0 -172
  479. package/dist/src/ruvector/enhanced-model-router.js +0 -577
  480. package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  481. package/dist/src/ruvector/graph-analyzer.js +0 -929
  482. package/dist/src/ruvector/graph-backend.d.ts +0 -79
  483. package/dist/src/ruvector/graph-backend.js +0 -220
  484. package/dist/src/ruvector/index.d.ts +0 -38
  485. package/dist/src/ruvector/index.js +0 -86
  486. package/dist/src/ruvector/lora-adapter.d.ts +0 -292
  487. package/dist/src/ruvector/lora-adapter.js +0 -710
  488. package/dist/src/ruvector/model-prices.d.ts +0 -50
  489. package/dist/src/ruvector/model-prices.js +0 -72
  490. package/dist/src/ruvector/model-router.d.ts +0 -408
  491. package/dist/src/ruvector/model-router.js +0 -1162
  492. package/dist/src/ruvector/neural-router.d.ts +0 -182
  493. package/dist/src/ruvector/neural-router.js +0 -825
  494. package/dist/src/ruvector/output-verifier.d.ts +0 -83
  495. package/dist/src/ruvector/output-verifier.js +0 -277
  496. package/dist/src/ruvector/q-learning-router.d.ts +0 -227
  497. package/dist/src/ruvector/q-learning-router.js +0 -721
  498. package/dist/src/ruvector/router-calibrator.d.ts +0 -65
  499. package/dist/src/ruvector/router-calibrator.js +0 -120
  500. package/dist/src/ruvector/router-parallel-recorder.d.ts +0 -127
  501. package/dist/src/ruvector/router-parallel-recorder.js +0 -183
  502. package/dist/src/ruvector/router-trajectory.d.ts +0 -194
  503. package/dist/src/ruvector/router-trajectory.js +0 -281
  504. package/dist/src/ruvector/run-transcript-recorder.d.ts +0 -154
  505. package/dist/src/ruvector/run-transcript-recorder.js +0 -209
  506. package/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
  507. package/dist/src/ruvector/ruvllm-wasm.js +0 -379
  508. package/dist/src/ruvector/semantic-router.d.ts +0 -77
  509. package/dist/src/ruvector/semantic-router.js +0 -178
  510. package/dist/src/ruvector/task-embedder.d.ts +0 -56
  511. package/dist/src/ruvector/task-embedder.js +0 -237
  512. package/dist/src/ruvector/trajectory-tree.d.ts +0 -113
  513. package/dist/src/ruvector/trajectory-tree.js +0 -237
  514. package/dist/src/ruvector/vector-db.d.ts +0 -73
  515. package/dist/src/ruvector/vector-db.js +0 -301
  516. package/dist/src/ruvector/wasm-embedder.d.ts +0 -13
  517. package/dist/src/ruvector/wasm-embedder.js +0 -143
  518. package/dist/src/security/builtin-aidefence.d.ts +0 -34
  519. package/dist/src/security/builtin-aidefence.js +0 -86
  520. package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  521. package/dist/src/services/agentic-flow-bridge.js +0 -95
  522. package/dist/src/services/ai-job-dedup.d.ts +0 -61
  523. package/dist/src/services/ai-job-dedup.js +0 -136
  524. package/dist/src/services/checkpoint-gate.d.ts +0 -140
  525. package/dist/src/services/checkpoint-gate.js +0 -223
  526. package/dist/src/services/claim-service.d.ts +0 -204
  527. package/dist/src/services/claim-service.js +0 -818
  528. package/dist/src/services/config-file-manager.d.ts +0 -37
  529. package/dist/src/services/config-file-manager.js +0 -224
  530. package/dist/src/services/container-worker-pool.d.ts +0 -204
  531. package/dist/src/services/container-worker-pool.js +0 -589
  532. package/dist/src/services/daemon-autostart.d.ts +0 -17
  533. package/dist/src/services/daemon-autostart.js +0 -102
  534. package/dist/src/services/distill-oracle.d.ts +0 -190
  535. package/dist/src/services/distill-oracle.js +0 -349
  536. package/dist/src/services/distill-tuning.d.ts +0 -111
  537. package/dist/src/services/distill-tuning.js +0 -510
  538. package/dist/src/services/evolve-proof.d.ts +0 -253
  539. package/dist/src/services/evolve-proof.js +0 -343
  540. package/dist/src/services/fable-harness.d.ts +0 -208
  541. package/dist/src/services/fable-harness.js +0 -388
  542. package/dist/src/services/git-workspace-identity.d.ts +0 -42
  543. package/dist/src/services/git-workspace-identity.js +0 -99
  544. package/dist/src/services/global-ai-budget.d.ts +0 -135
  545. package/dist/src/services/global-ai-budget.js +0 -415
  546. package/dist/src/services/harness-benchmark.d.ts +0 -68
  547. package/dist/src/services/harness-benchmark.js +0 -94
  548. package/dist/src/services/harness-canary.d.ts +0 -60
  549. package/dist/src/services/harness-canary.js +0 -69
  550. package/dist/src/services/harness-corpus-harvester.d.ts +0 -51
  551. package/dist/src/services/harness-corpus-harvester.js +0 -74
  552. package/dist/src/services/harness-flywheel-generations.d.ts +0 -115
  553. package/dist/src/services/harness-flywheel-generations.js +0 -360
  554. package/dist/src/services/harness-flywheel-runtime.d.ts +0 -25
  555. package/dist/src/services/harness-flywheel-runtime.js +0 -92
  556. package/dist/src/services/harness-flywheel.d.ts +0 -48
  557. package/dist/src/services/harness-flywheel.js +0 -207
  558. package/dist/src/services/harness-frozen-eval.d.ts +0 -22
  559. package/dist/src/services/harness-frozen-eval.js +0 -66
  560. package/dist/src/services/harness-hosts.d.ts +0 -40
  561. package/dist/src/services/harness-hosts.js +0 -88
  562. package/dist/src/services/harness-improvement-ledger.d.ts +0 -63
  563. package/dist/src/services/harness-improvement-ledger.js +0 -101
  564. package/dist/src/services/harness-loop.d.ts +0 -53
  565. package/dist/src/services/harness-loop.js +0 -85
  566. package/dist/src/services/harness-qualification.d.ts +0 -66
  567. package/dist/src/services/harness-qualification.js +0 -143
  568. package/dist/src/services/harness-replay.d.ts +0 -37
  569. package/dist/src/services/harness-replay.js +0 -92
  570. package/dist/src/services/harness-verify.d.ts +0 -33
  571. package/dist/src/services/harness-verify.js +0 -26
  572. package/dist/src/services/harness-worker.d.ts +0 -23
  573. package/dist/src/services/harness-worker.js +0 -66
  574. package/dist/src/services/headless-worker-executor.d.ts +0 -358
  575. package/dist/src/services/headless-worker-executor.js +0 -1269
  576. package/dist/src/services/index.d.ts +0 -13
  577. package/dist/src/services/index.js +0 -11
  578. package/dist/src/services/memory-backup.d.ts +0 -53
  579. package/dist/src/services/memory-backup.js +0 -198
  580. package/dist/src/services/memory-distillation.d.ts +0 -41
  581. package/dist/src/services/memory-distillation.js +0 -277
  582. package/dist/src/services/native-training.d.ts +0 -68
  583. package/dist/src/services/native-training.js +0 -141
  584. package/dist/src/services/registry-api.d.ts +0 -58
  585. package/dist/src/services/registry-api.js +0 -146
  586. package/dist/src/services/repo-supervisor.d.ts +0 -70
  587. package/dist/src/services/repo-supervisor.js +0 -228
  588. package/dist/src/services/ruvector-training.d.ts +0 -222
  589. package/dist/src/services/ruvector-training.js +0 -693
  590. package/dist/src/services/swarm-memory-branches.d.ts +0 -135
  591. package/dist/src/services/swarm-memory-branches.js +0 -213
  592. package/dist/src/services/weight-eft.d.ts +0 -305
  593. package/dist/src/services/weight-eft.js +0 -296
  594. package/dist/src/services/worker-daemon.d.ts +0 -439
  595. package/dist/src/services/worker-daemon.js +0 -1865
  596. package/dist/src/services/worker-queue.d.ts +0 -194
  597. package/dist/src/services/worker-queue.js +0 -513
  598. package/dist/src/services/workspace-lease.d.ts +0 -55
  599. package/dist/src/services/workspace-lease.js +0 -191
  600. package/dist/src/suggest.d.ts +0 -53
  601. package/dist/src/suggest.js +0 -200
  602. package/dist/src/transfer/anonymization/index.d.ts +0 -25
  603. package/dist/src/transfer/anonymization/index.js +0 -175
  604. package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  605. package/dist/src/transfer/deploy-seraphine.js +0 -205
  606. package/dist/src/transfer/export.d.ts +0 -25
  607. package/dist/src/transfer/export.js +0 -113
  608. package/dist/src/transfer/index.d.ts +0 -12
  609. package/dist/src/transfer/index.js +0 -31
  610. package/dist/src/transfer/ipfs/client.d.ts +0 -109
  611. package/dist/src/transfer/ipfs/client.js +0 -307
  612. package/dist/src/transfer/ipfs/upload.d.ts +0 -95
  613. package/dist/src/transfer/ipfs/upload.js +0 -413
  614. package/dist/src/transfer/models/seraphine.d.ts +0 -72
  615. package/dist/src/transfer/models/seraphine.js +0 -373
  616. package/dist/src/transfer/serialization/cfp.d.ts +0 -49
  617. package/dist/src/transfer/serialization/cfp.js +0 -183
  618. package/dist/src/transfer/storage/gcs.d.ts +0 -82
  619. package/dist/src/transfer/storage/gcs.js +0 -272
  620. package/dist/src/transfer/storage/index.d.ts +0 -6
  621. package/dist/src/transfer/storage/index.js +0 -6
  622. package/dist/src/transfer/store/discovery.d.ts +0 -84
  623. package/dist/src/transfer/store/discovery.js +0 -382
  624. package/dist/src/transfer/store/download.d.ts +0 -70
  625. package/dist/src/transfer/store/download.js +0 -334
  626. package/dist/src/transfer/store/index.d.ts +0 -84
  627. package/dist/src/transfer/store/index.js +0 -153
  628. package/dist/src/transfer/store/publish.d.ts +0 -76
  629. package/dist/src/transfer/store/publish.js +0 -294
  630. package/dist/src/transfer/store/registry.d.ts +0 -58
  631. package/dist/src/transfer/store/registry.js +0 -285
  632. package/dist/src/transfer/store/search.d.ts +0 -54
  633. package/dist/src/transfer/store/search.js +0 -232
  634. package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  635. package/dist/src/transfer/store/tests/standalone-test.js +0 -190
  636. package/dist/src/transfer/store/types.d.ts +0 -193
  637. package/dist/src/transfer/store/types.js +0 -6
  638. package/dist/src/transfer/test-seraphine.d.ts +0 -6
  639. package/dist/src/transfer/test-seraphine.js +0 -105
  640. package/dist/src/transfer/tests/test-store.d.ts +0 -7
  641. package/dist/src/transfer/tests/test-store.js +0 -214
  642. package/dist/src/transfer/types.d.ts +0 -245
  643. package/dist/src/transfer/types.js +0 -6
  644. package/dist/src/types.d.ts +0 -13
  645. package/dist/src/types.js +0 -13
  646. package/dist/src/update/checker.d.ts +0 -34
  647. package/dist/src/update/checker.js +0 -191
  648. package/dist/src/update/executor.d.ts +0 -33
  649. package/dist/src/update/executor.js +0 -217
  650. package/dist/src/update/index.d.ts +0 -33
  651. package/dist/src/update/index.js +0 -64
  652. package/dist/src/update/rate-limiter.d.ts +0 -20
  653. package/dist/src/update/rate-limiter.js +0 -96
  654. package/dist/src/update/validator.d.ts +0 -17
  655. package/dist/src/update/validator.js +0 -123
@@ -1,684 +0,0 @@
1
- /**
2
- * MetaHarness MCP Tools — ADR-150 Phase-2 deep-integration surface.
3
- *
4
- * Exposes the static-analysis MetaHarness CLIs as first-class MCP tools
5
- * so Claude Code agents can call them programmatically without shelling
6
- * out themselves. Five tools, all read-only / subprocess-isolated:
7
- *
8
- * - metaharness_score 5-dim readiness scorecard
9
- * - metaharness_genome 7-section categorical report
10
- * - metaharness_mcp_scan static MCP security findings
11
- * - metaharness_threat_model enterprise-grade threat model
12
- * - metaharness_oia_audit composite audit (score + threat + mcp) → memory
13
- *
14
- * ADR-153 Darwin Mode integration adds three additional tools that target
15
- * the separate `@metaharness/darwin` npm package (not the umbrella):
16
- *
17
- * - metaharness_evolve mutate harness policy surfaces, sandbox-score, promote
18
- * - metaharness_security_bench upstream's "Darwin Shield" (their own ADR-155)
19
- * - metaharness_bench create/verify bench suites used by evolve --bench
20
- *
21
- * @metaharness/redblue integration adds one tool that targets the standalone
22
- * `@metaharness/redblue` npm package — adversarial red/blue LLM testing
23
- * for the agents and apps you own:
24
- *
25
- * - metaharness_redblue red-team → judge → blue-patch → retest → report
26
- *
27
- * metaharness@0.3.0 + @metaharness/darwin@0.8.0 add two more:
28
- *
29
- * - metaharness_learn upstream ADR-235 GEPA learning run ($0 dry-run
30
- * default; run=true to spend; needs repo checkout)
31
- * - metaharness_gepa GEPA library surface — genome load/validate/
32
- * render + transcript failure analysis
33
- *
34
- * Every tool resolves the corresponding plugin script
35
- * (`plugins/ruflo-metaharness/scripts/<X>.mjs`) via the same locator
36
- * the commands/metaharness.ts dispatcher uses, then spawns it with
37
- * `--format json` and parses the response.
38
- *
39
- * ADR-150 ARCHITECTURAL CONSTRAINT
40
- * --------------------------------
41
- * This file has ZERO static `@metaharness/*` imports. All metaharness
42
- * invocation stays in the plugin scripts behind the `_harness.mjs`
43
- * subprocess bridge. When the plugin scripts aren't reachable at
44
- * runtime, each tool returns a structured `{ degraded: true }` payload
45
- * — never throws.
46
- *
47
- * @module @claude-flow/cli/mcp-tools/metaharness
48
- */
49
- import { getProjectCwd } from './types.js';
50
- import { spawn } from 'node:child_process';
51
- import { existsSync } from 'node:fs';
52
- import { join, dirname, resolve } from 'node:path';
53
- import { fileURLToPath } from 'node:url';
54
- const __dirname = dirname(fileURLToPath(import.meta.url));
55
- /**
56
- * Walk up from this module to find plugins/ruflo-metaharness/scripts/.
57
- * Handles three install layouts (mirrors commands/metaharness.ts).
58
- *
59
- * `requiredScript`, if provided, narrows the match the same way the
60
- * commands dispatcher does — guards against the publish-artifact mirror
61
- * (`v3/@claude-flow/cli/plugins/ruflo-metaharness/scripts/`, regenerated
62
- * by `prepublishOnly`) shadowing the source when it's stale on a new
63
- * script.
64
- */
65
- function locatePluginScripts(requiredScript) {
66
- const candidates = [];
67
- let p = resolve(__dirname);
68
- for (let i = 0; i < 8; i++) {
69
- candidates.push(join(p, 'plugins', 'ruflo-metaharness', 'scripts'));
70
- candidates.push(join(p, '..', 'plugins', 'ruflo-metaharness', 'scripts'));
71
- p = dirname(p);
72
- }
73
- const cwd = getProjectCwd();
74
- candidates.push(join(cwd, 'plugins', 'ruflo-metaharness', 'scripts'));
75
- candidates.push(join(cwd, 'node_modules', '@claude-flow', 'cli', 'plugins', 'ruflo-metaharness', 'scripts'));
76
- for (const c of candidates) {
77
- if (!existsSync(join(c, '_harness.mjs')))
78
- continue;
79
- if (requiredScript && !existsSync(join(c, requiredScript)))
80
- continue;
81
- return c;
82
- }
83
- return null;
84
- }
85
- /**
86
- * Result of running a metaharness plugin script.
87
- *
88
- * SUCCESS SEMANTICS (iter 44 — fix for iter-43-flagged bug)
89
- * `success` is computed from the canonical signal: exitCode === 0.
90
- *
91
- * Three observable cases:
92
- * 1. exitCode 0 + valid JSON → success: true, degraded: false
93
- * (happy path; data is the script's JSON output)
94
- *
95
- * 2. exitCode 0 + degraded payload → success: true, degraded: true
96
- * (ADR-150 constraint #3 — upstream `@metaharness/*` absent, script
97
- * emits `{degraded:true, reason:"metaharness-not-available"}` and
98
- * exits 0 so ruflo stays operational. `success: true` because the
99
- * script DID run as designed; the agent reads `degraded: true` to
100
- * know the dep was missing.)
101
- *
102
- * 3. exitCode != 0 → success: false
103
- * Two sub-cases:
104
- * a. exitCode 1 with alert.triggered JSON → intentional alert
105
- * failure (e.g. --alert-on-fit-below 70). Agents read
106
- * `data.alert.triggered` for the reason.
107
- * b. exitCode 2 with stderr-only → user error (bad arg).
108
- * `data` is null because no JSON was on stdout.
109
- *
110
- * BEFORE iter 44 `success` was computed as `!degraded`, which collapsed
111
- * case 3b into success: true / exitCode: 2 — contradictory.
112
- */
113
- function runScript(scriptName, args) {
114
- return new Promise((resolve) => {
115
- const dir = locatePluginScripts(scriptName);
116
- if (!dir) {
117
- resolve({
118
- exitCode: 0, stdout: '', json: { degraded: true, reason: 'plugin-not-found' },
119
- degraded: true, success: true, // plugin absent → equivalent to case 2
120
- });
121
- return;
122
- }
123
- const scriptPath = join(dir, scriptName);
124
- const argv = [...args];
125
- if (!argv.includes('--format'))
126
- argv.push('--format', 'json');
127
- const p = spawn('node', [scriptPath, ...argv], {
128
- stdio: ['ignore', 'pipe', 'pipe'],
129
- env: process.env,
130
- });
131
- let stdout = '';
132
- p.stdout?.on('data', (d) => { stdout += d.toString(); });
133
- p.stderr?.on('data', () => { });
134
- const timer = setTimeout(() => { try {
135
- p.kill('SIGTERM');
136
- }
137
- catch { /* ignore */ } }, 120_000);
138
- p.on('close', (code) => {
139
- clearTimeout(timer);
140
- let json = null;
141
- const m = /\{[\s\S]*\}/.exec(stdout);
142
- if (m) {
143
- try {
144
- json = JSON.parse(m[0]);
145
- }
146
- catch { /* leave null */ }
147
- }
148
- const looksDegraded = !!(json && typeof json === 'object' && json.degraded === true);
149
- const exitCode = code ?? 0;
150
- // iter 44 — success now reflects exit code, not the degraded marker.
151
- // exit 0 = script ran as designed (whether the result was happy
152
- // data or a graceful-degradation payload). exit != 0 = something
153
- // went wrong (intentional alert OR user/system error).
154
- const success = exitCode === 0;
155
- resolve({ exitCode, stdout, json, degraded: looksDegraded, success });
156
- });
157
- p.on('error', () => {
158
- clearTimeout(timer);
159
- resolve({
160
- exitCode: 127, stdout, json: { degraded: true, reason: 'spawn-failed' },
161
- degraded: true, success: false,
162
- });
163
- });
164
- });
165
- }
166
- /**
167
- * iter 46 — success-semantic footnote appended to every tool description
168
- * so agents reading the registry know how to interpret the return shape.
169
- * Reflects the iter-44 fix: `success` derives from exitCode, not from the
170
- * degraded marker. Three observable cases an agent can branch on.
171
- */
172
- const MCP_SUCCESS_SEMANTIC = '[Return shape: {success, data, degraded, exitCode}. success===true iff exitCode===0 ' +
173
- '(includes graceful-degradation path where dep is absent — check degraded for that). ' +
174
- 'success===false with exitCode===1 = intentional alert exit (read data.alert.triggered). ' +
175
- 'success===false with exitCode===2 = input error (data is null).]';
176
- export const metaharnessTools = [
177
- {
178
- name: 'metaharness_score',
179
- description: 'ADR-150 — 5-dimension harness readiness scorecard from `metaharness score <path>` (harnessFit / compileConfidence / taskCoverage / toolSafety / memoryUsefulness + estCostPerRunUsd). Pure-read subprocess; graceful degradation when metaharness optional dep absent. Use when you need an evidence-based readiness signal before recommending the user run `ruflo metaharness mint`; reading the repo manually is wrong because the 5-dim score includes signals (cost-per-run, MCP surface safety) that aren\'t obvious from source. ' + MCP_SUCCESS_SEMANTIC,
180
- category: 'metaharness',
181
- inputSchema: {
182
- type: 'object',
183
- properties: {
184
- path: { type: 'string', description: 'Repo path to score (default: cwd)', default: '.' },
185
- alertOnFitBelow: { type: 'number', description: 'Set to make the tool flag harnessFit < N (informational only; tool result has alert.triggered field)' },
186
- },
187
- },
188
- handler: async (input) => {
189
- const path = input.path || '.';
190
- const args = ['--path', path];
191
- if (input.alertOnFitBelow !== undefined)
192
- args.push('--alert-on-fit-below', String(input.alertOnFitBelow));
193
- const r = await runScript('score.mjs', args);
194
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
195
- },
196
- },
197
- {
198
- name: 'metaharness_genome',
199
- description: 'ADR-150 — 7-section categorical readiness report from `metaharness genome <path>` (repo_type / agent_topology / risk_score / mcp_surface / test_confidence / publish_readiness). Use when you need the categorical view (vs numeric score). Pair with metaharness_score for the full readiness picture — score-alone is wrong because two harnesses with the same harnessFit can have very different agent_topology and mcp_surface. ' + MCP_SUCCESS_SEMANTIC,
200
- category: 'metaharness',
201
- inputSchema: {
202
- type: 'object',
203
- properties: {
204
- path: { type: 'string', description: 'Repo path to analyze (default: cwd)', default: '.' },
205
- alertOnRiskAbove: { type: 'number', description: 'Set to flag risk_score > N' },
206
- },
207
- },
208
- handler: async (input) => {
209
- const path = input.path || '.';
210
- const args = ['--path', path];
211
- if (input.alertOnRiskAbove !== undefined)
212
- args.push('--alert-on-risk-above', String(input.alertOnRiskAbove));
213
- const r = await runScript('genome.mjs', args);
214
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
215
- },
216
- },
217
- {
218
- name: 'metaharness_mcp_scan',
219
- description: 'ADR-150 — static security scan of `.mcp/servers.json` + `.harness/claims.json` via `harness mcp-scan <path>`. Reads only; no dispatch. Use when you are about to expose a new MCP server config to humans/agents. Eyeballing the JSON is wrong because the scan catches policy regressions (capability grants, audit gaps) that humans miss. ' + MCP_SUCCESS_SEMANTIC,
220
- category: 'metaharness',
221
- inputSchema: {
222
- type: 'object',
223
- properties: {
224
- path: { type: 'string', description: 'Repo path with .mcp/servers.json (default: cwd)', default: '.' },
225
- failOn: { type: 'string', enum: ['low', 'medium', 'high'], description: 'Severity floor for tool.alert.triggered (default: high)', default: 'high' },
226
- },
227
- },
228
- handler: async (input) => {
229
- const path = input.path || '.';
230
- const failOn = input.failOn || 'high';
231
- const r = await runScript('mcp-scan.mjs', ['--path', path, '--fail-on', failOn]);
232
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
233
- },
234
- },
235
- {
236
- name: 'metaharness_threat_model',
237
- description: 'ADR-150 — enterprise-grade threat model from `harness threat-model <path>`. Returns worst-severity verdict (clean/low/medium/high) + categorized findings suitable for sharing with infosec. Use when you need a sharable infosec-grade verdict; a one-line summary is wrong because compliance reviewers want the per-category breakdown. ' + MCP_SUCCESS_SEMANTIC,
238
- category: 'metaharness',
239
- inputSchema: {
240
- type: 'object',
241
- properties: {
242
- path: { type: 'string', description: 'Repo path (default: cwd)', default: '.' },
243
- failOn: { type: 'string', enum: ['clean', 'low', 'medium', 'high'], description: 'Severity floor for tool.alert.triggered (default: high)', default: 'high' },
244
- },
245
- },
246
- handler: async (input) => {
247
- const path = input.path || '.';
248
- const failOn = input.failOn || 'high';
249
- const r = await runScript('threat-model.mjs', ['--path', path, '--fail-on', failOn]);
250
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
251
- },
252
- },
253
- {
254
- name: 'metaharness_oia_audit',
255
- description: 'ADR-150 — composite weekly audit. Bundles oia-manifest + threat-model + mcp-scan into one timestamped record persisted to `metaharness-audit` memory namespace (or --dry-run to skip persistence). Use when you want to seed periodic drift detection (pair with metaharness_drift_from_history). Running the 3 sub-audits separately is wrong because you lose the composite worst-severity rollup and the timestamped record that drift detection needs to compare against. ' + MCP_SUCCESS_SEMANTIC,
256
- category: 'metaharness',
257
- inputSchema: {
258
- type: 'object',
259
- properties: {
260
- path: { type: 'string', description: 'Repo path (default: cwd)', default: '.' },
261
- dryRun: { type: 'boolean', description: 'Skip memory persistence — local-only run', default: false },
262
- alertOnWorst: { type: 'string', enum: ['clean', 'low', 'medium', 'high'], description: 'Composite worst-severity floor for tool.alert.triggered' },
263
- },
264
- },
265
- handler: async (input) => {
266
- const path = input.path || '.';
267
- const args = ['--path', path];
268
- if (input.dryRun === true)
269
- args.push('--dry-run');
270
- if (input.alertOnWorst !== undefined)
271
- args.push('--alert-on-worst', String(input.alertOnWorst));
272
- const r = await runScript('oia-audit.mjs', args);
273
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
274
- },
275
- },
276
- {
277
- name: 'metaharness_audit_list',
278
- description: 'ADR-150 iter 16 — list timestamped records from the `metaharness-audit` memory namespace. Use when you need to discover which audit keys exist before running metaharness_audit_trend. Guessing key names is wrong because timestamps include sub-second precision; pair with metaharness_audit_trend by passing the returned key. ' + MCP_SUCCESS_SEMANTIC,
279
- category: 'metaharness',
280
- inputSchema: {
281
- type: 'object',
282
- properties: {
283
- limit: { type: 'number', description: 'Max records to return, newest first (default: 20)', default: 20 },
284
- since: { type: 'string', description: 'Filter to last N(h|d|w|m), e.g. "30d" for last 30 days' },
285
- },
286
- },
287
- handler: async (input) => {
288
- const args = [];
289
- if (input.limit !== undefined)
290
- args.push('--limit', String(input.limit));
291
- if (input.since !== undefined)
292
- args.push('--since', String(input.since));
293
- const r = await runScript('audit-list.mjs', args);
294
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
295
- },
296
- },
297
- {
298
- name: 'metaharness_similarity',
299
- description: 'ADR-152 §3.1 — weighted similarity between two harness fingerprints (genome + score JSON). Returns overall ∈ [0,1] plus per-component breakdown (cosine over 9 numerics, categorical over 4 enums, jaccard over agent_topology). Pure-TS, zero `@metaharness/*` dep. Use when you need to (a) rank candidate templates against a target repo, (b) decide fork-vs-scaffold, or (c) feed ADR-151 §3.2 Recommender / §3.3 Drift / §3.5 Plugin Compat. Hand-comparing genome fields is wrong because the weighted blend (cosine + categorical + jaccard) reproduces human judgment on the spike-similarity invariants. ' + MCP_SUCCESS_SEMANTIC,
300
- category: 'metaharness',
301
- inputSchema: {
302
- type: 'object',
303
- properties: {
304
- aFile: { type: 'string', description: 'Path to harness A genome+score JSON file (mutually exclusive with aKey)' },
305
- bFile: { type: 'string', description: 'Path to harness B genome+score JSON file (mutually exclusive with bKey)' },
306
- aKey: { type: 'string', description: 'Memory key for harness A in `metaharness-audit` namespace (mutually exclusive with aFile)' },
307
- bKey: { type: 'string', description: 'Memory key for harness B in `metaharness-audit` namespace (mutually exclusive with bFile)' },
308
- perDimension: { type: 'boolean', description: 'Include per-dimension contribution breakdown (used by ADR-151 §3.2 Recommender)', default: false },
309
- alertBelow: { type: 'number', description: 'Set tool.alert.triggered when overall < N (used by ADR-151 §3.3 Drift Detection)' },
310
- },
311
- },
312
- handler: async (input) => {
313
- const args = [];
314
- if (input.aFile)
315
- args.push('--a', String(input.aFile));
316
- if (input.bFile)
317
- args.push('--b', String(input.bFile));
318
- if (input.aKey)
319
- args.push('--a-key', String(input.aKey));
320
- if (input.bKey)
321
- args.push('--b-key', String(input.bKey));
322
- if (input.perDimension === true)
323
- args.push('--per-dimension');
324
- if (input.alertBelow !== undefined)
325
- args.push('--alert-below', String(input.alertBelow));
326
- const r = await runScript('similarity.mjs', args);
327
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
328
- },
329
- },
330
- {
331
- name: 'metaharness_drift_from_history',
332
- description: 'iter 53 — one-command drift detection. Composes audit-list + oia-audit + audit-trend: finds the most recent record in `metaharness-audit` namespace (or skips that with `baselineKey`/`baselineFile`), runs a fresh audit against the current path, diffs via ADR-152 §3.1 similarity, alerts when structural similarity falls below `threshold`. Use when you need a structured drift report before recommending the user act on regressions; calling the 3 sub-tools separately is wrong because you lose the composed alert ladder + fastpath optimization (iter 66/67: `baselineKey` ~14x faster, `baselineFile` ~19x faster, ideal for CI artifact pipelines). ' + MCP_SUCCESS_SEMANTIC,
333
- category: 'metaharness',
334
- inputSchema: {
335
- type: 'object',
336
- properties: {
337
- path: { type: 'string', description: 'Repo path to audit (default: cwd)', default: '.' },
338
- baselineSince: { type: 'string', description: 'Use a baseline at least N(h|d|w) old, e.g. "7d" — skips drift against ultra-recent audits' },
339
- baselineKey: { type: 'string', description: 'iter 66 — explicit memory key for the baseline audit. Skips audit-list (no ONNX warmup). Get from `metaharness_audit_list` first.' },
340
- baselineFile: { type: 'string', description: 'iter 67 — file path to a saved oia-audit JSON. Skips audit-list AND memory roundtrip. Ideal for CI artifact pipelines (e.g., comparing this run vs a downloaded prior-run artifact).' },
341
- threshold: { type: 'number', description: 'Alert when structural similarity < N. Default 0.95.', default: 0.95 },
342
- alertOnNewSeverity: { type: 'string', enum: ['info', 'low', 'medium', 'warn', 'high', 'error', 'critical'], description: 'iter 78 — ALSO alert when any introduced finding meets or exceeds this severity. Orthogonal to `threshold`: a CRITICAL finding triggers even if structural similarity > threshold.' },
343
- dryRun: { type: 'boolean', description: 'Skip persisting the fresh audit to memory', default: false },
344
- },
345
- },
346
- handler: async (input) => {
347
- const args = [];
348
- args.push('--path', String(input.path ?? '.'));
349
- if (input.baselineSince)
350
- args.push('--baseline-since', String(input.baselineSince));
351
- if (input.baselineKey)
352
- args.push('--baseline-key', String(input.baselineKey));
353
- if (input.baselineFile)
354
- args.push('--baseline-file', String(input.baselineFile));
355
- if (input.threshold !== undefined)
356
- args.push('--threshold', String(input.threshold));
357
- if (input.alertOnNewSeverity)
358
- args.push('--alert-on-new-severity', String(input.alertOnNewSeverity));
359
- if (input.dryRun === true)
360
- args.push('--dry-run');
361
- const r = await runScript('drift-from-history.mjs', args);
362
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
363
- },
364
- },
365
- {
366
- name: 'metaharness_audit_trend',
367
- description: 'ADR-150 iter 15 — diff two oia-audit records (drift detection). Accepts EITHER memory keys (run metaharness_audit_list first to discover them) OR direct file paths (useful for diffing CI artifacts). Surfaces composite worst-severity delta + per-component status change + introduced/cleared findings + (iter 38) ADR-152 §3.1 structural distance when both records carry a fingerprint. Use when you have two specific audits to compare; pair with metaharness_audit_list for key discovery. Skipping this tool and eyeballing two JSONs is wrong because the structural-distance verdict (near-identical / minor-drift / moderate-drift / major-drift) is the operationally-useful summary. ' + MCP_SUCCESS_SEMANTIC,
368
- category: 'metaharness',
369
- inputSchema: {
370
- type: 'object',
371
- properties: {
372
- baselineKey: { type: 'string', description: 'Memory key for the older audit (mutually exclusive with baselineFile)' },
373
- currentKey: { type: 'string', description: 'Memory key for the newer audit (mutually exclusive with currentFile)' },
374
- baselineFile: { type: 'string', description: 'iter 46 — file path to older audit JSON (mutually exclusive with baselineKey)' },
375
- currentFile: { type: 'string', description: 'iter 46 — file path to newer audit JSON (mutually exclusive with currentKey)' },
376
- alertOnWorsening: { type: 'boolean', description: 'Set tool.alert.triggered when composite worst severity worsened', default: false },
377
- alertOnDistanceBelow: { type: 'number', description: 'iter 38 — set tool.alert.triggered when structural similarity falls below N (uses fingerprint field added in iter 38; older records emit verdict=unavailable)' },
378
- },
379
- // No required[] — caller picks key OR file inputs. The script
380
- // emits a graceful degraded payload if neither is supplied.
381
- },
382
- handler: async (input) => {
383
- const args = [];
384
- if (input.baselineKey)
385
- args.push('--baseline-key', String(input.baselineKey));
386
- if (input.currentKey)
387
- args.push('--current-key', String(input.currentKey));
388
- if (input.baselineFile)
389
- args.push('--baseline', String(input.baselineFile));
390
- if (input.currentFile)
391
- args.push('--current', String(input.currentFile));
392
- if (input.alertOnWorsening === true)
393
- args.push('--alert-on-worsening');
394
- if (input.alertOnDistanceBelow !== undefined)
395
- args.push('--alert-on-distance-below', String(input.alertOnDistanceBelow));
396
- const r = await runScript('audit-trend.mjs', args);
397
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
398
- },
399
- },
400
- // ───────────────────────────────────────────────────────────────────────
401
- // ADR-153 — @metaharness/darwin integration (3 tools).
402
- // Backed by the separate `@metaharness/darwin@~0.3.1` npm package, NOT
403
- // the umbrella `metaharness`. Plugin scripts shell out via _darwin.mjs.
404
- // Same {success, data, degraded, exitCode} contract.
405
- // ───────────────────────────────────────────────────────────────────────
406
- {
407
- name: 'metaharness_evolve',
408
- description: 'ADR-153 — Darwin Mode: mutate one of seven harness policy surfaces (planner/contextBuilder/reviewer/retryPolicy/toolPolicy/memoryPolicy/scorePolicy), sandbox-score each variant, promote only measured wins. The WRITE layer that closes the loop ADR-150 opens (score+genome describe; evolve changes). Use when readiness scores are flat and you want to discover WHICH surface mutation moves them, without retraining the foundation model. Bypassing this tool and hand-tuning is wrong because (a) single-degree-of-freedom mutations keep causal attribution clean, (b) the upstream safety layer catches secret/shell-out/network/dynamic-eval patterns before any variant runs (exit 99 = safety-disqualified, propagated verbatim). REQUIRES --confirm; defaults to dry-run plan output. Long-running: timeout scales with generations×children×sandbox-cost. ' + MCP_SUCCESS_SEMANTIC,
409
- category: 'metaharness',
410
- inputSchema: {
411
- type: 'object',
412
- properties: {
413
- repo: { type: 'string', description: 'Repo path to evolve (default: cwd)', default: '.' },
414
- generations: { type: 'number', description: '1..50 (ruflo cap)', default: 3 },
415
- children: { type: 'number', description: '1..20 (ruflo cap) — variants per generation', default: 3 },
416
- concurrency: { type: 'number', description: '1..8 (ruflo cap)', default: 2 },
417
- seed: { type: 'number', description: 'PRNG seed for reproducibility' },
418
- sandbox: { type: 'string', enum: ['real', 'mock', 'agent'], description: 'real = run npm test; mock = scoring stub; agent = LLM judge', default: 'real' },
419
- selection: { type: 'string', enum: ['quality-diversity', 'behavioral-diversity', 'niche-steering', 'clade', 'pareto'], description: 'Next-generation sampling strategy from the archive tree' },
420
- crossover: { type: 'boolean', description: 'Enable crossover (2-parent) mutations alongside the default 1-parent path', default: false },
421
- epistasis: { type: 'boolean', description: 'Detect epistatic surface interactions before mutating', default: false },
422
- curriculum: { type: 'boolean', description: 'Schedule increasing-difficulty bench tasks across generations', default: false },
423
- riskBudget: { type: 'number', description: 'Max number of safety-near-miss variants allowed before halting' },
424
- fdr: { type: 'number', description: 'Benjamini-Hochberg FDR threshold for accepting variant fitness as significant' },
425
- tie: { type: 'string', enum: ['faster'], description: 'Tiebreaker when champions are within noise — "faster" prefers lower sandbox cost' },
426
- bench: { type: 'string', description: 'Path to a bench suite JSON (use metaharness_bench --op create to scaffold)' },
427
- mutator: { type: 'string', enum: ['deterministic', 'ruvllm'], description: 'deterministic = template-based; ruvllm = local LLM-driven', default: 'deterministic' },
428
- ruvllmUrl: { type: 'string', description: 'RuVLLM endpoint URL (only used when mutator=ruvllm)' },
429
- ruvllmModel: { type: 'string', description: 'RuVLLM model id (only used when mutator=ruvllm)' },
430
- confirm: { type: 'boolean', description: 'REQUIRED to actually evolve; without it, returns a dry-run plan', default: false },
431
- alertOnNoImprovement: { type: 'boolean', description: 'Exit 1 when champion ≤ parent', default: false },
432
- timeoutMs: { type: 'number', description: 'Override the computed timeout (default = generations×children×per-variant)' },
433
- },
434
- },
435
- handler: async (input) => {
436
- const args = [];
437
- if (input.repo)
438
- args.push('--repo', String(input.repo));
439
- if (input.generations !== undefined)
440
- args.push('--generations', String(input.generations));
441
- if (input.children !== undefined)
442
- args.push('--children', String(input.children));
443
- if (input.concurrency !== undefined)
444
- args.push('--concurrency', String(input.concurrency));
445
- if (input.seed !== undefined)
446
- args.push('--seed', String(input.seed));
447
- if (input.sandbox)
448
- args.push('--sandbox', String(input.sandbox));
449
- if (input.selection)
450
- args.push('--selection', String(input.selection));
451
- if (input.crossover === true)
452
- args.push('--crossover');
453
- if (input.epistasis === true)
454
- args.push('--epistasis');
455
- if (input.curriculum === true)
456
- args.push('--curriculum');
457
- if (input.riskBudget !== undefined)
458
- args.push('--risk-budget', String(input.riskBudget));
459
- if (input.fdr !== undefined)
460
- args.push('--fdr', String(input.fdr));
461
- if (input.tie)
462
- args.push('--tie', String(input.tie));
463
- if (input.bench)
464
- args.push('--bench', String(input.bench));
465
- if (input.mutator)
466
- args.push('--mutator', String(input.mutator));
467
- if (input.ruvllmUrl)
468
- args.push('--ruvllm-url', String(input.ruvllmUrl));
469
- if (input.ruvllmModel)
470
- args.push('--ruvllm-model', String(input.ruvllmModel));
471
- if (input.confirm === true)
472
- args.push('--confirm');
473
- if (input.alertOnNoImprovement === true)
474
- args.push('--alert-on-no-improvement');
475
- if (input.timeoutMs !== undefined)
476
- args.push('--timeout-ms', String(input.timeoutMs));
477
- const r = await runScript('evolve.mjs', args);
478
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
479
- },
480
- },
481
- {
482
- name: 'metaharness_security_bench',
483
- description: 'ADR-153 — upstream Darwin Shield (their own ADR-155): evolves a champion security-detection harness against a 10-vuln/9-decoy ground-truth corpus and grades on TPR/FPR/patch-pass/repro/unsafe vs four baselines (B0 static, B1 LLM-single-pass, B2 fixed-agent, B3 Darwin-champion). Closest reference implementation for ruflo ADR-155 nightly self-learning security harness (#2417). Use when you need an empirical floor for Loop A reward-signal soundness; running this periodically gives baseline diversity and week-over-week champion-fitness drift. Bypassing this and just running the static MCP scan is wrong because static-only baseline (B0) reaches TPR=0.3/FPR=1 — proving static-alone has a measured detection ceiling. Parses overall PASS/FAIL + per-gate verdicts + baselines table from markdown. ' + MCP_SUCCESS_SEMANTIC,
484
- category: 'metaharness',
485
- inputSchema: {
486
- type: 'object',
487
- properties: {
488
- population: { type: 'number', description: '1..20 (ruflo cap) — candidate detectors per cycle', default: 2 },
489
- cycles: { type: 'number', description: '1..100 (ruflo cap) — evolution cycles', default: 1 },
490
- seed: { type: 'number', description: 'PRNG seed for reproducibility' },
491
- alertOnFail: { type: 'boolean', description: 'Exit 1 when overall verdict is FAIL', default: false },
492
- timeoutMs: { type: 'number', description: 'Override the computed timeout (default = 3s × 19 evals × population × cycles + 30s)' },
493
- },
494
- },
495
- handler: async (input) => {
496
- const args = [];
497
- if (input.population !== undefined)
498
- args.push('--population', String(input.population));
499
- if (input.cycles !== undefined)
500
- args.push('--cycles', String(input.cycles));
501
- if (input.seed !== undefined)
502
- args.push('--seed', String(input.seed));
503
- if (input.alertOnFail === true)
504
- args.push('--alert-on-fail');
505
- if (input.timeoutMs !== undefined)
506
- args.push('--timeout-ms', String(input.timeoutMs));
507
- const r = await runScript('security-bench.mjs', args);
508
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
509
- },
510
- },
511
- {
512
- name: 'metaharness_bench',
513
- description: 'ADR-153 supporting verb — create or verify bench suites used by metaharness_evolve --bench. Bench suites are JSON files of {input, expectedOutput, weight} tasks; scoring against a fixed corpus decouples evolution from flaky/slow/undersized `npm test`. Use when iterating on the same harness across commits and `npm test` is too noisy/slow to drive evolution — use --op create to scaffold from a repo, --op verify (cheap, ~5s) to gate suite changes in CI. Native test runners are wrong here because per-run noise drowns out champion-fitness deltas; bench gives you a stable baseline. ' + MCP_SUCCESS_SEMANTIC,
514
- category: 'metaharness',
515
- inputSchema: {
516
- type: 'object',
517
- properties: {
518
- op: { type: 'string', enum: ['create', 'verify'], description: 'create scaffolds suite.json from a repo; verify validates an existing suite' },
519
- repo: { type: 'string', description: 'Repo path (required for --op create)' },
520
- suite: { type: 'string', description: 'Suite JSON path (required for --op verify)' },
521
- out: { type: 'string', description: 'Override default output path for --op create (default: <repo>/.metaharness/bench/suite.json)' },
522
- },
523
- required: ['op'],
524
- },
525
- handler: async (input) => {
526
- const args = ['--op', String(input.op)];
527
- if (input.repo)
528
- args.push('--repo', String(input.repo));
529
- if (input.suite)
530
- args.push('--suite', String(input.suite));
531
- if (input.out)
532
- args.push('--out', String(input.out));
533
- const r = await runScript('bench.mjs', args);
534
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
535
- },
536
- },
537
- // ───────────────────────────────────────────────────────────────────────
538
- // @metaharness/redblue integration (1 tool).
539
- // Backed by `@metaharness/redblue@~0.1.1`. Plugin script shells out via
540
- // _redblue.mjs. Same {success, data, degraded, exitCode} contract.
541
- //
542
- // SAFETY: redblue itself enforces hard boundaries (no real creds, no live
543
- // targets, no shell, no arbitrary network, no eval) in upstream's
544
- // src/config/safety.ts at config-load time. The wrapper does NOT relax
545
- // those — it only forwards argv with shell:false. `--mock-judge` is the
546
- // $0 marker-fixture CI path; the real model judge requires
547
- // $OPENROUTER_API_KEY which we never inject.
548
- // ───────────────────────────────────────────────────────────────────────
549
- {
550
- name: 'metaharness_redblue',
551
- description: 'Adversarial red/blue LLM testing via @metaharness/redblue — generates attacks across OWASP LLM Top-10 / NIST AI RMF families (prompt injection, tool misuse, data leakage, jailbreaks, denial-of-wallet), runs them against an LLM target YOU OWN, judges compromise, optionally applies declarative blue-team patches, retests, and emits a board-readable report with measured failure reduction. Use when shipping an LLM-powered product and you need a repeatable security gate before exposing it to users — eyeballing prompts is wrong because attack surface coverage requires the OWASP/NIST taxonomy and the judge has to be model-driven for jailbreak detection. SAFETY: upstream hard-enforces no-creds / no-live-targets / no-shell / no-network / no-eval at config-load time; cannot be relaxed via flags. For CI / offline use --mockJudge=true ($0 marker fixture). For real model judging set $OPENROUTER_API_KEY and accept the per-run cost capped by max_cost_usd (default $3). ' + MCP_SUCCESS_SEMANTIC,
552
- category: 'metaharness',
553
- inputSchema: {
554
- type: 'object',
555
- properties: {
556
- subcommand: {
557
- type: 'string',
558
- enum: ['init', 'run', 'patch', 'attack', 'report'],
559
- description: 'init = scaffold redblue.yaml; run = baseline (+ optional --patch); patch = baseline → patch → retest delta; attack = preview attacks; report = render existing report.json',
560
- default: 'run',
561
- },
562
- config: { type: 'string', description: 'Path to redblue.yaml (default: ./redblue.yaml)' },
563
- out: { type: 'string', description: 'Output report path for run/patch (default: temp file we read back inline)' },
564
- in: { type: 'string', description: 'Input report path for `report` subcommand' },
565
- tests: { type: 'number', description: 'How many test cases (run/patch only)' },
566
- patch: { type: 'boolean', description: '`run` only — after baseline, apply blue-team patches and retest', default: false },
567
- mockJudge: { type: 'boolean', description: '$0 TEST-ONLY marker fixture (no model calls). Use for CI / offline. Real judging requires OPENROUTER_API_KEY.', default: false },
568
- family: { type: 'string', enum: ['prompt', 'tools', 'data', 'all'], description: '`attack` subcommand only — which attack family to preview' },
569
- count: { type: 'number', description: '`attack` only — how many cases to preview' },
570
- alertOnFail: { type: 'boolean', description: 'Exit 1 when post-patch verdict is FAIL (gate-style)', default: false },
571
- timeoutMs: { type: 'number', description: 'Subprocess hard timeout (default 120000; mock-judge runs complete in seconds)' },
572
- },
573
- },
574
- handler: async (input) => {
575
- const args = [String(input.subcommand ?? 'run')];
576
- // attack family is positional
577
- if (input.subcommand === 'attack' && input.family)
578
- args.push(String(input.family));
579
- if (input.config)
580
- args.push('--config', String(input.config));
581
- if (input.out)
582
- args.push('--out', String(input.out));
583
- if (input.in)
584
- args.push('--in', String(input.in));
585
- if (input.tests !== undefined)
586
- args.push('--tests', String(input.tests));
587
- if (input.patch === true)
588
- args.push('--patch');
589
- if (input.mockJudge === true)
590
- args.push('--mock-judge');
591
- if (input.count !== undefined)
592
- args.push('--count', String(input.count));
593
- if (input.alertOnFail === true)
594
- args.push('--alert-on-fail');
595
- if (input.timeoutMs !== undefined)
596
- args.push('--timeout-ms', String(input.timeoutMs));
597
- const r = await runScript('redblue.mjs', args);
598
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
599
- },
600
- },
601
- // ───────────────────────────────────────────────────────────────────────
602
- // metaharness@0.3.0 `learn` + @metaharness/darwin@0.8.0 GEPA (2 tools).
603
- //
604
- // learn — upstream ADR-235 GEPA learning run. $0 dry-run by default;
605
- // spending requires the explicit `run: true` opt-in, forwarded as --run.
606
- // Requires a metaharness repo checkout (the learning harness is too heavy
607
- // for the npm package) — absent checkout returns a structured
608
- // {status: "checkout-required"} payload, distinct from degraded.
609
- //
610
- // gepa — the darwin GEPA *library* surface (genome load/validate/render,
611
- // transcript analysis). gepaOptimize itself is deliberately NOT exposed:
612
- // it takes an in-process evaluate() callback that cannot cross the
613
- // subprocess boundary; optimization runs live behind metaharness_evolve.
614
- // ───────────────────────────────────────────────────────────────────────
615
- {
616
- name: 'metaharness_learn',
617
- description: 'ADR-235 (upstream) — GEPA learning run via `metaharness learn`: optimizes a harness genome against a SWE-bench-style slice manifest. $0 DRY-RUN BY DEFAULT — it resolves the slice and prices the run without model calls; pass run=true to actually spend (model calls + Docker sandboxes). Requires a local metaharness repo checkout (repo param or $METAHARNESS_REPO); without one the tool returns {status:"checkout-required"} with clone instructions — that is a precondition report, not an error. Use when you want the harness policy to LEARN from a task corpus rather than hand-editing prompts; manual prompt tweaking is wrong because GEPA scores candidates against held-out slices and only promotes measured winners. Long real runs exceed the 120s MCP subprocess budget — run those via `ruflo metaharness learn` in a terminal instead. ' + MCP_SUCCESS_SEMANTIC,
618
- category: 'metaharness',
619
- inputSchema: {
620
- type: 'object',
621
- properties: {
622
- host: { type: 'string', description: 'Target host harness (e.g. claude-code, codex, pi-dev, hermes)' },
623
- model: { type: 'string', description: 'Model to learn against (upstream model id)' },
624
- slice: { type: 'string', description: 'Path to a slice manifest JSON' },
625
- repo: { type: 'string', description: 'Path to a metaharness repo checkout (sets $METAHARNESS_REPO)' },
626
- run: { type: 'boolean', description: 'EXPLICIT SPEND OPT-IN — without this the run is a $0 dry-run', default: false },
627
- alertOnFail: { type: 'boolean', description: 'Exit 1 when the learn run reports failure', default: false },
628
- timeoutMs: { type: 'number', description: 'Subprocess hard timeout override' },
629
- },
630
- },
631
- handler: async (input) => {
632
- const args = [];
633
- if (input.host)
634
- args.push('--host', String(input.host));
635
- if (input.model)
636
- args.push('--model', String(input.model));
637
- if (input.slice)
638
- args.push('--slice', String(input.slice));
639
- if (input.repo)
640
- args.push('--repo', String(input.repo));
641
- if (input.run === true)
642
- args.push('--run');
643
- if (input.alertOnFail === true)
644
- args.push('--alert-on-fail');
645
- if (input.timeoutMs !== undefined)
646
- args.push('--timeout-ms', String(input.timeoutMs));
647
- const r = await runScript('learn.mjs', args);
648
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
649
- },
650
- },
651
- {
652
- name: 'metaharness_gepa',
653
- description: 'GEPA genome operations from the `@metaharness/darwin/gepa` library entry (darwin 0.8.0). op=genome loads + validates a genome (default: the shipped cand-6 — first holdout-confirmed cheap-tier policy promotion, provenance in the package); op=validate returns structural errors for a genome JSON; op=render compiles a genome to the system prompt it encodes (inspect what a policy actually says before adopting it); op=analyze classifies failure modes in a transcript JSON array. Use when adopting/auditing/debugging evolved harness policies — reading genome JSON by eye is wrong because the behavior lives in the rendered system prompt and the component interactions, not the raw fields. NOTE: gepaOptimize (bring-your-own-evaluator optimization) is library-only — import @metaharness/darwin/gepa directly, or use metaharness_evolve for sandbox-scored evolution. ' + MCP_SUCCESS_SEMANTIC,
654
- category: 'metaharness',
655
- inputSchema: {
656
- type: 'object',
657
- properties: {
658
- op: { type: 'string', enum: ['genome', 'validate', 'render', 'analyze'], description: 'genome = load + validate; validate = structural errors only; render = genome → system prompt; analyze = transcript failure classes' },
659
- path: { type: 'string', description: 'Genome JSON path (genome/validate/render; default: shipped cand-6)' },
660
- transcript: { type: 'string', description: 'Transcript JSON array path (required for op=analyze)' },
661
- ext: { type: 'string', description: 'render only — target file extension hint' },
662
- glob: { type: 'string', description: 'render only — target glob hint' },
663
- alertOnInvalid: { type: 'boolean', description: 'Exit 1 when validation finds errors (gate-style)', default: false },
664
- },
665
- required: ['op'],
666
- },
667
- handler: async (input) => {
668
- const args = ['--op', String(input.op)];
669
- if (input.path)
670
- args.push('--path', String(input.path));
671
- if (input.transcript)
672
- args.push('--transcript', String(input.transcript));
673
- if (input.ext)
674
- args.push('--ext', String(input.ext));
675
- if (input.glob)
676
- args.push('--glob', String(input.glob));
677
- if (input.alertOnInvalid === true)
678
- args.push('--alert-on-invalid');
679
- const r = await runScript('gepa.mjs', args);
680
- return { success: r.success, data: r.json, degraded: r.degraded, exitCode: r.exitCode };
681
- },
682
- },
683
- ];
684
- //# sourceMappingURL=metaharness-tools.js.map