@claude-flow/cli 3.21.1 → 3.22.0

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 (568) hide show
  1. package/.claude/helpers/helpers.manifest.json +12 -0
  2. package/.claude/helpers/hook-handler.cjs +26 -5
  3. package/.claude/helpers/intelligence.cjs +4 -1
  4. package/dist/src/commands/daemon.js +23 -2
  5. package/dist/src/commands/memory-distill.d.ts +27 -0
  6. package/dist/src/commands/memory-distill.js +374 -0
  7. package/dist/src/commands/memory.js +4 -2
  8. package/dist/src/index.d.ts +1 -1
  9. package/dist/src/index.js +22 -1
  10. package/dist/src/init/executor.js +20 -0
  11. package/dist/src/init/helper-refresh.d.ts +19 -0
  12. package/dist/src/init/helper-refresh.js +175 -0
  13. package/dist/src/init/helper-signing.d.ts +30 -0
  14. package/dist/src/init/helper-signing.js +60 -0
  15. package/dist/src/init/helpers-generator.d.ts +16 -0
  16. package/dist/src/init/helpers-generator.js +63 -6
  17. package/dist/src/init/statusline-generator.js +18 -7
  18. package/dist/src/mcp-client.js +13 -0
  19. package/dist/src/mcp-tools/agenticow-speculate-tools.js +9 -2
  20. package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
  21. package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
  22. package/dist/src/mcp-tools/browser-tools.d.ts +9 -1
  23. package/dist/src/mcp-tools/browser-tools.js +4 -1
  24. package/dist/src/memory/memory-bridge.js +67 -47
  25. package/dist/src/memory/memory-initializer.d.ts +71 -0
  26. package/dist/src/memory/memory-initializer.js +330 -2
  27. package/dist/src/services/distill-tuning.d.ts +111 -0
  28. package/dist/src/services/distill-tuning.js +510 -0
  29. package/dist/src/services/memory-distillation.d.ts +41 -0
  30. package/dist/src/services/memory-distillation.js +277 -0
  31. package/dist/src/services/worker-daemon.d.ts +22 -1
  32. package/dist/src/services/worker-daemon.js +117 -6
  33. package/package.json +5 -2
  34. package/dist/src/agenticow/speculative-exploration.d.ts.map +0 -1
  35. package/dist/src/agenticow/speculative-exploration.js.map +0 -1
  36. package/dist/src/appliance/gguf-engine.d.ts.map +0 -1
  37. package/dist/src/appliance/gguf-engine.js.map +0 -1
  38. package/dist/src/appliance/ruvllm-bridge.d.ts.map +0 -1
  39. package/dist/src/appliance/ruvllm-bridge.js.map +0 -1
  40. package/dist/src/appliance/rvfa-builder.d.ts.map +0 -1
  41. package/dist/src/appliance/rvfa-builder.js.map +0 -1
  42. package/dist/src/appliance/rvfa-distribution.d.ts.map +0 -1
  43. package/dist/src/appliance/rvfa-distribution.js.map +0 -1
  44. package/dist/src/appliance/rvfa-format.d.ts.map +0 -1
  45. package/dist/src/appliance/rvfa-format.js.map +0 -1
  46. package/dist/src/appliance/rvfa-runner.d.ts.map +0 -1
  47. package/dist/src/appliance/rvfa-runner.js.map +0 -1
  48. package/dist/src/appliance/rvfa-signing.d.ts.map +0 -1
  49. package/dist/src/appliance/rvfa-signing.js.map +0 -1
  50. package/dist/src/autopilot-state.d.ts.map +0 -1
  51. package/dist/src/autopilot-state.js.map +0 -1
  52. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts.map +0 -1
  53. package/dist/src/benchmarks/gaia-agent-planning.smoke.js.map +0 -1
  54. package/dist/src/benchmarks/gaia-agent.d.ts.map +0 -1
  55. package/dist/src/benchmarks/gaia-agent.js.map +0 -1
  56. package/dist/src/benchmarks/gaia-causal-memory.d.ts.map +0 -1
  57. package/dist/src/benchmarks/gaia-causal-memory.js.map +0 -1
  58. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts.map +0 -1
  59. package/dist/src/benchmarks/gaia-causal-memory.smoke.js.map +0 -1
  60. package/dist/src/benchmarks/gaia-convergence.d.ts.map +0 -1
  61. package/dist/src/benchmarks/gaia-convergence.js.map +0 -1
  62. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts.map +0 -1
  63. package/dist/src/benchmarks/gaia-convergence.smoke.js.map +0 -1
  64. package/dist/src/benchmarks/gaia-critic.d.ts.map +0 -1
  65. package/dist/src/benchmarks/gaia-critic.js.map +0 -1
  66. package/dist/src/benchmarks/gaia-critic.smoke.d.ts.map +0 -1
  67. package/dist/src/benchmarks/gaia-critic.smoke.js.map +0 -1
  68. package/dist/src/benchmarks/gaia-decomposer.d.ts.map +0 -1
  69. package/dist/src/benchmarks/gaia-decomposer.js.map +0 -1
  70. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts.map +0 -1
  71. package/dist/src/benchmarks/gaia-decomposer.smoke.js.map +0 -1
  72. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts.map +0 -1
  73. package/dist/src/benchmarks/gaia-e2e-smoke.js.map +0 -1
  74. package/dist/src/benchmarks/gaia-extract.smoke.d.ts.map +0 -1
  75. package/dist/src/benchmarks/gaia-extract.smoke.js.map +0 -1
  76. package/dist/src/benchmarks/gaia-hardness/features.d.ts.map +0 -1
  77. package/dist/src/benchmarks/gaia-hardness/features.js.map +0 -1
  78. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts.map +0 -1
  79. package/dist/src/benchmarks/gaia-hardness/predictor.js.map +0 -1
  80. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts.map +0 -1
  81. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js.map +0 -1
  82. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts.map +0 -1
  83. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js.map +0 -1
  84. package/dist/src/benchmarks/gaia-judge.d.ts.map +0 -1
  85. package/dist/src/benchmarks/gaia-judge.js.map +0 -1
  86. package/dist/src/benchmarks/gaia-loader.d.ts.map +0 -1
  87. package/dist/src/benchmarks/gaia-loader.js.map +0 -1
  88. package/dist/src/benchmarks/gaia-tools/file_read.d.ts.map +0 -1
  89. package/dist/src/benchmarks/gaia-tools/file_read.js.map +0 -1
  90. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts.map +0 -1
  91. package/dist/src/benchmarks/gaia-tools/grounded_query.js.map +0 -1
  92. package/dist/src/benchmarks/gaia-tools/index.d.ts.map +0 -1
  93. package/dist/src/benchmarks/gaia-tools/index.js.map +0 -1
  94. package/dist/src/benchmarks/gaia-tools/types.d.ts.map +0 -1
  95. package/dist/src/benchmarks/gaia-tools/types.js.map +0 -1
  96. package/dist/src/benchmarks/gaia-tools/web_search.d.ts.map +0 -1
  97. package/dist/src/benchmarks/gaia-tools/web_search.js.map +0 -1
  98. package/dist/src/benchmarks/gaia-voting.d.ts.map +0 -1
  99. package/dist/src/benchmarks/gaia-voting.js.map +0 -1
  100. package/dist/src/benchmarks/gaia-voting.smoke.d.ts.map +0 -1
  101. package/dist/src/benchmarks/gaia-voting.smoke.js.map +0 -1
  102. package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
  103. package/dist/src/benchmarks/pretrain/index.js.map +0 -1
  104. package/dist/src/business-pods/bbs-budget-tracker.d.ts.map +0 -1
  105. package/dist/src/business-pods/bbs-budget-tracker.js.map +0 -1
  106. package/dist/src/business-pods/domain-affinity-policy.d.ts.map +0 -1
  107. package/dist/src/business-pods/domain-affinity-policy.js.map +0 -1
  108. package/dist/src/business-pods/pod-schema.d.ts.map +0 -1
  109. package/dist/src/business-pods/pod-schema.js.map +0 -1
  110. package/dist/src/commands/agent-wasm.d.ts.map +0 -1
  111. package/dist/src/commands/agent-wasm.js.map +0 -1
  112. package/dist/src/commands/agent.d.ts.map +0 -1
  113. package/dist/src/commands/agent.js.map +0 -1
  114. package/dist/src/commands/analyze.d.ts.map +0 -1
  115. package/dist/src/commands/analyze.js.map +0 -1
  116. package/dist/src/commands/appliance-advanced.d.ts.map +0 -1
  117. package/dist/src/commands/appliance-advanced.js.map +0 -1
  118. package/dist/src/commands/appliance.d.ts.map +0 -1
  119. package/dist/src/commands/appliance.js.map +0 -1
  120. package/dist/src/commands/autopilot.d.ts.map +0 -1
  121. package/dist/src/commands/autopilot.js.map +0 -1
  122. package/dist/src/commands/benchmark.d.ts.map +0 -1
  123. package/dist/src/commands/benchmark.js.map +0 -1
  124. package/dist/src/commands/claims.d.ts.map +0 -1
  125. package/dist/src/commands/claims.js.map +0 -1
  126. package/dist/src/commands/cleanup.d.ts.map +0 -1
  127. package/dist/src/commands/cleanup.js.map +0 -1
  128. package/dist/src/commands/completions.d.ts.map +0 -1
  129. package/dist/src/commands/completions.js.map +0 -1
  130. package/dist/src/commands/config.d.ts.map +0 -1
  131. package/dist/src/commands/config.js.map +0 -1
  132. package/dist/src/commands/daemon.d.ts.map +0 -1
  133. package/dist/src/commands/daemon.js.map +0 -1
  134. package/dist/src/commands/deployment.d.ts.map +0 -1
  135. package/dist/src/commands/deployment.js.map +0 -1
  136. package/dist/src/commands/doctor.d.ts.map +0 -1
  137. package/dist/src/commands/doctor.js.map +0 -1
  138. package/dist/src/commands/eject.d.ts.map +0 -1
  139. package/dist/src/commands/eject.js.map +0 -1
  140. package/dist/src/commands/embeddings.d.ts.map +0 -1
  141. package/dist/src/commands/embeddings.js.map +0 -1
  142. package/dist/src/commands/gaia-bench.d.ts.map +0 -1
  143. package/dist/src/commands/gaia-bench.js.map +0 -1
  144. package/dist/src/commands/guidance.d.ts.map +0 -1
  145. package/dist/src/commands/guidance.js.map +0 -1
  146. package/dist/src/commands/hive-mind.d.ts.map +0 -1
  147. package/dist/src/commands/hive-mind.js.map +0 -1
  148. package/dist/src/commands/hooks.d.ts.map +0 -1
  149. package/dist/src/commands/hooks.js.map +0 -1
  150. package/dist/src/commands/index.d.ts.map +0 -1
  151. package/dist/src/commands/index.js.map +0 -1
  152. package/dist/src/commands/init.d.ts.map +0 -1
  153. package/dist/src/commands/init.js.map +0 -1
  154. package/dist/src/commands/issues.d.ts.map +0 -1
  155. package/dist/src/commands/issues.js.map +0 -1
  156. package/dist/src/commands/mcp.d.ts.map +0 -1
  157. package/dist/src/commands/mcp.js.map +0 -1
  158. package/dist/src/commands/memory.d.ts.map +0 -1
  159. package/dist/src/commands/memory.js.map +0 -1
  160. package/dist/src/commands/metaharness.d.ts.map +0 -1
  161. package/dist/src/commands/metaharness.js.map +0 -1
  162. package/dist/src/commands/migrate.d.ts.map +0 -1
  163. package/dist/src/commands/migrate.js.map +0 -1
  164. package/dist/src/commands/neural.d.ts.map +0 -1
  165. package/dist/src/commands/neural.js.map +0 -1
  166. package/dist/src/commands/performance.d.ts.map +0 -1
  167. package/dist/src/commands/performance.js.map +0 -1
  168. package/dist/src/commands/plugins.d.ts.map +0 -1
  169. package/dist/src/commands/plugins.js.map +0 -1
  170. package/dist/src/commands/process.d.ts.map +0 -1
  171. package/dist/src/commands/process.js.map +0 -1
  172. package/dist/src/commands/progress.d.ts.map +0 -1
  173. package/dist/src/commands/progress.js.map +0 -1
  174. package/dist/src/commands/providers.d.ts.map +0 -1
  175. package/dist/src/commands/providers.js.map +0 -1
  176. package/dist/src/commands/route.d.ts.map +0 -1
  177. package/dist/src/commands/route.js.map +0 -1
  178. package/dist/src/commands/ruvector/backup.d.ts.map +0 -1
  179. package/dist/src/commands/ruvector/backup.js.map +0 -1
  180. package/dist/src/commands/ruvector/benchmark.d.ts.map +0 -1
  181. package/dist/src/commands/ruvector/benchmark.js.map +0 -1
  182. package/dist/src/commands/ruvector/import.d.ts.map +0 -1
  183. package/dist/src/commands/ruvector/import.js.map +0 -1
  184. package/dist/src/commands/ruvector/index.d.ts.map +0 -1
  185. package/dist/src/commands/ruvector/index.js.map +0 -1
  186. package/dist/src/commands/ruvector/init.d.ts.map +0 -1
  187. package/dist/src/commands/ruvector/init.js.map +0 -1
  188. package/dist/src/commands/ruvector/migrate.d.ts.map +0 -1
  189. package/dist/src/commands/ruvector/migrate.js.map +0 -1
  190. package/dist/src/commands/ruvector/optimize.d.ts.map +0 -1
  191. package/dist/src/commands/ruvector/optimize.js.map +0 -1
  192. package/dist/src/commands/ruvector/pg-utils.d.ts.map +0 -1
  193. package/dist/src/commands/ruvector/pg-utils.js.map +0 -1
  194. package/dist/src/commands/ruvector/setup.d.ts.map +0 -1
  195. package/dist/src/commands/ruvector/setup.js.map +0 -1
  196. package/dist/src/commands/ruvector/status.d.ts.map +0 -1
  197. package/dist/src/commands/ruvector/status.js.map +0 -1
  198. package/dist/src/commands/security.d.ts.map +0 -1
  199. package/dist/src/commands/security.js.map +0 -1
  200. package/dist/src/commands/session.d.ts.map +0 -1
  201. package/dist/src/commands/session.js.map +0 -1
  202. package/dist/src/commands/start.d.ts.map +0 -1
  203. package/dist/src/commands/start.js.map +0 -1
  204. package/dist/src/commands/status.d.ts.map +0 -1
  205. package/dist/src/commands/status.js.map +0 -1
  206. package/dist/src/commands/swarm.d.ts.map +0 -1
  207. package/dist/src/commands/swarm.js.map +0 -1
  208. package/dist/src/commands/task.d.ts.map +0 -1
  209. package/dist/src/commands/task.js.map +0 -1
  210. package/dist/src/commands/transfer-store.d.ts.map +0 -1
  211. package/dist/src/commands/transfer-store.js.map +0 -1
  212. package/dist/src/commands/update.d.ts.map +0 -1
  213. package/dist/src/commands/update.js.map +0 -1
  214. package/dist/src/commands/verify.d.ts.map +0 -1
  215. package/dist/src/commands/verify.js.map +0 -1
  216. package/dist/src/commands/workflow.d.ts.map +0 -1
  217. package/dist/src/commands/workflow.js.map +0 -1
  218. package/dist/src/config-adapter.d.ts.map +0 -1
  219. package/dist/src/config-adapter.js.map +0 -1
  220. package/dist/src/encryption/vault.d.ts.map +0 -1
  221. package/dist/src/encryption/vault.js.map +0 -1
  222. package/dist/src/fs-secure.d.ts.map +0 -1
  223. package/dist/src/fs-secure.js.map +0 -1
  224. package/dist/src/index.d.ts.map +0 -1
  225. package/dist/src/index.js.map +0 -1
  226. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
  227. package/dist/src/infrastructure/in-memory-repositories.js.map +0 -1
  228. package/dist/src/init/claudemd-generator.d.ts.map +0 -1
  229. package/dist/src/init/claudemd-generator.js.map +0 -1
  230. package/dist/src/init/executor.d.ts.map +0 -1
  231. package/dist/src/init/executor.js.map +0 -1
  232. package/dist/src/init/helpers-generator.d.ts.map +0 -1
  233. package/dist/src/init/helpers-generator.js.map +0 -1
  234. package/dist/src/init/index.d.ts.map +0 -1
  235. package/dist/src/init/index.js.map +0 -1
  236. package/dist/src/init/mcp-generator.d.ts.map +0 -1
  237. package/dist/src/init/mcp-generator.js.map +0 -1
  238. package/dist/src/init/memory-package-resolver.d.ts.map +0 -1
  239. package/dist/src/init/memory-package-resolver.js.map +0 -1
  240. package/dist/src/init/settings-generator.d.ts.map +0 -1
  241. package/dist/src/init/settings-generator.js.map +0 -1
  242. package/dist/src/init/statusline-generator.d.ts.map +0 -1
  243. package/dist/src/init/statusline-generator.js.map +0 -1
  244. package/dist/src/init/types.d.ts.map +0 -1
  245. package/dist/src/init/types.js.map +0 -1
  246. package/dist/src/log-filters.d.ts.map +0 -1
  247. package/dist/src/log-filters.js.map +0 -1
  248. package/dist/src/mcp-client.d.ts.map +0 -1
  249. package/dist/src/mcp-client.js.map +0 -1
  250. package/dist/src/mcp-server.d.ts.map +0 -1
  251. package/dist/src/mcp-server.js.map +0 -1
  252. package/dist/src/mcp-tools/agent-execute-core.d.ts.map +0 -1
  253. package/dist/src/mcp-tools/agent-execute-core.js.map +0 -1
  254. package/dist/src/mcp-tools/agent-tools.d.ts.map +0 -1
  255. package/dist/src/mcp-tools/agent-tools.js.map +0 -1
  256. package/dist/src/mcp-tools/agentbbs-tools.d.ts.map +0 -1
  257. package/dist/src/mcp-tools/agentbbs-tools.js.map +0 -1
  258. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +0 -1
  259. package/dist/src/mcp-tools/agentdb-tools.js.map +0 -1
  260. package/dist/src/mcp-tools/agenticow-loader.d.ts.map +0 -1
  261. package/dist/src/mcp-tools/agenticow-loader.js.map +0 -1
  262. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts.map +0 -1
  263. package/dist/src/mcp-tools/agenticow-speculate-tools.js.map +0 -1
  264. package/dist/src/mcp-tools/agenticow-tools.d.ts.map +0 -1
  265. package/dist/src/mcp-tools/agenticow-tools.js.map +0 -1
  266. package/dist/src/mcp-tools/analyze-tools.d.ts.map +0 -1
  267. package/dist/src/mcp-tools/analyze-tools.js.map +0 -1
  268. package/dist/src/mcp-tools/auto-install.d.ts.map +0 -1
  269. package/dist/src/mcp-tools/auto-install.js.map +0 -1
  270. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +0 -1
  271. package/dist/src/mcp-tools/autopilot-tools.js.map +0 -1
  272. package/dist/src/mcp-tools/browser-session-tools.d.ts.map +0 -1
  273. package/dist/src/mcp-tools/browser-session-tools.js.map +0 -1
  274. package/dist/src/mcp-tools/browser-tools.d.ts.map +0 -1
  275. package/dist/src/mcp-tools/browser-tools.js.map +0 -1
  276. package/dist/src/mcp-tools/business-pod-tools.d.ts.map +0 -1
  277. package/dist/src/mcp-tools/business-pod-tools.js.map +0 -1
  278. package/dist/src/mcp-tools/claims-tools.d.ts.map +0 -1
  279. package/dist/src/mcp-tools/claims-tools.js.map +0 -1
  280. package/dist/src/mcp-tools/config-tools.d.ts.map +0 -1
  281. package/dist/src/mcp-tools/config-tools.js.map +0 -1
  282. package/dist/src/mcp-tools/coordination-tools.d.ts.map +0 -1
  283. package/dist/src/mcp-tools/coordination-tools.js.map +0 -1
  284. package/dist/src/mcp-tools/daa-tools.d.ts.map +0 -1
  285. package/dist/src/mcp-tools/daa-tools.js.map +0 -1
  286. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +0 -1
  287. package/dist/src/mcp-tools/embeddings-tools.js.map +0 -1
  288. package/dist/src/mcp-tools/github-tools.d.ts.map +0 -1
  289. package/dist/src/mcp-tools/github-tools.js.map +0 -1
  290. package/dist/src/mcp-tools/guidance-tools.d.ts.map +0 -1
  291. package/dist/src/mcp-tools/guidance-tools.js.map +0 -1
  292. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -1
  293. package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -1
  294. package/dist/src/mcp-tools/hooks-tools.d.ts.map +0 -1
  295. package/dist/src/mcp-tools/hooks-tools.js.map +0 -1
  296. package/dist/src/mcp-tools/http-fetch-tools.d.ts.map +0 -1
  297. package/dist/src/mcp-tools/http-fetch-tools.js.map +0 -1
  298. package/dist/src/mcp-tools/index.d.ts.map +0 -1
  299. package/dist/src/mcp-tools/index.js.map +0 -1
  300. package/dist/src/mcp-tools/managed-agent-tools.d.ts.map +0 -1
  301. package/dist/src/mcp-tools/managed-agent-tools.js.map +0 -1
  302. package/dist/src/mcp-tools/memory-tools.d.ts.map +0 -1
  303. package/dist/src/mcp-tools/memory-tools.js.map +0 -1
  304. package/dist/src/mcp-tools/metaharness-tools.d.ts.map +0 -1
  305. package/dist/src/mcp-tools/metaharness-tools.js.map +0 -1
  306. package/dist/src/mcp-tools/neural-tools.d.ts.map +0 -1
  307. package/dist/src/mcp-tools/neural-tools.js.map +0 -1
  308. package/dist/src/mcp-tools/performance-tools.d.ts.map +0 -1
  309. package/dist/src/mcp-tools/performance-tools.js.map +0 -1
  310. package/dist/src/mcp-tools/progress-tools.d.ts.map +0 -1
  311. package/dist/src/mcp-tools/progress-tools.js.map +0 -1
  312. package/dist/src/mcp-tools/request-tracker.d.ts.map +0 -1
  313. package/dist/src/mcp-tools/request-tracker.js.map +0 -1
  314. package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +0 -1
  315. package/dist/src/mcp-tools/ruvllm-tools.js.map +0 -1
  316. package/dist/src/mcp-tools/security-tools.d.ts.map +0 -1
  317. package/dist/src/mcp-tools/security-tools.js.map +0 -1
  318. package/dist/src/mcp-tools/session-tools.d.ts.map +0 -1
  319. package/dist/src/mcp-tools/session-tools.js.map +0 -1
  320. package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -1
  321. package/dist/src/mcp-tools/swarm-tools.js.map +0 -1
  322. package/dist/src/mcp-tools/system-tools.d.ts.map +0 -1
  323. package/dist/src/mcp-tools/system-tools.js.map +0 -1
  324. package/dist/src/mcp-tools/task-tools.d.ts.map +0 -1
  325. package/dist/src/mcp-tools/task-tools.js.map +0 -1
  326. package/dist/src/mcp-tools/terminal-tools.d.ts.map +0 -1
  327. package/dist/src/mcp-tools/terminal-tools.js.map +0 -1
  328. package/dist/src/mcp-tools/testgen-tools.d.ts.map +0 -1
  329. package/dist/src/mcp-tools/testgen-tools.js.map +0 -1
  330. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts.map +0 -1
  331. package/dist/src/mcp-tools/tool-loop-guardrail.js.map +0 -1
  332. package/dist/src/mcp-tools/transfer-tools.d.ts.map +0 -1
  333. package/dist/src/mcp-tools/transfer-tools.js.map +0 -1
  334. package/dist/src/mcp-tools/types.d.ts.map +0 -1
  335. package/dist/src/mcp-tools/types.js.map +0 -1
  336. package/dist/src/mcp-tools/validate-input.d.ts.map +0 -1
  337. package/dist/src/mcp-tools/validate-input.js.map +0 -1
  338. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +0 -1
  339. package/dist/src/mcp-tools/wasm-agent-tools.js.map +0 -1
  340. package/dist/src/mcp-tools/workflow-tools.d.ts.map +0 -1
  341. package/dist/src/mcp-tools/workflow-tools.js.map +0 -1
  342. package/dist/src/memory/bge-embedder.d.ts.map +0 -1
  343. package/dist/src/memory/bge-embedder.js.map +0 -1
  344. package/dist/src/memory/cross-encoder-rerank.d.ts.map +0 -1
  345. package/dist/src/memory/cross-encoder-rerank.js.map +0 -1
  346. package/dist/src/memory/embedding-quantization.d.ts.map +0 -1
  347. package/dist/src/memory/embedding-quantization.js.map +0 -1
  348. package/dist/src/memory/ewc-consolidation.d.ts.map +0 -1
  349. package/dist/src/memory/ewc-consolidation.js.map +0 -1
  350. package/dist/src/memory/graph-edge-writer.d.ts.map +0 -1
  351. package/dist/src/memory/graph-edge-writer.js.map +0 -1
  352. package/dist/src/memory/hybrid-retrieval.d.ts.map +0 -1
  353. package/dist/src/memory/hybrid-retrieval.js.map +0 -1
  354. package/dist/src/memory/intelligence.d.ts.map +0 -1
  355. package/dist/src/memory/intelligence.js.map +0 -1
  356. package/dist/src/memory/lucene-bm25.d.ts.map +0 -1
  357. package/dist/src/memory/lucene-bm25.js.map +0 -1
  358. package/dist/src/memory/memory-bridge.d.ts.map +0 -1
  359. package/dist/src/memory/memory-bridge.js.map +0 -1
  360. package/dist/src/memory/memory-initializer.d.ts.map +0 -1
  361. package/dist/src/memory/memory-initializer.js.map +0 -1
  362. package/dist/src/memory/neural-package-bridge.d.ts.map +0 -1
  363. package/dist/src/memory/neural-package-bridge.js.map +0 -1
  364. package/dist/src/memory/rabitq-index.d.ts.map +0 -1
  365. package/dist/src/memory/rabitq-index.js.map +0 -1
  366. package/dist/src/memory/sona-optimizer.d.ts.map +0 -1
  367. package/dist/src/memory/sona-optimizer.js.map +0 -1
  368. package/dist/src/memory/structured-distill.d.ts.map +0 -1
  369. package/dist/src/memory/structured-distill.js.map +0 -1
  370. package/dist/src/output.d.ts.map +0 -1
  371. package/dist/src/output.js.map +0 -1
  372. package/dist/src/parser.d.ts.map +0 -1
  373. package/dist/src/parser.js.map +0 -1
  374. package/dist/src/plugins/manager.d.ts.map +0 -1
  375. package/dist/src/plugins/manager.js.map +0 -1
  376. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  377. package/dist/src/plugins/store/discovery.js.map +0 -1
  378. package/dist/src/plugins/store/index.d.ts.map +0 -1
  379. package/dist/src/plugins/store/index.js.map +0 -1
  380. package/dist/src/plugins/store/search.d.ts.map +0 -1
  381. package/dist/src/plugins/store/search.js.map +0 -1
  382. package/dist/src/plugins/store/types.d.ts.map +0 -1
  383. package/dist/src/plugins/store/types.js.map +0 -1
  384. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  385. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  386. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  387. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  388. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  389. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  390. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  391. package/dist/src/production/circuit-breaker.js.map +0 -1
  392. package/dist/src/production/error-handler.d.ts.map +0 -1
  393. package/dist/src/production/error-handler.js.map +0 -1
  394. package/dist/src/production/index.d.ts.map +0 -1
  395. package/dist/src/production/index.js.map +0 -1
  396. package/dist/src/production/monitoring.d.ts.map +0 -1
  397. package/dist/src/production/monitoring.js.map +0 -1
  398. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  399. package/dist/src/production/rate-limiter.js.map +0 -1
  400. package/dist/src/production/retry.d.ts.map +0 -1
  401. package/dist/src/production/retry.js.map +0 -1
  402. package/dist/src/prompt.d.ts.map +0 -1
  403. package/dist/src/prompt.js.map +0 -1
  404. package/dist/src/runtime/headless.d.ts.map +0 -1
  405. package/dist/src/runtime/headless.js.map +0 -1
  406. package/dist/src/runtime/parent-death-watchdog.d.ts.map +0 -1
  407. package/dist/src/runtime/parent-death-watchdog.js.map +0 -1
  408. package/dist/src/ruvector/agent-wasm.d.ts.map +0 -1
  409. package/dist/src/ruvector/agent-wasm.js.map +0 -1
  410. package/dist/src/ruvector/ast-analyzer.d.ts.map +0 -1
  411. package/dist/src/ruvector/ast-analyzer.js.map +0 -1
  412. package/dist/src/ruvector/codemods/engine.d.ts.map +0 -1
  413. package/dist/src/ruvector/codemods/engine.js.map +0 -1
  414. package/dist/src/ruvector/codemods/scope-analysis.d.ts.map +0 -1
  415. package/dist/src/ruvector/codemods/scope-analysis.js.map +0 -1
  416. package/dist/src/ruvector/coverage-router.d.ts.map +0 -1
  417. package/dist/src/ruvector/coverage-router.js.map +0 -1
  418. package/dist/src/ruvector/coverage-tools.d.ts.map +0 -1
  419. package/dist/src/ruvector/coverage-tools.js.map +0 -1
  420. package/dist/src/ruvector/diff-classifier.d.ts.map +0 -1
  421. package/dist/src/ruvector/diff-classifier.js.map +0 -1
  422. package/dist/src/ruvector/diskann-backend.d.ts.map +0 -1
  423. package/dist/src/ruvector/diskann-backend.js.map +0 -1
  424. package/dist/src/ruvector/enhanced-model-router.d.ts.map +0 -1
  425. package/dist/src/ruvector/enhanced-model-router.js.map +0 -1
  426. package/dist/src/ruvector/graph-analyzer.d.ts.map +0 -1
  427. package/dist/src/ruvector/graph-analyzer.js.map +0 -1
  428. package/dist/src/ruvector/graph-backend.d.ts.map +0 -1
  429. package/dist/src/ruvector/graph-backend.js.map +0 -1
  430. package/dist/src/ruvector/index.d.ts.map +0 -1
  431. package/dist/src/ruvector/index.js.map +0 -1
  432. package/dist/src/ruvector/lora-adapter.d.ts.map +0 -1
  433. package/dist/src/ruvector/lora-adapter.js.map +0 -1
  434. package/dist/src/ruvector/model-prices.d.ts.map +0 -1
  435. package/dist/src/ruvector/model-prices.js.map +0 -1
  436. package/dist/src/ruvector/model-router.d.ts.map +0 -1
  437. package/dist/src/ruvector/model-router.js.map +0 -1
  438. package/dist/src/ruvector/neural-router.d.ts.map +0 -1
  439. package/dist/src/ruvector/neural-router.js.map +0 -1
  440. package/dist/src/ruvector/output-verifier.d.ts.map +0 -1
  441. package/dist/src/ruvector/output-verifier.js.map +0 -1
  442. package/dist/src/ruvector/q-learning-router.d.ts.map +0 -1
  443. package/dist/src/ruvector/q-learning-router.js.map +0 -1
  444. package/dist/src/ruvector/router-calibrator.d.ts.map +0 -1
  445. package/dist/src/ruvector/router-calibrator.js.map +0 -1
  446. package/dist/src/ruvector/router-parallel-recorder.d.ts.map +0 -1
  447. package/dist/src/ruvector/router-parallel-recorder.js.map +0 -1
  448. package/dist/src/ruvector/router-trajectory.d.ts.map +0 -1
  449. package/dist/src/ruvector/router-trajectory.js.map +0 -1
  450. package/dist/src/ruvector/run-transcript-recorder.d.ts.map +0 -1
  451. package/dist/src/ruvector/run-transcript-recorder.js.map +0 -1
  452. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +0 -1
  453. package/dist/src/ruvector/ruvllm-wasm.js.map +0 -1
  454. package/dist/src/ruvector/semantic-router.d.ts.map +0 -1
  455. package/dist/src/ruvector/semantic-router.js.map +0 -1
  456. package/dist/src/ruvector/task-embedder.d.ts.map +0 -1
  457. package/dist/src/ruvector/task-embedder.js.map +0 -1
  458. package/dist/src/ruvector/trajectory-tree.d.ts.map +0 -1
  459. package/dist/src/ruvector/trajectory-tree.js.map +0 -1
  460. package/dist/src/ruvector/vector-db.d.ts.map +0 -1
  461. package/dist/src/ruvector/vector-db.js.map +0 -1
  462. package/dist/src/services/agentic-flow-bridge.d.ts.map +0 -1
  463. package/dist/src/services/agentic-flow-bridge.js.map +0 -1
  464. package/dist/src/services/checkpoint-gate.d.ts.map +0 -1
  465. package/dist/src/services/checkpoint-gate.js.map +0 -1
  466. package/dist/src/services/claim-service.d.ts.map +0 -1
  467. package/dist/src/services/claim-service.js.map +0 -1
  468. package/dist/src/services/config-file-manager.d.ts.map +0 -1
  469. package/dist/src/services/config-file-manager.js.map +0 -1
  470. package/dist/src/services/container-worker-pool.d.ts.map +0 -1
  471. package/dist/src/services/container-worker-pool.js.map +0 -1
  472. package/dist/src/services/distill-oracle.d.ts.map +0 -1
  473. package/dist/src/services/distill-oracle.js.map +0 -1
  474. package/dist/src/services/fable-harness.d.ts.map +0 -1
  475. package/dist/src/services/fable-harness.js.map +0 -1
  476. package/dist/src/services/headless-worker-executor.d.ts.map +0 -1
  477. package/dist/src/services/headless-worker-executor.js.map +0 -1
  478. package/dist/src/services/index.d.ts.map +0 -1
  479. package/dist/src/services/index.js.map +0 -1
  480. package/dist/src/services/native-training.d.ts.map +0 -1
  481. package/dist/src/services/native-training.js.map +0 -1
  482. package/dist/src/services/registry-api.d.ts.map +0 -1
  483. package/dist/src/services/registry-api.js.map +0 -1
  484. package/dist/src/services/ruvector-training.d.ts.map +0 -1
  485. package/dist/src/services/ruvector-training.js.map +0 -1
  486. package/dist/src/services/swarm-memory-branches.d.ts.map +0 -1
  487. package/dist/src/services/swarm-memory-branches.js.map +0 -1
  488. package/dist/src/services/weight-eft.d.ts.map +0 -1
  489. package/dist/src/services/weight-eft.js.map +0 -1
  490. package/dist/src/services/worker-daemon.d.ts.map +0 -1
  491. package/dist/src/services/worker-daemon.js.map +0 -1
  492. package/dist/src/services/worker-queue.d.ts.map +0 -1
  493. package/dist/src/services/worker-queue.js.map +0 -1
  494. package/dist/src/suggest.d.ts.map +0 -1
  495. package/dist/src/suggest.js.map +0 -1
  496. package/dist/src/transfer/anonymization/index.d.ts.map +0 -1
  497. package/dist/src/transfer/anonymization/index.js.map +0 -1
  498. package/dist/src/transfer/deploy-seraphine.d.ts.map +0 -1
  499. package/dist/src/transfer/deploy-seraphine.js.map +0 -1
  500. package/dist/src/transfer/export.d.ts.map +0 -1
  501. package/dist/src/transfer/export.js.map +0 -1
  502. package/dist/src/transfer/index.d.ts.map +0 -1
  503. package/dist/src/transfer/index.js.map +0 -1
  504. package/dist/src/transfer/ipfs/client.d.ts.map +0 -1
  505. package/dist/src/transfer/ipfs/client.js.map +0 -1
  506. package/dist/src/transfer/ipfs/upload.d.ts.map +0 -1
  507. package/dist/src/transfer/ipfs/upload.js.map +0 -1
  508. package/dist/src/transfer/models/seraphine.d.ts.map +0 -1
  509. package/dist/src/transfer/models/seraphine.js.map +0 -1
  510. package/dist/src/transfer/serialization/cfp.d.ts.map +0 -1
  511. package/dist/src/transfer/serialization/cfp.js.map +0 -1
  512. package/dist/src/transfer/storage/gcs.d.ts.map +0 -1
  513. package/dist/src/transfer/storage/gcs.js.map +0 -1
  514. package/dist/src/transfer/storage/index.d.ts.map +0 -1
  515. package/dist/src/transfer/storage/index.js.map +0 -1
  516. package/dist/src/transfer/store/discovery.d.ts.map +0 -1
  517. package/dist/src/transfer/store/discovery.js.map +0 -1
  518. package/dist/src/transfer/store/download.d.ts.map +0 -1
  519. package/dist/src/transfer/store/download.js.map +0 -1
  520. package/dist/src/transfer/store/index.d.ts.map +0 -1
  521. package/dist/src/transfer/store/index.js.map +0 -1
  522. package/dist/src/transfer/store/publish.d.ts.map +0 -1
  523. package/dist/src/transfer/store/publish.js.map +0 -1
  524. package/dist/src/transfer/store/registry.d.ts.map +0 -1
  525. package/dist/src/transfer/store/registry.js.map +0 -1
  526. package/dist/src/transfer/store/search.d.ts.map +0 -1
  527. package/dist/src/transfer/store/search.js.map +0 -1
  528. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +0 -1
  529. package/dist/src/transfer/store/tests/standalone-test.js.map +0 -1
  530. package/dist/src/transfer/store/types.d.ts.map +0 -1
  531. package/dist/src/transfer/store/types.js.map +0 -1
  532. package/dist/src/transfer/test-seraphine.d.ts.map +0 -1
  533. package/dist/src/transfer/test-seraphine.js.map +0 -1
  534. package/dist/src/transfer/tests/test-store.d.ts.map +0 -1
  535. package/dist/src/transfer/tests/test-store.js.map +0 -1
  536. package/dist/src/transfer/types.d.ts.map +0 -1
  537. package/dist/src/transfer/types.js.map +0 -1
  538. package/dist/src/types.d.ts.map +0 -1
  539. package/dist/src/types.js.map +0 -1
  540. package/dist/src/update/checker.d.ts.map +0 -1
  541. package/dist/src/update/checker.js.map +0 -1
  542. package/dist/src/update/executor.d.ts.map +0 -1
  543. package/dist/src/update/executor.js.map +0 -1
  544. package/dist/src/update/index.d.ts.map +0 -1
  545. package/dist/src/update/index.js.map +0 -1
  546. package/dist/src/update/rate-limiter.d.ts.map +0 -1
  547. package/dist/src/update/rate-limiter.js.map +0 -1
  548. package/dist/src/update/validator.d.ts.map +0 -1
  549. package/dist/src/update/validator.js.map +0 -1
  550. package/dist/tsconfig.tsbuildinfo +0 -1
  551. package/scripts/beir-bootstrap-significance.mjs +0 -162
  552. package/scripts/bench-rvagent.mjs +0 -312
  553. package/scripts/benchmark-codemods.mjs +0 -127
  554. package/scripts/benchmark-cross-repo.mjs +0 -206
  555. package/scripts/benchmark-pretrained-retrieval.mjs +0 -305
  556. package/scripts/benchmark-self-learning.mjs +0 -241
  557. package/scripts/benchmark-trajectory-mrr.mjs +0 -191
  558. package/scripts/deploy-ipfs-node.sh +0 -153
  559. package/scripts/grid-search-retrieval.mjs +0 -216
  560. package/scripts/pretrain-from-github.mjs +0 -358
  561. package/scripts/publish-registry.ts +0 -345
  562. package/scripts/publish.sh +0 -57
  563. package/scripts/run-beir-bge.mjs +0 -324
  564. package/scripts/run-beir-hybrid.mjs +0 -284
  565. package/scripts/run-beir-lucene-bm25.mjs +0 -154
  566. package/scripts/run-beir-nfcorpus.mjs +0 -231
  567. package/scripts/run-beir-rrf-ablation.mjs +0 -221
  568. package/scripts/setup-ipfs-registry.md +0 -366
