@claude-flow/cli 3.32.1 → 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 (657) hide show
  1. package/.claude/helpers/.helpers-version +1 -1
  2. package/.claude/helpers/helpers.manifest.json +3 -3
  3. package/.claude/helpers/statusline.cjs +24 -17
  4. package/.claude/helpers/statusline.js +19 -31
  5. package/catalog-manifest.json +2 -2
  6. package/package.json +1 -1
  7. package/plugins/ruflo-metaharness/.claude-plugin/plugin.json +1 -1
  8. package/plugins/ruflo-metaharness/scripts/smoke.sh +8 -5
  9. package/plugins/ruflo-metaharness/skills/harness-similarity/SKILL.md +1 -1
  10. package/dist/src/agenticow/speculative-exploration.d.ts +0 -148
  11. package/dist/src/agenticow/speculative-exploration.js +0 -218
  12. package/dist/src/appliance/gguf-engine.d.ts +0 -91
  13. package/dist/src/appliance/gguf-engine.js +0 -425
  14. package/dist/src/appliance/ruvllm-bridge.d.ts +0 -102
  15. package/dist/src/appliance/ruvllm-bridge.js +0 -292
  16. package/dist/src/appliance/rvfa-builder.d.ts +0 -44
  17. package/dist/src/appliance/rvfa-builder.js +0 -329
  18. package/dist/src/appliance/rvfa-distribution.d.ts +0 -97
  19. package/dist/src/appliance/rvfa-distribution.js +0 -370
  20. package/dist/src/appliance/rvfa-format.d.ts +0 -111
  21. package/dist/src/appliance/rvfa-format.js +0 -393
  22. package/dist/src/appliance/rvfa-runner.d.ts +0 -69
  23. package/dist/src/appliance/rvfa-runner.js +0 -237
  24. package/dist/src/appliance/rvfa-signing.d.ts +0 -123
  25. package/dist/src/appliance/rvfa-signing.js +0 -347
  26. package/dist/src/autopilot-state.d.ts +0 -77
  27. package/dist/src/autopilot-state.js +0 -271
  28. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +0 -18
  29. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +0 -253
  30. package/dist/src/benchmarks/gaia-agent.d.ts +0 -198
  31. package/dist/src/benchmarks/gaia-agent.js +0 -651
  32. package/dist/src/benchmarks/gaia-causal-memory.d.ts +0 -133
  33. package/dist/src/benchmarks/gaia-causal-memory.js +0 -281
  34. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +0 -22
  35. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +0 -300
  36. package/dist/src/benchmarks/gaia-convergence.d.ts +0 -138
  37. package/dist/src/benchmarks/gaia-convergence.js +0 -260
  38. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +0 -19
  39. package/dist/src/benchmarks/gaia-convergence.smoke.js +0 -246
  40. package/dist/src/benchmarks/gaia-critic.d.ts +0 -123
  41. package/dist/src/benchmarks/gaia-critic.js +0 -312
  42. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +0 -21
  43. package/dist/src/benchmarks/gaia-critic.smoke.js +0 -327
  44. package/dist/src/benchmarks/gaia-decomposer.d.ts +0 -125
  45. package/dist/src/benchmarks/gaia-decomposer.js +0 -350
  46. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +0 -21
  47. package/dist/src/benchmarks/gaia-decomposer.smoke.js +0 -228
  48. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +0 -27
  49. package/dist/src/benchmarks/gaia-e2e-smoke.js +0 -136
  50. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +0 -45
  51. package/dist/src/benchmarks/gaia-extract.smoke.js +0 -242
  52. package/dist/src/benchmarks/gaia-hardness/features.d.ts +0 -46
  53. package/dist/src/benchmarks/gaia-hardness/features.js +0 -170
  54. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +0 -105
  55. package/dist/src/benchmarks/gaia-hardness/predictor.js +0 -260
  56. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +0 -20
  57. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +0 -235
  58. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +0 -51
  59. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +0 -179
  60. package/dist/src/benchmarks/gaia-judge.d.ts +0 -88
  61. package/dist/src/benchmarks/gaia-judge.js +0 -437
  62. package/dist/src/benchmarks/gaia-loader.d.ts +0 -87
  63. package/dist/src/benchmarks/gaia-loader.js +0 -326
  64. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +0 -35
  65. package/dist/src/benchmarks/gaia-tools/file_read.js +0 -403
  66. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +0 -126
  67. package/dist/src/benchmarks/gaia-tools/grounded_query.js +0 -225
  68. package/dist/src/benchmarks/gaia-tools/index.d.ts +0 -32
  69. package/dist/src/benchmarks/gaia-tools/index.js +0 -36
  70. package/dist/src/benchmarks/gaia-tools/types.d.ts +0 -62
  71. package/dist/src/benchmarks/gaia-tools/types.js +0 -12
  72. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +0 -30
  73. package/dist/src/benchmarks/gaia-tools/web_search.js +0 -210
  74. package/dist/src/benchmarks/gaia-voting.d.ts +0 -88
  75. package/dist/src/benchmarks/gaia-voting.js +0 -297
  76. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +0 -20
  77. package/dist/src/benchmarks/gaia-voting.smoke.js +0 -332
  78. package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  79. package/dist/src/benchmarks/pretrain/index.js +0 -404
  80. package/dist/src/business-pods/bbs-budget-tracker.d.ts +0 -139
  81. package/dist/src/business-pods/bbs-budget-tracker.js +0 -358
  82. package/dist/src/business-pods/domain-affinity-policy.d.ts +0 -47
  83. package/dist/src/business-pods/domain-affinity-policy.js +0 -65
  84. package/dist/src/business-pods/pod-schema.d.ts +0 -96
  85. package/dist/src/business-pods/pod-schema.js +0 -225
  86. package/dist/src/commands/advisor.d.ts +0 -15
  87. package/dist/src/commands/advisor.js +0 -94
  88. package/dist/src/commands/agent-wasm.d.ts +0 -14
  89. package/dist/src/commands/agent-wasm.js +0 -333
  90. package/dist/src/commands/agent.d.ts +0 -8
  91. package/dist/src/commands/agent.js +0 -927
  92. package/dist/src/commands/analyze.d.ts +0 -19
  93. package/dist/src/commands/analyze.js +0 -2047
  94. package/dist/src/commands/announcements.d.ts +0 -17
  95. package/dist/src/commands/announcements.js +0 -0
  96. package/dist/src/commands/appliance-advanced.d.ts +0 -9
  97. package/dist/src/commands/appliance-advanced.js +0 -215
  98. package/dist/src/commands/appliance.d.ts +0 -8
  99. package/dist/src/commands/appliance.js +0 -404
  100. package/dist/src/commands/autopilot.d.ts +0 -15
  101. package/dist/src/commands/autopilot.js +0 -407
  102. package/dist/src/commands/benchmark.d.ts +0 -10
  103. package/dist/src/commands/benchmark.js +0 -460
  104. package/dist/src/commands/claims.d.ts +0 -10
  105. package/dist/src/commands/claims.js +0 -620
  106. package/dist/src/commands/cleanup.d.ts +0 -13
  107. package/dist/src/commands/cleanup.js +0 -250
  108. package/dist/src/commands/completions.d.ts +0 -10
  109. package/dist/src/commands/completions.js +0 -539
  110. package/dist/src/commands/config.d.ts +0 -8
  111. package/dist/src/commands/config.js +0 -428
  112. package/dist/src/commands/daemon.d.ts +0 -59
  113. package/dist/src/commands/daemon.js +0 -1733
  114. package/dist/src/commands/deployment.d.ts +0 -10
  115. package/dist/src/commands/deployment.js +0 -672
  116. package/dist/src/commands/doctor.d.ts +0 -10
  117. package/dist/src/commands/doctor.js +0 -1695
  118. package/dist/src/commands/eject.d.ts +0 -33
  119. package/dist/src/commands/eject.js +0 -195
  120. package/dist/src/commands/embeddings.d.ts +0 -18
  121. package/dist/src/commands/embeddings.js +0 -1623
  122. package/dist/src/commands/funnel.d.ts +0 -18
  123. package/dist/src/commands/funnel.js +0 -302
  124. package/dist/src/commands/gaia-bench.d.ts +0 -40
  125. package/dist/src/commands/gaia-bench.js +0 -597
  126. package/dist/src/commands/guidance.d.ts +0 -8
  127. package/dist/src/commands/guidance.js +0 -556
  128. package/dist/src/commands/hive-mind.d.ts +0 -11
  129. package/dist/src/commands/hive-mind.js +0 -1319
  130. package/dist/src/commands/hooks.d.ts +0 -8
  131. package/dist/src/commands/hooks.js +0 -4595
  132. package/dist/src/commands/index.d.ts +0 -118
  133. package/dist/src/commands/index.js +0 -364
  134. package/dist/src/commands/init.d.ts +0 -13
  135. package/dist/src/commands/init.js +0 -1297
  136. package/dist/src/commands/issues.d.ts +0 -21
  137. package/dist/src/commands/issues.js +0 -567
  138. package/dist/src/commands/mcp.d.ts +0 -11
  139. package/dist/src/commands/mcp.js +0 -732
  140. package/dist/src/commands/memory-backup.d.ts +0 -11
  141. package/dist/src/commands/memory-backup.js +0 -46
  142. package/dist/src/commands/memory-distill.d.ts +0 -27
  143. package/dist/src/commands/memory-distill.js +0 -374
  144. package/dist/src/commands/memory.d.ts +0 -8
  145. package/dist/src/commands/memory.js +0 -1596
  146. package/dist/src/commands/metaharness.d.ts +0 -39
  147. package/dist/src/commands/metaharness.js +0 -215
  148. package/dist/src/commands/migrate.d.ts +0 -8
  149. package/dist/src/commands/migrate.js +0 -742
  150. package/dist/src/commands/neural.d.ts +0 -10
  151. package/dist/src/commands/neural.js +0 -4331
  152. package/dist/src/commands/performance.d.ts +0 -10
  153. package/dist/src/commands/performance.js +0 -583
  154. package/dist/src/commands/plugins.d.ts +0 -11
  155. package/dist/src/commands/plugins.js +0 -826
  156. package/dist/src/commands/process.d.ts +0 -10
  157. package/dist/src/commands/process.js +0 -694
  158. package/dist/src/commands/progress.d.ts +0 -11
  159. package/dist/src/commands/progress.js +0 -259
  160. package/dist/src/commands/providers.d.ts +0 -10
  161. package/dist/src/commands/providers.js +0 -502
  162. package/dist/src/commands/proxy.d.ts +0 -21
  163. package/dist/src/commands/proxy.js +0 -310
  164. package/dist/src/commands/route.d.ts +0 -16
  165. package/dist/src/commands/route.js +0 -822
  166. package/dist/src/commands/ruvector/backup.d.ts +0 -11
  167. package/dist/src/commands/ruvector/backup.js +0 -747
  168. package/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  169. package/dist/src/commands/ruvector/benchmark.js +0 -490
  170. package/dist/src/commands/ruvector/import.d.ts +0 -18
  171. package/dist/src/commands/ruvector/import.js +0 -373
  172. package/dist/src/commands/ruvector/index.d.ts +0 -29
  173. package/dist/src/commands/ruvector/index.js +0 -129
  174. package/dist/src/commands/ruvector/init.d.ts +0 -11
  175. package/dist/src/commands/ruvector/init.js +0 -467
  176. package/dist/src/commands/ruvector/migrate.d.ts +0 -11
  177. package/dist/src/commands/ruvector/migrate.js +0 -498
  178. package/dist/src/commands/ruvector/optimize.d.ts +0 -11
  179. package/dist/src/commands/ruvector/optimize.js +0 -505
  180. package/dist/src/commands/ruvector/pg-utils.d.ts +0 -14
  181. package/dist/src/commands/ruvector/pg-utils.js +0 -41
  182. package/dist/src/commands/ruvector/setup.d.ts +0 -18
  183. package/dist/src/commands/ruvector/setup.js +0 -765
  184. package/dist/src/commands/ruvector/status.d.ts +0 -11
  185. package/dist/src/commands/ruvector/status.js +0 -479
  186. package/dist/src/commands/security.d.ts +0 -10
  187. package/dist/src/commands/security.js +0 -1007
  188. package/dist/src/commands/session.d.ts +0 -8
  189. package/dist/src/commands/session.js +0 -757
  190. package/dist/src/commands/settings.d.ts +0 -19
  191. package/dist/src/commands/settings.js +0 -180
  192. package/dist/src/commands/spinner.d.ts +0 -16
  193. package/dist/src/commands/spinner.js +0 -329
  194. package/dist/src/commands/start.d.ts +0 -8
  195. package/dist/src/commands/start.js +0 -418
  196. package/dist/src/commands/status.d.ts +0 -8
  197. package/dist/src/commands/status.js +0 -608
  198. package/dist/src/commands/swarm.d.ts +0 -8
  199. package/dist/src/commands/swarm.js +0 -891
  200. package/dist/src/commands/task.d.ts +0 -8
  201. package/dist/src/commands/task.js +0 -675
  202. package/dist/src/commands/transfer-store.d.ts +0 -13
  203. package/dist/src/commands/transfer-store.js +0 -428
  204. package/dist/src/commands/update.d.ts +0 -8
  205. package/dist/src/commands/update.js +0 -276
  206. package/dist/src/commands/verify.d.ts +0 -19
  207. package/dist/src/commands/verify.js +0 -261
  208. package/dist/src/commands/version.d.ts +0 -42
  209. package/dist/src/commands/version.js +0 -106
  210. package/dist/src/commands/workflow.d.ts +0 -8
  211. package/dist/src/commands/workflow.js +0 -617
  212. package/dist/src/config/harness-feedback-applier.d.ts +0 -50
  213. package/dist/src/config/harness-feedback-applier.js +0 -122
  214. package/dist/src/config/proven-config-refresh.d.ts +0 -39
  215. package/dist/src/config/proven-config-refresh.js +0 -154
  216. package/dist/src/config/proven-config-rvfa.d.ts +0 -23
  217. package/dist/src/config/proven-config-rvfa.js +0 -73
  218. package/dist/src/config/proven-config.d.ts +0 -86
  219. package/dist/src/config/proven-config.js +0 -176
  220. package/dist/src/config-adapter.d.ts +0 -15
  221. package/dist/src/config-adapter.js +0 -186
  222. package/dist/src/encryption/vault.d.ts +0 -94
  223. package/dist/src/encryption/vault.js +0 -172
  224. package/dist/src/fs-secure.d.ts +0 -86
  225. package/dist/src/fs-secure.js +0 -133
  226. package/dist/src/funnel/advisor-tip.d.ts +0 -58
  227. package/dist/src/funnel/advisor-tip.js +0 -92
  228. package/dist/src/funnel/attribution.d.ts +0 -37
  229. package/dist/src/funnel/attribution.js +0 -101
  230. package/dist/src/funnel/consent.d.ts +0 -22
  231. package/dist/src/funnel/consent.js +0 -58
  232. package/dist/src/funnel/credit-errors.d.ts +0 -31
  233. package/dist/src/funnel/credit-errors.js +0 -88
  234. package/dist/src/funnel/credit-notifier.d.ts +0 -44
  235. package/dist/src/funnel/credit-notifier.js +0 -74
  236. package/dist/src/funnel/disclosure.d.ts +0 -47
  237. package/dist/src/funnel/disclosure.js +0 -109
  238. package/dist/src/funnel/enrollment.d.ts +0 -36
  239. package/dist/src/funnel/enrollment.js +0 -64
  240. package/dist/src/funnel/environment.d.ts +0 -17
  241. package/dist/src/funnel/environment.js +0 -39
  242. package/dist/src/funnel/event-transport.d.ts +0 -51
  243. package/dist/src/funnel/event-transport.js +0 -199
  244. package/dist/src/funnel/events.d.ts +0 -42
  245. package/dist/src/funnel/events.js +0 -150
  246. package/dist/src/funnel/index.d.ts +0 -21
  247. package/dist/src/funnel/index.js +0 -21
  248. package/dist/src/funnel/insights.d.ts +0 -49
  249. package/dist/src/funnel/insights.js +0 -120
  250. package/dist/src/funnel/local-signals.d.ts +0 -15
  251. package/dist/src/funnel/local-signals.js +0 -68
  252. package/dist/src/funnel/message-transport.d.ts +0 -51
  253. package/dist/src/funnel/message-transport.js +0 -149
  254. package/dist/src/funnel/messages.d.ts +0 -55
  255. package/dist/src/funnel/messages.js +0 -160
  256. package/dist/src/funnel/payout.d.ts +0 -40
  257. package/dist/src/funnel/payout.js +0 -60
  258. package/dist/src/funnel/power-saver-notifier.d.ts +0 -44
  259. package/dist/src/funnel/power-saver-notifier.js +0 -92
  260. package/dist/src/funnel/precedence.d.ts +0 -16
  261. package/dist/src/funnel/precedence.js +0 -85
  262. package/dist/src/funnel/promo.d.ts +0 -41
  263. package/dist/src/funnel/promo.js +0 -144
  264. package/dist/src/funnel/rate-limit-notifier.d.ts +0 -55
  265. package/dist/src/funnel/rate-limit-notifier.js +0 -102
  266. package/dist/src/funnel/rotation.d.ts +0 -19
  267. package/dist/src/funnel/rotation.js +0 -70
  268. package/dist/src/funnel/state.d.ts +0 -13
  269. package/dist/src/funnel/state.js +0 -52
  270. package/dist/src/funnel/toggle-cooldown.d.ts +0 -17
  271. package/dist/src/funnel/toggle-cooldown.js +0 -32
  272. package/dist/src/funnel/types.d.ts +0 -98
  273. package/dist/src/funnel/types.js +0 -26
  274. package/dist/src/index.d.ts +0 -81
  275. package/dist/src/index.js +0 -609
  276. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  277. package/dist/src/infrastructure/in-memory-repositories.js +0 -264
  278. package/dist/src/init/claudemd-generator.d.ts +0 -16
  279. package/dist/src/init/claudemd-generator.js +0 -368
  280. package/dist/src/init/executor.d.ts +0 -41
  281. package/dist/src/init/executor.js +0 -2142
  282. package/dist/src/init/helper-refresh.d.ts +0 -79
  283. package/dist/src/init/helper-refresh.js +0 -347
  284. package/dist/src/init/helper-signing.d.ts +0 -37
  285. package/dist/src/init/helper-signing.js +0 -67
  286. package/dist/src/init/helpers-generator.d.ts +0 -87
  287. package/dist/src/init/helpers-generator.js +0 -1456
  288. package/dist/src/init/index.d.ts +0 -13
  289. package/dist/src/init/index.js +0 -15
  290. package/dist/src/init/mcp-generator.d.ts +0 -26
  291. package/dist/src/init/mcp-generator.js +0 -126
  292. package/dist/src/init/memory-package-resolver.d.ts +0 -53
  293. package/dist/src/init/memory-package-resolver.js +0 -118
  294. package/dist/src/init/settings-generator.d.ts +0 -14
  295. package/dist/src/init/settings-generator.js +0 -462
  296. package/dist/src/init/statusline-generator.d.ts +0 -28
  297. package/dist/src/init/statusline-generator.js +0 -177
  298. package/dist/src/init/types.d.ts +0 -331
  299. package/dist/src/init/types.js +0 -276
  300. package/dist/src/log-filters.d.ts +0 -46
  301. package/dist/src/log-filters.js +0 -107
  302. package/dist/src/mcp-client.d.ts +0 -92
  303. package/dist/src/mcp-client.js +0 -397
  304. package/dist/src/mcp-server.d.ts +0 -163
  305. package/dist/src/mcp-server.js +0 -751
  306. package/dist/src/mcp-tools/agent-execute-core.d.ts +0 -115
  307. package/dist/src/mcp-tools/agent-execute-core.js +0 -587
  308. package/dist/src/mcp-tools/agent-tools.d.ts +0 -9
  309. package/dist/src/mcp-tools/agent-tools.js +0 -837
  310. package/dist/src/mcp-tools/agentbbs-tools.d.ts +0 -28
  311. package/dist/src/mcp-tools/agentbbs-tools.js +0 -394
  312. package/dist/src/mcp-tools/agentdb-tools.d.ts +0 -35
  313. package/dist/src/mcp-tools/agentdb-tools.js +0 -1473
  314. package/dist/src/mcp-tools/agenticow-loader.d.ts +0 -59
  315. package/dist/src/mcp-tools/agenticow-loader.js +0 -105
  316. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +0 -24
  317. package/dist/src/mcp-tools/agenticow-speculate-tools.js +0 -209
  318. package/dist/src/mcp-tools/agenticow-tools.d.ts +0 -36
  319. package/dist/src/mcp-tools/agenticow-tools.js +0 -360
  320. package/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
  321. package/dist/src/mcp-tools/analyze-tools.js +0 -346
  322. package/dist/src/mcp-tools/auto-install.d.ts +0 -83
  323. package/dist/src/mcp-tools/auto-install.js +0 -131
  324. package/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
  325. package/dist/src/mcp-tools/autopilot-tools.js +0 -231
  326. package/dist/src/mcp-tools/browser-intent-tools.d.ts +0 -162
  327. package/dist/src/mcp-tools/browser-intent-tools.js +0 -548
  328. package/dist/src/mcp-tools/browser-session-tools.d.ts +0 -27
  329. package/dist/src/mcp-tools/browser-session-tools.js +0 -398
  330. package/dist/src/mcp-tools/browser-tools.d.ts +0 -21
  331. package/dist/src/mcp-tools/browser-tools.js +0 -760
  332. package/dist/src/mcp-tools/business-pod-tools.d.ts +0 -20
  333. package/dist/src/mcp-tools/business-pod-tools.js +0 -169
  334. package/dist/src/mcp-tools/claims-tools.d.ts +0 -12
  335. package/dist/src/mcp-tools/claims-tools.js +0 -863
  336. package/dist/src/mcp-tools/config-tools.d.ts +0 -8
  337. package/dist/src/mcp-tools/config-tools.js +0 -411
  338. package/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  339. package/dist/src/mcp-tools/coordination-tools.js +0 -729
  340. package/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  341. package/dist/src/mcp-tools/daa-tools.js +0 -534
  342. package/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
  343. package/dist/src/mcp-tools/embeddings-tools.js +0 -904
  344. package/dist/src/mcp-tools/github-tools.d.ts +0 -9
  345. package/dist/src/mcp-tools/github-tools.js +0 -659
  346. package/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
  347. package/dist/src/mcp-tools/guidance-tools.js +0 -639
  348. package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
  349. package/dist/src/mcp-tools/hive-mind-tools.js +0 -953
  350. package/dist/src/mcp-tools/hooks-tools.d.ts +0 -65
  351. package/dist/src/mcp-tools/hooks-tools.js +0 -4824
  352. package/dist/src/mcp-tools/http-fetch-tools.d.ts +0 -55
  353. package/dist/src/mcp-tools/http-fetch-tools.js +0 -329
  354. package/dist/src/mcp-tools/index.d.ts +0 -34
  355. package/dist/src/mcp-tools/index.js +0 -40
  356. package/dist/src/mcp-tools/managed-agent-tools.d.ts +0 -22
  357. package/dist/src/mcp-tools/managed-agent-tools.js +0 -357
  358. package/dist/src/mcp-tools/memory-tools.d.ts +0 -14
  359. package/dist/src/mcp-tools/memory-tools.js +0 -1330
  360. package/dist/src/mcp-tools/metaharness-tools.d.ts +0 -51
  361. package/dist/src/mcp-tools/metaharness-tools.js +0 -684
  362. package/dist/src/mcp-tools/neural-tools.d.ts +0 -54
  363. package/dist/src/mcp-tools/neural-tools.js +0 -1168
  364. package/dist/src/mcp-tools/performance-tools.d.ts +0 -16
  365. package/dist/src/mcp-tools/performance-tools.js +0 -675
  366. package/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  367. package/dist/src/mcp-tools/progress-tools.js +0 -348
  368. package/dist/src/mcp-tools/request-tracker.d.ts +0 -17
  369. package/dist/src/mcp-tools/request-tracker.js +0 -27
  370. package/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
  371. package/dist/src/mcp-tools/ruvllm-tools.js +0 -355
  372. package/dist/src/mcp-tools/security-tools.d.ts +0 -18
  373. package/dist/src/mcp-tools/security-tools.js +0 -556
  374. package/dist/src/mcp-tools/session-tools.d.ts +0 -8
  375. package/dist/src/mcp-tools/session-tools.js +0 -517
  376. package/dist/src/mcp-tools/swarm-tools.d.ts +0 -37
  377. package/dist/src/mcp-tools/swarm-tools.js +0 -390
  378. package/dist/src/mcp-tools/system-tools.d.ts +0 -13
  379. package/dist/src/mcp-tools/system-tools.js +0 -688
  380. package/dist/src/mcp-tools/task-tools.d.ts +0 -8
  381. package/dist/src/mcp-tools/task-tools.js +0 -487
  382. package/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
  383. package/dist/src/mcp-tools/terminal-tools.js +0 -306
  384. package/dist/src/mcp-tools/testgen-tools.d.ts +0 -26
  385. package/dist/src/mcp-tools/testgen-tools.js +0 -168
  386. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +0 -31
  387. package/dist/src/mcp-tools/tool-loop-guardrail.js +0 -71
  388. package/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
  389. package/dist/src/mcp-tools/transfer-tools.js +0 -447
  390. package/dist/src/mcp-tools/types.d.ts +0 -8
  391. package/dist/src/mcp-tools/types.js +0 -8
  392. package/dist/src/mcp-tools/validate-input.d.ts +0 -9
  393. package/dist/src/mcp-tools/validate-input.js +0 -9
  394. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -13
  395. package/dist/src/mcp-tools/wasm-agent-tools.js +0 -840
  396. package/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  397. package/dist/src/mcp-tools/workflow-tools.js +0 -884
  398. package/dist/src/memory/bge-embedder.d.ts +0 -25
  399. package/dist/src/memory/bge-embedder.js +0 -121
  400. package/dist/src/memory/cross-encoder-rerank.d.ts +0 -33
  401. package/dist/src/memory/cross-encoder-rerank.js +0 -123
  402. package/dist/src/memory/embedding-policy.d.ts +0 -21
  403. package/dist/src/memory/embedding-policy.js +0 -30
  404. package/dist/src/memory/embedding-quantization.d.ts +0 -62
  405. package/dist/src/memory/embedding-quantization.js +0 -156
  406. package/dist/src/memory/ewc-consolidation.d.ts +0 -305
  407. package/dist/src/memory/ewc-consolidation.js +0 -611
  408. package/dist/src/memory/graph-edge-writer.d.ts +0 -95
  409. package/dist/src/memory/graph-edge-writer.js +0 -217
  410. package/dist/src/memory/hybrid-retrieval.d.ts +0 -77
  411. package/dist/src/memory/hybrid-retrieval.js +0 -192
  412. package/dist/src/memory/intelligence.d.ts +0 -405
  413. package/dist/src/memory/intelligence.js +0 -1316
  414. package/dist/src/memory/lucene-bm25.d.ts +0 -19
  415. package/dist/src/memory/lucene-bm25.js +0 -308
  416. package/dist/src/memory/memory-bridge.d.ts +0 -537
  417. package/dist/src/memory/memory-bridge.js +0 -2460
  418. package/dist/src/memory/memory-initializer.d.ts +0 -556
  419. package/dist/src/memory/memory-initializer.js +0 -3021
  420. package/dist/src/memory/neural-package-bridge.d.ts +0 -48
  421. package/dist/src/memory/neural-package-bridge.js +0 -87
  422. package/dist/src/memory/rabitq-index.d.ts +0 -60
  423. package/dist/src/memory/rabitq-index.js +0 -242
  424. package/dist/src/memory/sona-optimizer.d.ts +0 -267
  425. package/dist/src/memory/sona-optimizer.js +0 -779
  426. package/dist/src/memory/structured-distill.d.ts +0 -48
  427. package/dist/src/memory/structured-distill.js +0 -125
  428. package/dist/src/output.d.ts +0 -9
  429. package/dist/src/output.js +0 -9
  430. package/dist/src/parser.d.ts +0 -89
  431. package/dist/src/parser.js +0 -516
  432. package/dist/src/plugins/manager.d.ts +0 -133
  433. package/dist/src/plugins/manager.js +0 -415
  434. package/dist/src/plugins/store/discovery.d.ts +0 -99
  435. package/dist/src/plugins/store/discovery.js +0 -1224
  436. package/dist/src/plugins/store/index.d.ts +0 -76
  437. package/dist/src/plugins/store/index.js +0 -141
  438. package/dist/src/plugins/store/search.d.ts +0 -46
  439. package/dist/src/plugins/store/search.js +0 -230
  440. package/dist/src/plugins/store/types.d.ts +0 -279
  441. package/dist/src/plugins/store/types.js +0 -7
  442. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  443. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  444. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  445. package/dist/src/plugins/tests/standalone-test.js +0 -188
  446. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  447. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  448. package/dist/src/production/circuit-breaker.d.ts +0 -101
  449. package/dist/src/production/circuit-breaker.js +0 -241
  450. package/dist/src/production/error-handler.d.ts +0 -92
  451. package/dist/src/production/error-handler.js +0 -299
  452. package/dist/src/production/index.d.ts +0 -23
  453. package/dist/src/production/index.js +0 -18
  454. package/dist/src/production/monitoring.d.ts +0 -161
  455. package/dist/src/production/monitoring.js +0 -356
  456. package/dist/src/production/rate-limiter.d.ts +0 -80
  457. package/dist/src/production/rate-limiter.js +0 -201
  458. package/dist/src/production/retry.d.ts +0 -48
  459. package/dist/src/production/retry.js +0 -179
  460. package/dist/src/prompt.d.ts +0 -44
  461. package/dist/src/prompt.js +0 -501
  462. package/dist/src/runtime/headless.d.ts +0 -60
  463. package/dist/src/runtime/headless.js +0 -284
  464. package/dist/src/runtime/parent-death-watchdog.d.ts +0 -42
  465. package/dist/src/runtime/parent-death-watchdog.js +0 -70
  466. package/dist/src/ruvector/agent-wasm.d.ts +0 -228
  467. package/dist/src/ruvector/agent-wasm.js +0 -463
  468. package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  469. package/dist/src/ruvector/ast-analyzer.js +0 -277
  470. package/dist/src/ruvector/codemods/engine.d.ts +0 -45
  471. package/dist/src/ruvector/codemods/engine.js +0 -291
  472. package/dist/src/ruvector/codemods/scope-analysis.d.ts +0 -29
  473. package/dist/src/ruvector/codemods/scope-analysis.js +0 -162
  474. package/dist/src/ruvector/coverage-router.d.ts +0 -160
  475. package/dist/src/ruvector/coverage-router.js +0 -531
  476. package/dist/src/ruvector/coverage-tools.d.ts +0 -33
  477. package/dist/src/ruvector/coverage-tools.js +0 -157
  478. package/dist/src/ruvector/diff-classifier.d.ts +0 -175
  479. package/dist/src/ruvector/diff-classifier.js +0 -699
  480. package/dist/src/ruvector/diskann-backend.d.ts +0 -78
  481. package/dist/src/ruvector/diskann-backend.js +0 -310
  482. package/dist/src/ruvector/enhanced-model-router.d.ts +0 -172
  483. package/dist/src/ruvector/enhanced-model-router.js +0 -577
  484. package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  485. package/dist/src/ruvector/graph-analyzer.js +0 -929
  486. package/dist/src/ruvector/graph-backend.d.ts +0 -79
  487. package/dist/src/ruvector/graph-backend.js +0 -220
  488. package/dist/src/ruvector/index.d.ts +0 -38
  489. package/dist/src/ruvector/index.js +0 -86
  490. package/dist/src/ruvector/lora-adapter.d.ts +0 -292
  491. package/dist/src/ruvector/lora-adapter.js +0 -710
  492. package/dist/src/ruvector/model-prices.d.ts +0 -50
  493. package/dist/src/ruvector/model-prices.js +0 -72
  494. package/dist/src/ruvector/model-router.d.ts +0 -408
  495. package/dist/src/ruvector/model-router.js +0 -1162
  496. package/dist/src/ruvector/neural-router.d.ts +0 -182
  497. package/dist/src/ruvector/neural-router.js +0 -825
  498. package/dist/src/ruvector/output-verifier.d.ts +0 -83
  499. package/dist/src/ruvector/output-verifier.js +0 -277
  500. package/dist/src/ruvector/q-learning-router.d.ts +0 -227
  501. package/dist/src/ruvector/q-learning-router.js +0 -721
  502. package/dist/src/ruvector/router-calibrator.d.ts +0 -65
  503. package/dist/src/ruvector/router-calibrator.js +0 -120
  504. package/dist/src/ruvector/router-parallel-recorder.d.ts +0 -127
  505. package/dist/src/ruvector/router-parallel-recorder.js +0 -183
  506. package/dist/src/ruvector/router-trajectory.d.ts +0 -194
  507. package/dist/src/ruvector/router-trajectory.js +0 -281
  508. package/dist/src/ruvector/run-transcript-recorder.d.ts +0 -154
  509. package/dist/src/ruvector/run-transcript-recorder.js +0 -209
  510. package/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
  511. package/dist/src/ruvector/ruvllm-wasm.js +0 -379
  512. package/dist/src/ruvector/semantic-router.d.ts +0 -77
  513. package/dist/src/ruvector/semantic-router.js +0 -178
  514. package/dist/src/ruvector/task-embedder.d.ts +0 -56
  515. package/dist/src/ruvector/task-embedder.js +0 -237
  516. package/dist/src/ruvector/trajectory-tree.d.ts +0 -113
  517. package/dist/src/ruvector/trajectory-tree.js +0 -237
  518. package/dist/src/ruvector/vector-db.d.ts +0 -73
  519. package/dist/src/ruvector/vector-db.js +0 -301
  520. package/dist/src/ruvector/wasm-embedder.d.ts +0 -13
  521. package/dist/src/ruvector/wasm-embedder.js +0 -143
  522. package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  523. package/dist/src/services/agentic-flow-bridge.js +0 -95
  524. package/dist/src/services/ai-job-dedup.d.ts +0 -61
  525. package/dist/src/services/ai-job-dedup.js +0 -136
  526. package/dist/src/services/checkpoint-gate.d.ts +0 -140
  527. package/dist/src/services/checkpoint-gate.js +0 -223
  528. package/dist/src/services/claim-service.d.ts +0 -204
  529. package/dist/src/services/claim-service.js +0 -818
  530. package/dist/src/services/config-file-manager.d.ts +0 -37
  531. package/dist/src/services/config-file-manager.js +0 -224
  532. package/dist/src/services/container-worker-pool.d.ts +0 -204
  533. package/dist/src/services/container-worker-pool.js +0 -589
  534. package/dist/src/services/daemon-autostart.d.ts +0 -17
  535. package/dist/src/services/daemon-autostart.js +0 -102
  536. package/dist/src/services/distill-oracle.d.ts +0 -190
  537. package/dist/src/services/distill-oracle.js +0 -349
  538. package/dist/src/services/distill-tuning.d.ts +0 -111
  539. package/dist/src/services/distill-tuning.js +0 -510
  540. package/dist/src/services/evolve-proof.d.ts +0 -253
  541. package/dist/src/services/evolve-proof.js +0 -343
  542. package/dist/src/services/fable-harness.d.ts +0 -207
  543. package/dist/src/services/fable-harness.js +0 -388
  544. package/dist/src/services/git-workspace-identity.d.ts +0 -42
  545. package/dist/src/services/git-workspace-identity.js +0 -99
  546. package/dist/src/services/global-ai-budget.d.ts +0 -135
  547. package/dist/src/services/global-ai-budget.js +0 -415
  548. package/dist/src/services/harness-benchmark.d.ts +0 -68
  549. package/dist/src/services/harness-benchmark.js +0 -94
  550. package/dist/src/services/harness-canary.d.ts +0 -60
  551. package/dist/src/services/harness-canary.js +0 -69
  552. package/dist/src/services/harness-corpus-harvester.d.ts +0 -51
  553. package/dist/src/services/harness-corpus-harvester.js +0 -74
  554. package/dist/src/services/harness-flywheel-generations.d.ts +0 -115
  555. package/dist/src/services/harness-flywheel-generations.js +0 -360
  556. package/dist/src/services/harness-flywheel-runtime.d.ts +0 -25
  557. package/dist/src/services/harness-flywheel-runtime.js +0 -92
  558. package/dist/src/services/harness-flywheel.d.ts +0 -48
  559. package/dist/src/services/harness-flywheel.js +0 -207
  560. package/dist/src/services/harness-frozen-eval.d.ts +0 -22
  561. package/dist/src/services/harness-frozen-eval.js +0 -66
  562. package/dist/src/services/harness-hosts.d.ts +0 -40
  563. package/dist/src/services/harness-hosts.js +0 -88
  564. package/dist/src/services/harness-improvement-ledger.d.ts +0 -63
  565. package/dist/src/services/harness-improvement-ledger.js +0 -101
  566. package/dist/src/services/harness-loop.d.ts +0 -53
  567. package/dist/src/services/harness-loop.js +0 -85
  568. package/dist/src/services/harness-qualification.d.ts +0 -66
  569. package/dist/src/services/harness-qualification.js +0 -143
  570. package/dist/src/services/harness-replay.d.ts +0 -37
  571. package/dist/src/services/harness-replay.js +0 -92
  572. package/dist/src/services/harness-verify.d.ts +0 -33
  573. package/dist/src/services/harness-verify.js +0 -26
  574. package/dist/src/services/harness-worker.d.ts +0 -23
  575. package/dist/src/services/harness-worker.js +0 -66
  576. package/dist/src/services/headless-worker-executor.d.ts +0 -358
  577. package/dist/src/services/headless-worker-executor.js +0 -1269
  578. package/dist/src/services/index.d.ts +0 -13
  579. package/dist/src/services/index.js +0 -11
  580. package/dist/src/services/memory-backup.d.ts +0 -53
  581. package/dist/src/services/memory-backup.js +0 -198
  582. package/dist/src/services/memory-distillation.d.ts +0 -41
  583. package/dist/src/services/memory-distillation.js +0 -277
  584. package/dist/src/services/native-training.d.ts +0 -68
  585. package/dist/src/services/native-training.js +0 -141
  586. package/dist/src/services/registry-api.d.ts +0 -58
  587. package/dist/src/services/registry-api.js +0 -146
  588. package/dist/src/services/repo-supervisor.d.ts +0 -70
  589. package/dist/src/services/repo-supervisor.js +0 -228
  590. package/dist/src/services/ruvector-training.d.ts +0 -222
  591. package/dist/src/services/ruvector-training.js +0 -693
  592. package/dist/src/services/swarm-memory-branches.d.ts +0 -135
  593. package/dist/src/services/swarm-memory-branches.js +0 -213
  594. package/dist/src/services/weight-eft.d.ts +0 -305
  595. package/dist/src/services/weight-eft.js +0 -296
  596. package/dist/src/services/worker-daemon.d.ts +0 -439
  597. package/dist/src/services/worker-daemon.js +0 -1865
  598. package/dist/src/services/worker-queue.d.ts +0 -194
  599. package/dist/src/services/worker-queue.js +0 -513
  600. package/dist/src/services/workspace-lease.d.ts +0 -55
  601. package/dist/src/services/workspace-lease.js +0 -191
  602. package/dist/src/suggest.d.ts +0 -53
  603. package/dist/src/suggest.js +0 -200
  604. package/dist/src/transfer/anonymization/index.d.ts +0 -25
  605. package/dist/src/transfer/anonymization/index.js +0 -175
  606. package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  607. package/dist/src/transfer/deploy-seraphine.js +0 -205
  608. package/dist/src/transfer/export.d.ts +0 -25
  609. package/dist/src/transfer/export.js +0 -113
  610. package/dist/src/transfer/index.d.ts +0 -12
  611. package/dist/src/transfer/index.js +0 -31
  612. package/dist/src/transfer/ipfs/client.d.ts +0 -109
  613. package/dist/src/transfer/ipfs/client.js +0 -307
  614. package/dist/src/transfer/ipfs/upload.d.ts +0 -95
  615. package/dist/src/transfer/ipfs/upload.js +0 -413
  616. package/dist/src/transfer/models/seraphine.d.ts +0 -72
  617. package/dist/src/transfer/models/seraphine.js +0 -373
  618. package/dist/src/transfer/serialization/cfp.d.ts +0 -49
  619. package/dist/src/transfer/serialization/cfp.js +0 -183
  620. package/dist/src/transfer/storage/gcs.d.ts +0 -82
  621. package/dist/src/transfer/storage/gcs.js +0 -272
  622. package/dist/src/transfer/storage/index.d.ts +0 -6
  623. package/dist/src/transfer/storage/index.js +0 -6
  624. package/dist/src/transfer/store/discovery.d.ts +0 -84
  625. package/dist/src/transfer/store/discovery.js +0 -382
  626. package/dist/src/transfer/store/download.d.ts +0 -70
  627. package/dist/src/transfer/store/download.js +0 -334
  628. package/dist/src/transfer/store/index.d.ts +0 -84
  629. package/dist/src/transfer/store/index.js +0 -153
  630. package/dist/src/transfer/store/publish.d.ts +0 -76
  631. package/dist/src/transfer/store/publish.js +0 -294
  632. package/dist/src/transfer/store/registry.d.ts +0 -58
  633. package/dist/src/transfer/store/registry.js +0 -285
  634. package/dist/src/transfer/store/search.d.ts +0 -54
  635. package/dist/src/transfer/store/search.js +0 -232
  636. package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  637. package/dist/src/transfer/store/tests/standalone-test.js +0 -190
  638. package/dist/src/transfer/store/types.d.ts +0 -193
  639. package/dist/src/transfer/store/types.js +0 -6
  640. package/dist/src/transfer/test-seraphine.d.ts +0 -6
  641. package/dist/src/transfer/test-seraphine.js +0 -105
  642. package/dist/src/transfer/tests/test-store.d.ts +0 -7
  643. package/dist/src/transfer/tests/test-store.js +0 -214
  644. package/dist/src/transfer/types.d.ts +0 -245
  645. package/dist/src/transfer/types.js +0 -6
  646. package/dist/src/types.d.ts +0 -13
  647. package/dist/src/types.js +0 -13
  648. package/dist/src/update/checker.d.ts +0 -34
  649. package/dist/src/update/checker.js +0 -191
  650. package/dist/src/update/executor.d.ts +0 -33
  651. package/dist/src/update/executor.js +0 -217
  652. package/dist/src/update/index.d.ts +0 -33
  653. package/dist/src/update/index.js +0 -64
  654. package/dist/src/update/rate-limiter.d.ts +0 -20
  655. package/dist/src/update/rate-limiter.js +0 -96
  656. package/dist/src/update/validator.d.ts +0 -17
  657. 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