@@ -1,216 +0,0 @@
1
- #!/usr/bin/env node
2
- // grid-search-retrieval.mjs — sweep retrieval hyperparameters against the
3
- // ADR-081 labelled corpus. Reports label nDCG@3, top-1, top-3, precision@3,
4
- // MRR@3 per configuration. Identifies the best non-rerank and best rerank
5
- // configs by nDCG@3.
6
- //
7
- // Run prerequisites: scripts/pretrain-from-github.mjs first.
8
- //
9
- // Usage:
10
- // node scripts/grid-search-retrieval.mjs # default grid
11
- // node scripts/grid-search-retrieval.mjs --quick # smaller grid
12
- // BENCH_JSON=1 node scripts/grid-search-retrieval.mjs # machine-readable
13
- //
14
- // Output also goes to docs/benchmarks/runs/grid-search-retrieval-<ts>.json
15
-
16
- import { writeFileSync, mkdirSync } from 'node:fs';
17
- import { fileURLToPath } from 'node:url';
18
- import { dirname, join, resolve } from 'node:path';
19
- import { performance } from 'node:perf_hooks';
20
-
21
- const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
22
- const CLI_ROOT = resolve(SCRIPT_DIR, '..');
23
- const REPO_ROOT = resolve(SCRIPT_DIR, '../../../..');
24
- const RUNS_DIR = join(REPO_ROOT, 'docs', 'benchmarks', 'runs');
25
-
26
- // Same labelled corpus as benchmark-pretrained-retrieval.mjs (ADR-081).
27
- const QUERIES = [
28
- { q: 'how was the Opus model alias fixed',
29
- labels: ['opus 4.8', 'opus alias', 'opus model alias', '#2232'] },
30
- { q: 'self-learning wiring task-completed pretrain',
31
- labels: ['self-learning', 'adr-074', 'self learning', '#2245', 'task-completed'] },
32
- { q: 'deterministic codemod engine var-to-const',
33
- labels: ['deterministic tier-1 codemod', 'adr-143', 'codemod', 'var-to-const'] },
34
- { q: 'MCP server orphan leak parent-death',
35
- labels: ['mcp orphan', 'mcp servers orphan', 'parent-death', '#2234', 'orphan on every claude'] },
36
- { q: 'unified learning stats aggregator',
37
- labels: ['unified learning-stats', 'adr-075', 'unified learning stats'] },
38
- { q: 'structured distillation 4-field schema',
39
- labels: ['structured distillation', 'adr-076', '4-field schema'] },
40
- { q: 'SQL injection migrate.ts table identifier',
41
- labels: ['sql injection', 'shell injection', 'migrate.ts', 'agentdb', 'cve'] },
42
- { q: 'recall@k HNSW benchmark harness',
43
- labels: ['hnsw', 'memory-recall', 'benchmark suite', 'recall@k', 'benchmark intelligence'] },
44
- { q: 'Q-learning encoder keyword block',
45
- labels: ['q-state encoder', 'route q-state', 'keyword block', '#2239', 'q-encoder'] },
46
- { q: 'security hardening crypto random IDs',
47
- labels: ['cwe-347', 'crypto.randomuuid', 'security fix', 'random id', 'crypto random'] },
48
- ];
49
-
50
- function isRelevant(name, labels) {
51
- if (!name || !labels?.length) return false;
52
- const lower = String(name).toLowerCase();
53
- return labels.some((s) => lower.includes(s.toLowerCase()));
54
- }
55
-
56
- function ndcgAtK(rankedRel, k) {
57
- const arr = rankedRel.slice(0, k);
58
- const dcg = arr.reduce((acc, rel, i) => acc + (rel ? 1 / Math.log2(i + 2) : 0), 0);
59
- const numRelevant = arr.filter(Boolean).length;
60
- if (numRelevant === 0) return 0;
61
- let idcg = 0;
62
- for (let i = 0; i < numRelevant; i++) idcg += 1 / Math.log2(i + 2);
63
- return idcg > 0 ? dcg / idcg : 0;
64
- }
65
-
66
- // ---------------------------------------------------------------------------
67
- // Grid definitions
68
- // ---------------------------------------------------------------------------
69
-
70
- const QUICK = process.argv.includes('--quick');
71
-
72
- // Non-rerank grid: alpha × subjectWeight × mmrLambda
73
- const ALPHA_GRID = QUICK ? [0.5, 0.7] : [0.3, 0.5, 0.7];
74
- const SUBJ_GRID = QUICK ? [3.0, 5.0] : [2.0, 3.0, 5.0];
75
- const MMR_GRID = QUICK ? [0.5] : [0.3, 0.5, 0.7];
76
-
77
- // Rerank grid: hybridWeight × ceWeight (sum to 1).
78
- const RERANK_GRID = QUICK
79
- ? [[0.5, 0.5]]
80
- : [[0.2, 0.8], [0.3, 0.7], [0.4, 0.6], [0.5, 0.5], [0.6, 0.4], [0.7, 0.3], [0.8, 0.2]];
81
-
82
- // ADR-083: when re-gridding rerank, sweep BOTH the hybrid sub-params (alpha, sw)
83
- // AND the rerank weights. This catches joint-optima the per-axis grids miss.
84
- const RERANK_HYBRID_ALPHA = QUICK ? [0.5] : [0.3, 0.5];
85
- const RERANK_HYBRID_SW = QUICK ? [2.0] : [2.0, 3.0];
86
-
87
- // ---------------------------------------------------------------------------
88
- // Eval
89
- // ---------------------------------------------------------------------------
90
-
91
- async function evalConfig(tool, params) {
92
- let top1Hits = 0, top3HitsBin = 0, ranks = [], ndcg3Sum = 0, prec3Sum = 0;
93
- const tStart = performance.now();
94
- for (const { q, labels } of QUERIES) {
95
- const r = await tool.handler({ action: 'search', query: q, mode: 'hybrid', limit: 5, ...params });
96
- const matches = (r.results || []).slice(0, 5);
97
- const rel = matches.map((m) => isRelevant(m?.name, labels));
98
- if (rel[0]) top1Hits++;
99
- if (rel.slice(0, 3).some(Boolean)) top3HitsBin++;
100
- const firstRank = rel.findIndex(Boolean);
101
- if (firstRank >= 0) ranks.push(firstRank + 1);
102
- ndcg3Sum += ndcgAtK(rel, 3);
103
- prec3Sum += rel.slice(0, 3).filter(Boolean).length / 3;
104
- }
105
- const elapsed = performance.now() - tStart;
106
- return {
107
- label_top1HitRate: top1Hits / QUERIES.length,
108
- label_top3HitRate: top3HitsBin / QUERIES.length,
109
- label_mrr3: ranks.reduce((s, r) => s + 1 / r, 0) / QUERIES.length,
110
- label_precision3: prec3Sum / QUERIES.length,
111
- label_ndcg3: ndcg3Sum / QUERIES.length,
112
- avgLatencyMs: elapsed / QUERIES.length,
113
- };
114
- }
115
-
116
- async function main() {
117
- const neural = await import(join(CLI_ROOT, 'dist/src/mcp-tools/neural-tools.js'));
118
- const tool = neural.neuralTools.find((t) => t.name === 'neural_patterns');
119
- if (!tool) throw new Error('neural_patterns tool not found');
120
-
121
- const configs = [];
122
-
123
- // §A — non-rerank grid (fast, ~3*3*3 = 27 configs at default)
124
- for (const alpha of ALPHA_GRID) {
125
- for (const subjectWeight of SUBJ_GRID) {
126
- for (const mmrLambda of MMR_GRID) {
127
- configs.push({
128
- name: `hybrid α=${alpha} sw=${subjectWeight} mmr=${mmrLambda}`,
129
- rerank: false,
130
- params: { rerank: false, alpha, subjectWeight, mmrLambda, bodyWeight: 1.0, typePenaltyFactor: 1.0 },
131
- });
132
- }
133
- }
134
- }
135
-
136
- // §B — rerank joint grid (ADR-083): hybridWeight × ceWeight × alpha × subjectWeight.
137
- // Each query takes ~1s with cross-encoder, so default full grid = 28 configs × 10
138
- // queries × 1s ≈ 5 minutes. Use --quick for 1 config (smoke).
139
- for (const [hybridWeight, ceWeight] of RERANK_GRID) {
140
- for (const alpha of RERANK_HYBRID_ALPHA) {
141
- for (const subjectWeight of RERANK_HYBRID_SW) {
142
- configs.push({
143
- name: `rerank hw=${hybridWeight} cw=${ceWeight} α=${alpha} sw=${subjectWeight}`,
144
- rerank: true,
145
- params: { rerank: true, alpha, subjectWeight, mmrLambda: 0.7, hybridWeight, ceWeight },
146
- });
147
- }
148
- }
149
- }
150
-
151
- console.log(`Grid-search: ${configs.length} configs across ${QUERIES.length} queries\n`);
152
- const results = [];
153
- for (const cfg of configs) {
154
- process.stdout.write(` ${cfg.name.padEnd(40)} … `);
155
- const m = await evalConfig(tool, cfg.params);
156
- results.push({ ...cfg, metrics: m });
157
- console.log(`top1=${(m.label_top1HitRate * 100).toFixed(0)}% top3=${(m.label_top3HitRate * 100).toFixed(0)}% nDCG3=${m.label_ndcg3.toFixed(3)} P3=${m.label_precision3.toFixed(3)} MRR3=${m.label_mrr3.toFixed(3)} ${m.avgLatencyMs.toFixed(0)}ms`);
158
- }
159
-
160
- // Rank by label nDCG@3 (the canonical relevance metric).
161
- const byNdcg = [...results].sort((a, b) => b.metrics.label_ndcg3 - a.metrics.label_ndcg3);
162
- const byTop1 = [...results].sort((a, b) => b.metrics.label_top1HitRate - a.metrics.label_top1HitRate || b.metrics.label_ndcg3 - a.metrics.label_ndcg3);
163
- const byPrec3 = [...results].sort((a, b) => b.metrics.label_precision3 - a.metrics.label_precision3 || b.metrics.label_ndcg3 - a.metrics.label_ndcg3);
164
-
165
- const bestNonRerankByNdcg = byNdcg.find((r) => !r.rerank);
166
- const bestRerankByNdcg = byNdcg.find((r) => r.rerank);
167
-
168
- console.log('\n=== Top 5 by label nDCG@3 ===');
169
- for (const r of byNdcg.slice(0, 5)) {
170
- console.log(` nDCG=${r.metrics.label_ndcg3.toFixed(3)} top1=${(r.metrics.label_top1HitRate * 100).toFixed(0)}% P3=${r.metrics.label_precision3.toFixed(3)} ${r.name}`);
171
- }
172
-
173
- console.log('\n=== Top 5 by label top-1 (ties broken by nDCG) ===');
174
- for (const r of byTop1.slice(0, 5)) {
175
- console.log(` top1=${(r.metrics.label_top1HitRate * 100).toFixed(0)}% nDCG=${r.metrics.label_ndcg3.toFixed(3)} P3=${r.metrics.label_precision3.toFixed(3)} ${r.name}`);
176
- }
177
-
178
- console.log('\n=== Top 5 by label precision@3 ===');
179
- for (const r of byPrec3.slice(0, 5)) {
180
- console.log(` P3=${r.metrics.label_precision3.toFixed(3)} top1=${(r.metrics.label_top1HitRate * 100).toFixed(0)}% nDCG=${r.metrics.label_ndcg3.toFixed(3)} ${r.name}`);
181
- }
182
-
183
- console.log(`\n=== WINNERS ===`);
184
- console.log(`Best non-rerank (by nDCG@3): ${bestNonRerankByNdcg.name} → top1=${(bestNonRerankByNdcg.metrics.label_top1HitRate * 100).toFixed(0)}% nDCG=${bestNonRerankByNdcg.metrics.label_ndcg3.toFixed(3)}`);
185
- console.log(`Best rerank (by nDCG@3): ${bestRerankByNdcg.name} → top1=${(bestRerankByNdcg.metrics.label_top1HitRate * 100).toFixed(0)}% nDCG=${bestRerankByNdcg.metrics.label_ndcg3.toFixed(3)}`);
186
-
187
- const summary = {
188
- runAt: new Date().toISOString(),
189
- benchmark: 'grid-search-retrieval',
190
- queries: QUERIES.length,
191
- configsEvaluated: configs.length,
192
- grid: { ALPHA_GRID, SUBJ_GRID, MMR_GRID, RERANK_GRID },
193
- results: results.map((r) => ({ name: r.name, rerank: r.rerank, params: r.params, metrics: r.metrics })),
194
- winners: {
195
- nDcg3: byNdcg[0].name,
196
- top1: byTop1[0].name,
197
- precision3: byPrec3[0].name,
198
- bestNonRerank: bestNonRerankByNdcg.name,
199
- bestRerank: bestRerankByNdcg.name,
200
- },
201
- };
202
-
203
- if (process.env.BENCH_JSON) {
204
- console.log(JSON.stringify(summary, null, 2));
205
- } else {
206
- mkdirSync(RUNS_DIR, { recursive: true });
207
- const stamp = summary.runAt.replace(/[:.]/g, '-');
208
- writeFileSync(join(RUNS_DIR, `grid-search-retrieval-${stamp}.json`), JSON.stringify(summary, null, 2));
209
- writeFileSync(join(RUNS_DIR, 'grid-search-retrieval-latest.json'), JSON.stringify(summary, null, 2));
210
- console.log(`\nWrote ${join(RUNS_DIR, `grid-search-retrieval-${stamp}.json`)}`);
211
- }
212
-
213
- process.exit(0);
214
- }
215
-
216
- main().catch((err) => { console.error(err); process.exit(1); });
@@ -1,358 +0,0 @@
1
- #!/usr/bin/env node
2
- // pretrain-from-github.mjs — pretrain ruflo's self-learning system from its
3
- // own GitHub history (commits + issues). Each commit/issue becomes one
4
- // trajectory through the SONA + EWC++ pipeline; Structured Distillation
5
- // (ADR-076) compresses each into the 4-field schema before embedding.
6
- //
7
- // What this proves:
8
- // - globalStats.{trajectoriesRecorded, patternsLearned, signalsProcessed}
9
- // all move from a measured before to a measured after.
10
- // - neural_patterns.patternCount grows.
11
- // - memory-bridge entries grow.
12
- // - The unified-stats aggregator's consistency block stays clean.
13
- // - Every item gets a learningPath of 'trajectory-pipeline' (not 'recorded-only').
14
- //
15
- // Usage:
16
- // node scripts/pretrain-from-github.mjs # 50 commits + 30 issues
17
- // COMMITS=200 ISSUES=100 node scripts/pretrain-from-github.mjs
18
- // SOURCE=git node scripts/pretrain-from-github.mjs # git only, skip gh
19
- // BENCH_JSON=1 node scripts/pretrain-from-github.mjs # machine-readable
20
- // BENCH_NO_WRITE=1 node scripts/pretrain-from-github.mjs # don't write a run JSON
21
- //
22
- // Repro from a fresh checkout:
23
- // git clone https://github.com/ruvnet/ruflo && cd ruflo
24
- // npm install && ( cd v3/@claude-flow/cli && npx tsc -b )
25
- // node v3/@claude-flow/cli/scripts/pretrain-from-github.mjs
26
-
27
- import { execSync } from 'node:child_process';
28
- import { writeFileSync, mkdirSync } from 'node:fs';
29
- import { fileURLToPath } from 'node:url';
30
- import { dirname, join, resolve } from 'node:path';
31
- import { performance } from 'node:perf_hooks';
32
-
33
- const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
34
- const CLI_ROOT = resolve(SCRIPT_DIR, '..');
35
- const RUFLO_ROOT = resolve(SCRIPT_DIR, '../../../..');
36
- const RUNS_DIR = join(RUFLO_ROOT, 'docs', 'benchmarks', 'runs');
37
-
38
- // ADR-084 cross-repo support — REPO_ROOT and GH_REPO env-overridable so the
39
- // same script can pretrain on agentdb / agentic-flow / any other repo for
40
- // generalisation testing. Defaults preserve ruflo behaviour.
41
- const REPO_ROOT = process.env.REPO_ROOT ? resolve(process.env.REPO_ROOT) : RUFLO_ROOT;
42
- const GH_REPO = process.env.GH_REPO || 'ruvnet/ruflo';
43
-
44
- const COMMITS = Number(process.env.COMMITS) || 50;
45
- const ISSUES = Number(process.env.ISSUES) || 30;
46
- const SOURCE = process.env.SOURCE || 'all'; // 'all' | 'git' | 'issues'
47
-
48
- // ---------------------------------------------------------------------------
49
- // Harvesters
50
- // ---------------------------------------------------------------------------
51
-
52
- // ADR-078 outcome signal — classify each commit by whether it was reverted,
53
- // hotfix-followed, or stuck. Operates on the harvested-commits window plus a
54
- // wider lookahead window for revert/hotfix detection.
55
- //
56
- // Verdicts emitted:
57
- // success — landed cleanly, no later commit reverted or fixed it
58
- // reverted — a later commit subject starts with `Revert "<this subject>"`
59
- // hotfixed — a later commit (within HOTFIX_WINDOW_COMMITS) shares >=50%
60
- // of the same touched files AND subject contains fix|hotfix|patch
61
- //
62
- // The "later" direction is git-log order (newest first → we look at older
63
- // indices in the lookahead, which are NEWER commits chronologically).
64
- const HOTFIX_WINDOW_COMMITS = Number(process.env.HOTFIX_WINDOW_COMMITS) || 20;
65
- const HOTFIX_FILE_OVERLAP = Number(process.env.HOTFIX_FILE_OVERLAP) || 0.5;
66
- const HOTFIX_KEYWORDS = /\b(fix|hotfix|patch|revert|bugfix|fixup)\b/i;
67
-
68
- function harvestCommits(n) {
69
- if (SOURCE === 'issues') return [];
70
- const fmt = '%H%x00%s%x00%b%x01';
71
- // Pull a wider window so we have lookahead for revert/hotfix detection
72
- // without changing the trained set size n.
73
- const lookahead = HOTFIX_WINDOW_COMMITS;
74
- const raw = execSync(
75
- `git log --pretty=format:'${fmt}' -n ${n + lookahead} 2>/dev/null`,
76
- { cwd: REPO_ROOT, encoding: 'utf-8', maxBuffer: 64 * 1024 * 1024 },
77
- );
78
-
79
- // Parse all blocks (window + lookahead).
80
- const all = [];
81
- for (const block of raw.split('\x01')) {
82
- if (!block.trim()) continue;
83
- const [sha, subject, body] = block.split('\x00');
84
- if (!sha || !subject) continue;
85
- all.push({ sha, subject: subject.trim(), body: (body || '').trim() });
86
- }
87
-
88
- // For each commit in the trained slice, get its touched files.
89
- const filesCache = new Map();
90
- const filesOf = (sha) => {
91
- if (filesCache.has(sha)) return filesCache.get(sha);
92
- try {
93
- const out = execSync(
94
- `git show --pretty=format: --name-only ${sha} 2>/dev/null`,
95
- { cwd: REPO_ROOT, encoding: 'utf-8', maxBuffer: 8 * 1024 * 1024 },
96
- ).trim().split('\n').filter(Boolean);
97
- filesCache.set(sha, new Set(out));
98
- return filesCache.get(sha);
99
- } catch {
100
- filesCache.set(sha, new Set());
101
- return filesCache.get(sha);
102
- }
103
- };
104
-
105
- // Build a revert-target map: any commit whose subject starts with
106
- // `Revert "<X>"` flags X as reverted.
107
- const revertedSubjects = new Set();
108
- for (const c of all) {
109
- const m = c.subject.match(/^Revert\s+"(.+?)"/);
110
- if (m) revertedSubjects.add(m[1].trim());
111
- }
112
-
113
- const trained = all.slice(0, n);
114
- const entries = [];
115
- for (let i = 0; i < trained.length; i++) {
116
- const c = trained[i];
117
- const myFiles = filesOf(c.sha);
118
-
119
- let verdict = 'success';
120
- let outcomeNote = null;
121
-
122
- // Reverted? Check if any later (lower-index = newer) commit reverted us.
123
- if (revertedSubjects.has(c.subject)) {
124
- verdict = 'reverted';
125
- outcomeNote = 'subject reverted by a later commit';
126
- } else {
127
- // Hotfixed? A later commit within HOTFIX_WINDOW_COMMITS shares files
128
- // AND has fix/hotfix in its subject.
129
- const start = Math.max(0, i - HOTFIX_WINDOW_COMMITS);
130
- for (let j = start; j < i; j++) {
131
- const later = trained[j];
132
- if (!HOTFIX_KEYWORDS.test(later.subject)) continue;
133
- const laterFiles = filesOf(later.sha);
134
- if (laterFiles.size === 0 || myFiles.size === 0) continue;
135
- let overlap = 0;
136
- for (const f of laterFiles) if (myFiles.has(f)) overlap++;
137
- // Use min() so a small targeted fix on a big change still triggers
138
- // (semantic: "≥half of the smaller commit's files overlap").
139
- const overlapFrac = overlap / Math.min(laterFiles.size, myFiles.size);
140
- if (overlapFrac >= HOTFIX_FILE_OVERLAP) {
141
- verdict = 'hotfixed';
142
- outcomeNote = `${(overlapFrac * 100).toFixed(0)}% file overlap with later fix ${later.sha.slice(0, 8)}`;
143
- break;
144
- }
145
- }
146
- }
147
-
148
- entries.push({
149
- source: 'commit',
150
- id: `commit-${c.sha.slice(0, 12)}`,
151
- subject: c.subject,
152
- body: c.body,
153
- verdict,
154
- outcomeNote,
155
- content: `${c.subject}\n\n${c.body}`.slice(0, 8192),
156
- });
157
- }
158
- return entries;
159
- }
160
-
161
- function harvestIssues(n) {
162
- if (SOURCE === 'git') return [];
163
- try {
164
- const raw = execSync(
165
- `gh issue list --repo ${GH_REPO} --state all --limit ${n} --json number,title,body,state,closedAt 2>/dev/null`,
166
- { cwd: REPO_ROOT, encoding: 'utf-8', maxBuffer: 64 * 1024 * 1024 },
167
- );
168
- const items = JSON.parse(raw);
169
- return items.map((i) => ({
170
- source: 'issue',
171
- id: `issue-${i.number}`,
172
- subject: i.title,
173
- body: (i.body || '').slice(0, 8192),
174
- // closed = success outcome; open = partial (in-progress).
175
- verdict: i.state === 'CLOSED' ? 'success' : 'partial',
176
- content: `${i.title}\n\n${(i.body || '').slice(0, 8192)}`,
177
- }));
178
- } catch (err) {
179
- console.error(`gh issue harvest skipped (${err.message?.slice(0, 60)}). Set SOURCE=git to silence.`);
180
- return [];
181
- }
182
- }
183
-
184
- // ---------------------------------------------------------------------------
185
- // Main
186
- // ---------------------------------------------------------------------------
187
-
188
- async function main() {
189
- const intel = await import(join(CLI_ROOT, 'dist/src/memory/intelligence.js'));
190
- const neural = await import(join(CLI_ROOT, 'dist/src/mcp-tools/neural-tools.js'));
191
- const { distillAndSerialise } = await import(join(CLI_ROOT, 'dist/src/memory/structured-distill.js'));
192
-
193
- // §1 — record the baseline (no clear; we want to learn ON TOP of whatever
194
- // history the user already has).
195
- const unified0 = await intel.getUnifiedLearningStats();
196
- const before = {
197
- trajectoriesRecorded: unified0.global.trajectoriesRecorded,
198
- patternsLearned: unified0.global.patternsLearned,
199
- signalsProcessed: unified0.global.signalsProcessed,
200
- neuralPatternCount: unified0.neuralPatterns.patternCount,
201
- memoryBridgeTotal: unified0.memoryBridge.totalEntries,
202
- };
203
-
204
- // §2 — harvest
205
- const tHarvest0 = performance.now();
206
- const commits = harvestCommits(COMMITS);
207
- const issues = harvestIssues(ISSUES);
208
- const items = [...commits, ...issues];
209
- const harvestMs = performance.now() - tHarvest0;
210
-
211
- if (!process.env.BENCH_JSON) {
212
- console.log(`# Pretrain from ruflo GitHub history`);
213
- console.log(`Harvested: ${commits.length} commits + ${issues.length} issues = ${items.length} trajectories (${harvestMs.toFixed(0)} ms)`);
214
- }
215
-
216
- // §3 — feed each item through the trajectory pipeline. The harvester
217
- // emits one of: success | partial | reverted | hotfixed. We map this to
218
- // the trajectory pipeline's binary verdict {success, partial} since the
219
- // pipeline doesn't accept arbitrary strings — but we preserve the original
220
- // outcome in metadata + the summary's verdictMix so the signal isn't lost.
221
- const verdictToPipeline = (v) => {
222
- if (v === 'success') return 'success';
223
- if (v === 'partial') return 'partial';
224
- if (v === 'reverted') return 'partial'; // a revert is the strongest "this was wrong" signal we have
225
- if (v === 'hotfixed') return 'partial'; // a same-files fix-followup is "needs adjustment"
226
- return 'success';
227
- };
228
- const verdictMix = { success: 0, partial: 0, reverted: 0, hotfixed: 0 };
229
- const tFeed0 = performance.now();
230
- let trained = 0;
231
- let failed = 0;
232
- const failures = [];
233
- for (const item of items) {
234
- try {
235
- const distilled = distillAndSerialise(item.content);
236
- verdictMix[item.verdict] = (verdictMix[item.verdict] ?? 0) + 1;
237
- await intel.recordTrajectory(
238
- [{
239
- type: 'result',
240
- content: distilled,
241
- metadata: {
242
- source: item.source,
243
- id: item.id,
244
- subject: item.subject.slice(0, 200),
245
- outcomeVerdict: item.verdict,
246
- outcomeNote: item.outcomeNote ?? null,
247
- },
248
- timestamp: Date.now(),
249
- }],
250
- verdictToPipeline(item.verdict),
251
- );
252
- trained++;
253
- } catch (err) {
254
- failed++;
255
- if (failures.length < 5) failures.push({ id: item.id, error: String(err.message).slice(0, 120) });
256
- }
257
- }
258
- const feedMs = performance.now() - tFeed0;
259
- intel.flushIntelligenceStats();
260
-
261
- // §4 — also seed the neural store directly from the same items so
262
- // `neural_patterns list` reflects them (closes the "globalStats moved but
263
- // neural_patterns didn't" consistency note from ADR-075).
264
- const tSeed0 = performance.now();
265
- const neuralItems = items.map((item) => ({
266
- name: item.subject.slice(0, 200),
267
- type: item.source === 'commit' ? 'history-commit' : 'history-issue',
268
- content: distillAndSerialise(item.content),
269
- metadata: { source: item.source, id: item.id, verdict: item.verdict },
270
- }));
271
- const seedResult = await neural.storeNeuralPatterns(neuralItems);
272
- const seedMs = performance.now() - tSeed0;
273
-
274
- // §5 — read the after-counters via the unified aggregator (this is what
275
- // hooks_intelligence_unified-stats would return for a live caller).
276
- const unified1 = await intel.getUnifiedLearningStats();
277
- const after = {
278
- trajectoriesRecorded: unified1.global.trajectoriesRecorded,
279
- patternsLearned: unified1.global.patternsLearned,
280
- signalsProcessed: unified1.global.signalsProcessed,
281
- neuralPatternCount: unified1.neuralPatterns.patternCount,
282
- memoryBridgeTotal: unified1.memoryBridge.totalEntries,
283
- };
284
-
285
- const deltas = Object.fromEntries(
286
- Object.keys(after).map((k) => [k, after[k] - before[k]]),
287
- );
288
-
289
- const summary = {
290
- runAt: new Date().toISOString(),
291
- benchmark: 'pretrain-from-github',
292
- source: SOURCE,
293
- config: { COMMITS, ISSUES },
294
- harvest: {
295
- commits: commits.length,
296
- issues: issues.length,
297
- total: items.length,
298
- harvestMs: Number(harvestMs.toFixed(2)),
299
- },
300
- feed: {
301
- trained,
302
- failed,
303
- avgLatencyMs: items.length > 0 ? Number((feedMs / items.length).toFixed(2)) : 0,
304
- totalMs: Number(feedMs.toFixed(2)),
305
- sampleFailures: failures,
306
- verdictMix, // ADR-078 outcome signal — counts per harvested verdict
307
- },
308
- seedNeuralStore: {
309
- stored: seedResult.stored,
310
- total: seedResult.total,
311
- seedMs: Number(seedMs.toFixed(2)),
312
- },
313
- before,
314
- after,
315
- deltas,
316
- consistency: unified1.consistency,
317
- passed:
318
- trained === items.length &&
319
- deltas.trajectoriesRecorded >= items.length &&
320
- deltas.neuralPatternCount >= items.length,
321
- };
322
-
323
- if (process.env.BENCH_JSON) {
324
- console.log(JSON.stringify(summary, null, 2));
325
- } else {
326
- console.log('');
327
- console.log('| Counter | Before | After | Δ |');
328
- console.log('|---|---:|---:|---:|');
329
- for (const k of Object.keys(after)) {
330
- console.log(`| ${k} | ${before[k]} | ${after[k]} | +${deltas[k]} |`);
331
- }
332
- console.log('');
333
- console.log(`Trained via trajectory pipeline: ${trained}/${items.length}`);
334
- console.log(`Failed: ${failed}`);
335
- console.log(`Avg latency per trajectory: ${summary.feed.avgLatencyMs} ms`);
336
- console.log(`Neural store seeded: ${seedResult.stored}/${seedResult.total}`);
337
- console.log(`Verdict mix: success=${verdictMix.success} partial=${verdictMix.partial} reverted=${verdictMix.reverted} hotfixed=${verdictMix.hotfixed}`);
338
- console.log(`Overall: ${summary.passed ? '✅ PASSED' : '⚠️ partial'}`);
339
- if (unified1.consistency.notes.length > 0) {
340
- console.log(`\nConsistency notes:`);
341
- for (const n of unified1.consistency.notes) console.log(` • ${n}`);
342
- }
343
- }
344
-
345
- if (!process.env.BENCH_NO_WRITE) {
346
- mkdirSync(RUNS_DIR, { recursive: true });
347
- const stamp = summary.runAt.replace(/[:.]/g, '-');
348
- writeFileSync(join(RUNS_DIR, `pretrain-from-github-${stamp}.json`), JSON.stringify(summary, null, 2));
349
- writeFileSync(join(RUNS_DIR, 'pretrain-from-github-latest.json'), JSON.stringify(summary, null, 2));
350
- if (!process.env.BENCH_JSON) console.log(`\nWrote ${join(RUNS_DIR, `pretrain-from-github-${stamp}.json`)}`);
351
- }
352
-
353
- // ONNX runtime keeps a worker thread alive — force exit so this can be used
354
- // as a CI step or chained with other scripts.
355
- process.exit(summary.passed ? 0 : 1);
356
- }
357
-
358
- main().catch((err) => { console.error(err); process.exit(1); });