@claude-flow/cli 3.21.0 → 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 (570) hide show
  1. package/.claude/helpers/auto-memory-hook.mjs +35 -3
  2. package/.claude/helpers/helpers.manifest.json +12 -0
  3. package/.claude/helpers/hook-handler.cjs +26 -5
  4. package/.claude/helpers/intelligence.cjs +4 -1
  5. package/dist/src/commands/daemon.js +23 -2
  6. package/dist/src/commands/doctor.js +56 -0
  7. package/dist/src/commands/memory-distill.d.ts +27 -0
  8. package/dist/src/commands/memory-distill.js +374 -0
  9. package/dist/src/commands/memory.js +4 -2
  10. package/dist/src/index.d.ts +1 -1
  11. package/dist/src/index.js +22 -1
  12. package/dist/src/init/executor.js +37 -0
  13. package/dist/src/init/helper-refresh.d.ts +19 -0
  14. package/dist/src/init/helper-refresh.js +175 -0
  15. package/dist/src/init/helper-signing.d.ts +30 -0
  16. package/dist/src/init/helper-signing.js +60 -0
  17. package/dist/src/init/helpers-generator.d.ts +16 -0
  18. package/dist/src/init/helpers-generator.js +89 -8
  19. package/dist/src/init/memory-package-resolver.d.ts +53 -0
  20. package/dist/src/init/memory-package-resolver.js +118 -0
  21. package/dist/src/init/statusline-generator.js +18 -7
  22. package/dist/src/mcp-client.js +13 -0
  23. package/dist/src/mcp-tools/agenticow-speculate-tools.js +9 -2
  24. package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
  25. package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
  26. package/dist/src/mcp-tools/browser-tools.d.ts +9 -1
  27. package/dist/src/mcp-tools/browser-tools.js +4 -1
  28. package/dist/src/memory/memory-bridge.js +115 -54
  29. package/dist/src/memory/memory-initializer.d.ts +71 -0
  30. package/dist/src/memory/memory-initializer.js +330 -2
  31. package/dist/src/services/distill-tuning.d.ts +111 -0
  32. package/dist/src/services/distill-tuning.js +510 -0
  33. package/dist/src/services/memory-distillation.d.ts +41 -0
  34. package/dist/src/services/memory-distillation.js +277 -0
  35. package/dist/src/services/worker-daemon.d.ts +22 -1
  36. package/dist/src/services/worker-daemon.js +117 -6
  37. package/package.json +5 -2
  38. package/dist/src/agenticow/speculative-exploration.d.ts.map +0 -1
  39. package/dist/src/agenticow/speculative-exploration.js.map +0 -1
  40. package/dist/src/appliance/gguf-engine.d.ts.map +0 -1
  41. package/dist/src/appliance/gguf-engine.js.map +0 -1
  42. package/dist/src/appliance/ruvllm-bridge.d.ts.map +0 -1
  43. package/dist/src/appliance/ruvllm-bridge.js.map +0 -1
  44. package/dist/src/appliance/rvfa-builder.d.ts.map +0 -1
  45. package/dist/src/appliance/rvfa-builder.js.map +0 -1
  46. package/dist/src/appliance/rvfa-distribution.d.ts.map +0 -1
  47. package/dist/src/appliance/rvfa-distribution.js.map +0 -1
  48. package/dist/src/appliance/rvfa-format.d.ts.map +0 -1
  49. package/dist/src/appliance/rvfa-format.js.map +0 -1
  50. package/dist/src/appliance/rvfa-runner.d.ts.map +0 -1
  51. package/dist/src/appliance/rvfa-runner.js.map +0 -1
  52. package/dist/src/appliance/rvfa-signing.d.ts.map +0 -1
  53. package/dist/src/appliance/rvfa-signing.js.map +0 -1
  54. package/dist/src/autopilot-state.d.ts.map +0 -1
  55. package/dist/src/autopilot-state.js.map +0 -1
  56. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts.map +0 -1
  57. package/dist/src/benchmarks/gaia-agent-planning.smoke.js.map +0 -1
  58. package/dist/src/benchmarks/gaia-agent.d.ts.map +0 -1
  59. package/dist/src/benchmarks/gaia-agent.js.map +0 -1
  60. package/dist/src/benchmarks/gaia-causal-memory.d.ts.map +0 -1
  61. package/dist/src/benchmarks/gaia-causal-memory.js.map +0 -1
  62. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts.map +0 -1
  63. package/dist/src/benchmarks/gaia-causal-memory.smoke.js.map +0 -1
  64. package/dist/src/benchmarks/gaia-convergence.d.ts.map +0 -1
  65. package/dist/src/benchmarks/gaia-convergence.js.map +0 -1
  66. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts.map +0 -1
  67. package/dist/src/benchmarks/gaia-convergence.smoke.js.map +0 -1
  68. package/dist/src/benchmarks/gaia-critic.d.ts.map +0 -1
  69. package/dist/src/benchmarks/gaia-critic.js.map +0 -1
  70. package/dist/src/benchmarks/gaia-critic.smoke.d.ts.map +0 -1
  71. package/dist/src/benchmarks/gaia-critic.smoke.js.map +0 -1
  72. package/dist/src/benchmarks/gaia-decomposer.d.ts.map +0 -1
  73. package/dist/src/benchmarks/gaia-decomposer.js.map +0 -1
  74. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts.map +0 -1
  75. package/dist/src/benchmarks/gaia-decomposer.smoke.js.map +0 -1
  76. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts.map +0 -1
  77. package/dist/src/benchmarks/gaia-e2e-smoke.js.map +0 -1
  78. package/dist/src/benchmarks/gaia-extract.smoke.d.ts.map +0 -1
  79. package/dist/src/benchmarks/gaia-extract.smoke.js.map +0 -1
  80. package/dist/src/benchmarks/gaia-hardness/features.d.ts.map +0 -1
  81. package/dist/src/benchmarks/gaia-hardness/features.js.map +0 -1
  82. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts.map +0 -1
  83. package/dist/src/benchmarks/gaia-hardness/predictor.js.map +0 -1
  84. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts.map +0 -1
  85. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js.map +0 -1
  86. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts.map +0 -1
  87. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js.map +0 -1
  88. package/dist/src/benchmarks/gaia-judge.d.ts.map +0 -1
  89. package/dist/src/benchmarks/gaia-judge.js.map +0 -1
  90. package/dist/src/benchmarks/gaia-loader.d.ts.map +0 -1
  91. package/dist/src/benchmarks/gaia-loader.js.map +0 -1
  92. package/dist/src/benchmarks/gaia-tools/file_read.d.ts.map +0 -1
  93. package/dist/src/benchmarks/gaia-tools/file_read.js.map +0 -1
  94. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts.map +0 -1
  95. package/dist/src/benchmarks/gaia-tools/grounded_query.js.map +0 -1
  96. package/dist/src/benchmarks/gaia-tools/index.d.ts.map +0 -1
  97. package/dist/src/benchmarks/gaia-tools/index.js.map +0 -1
  98. package/dist/src/benchmarks/gaia-tools/types.d.ts.map +0 -1
  99. package/dist/src/benchmarks/gaia-tools/types.js.map +0 -1
  100. package/dist/src/benchmarks/gaia-tools/web_search.d.ts.map +0 -1
  101. package/dist/src/benchmarks/gaia-tools/web_search.js.map +0 -1
  102. package/dist/src/benchmarks/gaia-voting.d.ts.map +0 -1
  103. package/dist/src/benchmarks/gaia-voting.js.map +0 -1
  104. package/dist/src/benchmarks/gaia-voting.smoke.d.ts.map +0 -1
  105. package/dist/src/benchmarks/gaia-voting.smoke.js.map +0 -1
  106. package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
  107. package/dist/src/benchmarks/pretrain/index.js.map +0 -1
  108. package/dist/src/business-pods/bbs-budget-tracker.d.ts.map +0 -1
  109. package/dist/src/business-pods/bbs-budget-tracker.js.map +0 -1
  110. package/dist/src/business-pods/domain-affinity-policy.d.ts.map +0 -1
  111. package/dist/src/business-pods/domain-affinity-policy.js.map +0 -1
  112. package/dist/src/business-pods/pod-schema.d.ts.map +0 -1
  113. package/dist/src/business-pods/pod-schema.js.map +0 -1
  114. package/dist/src/commands/agent-wasm.d.ts.map +0 -1
  115. package/dist/src/commands/agent-wasm.js.map +0 -1
  116. package/dist/src/commands/agent.d.ts.map +0 -1
  117. package/dist/src/commands/agent.js.map +0 -1
  118. package/dist/src/commands/analyze.d.ts.map +0 -1
  119. package/dist/src/commands/analyze.js.map +0 -1
  120. package/dist/src/commands/appliance-advanced.d.ts.map +0 -1
  121. package/dist/src/commands/appliance-advanced.js.map +0 -1
  122. package/dist/src/commands/appliance.d.ts.map +0 -1
  123. package/dist/src/commands/appliance.js.map +0 -1
  124. package/dist/src/commands/autopilot.d.ts.map +0 -1
  125. package/dist/src/commands/autopilot.js.map +0 -1
  126. package/dist/src/commands/benchmark.d.ts.map +0 -1
  127. package/dist/src/commands/benchmark.js.map +0 -1
  128. package/dist/src/commands/claims.d.ts.map +0 -1
  129. package/dist/src/commands/claims.js.map +0 -1
  130. package/dist/src/commands/cleanup.d.ts.map +0 -1
  131. package/dist/src/commands/cleanup.js.map +0 -1
  132. package/dist/src/commands/completions.d.ts.map +0 -1
  133. package/dist/src/commands/completions.js.map +0 -1
  134. package/dist/src/commands/config.d.ts.map +0 -1
  135. package/dist/src/commands/config.js.map +0 -1
  136. package/dist/src/commands/daemon.d.ts.map +0 -1
  137. package/dist/src/commands/daemon.js.map +0 -1
  138. package/dist/src/commands/deployment.d.ts.map +0 -1
  139. package/dist/src/commands/deployment.js.map +0 -1
  140. package/dist/src/commands/doctor.d.ts.map +0 -1
  141. package/dist/src/commands/doctor.js.map +0 -1
  142. package/dist/src/commands/eject.d.ts.map +0 -1
  143. package/dist/src/commands/eject.js.map +0 -1
  144. package/dist/src/commands/embeddings.d.ts.map +0 -1
  145. package/dist/src/commands/embeddings.js.map +0 -1
  146. package/dist/src/commands/gaia-bench.d.ts.map +0 -1
  147. package/dist/src/commands/gaia-bench.js.map +0 -1
  148. package/dist/src/commands/guidance.d.ts.map +0 -1
  149. package/dist/src/commands/guidance.js.map +0 -1
  150. package/dist/src/commands/hive-mind.d.ts.map +0 -1
  151. package/dist/src/commands/hive-mind.js.map +0 -1
  152. package/dist/src/commands/hooks.d.ts.map +0 -1
  153. package/dist/src/commands/hooks.js.map +0 -1
  154. package/dist/src/commands/index.d.ts.map +0 -1
  155. package/dist/src/commands/index.js.map +0 -1
  156. package/dist/src/commands/init.d.ts.map +0 -1
  157. package/dist/src/commands/init.js.map +0 -1
  158. package/dist/src/commands/issues.d.ts.map +0 -1
  159. package/dist/src/commands/issues.js.map +0 -1
  160. package/dist/src/commands/mcp.d.ts.map +0 -1
  161. package/dist/src/commands/mcp.js.map +0 -1
  162. package/dist/src/commands/memory.d.ts.map +0 -1
  163. package/dist/src/commands/memory.js.map +0 -1
  164. package/dist/src/commands/metaharness.d.ts.map +0 -1
  165. package/dist/src/commands/metaharness.js.map +0 -1
  166. package/dist/src/commands/migrate.d.ts.map +0 -1
  167. package/dist/src/commands/migrate.js.map +0 -1
  168. package/dist/src/commands/neural.d.ts.map +0 -1
  169. package/dist/src/commands/neural.js.map +0 -1
  170. package/dist/src/commands/performance.d.ts.map +0 -1
  171. package/dist/src/commands/performance.js.map +0 -1
  172. package/dist/src/commands/plugins.d.ts.map +0 -1
  173. package/dist/src/commands/plugins.js.map +0 -1
  174. package/dist/src/commands/process.d.ts.map +0 -1
  175. package/dist/src/commands/process.js.map +0 -1
  176. package/dist/src/commands/progress.d.ts.map +0 -1
  177. package/dist/src/commands/progress.js.map +0 -1
  178. package/dist/src/commands/providers.d.ts.map +0 -1
  179. package/dist/src/commands/providers.js.map +0 -1
  180. package/dist/src/commands/route.d.ts.map +0 -1
  181. package/dist/src/commands/route.js.map +0 -1
  182. package/dist/src/commands/ruvector/backup.d.ts.map +0 -1
  183. package/dist/src/commands/ruvector/backup.js.map +0 -1
  184. package/dist/src/commands/ruvector/benchmark.d.ts.map +0 -1
  185. package/dist/src/commands/ruvector/benchmark.js.map +0 -1
  186. package/dist/src/commands/ruvector/import.d.ts.map +0 -1
  187. package/dist/src/commands/ruvector/import.js.map +0 -1
  188. package/dist/src/commands/ruvector/index.d.ts.map +0 -1
  189. package/dist/src/commands/ruvector/index.js.map +0 -1
  190. package/dist/src/commands/ruvector/init.d.ts.map +0 -1
  191. package/dist/src/commands/ruvector/init.js.map +0 -1
  192. package/dist/src/commands/ruvector/migrate.d.ts.map +0 -1
  193. package/dist/src/commands/ruvector/migrate.js.map +0 -1
  194. package/dist/src/commands/ruvector/optimize.d.ts.map +0 -1
  195. package/dist/src/commands/ruvector/optimize.js.map +0 -1
  196. package/dist/src/commands/ruvector/pg-utils.d.ts.map +0 -1
  197. package/dist/src/commands/ruvector/pg-utils.js.map +0 -1
  198. package/dist/src/commands/ruvector/setup.d.ts.map +0 -1
  199. package/dist/src/commands/ruvector/setup.js.map +0 -1
  200. package/dist/src/commands/ruvector/status.d.ts.map +0 -1
  201. package/dist/src/commands/ruvector/status.js.map +0 -1
  202. package/dist/src/commands/security.d.ts.map +0 -1
  203. package/dist/src/commands/security.js.map +0 -1
  204. package/dist/src/commands/session.d.ts.map +0 -1
  205. package/dist/src/commands/session.js.map +0 -1
  206. package/dist/src/commands/start.d.ts.map +0 -1
  207. package/dist/src/commands/start.js.map +0 -1
  208. package/dist/src/commands/status.d.ts.map +0 -1
  209. package/dist/src/commands/status.js.map +0 -1
  210. package/dist/src/commands/swarm.d.ts.map +0 -1
  211. package/dist/src/commands/swarm.js.map +0 -1
  212. package/dist/src/commands/task.d.ts.map +0 -1
  213. package/dist/src/commands/task.js.map +0 -1
  214. package/dist/src/commands/transfer-store.d.ts.map +0 -1
  215. package/dist/src/commands/transfer-store.js.map +0 -1
  216. package/dist/src/commands/update.d.ts.map +0 -1
  217. package/dist/src/commands/update.js.map +0 -1
  218. package/dist/src/commands/verify.d.ts.map +0 -1
  219. package/dist/src/commands/verify.js.map +0 -1
  220. package/dist/src/commands/workflow.d.ts.map +0 -1
  221. package/dist/src/commands/workflow.js.map +0 -1
  222. package/dist/src/config-adapter.d.ts.map +0 -1
  223. package/dist/src/config-adapter.js.map +0 -1
  224. package/dist/src/encryption/vault.d.ts.map +0 -1
  225. package/dist/src/encryption/vault.js.map +0 -1
  226. package/dist/src/fs-secure.d.ts.map +0 -1
  227. package/dist/src/fs-secure.js.map +0 -1
  228. package/dist/src/index.d.ts.map +0 -1
  229. package/dist/src/index.js.map +0 -1
  230. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
  231. package/dist/src/infrastructure/in-memory-repositories.js.map +0 -1
  232. package/dist/src/init/claudemd-generator.d.ts.map +0 -1
  233. package/dist/src/init/claudemd-generator.js.map +0 -1
  234. package/dist/src/init/executor.d.ts.map +0 -1
  235. package/dist/src/init/executor.js.map +0 -1
  236. package/dist/src/init/helpers-generator.d.ts.map +0 -1
  237. package/dist/src/init/helpers-generator.js.map +0 -1
  238. package/dist/src/init/index.d.ts.map +0 -1
  239. package/dist/src/init/index.js.map +0 -1
  240. package/dist/src/init/mcp-generator.d.ts.map +0 -1
  241. package/dist/src/init/mcp-generator.js.map +0 -1
  242. package/dist/src/init/settings-generator.d.ts.map +0 -1
  243. package/dist/src/init/settings-generator.js.map +0 -1
  244. package/dist/src/init/statusline-generator.d.ts.map +0 -1
  245. package/dist/src/init/statusline-generator.js.map +0 -1
  246. package/dist/src/init/types.d.ts.map +0 -1
  247. package/dist/src/init/types.js.map +0 -1
  248. package/dist/src/log-filters.d.ts.map +0 -1
  249. package/dist/src/log-filters.js.map +0 -1
  250. package/dist/src/mcp-client.d.ts.map +0 -1
  251. package/dist/src/mcp-client.js.map +0 -1
  252. package/dist/src/mcp-server.d.ts.map +0 -1
  253. package/dist/src/mcp-server.js.map +0 -1
  254. package/dist/src/mcp-tools/agent-execute-core.d.ts.map +0 -1
  255. package/dist/src/mcp-tools/agent-execute-core.js.map +0 -1
  256. package/dist/src/mcp-tools/agent-tools.d.ts.map +0 -1
  257. package/dist/src/mcp-tools/agent-tools.js.map +0 -1
  258. package/dist/src/mcp-tools/agentbbs-tools.d.ts.map +0 -1
  259. package/dist/src/mcp-tools/agentbbs-tools.js.map +0 -1
  260. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +0 -1
  261. package/dist/src/mcp-tools/agentdb-tools.js.map +0 -1
  262. package/dist/src/mcp-tools/agenticow-loader.d.ts.map +0 -1
  263. package/dist/src/mcp-tools/agenticow-loader.js.map +0 -1
  264. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts.map +0 -1
  265. package/dist/src/mcp-tools/agenticow-speculate-tools.js.map +0 -1
  266. package/dist/src/mcp-tools/agenticow-tools.d.ts.map +0 -1
  267. package/dist/src/mcp-tools/agenticow-tools.js.map +0 -1
  268. package/dist/src/mcp-tools/analyze-tools.d.ts.map +0 -1
  269. package/dist/src/mcp-tools/analyze-tools.js.map +0 -1
  270. package/dist/src/mcp-tools/auto-install.d.ts.map +0 -1
  271. package/dist/src/mcp-tools/auto-install.js.map +0 -1
  272. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +0 -1
  273. package/dist/src/mcp-tools/autopilot-tools.js.map +0 -1
  274. package/dist/src/mcp-tools/browser-session-tools.d.ts.map +0 -1
  275. package/dist/src/mcp-tools/browser-session-tools.js.map +0 -1
  276. package/dist/src/mcp-tools/browser-tools.d.ts.map +0 -1
  277. package/dist/src/mcp-tools/browser-tools.js.map +0 -1
  278. package/dist/src/mcp-tools/business-pod-tools.d.ts.map +0 -1
  279. package/dist/src/mcp-tools/business-pod-tools.js.map +0 -1
  280. package/dist/src/mcp-tools/claims-tools.d.ts.map +0 -1
  281. package/dist/src/mcp-tools/claims-tools.js.map +0 -1
  282. package/dist/src/mcp-tools/config-tools.d.ts.map +0 -1
  283. package/dist/src/mcp-tools/config-tools.js.map +0 -1
  284. package/dist/src/mcp-tools/coordination-tools.d.ts.map +0 -1
  285. package/dist/src/mcp-tools/coordination-tools.js.map +0 -1
  286. package/dist/src/mcp-tools/daa-tools.d.ts.map +0 -1
  287. package/dist/src/mcp-tools/daa-tools.js.map +0 -1
  288. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +0 -1
  289. package/dist/src/mcp-tools/embeddings-tools.js.map +0 -1
  290. package/dist/src/mcp-tools/github-tools.d.ts.map +0 -1
  291. package/dist/src/mcp-tools/github-tools.js.map +0 -1
  292. package/dist/src/mcp-tools/guidance-tools.d.ts.map +0 -1
  293. package/dist/src/mcp-tools/guidance-tools.js.map +0 -1
  294. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -1
  295. package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -1
  296. package/dist/src/mcp-tools/hooks-tools.d.ts.map +0 -1
  297. package/dist/src/mcp-tools/hooks-tools.js.map +0 -1
  298. package/dist/src/mcp-tools/http-fetch-tools.d.ts.map +0 -1
  299. package/dist/src/mcp-tools/http-fetch-tools.js.map +0 -1
  300. package/dist/src/mcp-tools/index.d.ts.map +0 -1
  301. package/dist/src/mcp-tools/index.js.map +0 -1
  302. package/dist/src/mcp-tools/managed-agent-tools.d.ts.map +0 -1
  303. package/dist/src/mcp-tools/managed-agent-tools.js.map +0 -1
  304. package/dist/src/mcp-tools/memory-tools.d.ts.map +0 -1
  305. package/dist/src/mcp-tools/memory-tools.js.map +0 -1
  306. package/dist/src/mcp-tools/metaharness-tools.d.ts.map +0 -1
  307. package/dist/src/mcp-tools/metaharness-tools.js.map +0 -1
  308. package/dist/src/mcp-tools/neural-tools.d.ts.map +0 -1
  309. package/dist/src/mcp-tools/neural-tools.js.map +0 -1
  310. package/dist/src/mcp-tools/performance-tools.d.ts.map +0 -1
  311. package/dist/src/mcp-tools/performance-tools.js.map +0 -1
  312. package/dist/src/mcp-tools/progress-tools.d.ts.map +0 -1
  313. package/dist/src/mcp-tools/progress-tools.js.map +0 -1
  314. package/dist/src/mcp-tools/request-tracker.d.ts.map +0 -1
  315. package/dist/src/mcp-tools/request-tracker.js.map +0 -1
  316. package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +0 -1
  317. package/dist/src/mcp-tools/ruvllm-tools.js.map +0 -1
  318. package/dist/src/mcp-tools/security-tools.d.ts.map +0 -1
  319. package/dist/src/mcp-tools/security-tools.js.map +0 -1
  320. package/dist/src/mcp-tools/session-tools.d.ts.map +0 -1
  321. package/dist/src/mcp-tools/session-tools.js.map +0 -1
  322. package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -1
  323. package/dist/src/mcp-tools/swarm-tools.js.map +0 -1
  324. package/dist/src/mcp-tools/system-tools.d.ts.map +0 -1
  325. package/dist/src/mcp-tools/system-tools.js.map +0 -1
  326. package/dist/src/mcp-tools/task-tools.d.ts.map +0 -1
  327. package/dist/src/mcp-tools/task-tools.js.map +0 -1
  328. package/dist/src/mcp-tools/terminal-tools.d.ts.map +0 -1
  329. package/dist/src/mcp-tools/terminal-tools.js.map +0 -1
  330. package/dist/src/mcp-tools/testgen-tools.d.ts.map +0 -1
  331. package/dist/src/mcp-tools/testgen-tools.js.map +0 -1
  332. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts.map +0 -1
  333. package/dist/src/mcp-tools/tool-loop-guardrail.js.map +0 -1
  334. package/dist/src/mcp-tools/transfer-tools.d.ts.map +0 -1
  335. package/dist/src/mcp-tools/transfer-tools.js.map +0 -1
  336. package/dist/src/mcp-tools/types.d.ts.map +0 -1
  337. package/dist/src/mcp-tools/types.js.map +0 -1
  338. package/dist/src/mcp-tools/validate-input.d.ts.map +0 -1
  339. package/dist/src/mcp-tools/validate-input.js.map +0 -1
  340. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +0 -1
  341. package/dist/src/mcp-tools/wasm-agent-tools.js.map +0 -1
  342. package/dist/src/mcp-tools/workflow-tools.d.ts.map +0 -1
  343. package/dist/src/mcp-tools/workflow-tools.js.map +0 -1
  344. package/dist/src/memory/bge-embedder.d.ts.map +0 -1
  345. package/dist/src/memory/bge-embedder.js.map +0 -1
  346. package/dist/src/memory/cross-encoder-rerank.d.ts.map +0 -1
  347. package/dist/src/memory/cross-encoder-rerank.js.map +0 -1
  348. package/dist/src/memory/embedding-quantization.d.ts.map +0 -1
  349. package/dist/src/memory/embedding-quantization.js.map +0 -1
  350. package/dist/src/memory/ewc-consolidation.d.ts.map +0 -1
  351. package/dist/src/memory/ewc-consolidation.js.map +0 -1
  352. package/dist/src/memory/graph-edge-writer.d.ts.map +0 -1
  353. package/dist/src/memory/graph-edge-writer.js.map +0 -1
  354. package/dist/src/memory/hybrid-retrieval.d.ts.map +0 -1
  355. package/dist/src/memory/hybrid-retrieval.js.map +0 -1
  356. package/dist/src/memory/intelligence.d.ts.map +0 -1
  357. package/dist/src/memory/intelligence.js.map +0 -1
  358. package/dist/src/memory/lucene-bm25.d.ts.map +0 -1
  359. package/dist/src/memory/lucene-bm25.js.map +0 -1
  360. package/dist/src/memory/memory-bridge.d.ts.map +0 -1
  361. package/dist/src/memory/memory-bridge.js.map +0 -1
  362. package/dist/src/memory/memory-initializer.d.ts.map +0 -1
  363. package/dist/src/memory/memory-initializer.js.map +0 -1
  364. package/dist/src/memory/neural-package-bridge.d.ts.map +0 -1
  365. package/dist/src/memory/neural-package-bridge.js.map +0 -1
  366. package/dist/src/memory/rabitq-index.d.ts.map +0 -1
  367. package/dist/src/memory/rabitq-index.js.map +0 -1
  368. package/dist/src/memory/sona-optimizer.d.ts.map +0 -1
  369. package/dist/src/memory/sona-optimizer.js.map +0 -1
  370. package/dist/src/memory/structured-distill.d.ts.map +0 -1
  371. package/dist/src/memory/structured-distill.js.map +0 -1
  372. package/dist/src/output.d.ts.map +0 -1
  373. package/dist/src/output.js.map +0 -1
  374. package/dist/src/parser.d.ts.map +0 -1
  375. package/dist/src/parser.js.map +0 -1
  376. package/dist/src/plugins/manager.d.ts.map +0 -1
  377. package/dist/src/plugins/manager.js.map +0 -1
  378. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  379. package/dist/src/plugins/store/discovery.js.map +0 -1
  380. package/dist/src/plugins/store/index.d.ts.map +0 -1
  381. package/dist/src/plugins/store/index.js.map +0 -1
  382. package/dist/src/plugins/store/search.d.ts.map +0 -1
  383. package/dist/src/plugins/store/search.js.map +0 -1
  384. package/dist/src/plugins/store/types.d.ts.map +0 -1
  385. package/dist/src/plugins/store/types.js.map +0 -1
  386. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  387. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  388. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  389. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  390. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  391. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  392. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  393. package/dist/src/production/circuit-breaker.js.map +0 -1
  394. package/dist/src/production/error-handler.d.ts.map +0 -1
  395. package/dist/src/production/error-handler.js.map +0 -1
  396. package/dist/src/production/index.d.ts.map +0 -1
  397. package/dist/src/production/index.js.map +0 -1
  398. package/dist/src/production/monitoring.d.ts.map +0 -1
  399. package/dist/src/production/monitoring.js.map +0 -1
  400. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  401. package/dist/src/production/rate-limiter.js.map +0 -1
  402. package/dist/src/production/retry.d.ts.map +0 -1
  403. package/dist/src/production/retry.js.map +0 -1
  404. package/dist/src/prompt.d.ts.map +0 -1
  405. package/dist/src/prompt.js.map +0 -1
  406. package/dist/src/runtime/headless.d.ts.map +0 -1
  407. package/dist/src/runtime/headless.js.map +0 -1
  408. package/dist/src/runtime/parent-death-watchdog.d.ts.map +0 -1
  409. package/dist/src/runtime/parent-death-watchdog.js.map +0 -1
  410. package/dist/src/ruvector/agent-wasm.d.ts.map +0 -1
  411. package/dist/src/ruvector/agent-wasm.js.map +0 -1
  412. package/dist/src/ruvector/ast-analyzer.d.ts.map +0 -1
  413. package/dist/src/ruvector/ast-analyzer.js.map +0 -1
  414. package/dist/src/ruvector/codemods/engine.d.ts.map +0 -1
  415. package/dist/src/ruvector/codemods/engine.js.map +0 -1
  416. package/dist/src/ruvector/codemods/scope-analysis.d.ts.map +0 -1
  417. package/dist/src/ruvector/codemods/scope-analysis.js.map +0 -1
  418. package/dist/src/ruvector/coverage-router.d.ts.map +0 -1
  419. package/dist/src/ruvector/coverage-router.js.map +0 -1
  420. package/dist/src/ruvector/coverage-tools.d.ts.map +0 -1
  421. package/dist/src/ruvector/coverage-tools.js.map +0 -1
  422. package/dist/src/ruvector/diff-classifier.d.ts.map +0 -1
  423. package/dist/src/ruvector/diff-classifier.js.map +0 -1
  424. package/dist/src/ruvector/diskann-backend.d.ts.map +0 -1
  425. package/dist/src/ruvector/diskann-backend.js.map +0 -1
  426. package/dist/src/ruvector/enhanced-model-router.d.ts.map +0 -1
  427. package/dist/src/ruvector/enhanced-model-router.js.map +0 -1
  428. package/dist/src/ruvector/graph-analyzer.d.ts.map +0 -1
  429. package/dist/src/ruvector/graph-analyzer.js.map +0 -1
  430. package/dist/src/ruvector/graph-backend.d.ts.map +0 -1
  431. package/dist/src/ruvector/graph-backend.js.map +0 -1
  432. package/dist/src/ruvector/index.d.ts.map +0 -1
  433. package/dist/src/ruvector/index.js.map +0 -1
  434. package/dist/src/ruvector/lora-adapter.d.ts.map +0 -1
  435. package/dist/src/ruvector/lora-adapter.js.map +0 -1
  436. package/dist/src/ruvector/model-prices.d.ts.map +0 -1
  437. package/dist/src/ruvector/model-prices.js.map +0 -1
  438. package/dist/src/ruvector/model-router.d.ts.map +0 -1
  439. package/dist/src/ruvector/model-router.js.map +0 -1
  440. package/dist/src/ruvector/neural-router.d.ts.map +0 -1
  441. package/dist/src/ruvector/neural-router.js.map +0 -1
  442. package/dist/src/ruvector/output-verifier.d.ts.map +0 -1
  443. package/dist/src/ruvector/output-verifier.js.map +0 -1
  444. package/dist/src/ruvector/q-learning-router.d.ts.map +0 -1
  445. package/dist/src/ruvector/q-learning-router.js.map +0 -1
  446. package/dist/src/ruvector/router-calibrator.d.ts.map +0 -1
  447. package/dist/src/ruvector/router-calibrator.js.map +0 -1
  448. package/dist/src/ruvector/router-parallel-recorder.d.ts.map +0 -1
  449. package/dist/src/ruvector/router-parallel-recorder.js.map +0 -1
  450. package/dist/src/ruvector/router-trajectory.d.ts.map +0 -1
  451. package/dist/src/ruvector/router-trajectory.js.map +0 -1
  452. package/dist/src/ruvector/run-transcript-recorder.d.ts.map +0 -1
  453. package/dist/src/ruvector/run-transcript-recorder.js.map +0 -1
  454. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +0 -1
  455. package/dist/src/ruvector/ruvllm-wasm.js.map +0 -1
  456. package/dist/src/ruvector/semantic-router.d.ts.map +0 -1
  457. package/dist/src/ruvector/semantic-router.js.map +0 -1
  458. package/dist/src/ruvector/task-embedder.d.ts.map +0 -1
  459. package/dist/src/ruvector/task-embedder.js.map +0 -1
  460. package/dist/src/ruvector/trajectory-tree.d.ts.map +0 -1
  461. package/dist/src/ruvector/trajectory-tree.js.map +0 -1
  462. package/dist/src/ruvector/vector-db.d.ts.map +0 -1
  463. package/dist/src/ruvector/vector-db.js.map +0 -1
  464. package/dist/src/services/agentic-flow-bridge.d.ts.map +0 -1
  465. package/dist/src/services/agentic-flow-bridge.js.map +0 -1
  466. package/dist/src/services/checkpoint-gate.d.ts.map +0 -1
  467. package/dist/src/services/checkpoint-gate.js.map +0 -1
  468. package/dist/src/services/claim-service.d.ts.map +0 -1
  469. package/dist/src/services/claim-service.js.map +0 -1
  470. package/dist/src/services/config-file-manager.d.ts.map +0 -1
  471. package/dist/src/services/config-file-manager.js.map +0 -1
  472. package/dist/src/services/container-worker-pool.d.ts.map +0 -1
  473. package/dist/src/services/container-worker-pool.js.map +0 -1
  474. package/dist/src/services/distill-oracle.d.ts.map +0 -1
  475. package/dist/src/services/distill-oracle.js.map +0 -1
  476. package/dist/src/services/fable-harness.d.ts.map +0 -1
  477. package/dist/src/services/fable-harness.js.map +0 -1
  478. package/dist/src/services/headless-worker-executor.d.ts.map +0 -1
  479. package/dist/src/services/headless-worker-executor.js.map +0 -1
  480. package/dist/src/services/index.d.ts.map +0 -1
  481. package/dist/src/services/index.js.map +0 -1
  482. package/dist/src/services/native-training.d.ts.map +0 -1
  483. package/dist/src/services/native-training.js.map +0 -1
  484. package/dist/src/services/registry-api.d.ts.map +0 -1
  485. package/dist/src/services/registry-api.js.map +0 -1
  486. package/dist/src/services/ruvector-training.d.ts.map +0 -1
  487. package/dist/src/services/ruvector-training.js.map +0 -1
  488. package/dist/src/services/swarm-memory-branches.d.ts.map +0 -1
  489. package/dist/src/services/swarm-memory-branches.js.map +0 -1
  490. package/dist/src/services/weight-eft.d.ts.map +0 -1
  491. package/dist/src/services/weight-eft.js.map +0 -1
  492. package/dist/src/services/worker-daemon.d.ts.map +0 -1
  493. package/dist/src/services/worker-daemon.js.map +0 -1
  494. package/dist/src/services/worker-queue.d.ts.map +0 -1
  495. package/dist/src/services/worker-queue.js.map +0 -1
  496. package/dist/src/suggest.d.ts.map +0 -1
  497. package/dist/src/suggest.js.map +0 -1
  498. package/dist/src/transfer/anonymization/index.d.ts.map +0 -1
  499. package/dist/src/transfer/anonymization/index.js.map +0 -1
  500. package/dist/src/transfer/deploy-seraphine.d.ts.map +0 -1
  501. package/dist/src/transfer/deploy-seraphine.js.map +0 -1
  502. package/dist/src/transfer/export.d.ts.map +0 -1
  503. package/dist/src/transfer/export.js.map +0 -1
  504. package/dist/src/transfer/index.d.ts.map +0 -1
  505. package/dist/src/transfer/index.js.map +0 -1
  506. package/dist/src/transfer/ipfs/client.d.ts.map +0 -1
  507. package/dist/src/transfer/ipfs/client.js.map +0 -1
  508. package/dist/src/transfer/ipfs/upload.d.ts.map +0 -1
  509. package/dist/src/transfer/ipfs/upload.js.map +0 -1
  510. package/dist/src/transfer/models/seraphine.d.ts.map +0 -1
  511. package/dist/src/transfer/models/seraphine.js.map +0 -1
  512. package/dist/src/transfer/serialization/cfp.d.ts.map +0 -1
  513. package/dist/src/transfer/serialization/cfp.js.map +0 -1
  514. package/dist/src/transfer/storage/gcs.d.ts.map +0 -1
  515. package/dist/src/transfer/storage/gcs.js.map +0 -1
  516. package/dist/src/transfer/storage/index.d.ts.map +0 -1
  517. package/dist/src/transfer/storage/index.js.map +0 -1
  518. package/dist/src/transfer/store/discovery.d.ts.map +0 -1
  519. package/dist/src/transfer/store/discovery.js.map +0 -1
  520. package/dist/src/transfer/store/download.d.ts.map +0 -1
  521. package/dist/src/transfer/store/download.js.map +0 -1
  522. package/dist/src/transfer/store/index.d.ts.map +0 -1
  523. package/dist/src/transfer/store/index.js.map +0 -1
  524. package/dist/src/transfer/store/publish.d.ts.map +0 -1
  525. package/dist/src/transfer/store/publish.js.map +0 -1
  526. package/dist/src/transfer/store/registry.d.ts.map +0 -1
  527. package/dist/src/transfer/store/registry.js.map +0 -1
  528. package/dist/src/transfer/store/search.d.ts.map +0 -1
  529. package/dist/src/transfer/store/search.js.map +0 -1
  530. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +0 -1
  531. package/dist/src/transfer/store/tests/standalone-test.js.map +0 -1
  532. package/dist/src/transfer/store/types.d.ts.map +0 -1
  533. package/dist/src/transfer/store/types.js.map +0 -1
  534. package/dist/src/transfer/test-seraphine.d.ts.map +0 -1
  535. package/dist/src/transfer/test-seraphine.js.map +0 -1
  536. package/dist/src/transfer/tests/test-store.d.ts.map +0 -1
  537. package/dist/src/transfer/tests/test-store.js.map +0 -1
  538. package/dist/src/transfer/types.d.ts.map +0 -1
  539. package/dist/src/transfer/types.js.map +0 -1
  540. package/dist/src/types.d.ts.map +0 -1
  541. package/dist/src/types.js.map +0 -1
  542. package/dist/src/update/checker.d.ts.map +0 -1
  543. package/dist/src/update/checker.js.map +0 -1
  544. package/dist/src/update/executor.d.ts.map +0 -1
  545. package/dist/src/update/executor.js.map +0 -1
  546. package/dist/src/update/index.d.ts.map +0 -1
  547. package/dist/src/update/index.js.map +0 -1
  548. package/dist/src/update/rate-limiter.d.ts.map +0 -1
  549. package/dist/src/update/rate-limiter.js.map +0 -1
  550. package/dist/src/update/validator.d.ts.map +0 -1
  551. package/dist/src/update/validator.js.map +0 -1
  552. package/dist/tsconfig.tsbuildinfo +0 -1
  553. package/scripts/beir-bootstrap-significance.mjs +0 -162
  554. package/scripts/bench-rvagent.mjs +0 -312
  555. package/scripts/benchmark-codemods.mjs +0 -127
  556. package/scripts/benchmark-cross-repo.mjs +0 -206
  557. package/scripts/benchmark-pretrained-retrieval.mjs +0 -305
  558. package/scripts/benchmark-self-learning.mjs +0 -241
  559. package/scripts/benchmark-trajectory-mrr.mjs +0 -191
  560. package/scripts/deploy-ipfs-node.sh +0 -153
  561. package/scripts/grid-search-retrieval.mjs +0 -216
  562. package/scripts/pretrain-from-github.mjs +0 -358
  563. package/scripts/publish-registry.ts +0 -345
  564. package/scripts/publish.sh +0 -57
  565. package/scripts/run-beir-bge.mjs +0 -324
  566. package/scripts/run-beir-hybrid.mjs +0 -284
  567. package/scripts/run-beir-lucene-bm25.mjs +0 -154
  568. package/scripts/run-beir-nfcorpus.mjs +0 -231
  569. package/scripts/run-beir-rrf-ablation.mjs +0 -221
  570. package/scripts/setup-ipfs-registry.md +0 -366
@@ -0,0 +1,374 @@
1
+ /**
2
+ * V3 CLI `memory distill` Command Family (ADR-174 Milestone 2)
3
+ *
4
+ * CLI surface over the frozen M1 service (`../services/memory-distillation.js`
5
+ * — `runDistillation` / `defaultMemoryDbPath`). This file does not implement
6
+ * any distillation logic itself; it only resolves flags/config/presets into
7
+ * `DistillOptions`, calls the service, and formats the report.
8
+ *
9
+ * memory distill run — run (or dry-run) a distillation pass
10
+ * memory distill status — read-only report on the target tables + cursor
11
+ * memory distill config — print the effective resolved config as JSON
12
+ *
13
+ * Design notes:
14
+ * - `--judge fable` requires `--budget-usd > 0` (ADR-172 cost-bounded advisor
15
+ * gate). This is enforced here, client-side, as a fail-fast — the service
16
+ * itself also refuses (`skipped: 'judge:fable requires ...'`) but failing
17
+ * fast in the CLI gives a clearer, non-zero-exit error.
18
+ * - `--aggressive` / `--conservative` are preset bundles (ADR-174 param
19
+ * table). Precedence, low to high: built-in defaults < `--config` file <
20
+ * preset < explicit `--batch-size`/`--dedup-distance` flags.
21
+ * - `status` opens the DB read-only via the same "variable-specifier"
22
+ * optional-import pattern used by `../memory/graph-edge-writer.ts` so the
23
+ * TypeScript compiler never statically requires `better-sqlite3` types,
24
+ * and degrades gracefully (no throw) when the DB, tables, or the native
25
+ * module are absent.
26
+ */
27
+ import * as fs from 'fs';
28
+ import * as path from 'path';
29
+ import { output } from '../output.js';
30
+ import { runDistillation, defaultMemoryDbPath, } from '../services/memory-distillation.js';
31
+ const DEFAULT_CONFIG = {
32
+ dryRun: false,
33
+ batchSize: 200,
34
+ dedupDistance: 0.2, // ADR-174 M4-tuned platform default (~37% fewer patterns, retrieval-neutral)
35
+ budgetUsd: 0,
36
+ judge: 'structural',
37
+ };
38
+ // ADR-174 preset bundles — distinct extremes around the 0.2 tuned default.
39
+ const AGGRESSIVE_PRESET = { dedupDistance: 0.3, batchSize: 500 }; // more clustering → fewer, coarser patterns
40
+ const CONSERVATIVE_PRESET = { dedupDistance: 0.1, batchSize: 100 }; // less clustering → more, granular patterns
41
+ const DB_OPTION = {
42
+ name: 'db',
43
+ description: 'Path to the memory DB (default: cwd/.swarm/memory.db)',
44
+ type: 'string',
45
+ };
46
+ /**
47
+ * Resolve the effective distill config from: built-in defaults, an optional
48
+ * `--config <path>` JSON file, an `--aggressive`/`--conservative` preset, and
49
+ * finally explicit CLI flags (highest precedence).
50
+ */
51
+ export function resolveDistillConfig(ctx) {
52
+ let cfg = { ...DEFAULT_CONFIG };
53
+ const configPath = ctx.flags.config;
54
+ if (configPath) {
55
+ try {
56
+ const raw = fs.readFileSync(path.resolve(configPath), 'utf8');
57
+ const parsed = JSON.parse(raw);
58
+ if (parsed && typeof parsed === 'object') {
59
+ cfg = { ...cfg, ...parsed };
60
+ }
61
+ }
62
+ catch (error) {
63
+ return { ok: false, error: `Failed to load --config ${configPath}: ${error instanceof Error ? error.message : String(error)}` };
64
+ }
65
+ }
66
+ const aggressive = ctx.flags.aggressive === true;
67
+ const conservative = ctx.flags.conservative === true;
68
+ if (aggressive && conservative) {
69
+ return { ok: false, error: '--aggressive and --conservative are mutually exclusive' };
70
+ }
71
+ if (aggressive)
72
+ cfg = { ...cfg, ...AGGRESSIVE_PRESET };
73
+ if (conservative)
74
+ cfg = { ...cfg, ...CONSERVATIVE_PRESET };
75
+ // Explicit CLI flags win over the config file and presets.
76
+ if (ctx.flags.dryRun === true)
77
+ cfg.dryRun = true;
78
+ if (typeof ctx.flags.namespace === 'string' && ctx.flags.namespace.length > 0) {
79
+ cfg.namespaces = ctx.flags.namespace.split(',').map((s) => s.trim()).filter(Boolean);
80
+ }
81
+ if (ctx.flags.batchSize !== undefined)
82
+ cfg.batchSize = Number(ctx.flags.batchSize);
83
+ if (ctx.flags.dedupDistance !== undefined)
84
+ cfg.dedupDistance = Number(ctx.flags.dedupDistance);
85
+ if (ctx.flags.maxEntries !== undefined)
86
+ cfg.maxEntries = Number(ctx.flags.maxEntries);
87
+ if (ctx.flags.since !== undefined)
88
+ cfg.sinceRowid = Number(ctx.flags.since);
89
+ if (ctx.flags.budgetUsd !== undefined)
90
+ cfg.budgetUsd = Number(ctx.flags.budgetUsd);
91
+ if (ctx.flags.judge !== undefined) {
92
+ if (ctx.flags.judge !== 'structural' && ctx.flags.judge !== 'fable') {
93
+ return { ok: false, error: `--judge must be 'structural' or 'fable' (got '${String(ctx.flags.judge)}')` };
94
+ }
95
+ cfg.judge = ctx.flags.judge;
96
+ }
97
+ return { ok: true, config: cfg };
98
+ }
99
+ function resolveDbPath(ctx) {
100
+ return ctx.flags.db || defaultMemoryDbPath(ctx.cwd || process.cwd());
101
+ }
102
+ // ============================================================================
103
+ // `memory distill run`
104
+ // ============================================================================
105
+ const runCommand = {
106
+ name: 'run',
107
+ description: 'Distill memory_entries into episodes/reasoning_patterns/pattern_embeddings/causal_edges (ADR-174)',
108
+ options: [
109
+ { name: 'dry-run', description: 'Report counts, write nothing', type: 'boolean', default: false },
110
+ { name: 'namespace', description: 'Comma-separated namespace scope (default: all embedded namespaces)', type: 'string' },
111
+ { name: 'batch-size', description: 'Rows per transaction (default 200)', type: 'number', default: 200 },
112
+ { name: 'dedup-distance', description: 'Cosine distance for pattern clustering (default 0.12)', type: 'number', default: 0.12 },
113
+ { name: 'max-entries', description: 'Per-invocation work cap (default unbounded)', type: 'number' },
114
+ { name: 'since', description: 'Override the incremental cursor and rescan from this rowid', type: 'number' },
115
+ { name: 'budget-usd', description: '$0 by default; >0 required to unlock --judge fable (ADR-172)', type: 'number', default: 0 },
116
+ { name: 'judge', description: "'structural' (default, $0) or 'fable' (requires --budget-usd > 0)", type: 'string', default: 'structural', choices: ['structural', 'fable'] },
117
+ { name: 'aggressive', description: 'Preset: dedup-distance 0.2, batch-size 500', type: 'boolean' },
118
+ { name: 'conservative', description: 'Preset: dedup-distance 0.08, batch-size 100', type: 'boolean' },
119
+ { name: 'config', description: 'Load options from a JSON config file (see: memory distill config)', type: 'string' },
120
+ { ...DB_OPTION },
121
+ { name: 'verbose', short: 'v', description: 'Verbose service logging', type: 'boolean' },
122
+ ],
123
+ examples: [
124
+ { command: 'claude-flow memory distill run --dry-run', description: 'Preview counts without writing anything' },
125
+ { command: 'claude-flow memory distill run --namespace feedback,commands', description: 'Scope the run to specific namespaces' },
126
+ { command: 'claude-flow memory distill run --aggressive', description: 'Larger batches, looser dedup clustering' },
127
+ { command: 'claude-flow memory distill run --judge fable --budget-usd 2', description: 'Opt into the cost-bounded Fable judge (ADR-172)' },
128
+ ],
129
+ action: async (ctx) => {
130
+ const resolved = resolveDistillConfig(ctx);
131
+ if (!resolved.ok) {
132
+ output.printError(resolved.error);
133
+ return { success: false, exitCode: 1 };
134
+ }
135
+ const config = resolved.config;
136
+ // Fail-fast ADR-172 gate: the Fable judge is cost-bounded and opt-in only.
137
+ if (config.judge === 'fable' && !(config.budgetUsd > 0)) {
138
+ output.printError('--judge fable requires --budget-usd > 0 (ADR-172 cost-bounded advisor path). ' +
139
+ 'Refusing to run the LLM judge against a $0 budget.');
140
+ return { success: false, exitCode: 1 };
141
+ }
142
+ const dbPath = resolveDbPath(ctx);
143
+ output.writeln();
144
+ output.writeln(output.bold('Memory Distillation (ADR-174)'));
145
+ output.writeln(output.dim('─'.repeat(55)));
146
+ if (config.dryRun)
147
+ output.writeln(output.warning('DRY RUN — no writes will be made'));
148
+ const spinner = output.createSpinner({ text: 'Distilling memory_entries...', spinner: 'dots' });
149
+ spinner.start();
150
+ const distillOptions = {
151
+ dbPath,
152
+ namespaces: config.namespaces,
153
+ batchSize: config.batchSize,
154
+ maxEntries: config.maxEntries,
155
+ dedupDistance: config.dedupDistance,
156
+ dryRun: config.dryRun,
157
+ judge: config.judge,
158
+ sinceRowid: config.sinceRowid,
159
+ verbose: ctx.flags.verbose === true,
160
+ };
161
+ let report;
162
+ try {
163
+ report = await runDistillation(distillOptions);
164
+ }
165
+ catch (error) {
166
+ spinner.fail('Distillation failed');
167
+ output.printError(error instanceof Error ? error.message : String(error));
168
+ return { success: false, exitCode: 1 };
169
+ }
170
+ if (report.skipped) {
171
+ spinner.succeed('Distillation skipped');
172
+ output.writeln(output.warning(`skipped: ${report.skipped}`));
173
+ return { success: true, data: { dbPath, config, report } };
174
+ }
175
+ spinner.succeed(config.dryRun ? 'Dry-run complete' : 'Distillation complete');
176
+ output.writeln();
177
+ output.printTable({
178
+ columns: [
179
+ { key: 'metric', header: 'Metric', width: 24 },
180
+ { key: 'value', header: 'Value', width: 20 },
181
+ ],
182
+ data: [
183
+ { metric: 'Processed', value: String(report.processed) },
184
+ { metric: 'Episodes', value: String(report.episodes) },
185
+ { metric: 'Patterns', value: String(report.patterns) },
186
+ { metric: 'Pattern Embeddings', value: String(report.patternEmbeddings) },
187
+ { metric: 'Causal Edges', value: String(report.causalEdges) },
188
+ { metric: 'Promoted (ADR-171)', value: String(report.promoted) },
189
+ { metric: 'Namespaces', value: report.namespaces.join(', ') || '(none)' },
190
+ { metric: 'Spend', value: `$${report.spendUsd.toFixed(4)}` },
191
+ { metric: 'Dry Run', value: report.dryRun ? 'yes' : 'no' },
192
+ ],
193
+ });
194
+ const provenanceEntries = Object.entries(report.byProvenance);
195
+ if (provenanceEntries.length > 0) {
196
+ output.writeln();
197
+ output.writeln(output.bold('By Provenance'));
198
+ output.printList(provenanceEntries.map(([tier, count]) => `${output.highlight(tier)}: ${count}`));
199
+ }
200
+ return { success: true, data: { dbPath, config, report } };
201
+ },
202
+ };
203
+ // ============================================================================
204
+ // `memory distill status`
205
+ // ============================================================================
206
+ const statusCommand = {
207
+ name: 'status',
208
+ description: 'Read-only report: target table row counts, per-namespace distill_state cursor, promoted vs proxy breakdown',
209
+ options: [{ ...DB_OPTION }],
210
+ examples: [
211
+ { command: 'claude-flow memory distill status', description: 'Show distillation state for the default DB' },
212
+ { command: 'claude-flow memory distill status --db ./copy.db', description: 'Inspect a specific DB copy' },
213
+ ],
214
+ action: async (ctx) => {
215
+ const dbPath = resolveDbPath(ctx);
216
+ output.writeln();
217
+ output.writeln(output.bold('Memory Distillation Status'));
218
+ output.writeln(output.dim('─'.repeat(55)));
219
+ if (!fs.existsSync(dbPath)) {
220
+ output.writeln(output.warning(`No memory DB found at ${dbPath}`));
221
+ return { success: true, data: { available: false, dbPath, reason: 'no-db' } };
222
+ }
223
+ // Optional native dep — hidden behind a variable specifier so the
224
+ // compiler never statically requires `better-sqlite3` types (same
225
+ // pattern as ../memory/graph-edge-writer.ts).
226
+ let Database;
227
+ try {
228
+ const mod = 'better-sqlite3';
229
+ Database = (await import(mod)).default;
230
+ }
231
+ catch {
232
+ output.writeln(output.warning('better-sqlite3 native module unavailable — cannot read distillation state.'));
233
+ return { success: true, data: { available: false, dbPath, reason: 'better-sqlite3 unavailable' } };
234
+ }
235
+ let db;
236
+ try {
237
+ db = new Database(dbPath, { readonly: true, fileMustExist: true });
238
+ }
239
+ catch (error) {
240
+ output.printError(`Failed to open ${dbPath}: ${error instanceof Error ? error.message : String(error)}`);
241
+ return { success: true, data: { available: false, dbPath, reason: 'open-failed' } };
242
+ }
243
+ try {
244
+ const tableExists = (name) => (db.prepare("SELECT COUNT(*) AS c FROM sqlite_master WHERE type='table' AND name=?").get(name)?.c ?? 0) > 0;
245
+ const targetTables = ['episodes', 'reasoning_patterns', 'pattern_embeddings', 'causal_edges'];
246
+ const presence = {};
247
+ for (const t of [...targetTables, 'distill_state'])
248
+ presence[t] = tableExists(t);
249
+ const counts = {};
250
+ for (const t of targetTables) {
251
+ counts[t] = presence[t] ? (db.prepare(`SELECT COUNT(*) AS c FROM ${t}`).get()?.c ?? 0) : 0;
252
+ }
253
+ let cursors = [];
254
+ if (presence.distill_state) {
255
+ cursors = db.prepare('SELECT namespace AS namespace, last_rowid AS lastRowid, last_run_at AS lastRunAt FROM distill_state ORDER BY namespace').all();
256
+ }
257
+ let promoted = 0;
258
+ let proxy = 0;
259
+ if (presence.reasoning_patterns) {
260
+ promoted = db.prepare("SELECT COUNT(*) AS c FROM reasoning_patterns WHERE json_extract(metadata,'$.promoted')=1").get()?.c ?? 0;
261
+ proxy = db.prepare("SELECT COUNT(*) AS c FROM reasoning_patterns WHERE json_extract(metadata,'$.provenance')='proxy:structural'").get()?.c ?? 0;
262
+ }
263
+ db.close();
264
+ output.printTable({
265
+ columns: [
266
+ { key: 'table', header: 'Table', width: 22 },
267
+ { key: 'rows', header: 'Rows', width: 10 },
268
+ ],
269
+ data: targetTables.map((t) => ({ table: t, rows: String(counts[t]) })),
270
+ });
271
+ output.writeln();
272
+ output.writeln(output.bold('Promote gate (ADR-171)'));
273
+ output.writeln(` promoted: ${promoted} proxy (never promoted): ${proxy} total patterns: ${counts.reasoning_patterns}`);
274
+ if (cursors.length > 0) {
275
+ output.writeln();
276
+ output.writeln(output.bold('distill_state cursor'));
277
+ output.printTable({
278
+ columns: [
279
+ { key: 'namespace', header: 'Namespace', width: 20 },
280
+ { key: 'lastRowid', header: 'Last Rowid', width: 12 },
281
+ { key: 'lastRunAt', header: 'Last Run', width: 26 },
282
+ ],
283
+ data: cursors.map((c) => ({
284
+ namespace: c.namespace,
285
+ lastRowid: String(c.lastRowid),
286
+ lastRunAt: c.lastRunAt ? new Date(c.lastRunAt).toISOString() : 'never',
287
+ })),
288
+ });
289
+ }
290
+ else {
291
+ output.writeln();
292
+ output.writeln(output.dim('No distill_state cursor rows yet (run `memory distill run` first).'));
293
+ }
294
+ if (!presence.reasoning_patterns) {
295
+ output.writeln();
296
+ output.writeln(output.dim('Target tables not present — agentdb schema not initialised, or distillation never run.'));
297
+ }
298
+ return {
299
+ success: true,
300
+ data: { available: true, dbPath, counts, cursors, promoted, proxy, tablesPresent: presence },
301
+ };
302
+ }
303
+ catch (error) {
304
+ try {
305
+ db?.close();
306
+ }
307
+ catch { /* best-effort */ }
308
+ output.printError(error instanceof Error ? error.message : String(error));
309
+ return { success: true, data: { available: false, dbPath, reason: 'error' } };
310
+ }
311
+ },
312
+ };
313
+ // ============================================================================
314
+ // `memory distill config`
315
+ // ============================================================================
316
+ const configCommand = {
317
+ name: 'config',
318
+ description: 'Print the effective distill config (defaults + --config file + preset + explicit flags) as JSON',
319
+ options: [
320
+ { name: 'config', description: 'Load options from a JSON config file', type: 'string' },
321
+ { name: 'aggressive', description: 'Preset: dedup-distance 0.2, batch-size 500', type: 'boolean' },
322
+ { name: 'conservative', description: 'Preset: dedup-distance 0.08, batch-size 100', type: 'boolean' },
323
+ { name: 'namespace', description: 'Comma-separated namespace scope', type: 'string' },
324
+ { name: 'batch-size', description: 'Rows per transaction', type: 'number' },
325
+ { name: 'dedup-distance', description: 'Cosine distance for pattern clustering', type: 'number' },
326
+ { name: 'max-entries', description: 'Per-invocation work cap', type: 'number' },
327
+ { name: 'since', description: 'Override incremental cursor start (rowid)', type: 'number' },
328
+ { name: 'budget-usd', description: '$0 by default', type: 'number' },
329
+ { name: 'judge', description: "'structural' | 'fable'", type: 'string' },
330
+ { ...DB_OPTION },
331
+ ],
332
+ examples: [
333
+ { command: 'claude-flow memory distill config', description: 'Print the platform-default config' },
334
+ { command: 'claude-flow memory distill config --aggressive', description: 'Print the effective config with the aggressive preset applied' },
335
+ ],
336
+ action: async (ctx) => {
337
+ const resolved = resolveDistillConfig(ctx);
338
+ if (!resolved.ok) {
339
+ output.printError(resolved.error);
340
+ return { success: false, exitCode: 1 };
341
+ }
342
+ const dbPath = resolveDbPath(ctx);
343
+ const payload = { dbPath, ...resolved.config };
344
+ output.writeln(JSON.stringify(payload, null, 2));
345
+ return { success: true, data: payload };
346
+ },
347
+ };
348
+ // ============================================================================
349
+ // `memory distill` (parent)
350
+ // ============================================================================
351
+ export const distillCommand = {
352
+ name: 'distill',
353
+ description: 'Memory distillation (ADR-174): mine memory_entries into reasoning_patterns/episodes/causal_edges',
354
+ subcommands: [runCommand, statusCommand, configCommand],
355
+ examples: [
356
+ { command: 'claude-flow memory distill run --dry-run', description: 'Preview a distillation pass' },
357
+ { command: 'claude-flow memory distill status', description: 'Show distilled table counts + cursor' },
358
+ { command: 'claude-flow memory distill config --conservative', description: 'Print the effective conservative-preset config' },
359
+ ],
360
+ action: async () => {
361
+ output.writeln();
362
+ output.writeln(output.bold('Memory Distillation (ADR-174)'));
363
+ output.writeln('Usage: claude-flow memory distill <run|status|config> [options]');
364
+ output.writeln();
365
+ output.printList([
366
+ `${output.highlight('run')} - Distill memory_entries into the structured intelligence tables`,
367
+ `${output.highlight('status')} - Report target table counts, cursor, and promote-gate breakdown`,
368
+ `${output.highlight('config')} - Print the effective resolved config as JSON`,
369
+ ]);
370
+ return { success: true };
371
+ },
372
+ };
373
+ export default distillCommand;
374
+ //# sourceMappingURL=memory-distill.js.map
@@ -5,6 +5,7 @@
5
5
  import { output } from '../output.js';
6
6
  import { select, confirm, input } from '../prompt.js';
7
7
  import { callMCPTool, MCPClientError } from '../mcp-client.js';
8
+ import { distillCommand } from './memory-distill.js';
8
9
  // Memory backends
9
10
  const BACKENDS = [
10
11
  { value: 'agentdb', label: 'AgentDB', hint: 'Vector database with HNSW indexing (150x-12,500x faster)' },
@@ -1471,7 +1472,7 @@ const initMemoryCommand = {
1471
1472
  export const memoryCommand = {
1472
1473
  name: 'memory',
1473
1474
  description: 'Memory management commands',
1474
- subcommands: [initMemoryCommand, storeCommand, retrieveCommand, searchCommand, listCommand, deleteCommand, statsCommand, configureCommand, cleanupCommand, compressCommand, exportCommand, importCommand],
1475
+ subcommands: [initMemoryCommand, storeCommand, retrieveCommand, searchCommand, listCommand, deleteCommand, statsCommand, configureCommand, cleanupCommand, compressCommand, exportCommand, importCommand, distillCommand],
1475
1476
  options: [],
1476
1477
  examples: [
1477
1478
  { command: 'claude-flow memory store -k "key" -v "value"', description: 'Store data' },
@@ -1497,7 +1498,8 @@ export const memoryCommand = {
1497
1498
  `${output.highlight('cleanup')} - Clean expired entries`,
1498
1499
  `${output.highlight('compress')} - Compress database`,
1499
1500
  `${output.highlight('export')} - Export memory to file`,
1500
- `${output.highlight('import')} - Import from file`
1501
+ `${output.highlight('import')} - Import from file`,
1502
+ `${output.highlight('distill')} - Distill memory_entries into structured intelligence (ADR-174)`
1501
1503
  ]);
1502
1504
  return { success: true };
1503
1505
  }
@@ -63,7 +63,7 @@ export { OutputFormatter, output, Progress, Spinner, type VerbosityLevel } from
63
63
  export * from './prompt.js';
64
64
  export * from './commands/index.js';
65
65
  export { MCPServerManager, createMCPServerManager, getServerManager, startMCPServer, stopMCPServer, getMCPServerStatus, type MCPServerOptions, type MCPServerStatus, } from './mcp-server.js';
66
- export { initializeMemoryDatabase, generateEmbedding, generateBatchEmbeddings, storeEntry, searchEntries, getHNSWIndex, addToHNSWIndex, searchHNSWIndex, getHNSWStatus, clearHNSWIndex, quantizeInt8, dequantizeInt8, quantizedCosineSim, getQuantizationStats, batchCosineSim, softmaxAttention, topKIndices, flashAttentionSearch, type MemoryInitResult, } from './memory/memory-initializer.js';
66
+ export { initializeMemoryDatabase, repairVectorIndexes, recoverMemoryDatabase, generateEmbedding, generateBatchEmbeddings, storeEntry, searchEntries, getHNSWIndex, addToHNSWIndex, searchHNSWIndex, getHNSWStatus, clearHNSWIndex, quantizeInt8, dequantizeInt8, quantizedCosineSim, getQuantizationStats, batchCosineSim, softmaxAttention, topKIndices, flashAttentionSearch, type MemoryInitResult, } from './memory/memory-initializer.js';
67
67
  export { initializeIntelligence, recordStep, recordTrajectory, findSimilarPatterns, getIntelligenceStats, getSonaCoordinator, getReasoningBank, clearIntelligence, benchmarkAdaptation, endTrajectoryWithVerdict, distillLearning, getAllPatterns, getPatternsByType, flushPatterns, deletePattern, clearAllPatterns, getNeuralDataDir, getPersistenceStatus, type SonaConfig, type TrajectoryStep, type Pattern, type IntelligenceStats, } from './memory/intelligence.js';
68
68
  export { EWCConsolidator, getEWCConsolidator, resetEWCConsolidator, consolidatePatterns, recordPatternOutcome, getEWCStats, type PatternWeights, type EWCConfig, type ConsolidationResult, type EWCStats, } from './memory/ewc-consolidation.js';
69
69
  export { SONAOptimizer, getSONAOptimizer, resetSONAOptimizer, processTrajectory, getSuggestion, getSONAStats, type TrajectoryOutcome, type LearnedPattern, type RoutingSuggestion, type SONAStats, } from './memory/sona-optimizer.js';
package/dist/src/index.js CHANGED
@@ -113,6 +113,27 @@ export class CLI {
113
113
  if (!flags.noUpdate && commandPath[0] !== 'update') {
114
114
  this.checkForUpdatesOnStartup().catch(() => { });
115
115
  }
116
+ // Version-stamped helper auto-refresh — propagate hook fixes to an already
117
+ // initialized project without a manual re-init. Skip for init/upgrade
118
+ // (they refresh explicitly). AWAITED (not fire-and-forget) so a fast
119
+ // command can't exit before the copy lands; the fast path is a single
120
+ // stamp read + string compare (sub-ms), and the copy runs at most once per
121
+ // version bump. Best-effort + silent — never blocks or fails a command.
122
+ if (commandPath[0] !== 'init' && commandPath[0] !== 'update') {
123
+ try {
124
+ const { autoRefreshHelpersIfStale } = await import('./init/helper-refresh.js');
125
+ const r = await autoRefreshHelpersIfStale(process.cwd());
126
+ if (r.blocked) {
127
+ // Integrity failure = potential on-disk tampering of hook code. Warn
128
+ // loudly (not silent) — the existing project helpers were left intact.
129
+ this.output.printWarning(`Skipped helper auto-refresh — ${r.blocked}. Reinstall @claude-flow/cli from a trusted source.`);
130
+ }
131
+ else if (r.refreshed && this.output.isVerbose()) {
132
+ this.output.printDebug(`Refreshed .claude/helpers (${r.from} → ${r.to})`);
133
+ }
134
+ }
135
+ catch { /* silent */ }
136
+ }
116
137
  // Handle lazy-loaded commands that weren't recognized by the parser
117
138
  // If commandPath is empty but positional has a command name, check if it's lazy-loadable
118
139
  if (commandPath.length === 0 && positional.length > 0 && !positional[0].startsWith('-')) {
@@ -515,7 +536,7 @@ export * from './commands/index.js';
515
536
  // MCP Server management
516
537
  export { MCPServerManager, createMCPServerManager, getServerManager, startMCPServer, stopMCPServer, getMCPServerStatus, } from './mcp-server.js';
517
538
  // Memory & Intelligence (V3 Performance Features)
518
- export { initializeMemoryDatabase, generateEmbedding, generateBatchEmbeddings, storeEntry, searchEntries, getHNSWIndex, addToHNSWIndex, searchHNSWIndex, getHNSWStatus, clearHNSWIndex, quantizeInt8, dequantizeInt8, quantizedCosineSim, getQuantizationStats,
539
+ export { initializeMemoryDatabase, repairVectorIndexes, recoverMemoryDatabase, generateEmbedding, generateBatchEmbeddings, storeEntry, searchEntries, getHNSWIndex, addToHNSWIndex, searchHNSWIndex, getHNSWStatus, clearHNSWIndex, quantizeInt8, dequantizeInt8, quantizedCosineSim, getQuantizationStats,
519
540
  // Flash Attention-style batch operations
520
541
  batchCosineSim, softmaxAttention, topKIndices, flashAttentionSearch, } from './memory/memory-initializer.js';
521
542
  export { initializeIntelligence, recordStep, recordTrajectory, findSimilarPatterns, getIntelligenceStats, getSonaCoordinator, getReasoningBank, clearIntelligence, benchmarkAdaptation,
@@ -15,7 +15,9 @@ import { generateSettingsJson, generateSettings } from './settings-generator.js'
15
15
  import { generateMCPJson } from './mcp-generator.js';
16
16
  import { generateStatuslineScript } from './statusline-generator.js';
17
17
  import { generatePreCommitHook, generatePostCommitHook, generateSessionManager, generateAgentRouter, generateMemoryHelper, generateHookHandler, generateIntelligenceStub, generateAutoMemoryHook, generateRufloHookCjs, } from './helpers-generator.js';
18
+ import { getInstalledCliVersion, HELPERS_STAMP_FILE } from './helper-refresh.js';
18
19
  import { generateClaudeMd } from './claudemd-generator.js';
20
+ import { recordMemoryPackagePath } from './memory-package-resolver.js';
19
21
  /**
20
22
  * Skills to copy based on configuration
21
23
  */
@@ -196,6 +198,29 @@ export async function executeInit(options) {
196
198
  // Generate helpers
197
199
  if (options.components.helpers) {
198
200
  await writeHelpers(targetDir, options, result);
201
+ // #2545: The auto-memory hook needs @claude-flow/memory, which is an
202
+ // optionalDependency of the CLI and lands in the npx cache — unreachable
203
+ // by a node_modules walk-up from the user's project. Resolve it from the
204
+ // CLI's own context now (where it IS present) and record the absolute
205
+ // path in a machine-local sidecar the hook reads first. Best-effort:
206
+ // when the optional dep is absent the hook fails loud and doctor flags it.
207
+ const memRecord = recordMemoryPackagePath(targetDir, 'init');
208
+ if (memRecord) {
209
+ result.created.files.push('.claude-flow/memory-package.json');
210
+ }
211
+ // #2568-followup: if this project already has a memory DB that predates
212
+ // the `vector_indexes` table (older CLI / agentdb-written), self-heal it
213
+ // so the statusline vector count + namespace routing work. Best-effort,
214
+ // dynamically imported so a WASM-only host without better-sqlite3 just
215
+ // skips it. Fresh projects have no DB yet — this is a no-op there.
216
+ try {
217
+ const memDbPath = path.join(targetDir, '.swarm', 'memory.db');
218
+ if (fs.existsSync(memDbPath)) {
219
+ const { repairVectorIndexes } = await import('../memory/memory-initializer.js');
220
+ await repairVectorIndexes(memDbPath, { autoRecover: true });
221
+ }
222
+ }
223
+ catch { /* best-effort — never block init on memory repair */ }
199
224
  }
200
225
  // Generate statusline
201
226
  if (options.components.statusline) {
@@ -472,6 +497,18 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
472
497
  catch { }
473
498
  }
474
499
  }
500
+ // Stamp the installed version so the startup auto-refresh treats these as
501
+ // current (no redundant re-copy on the next command).
502
+ try {
503
+ fs.writeFileSync(path.join(targetDir, '.claude', 'helpers', HELPERS_STAMP_FILE), getInstalledCliVersion(), 'utf-8');
504
+ }
505
+ catch { /* non-fatal */ }
506
+ // #2545: (re)record the resolved @claude-flow/memory path so the auto-memory
507
+ // hook can find it on the npx install path. Best-effort — see executeInit.
508
+ const memRecord = recordMemoryPackagePath(targetDir, 'upgrade');
509
+ if (memRecord) {
510
+ result.updated.push('.claude-flow/memory-package.json');
511
+ }
475
512
  // 1. ALWAYS update statusline helper (force overwrite)
476
513
  const statuslinePath = path.join(targetDir, '.claude', 'helpers', 'statusline.cjs');
477
514
  // Use default options with statusline config
@@ -0,0 +1,19 @@
1
+ export declare const HELPERS_STAMP_FILE = ".helpers-version";
2
+ /** ruflo-owned helpers that carry hook logic and must track the package version. */
3
+ export declare const CRITICAL_HELPERS: string[];
4
+ /** Installed @claude-flow/cli version — the value the helpers are stamped with. */
5
+ export declare function getInstalledCliVersion(): string;
6
+ /**
7
+ * On CLI startup: if an initialized project's critical helpers are stamped older
8
+ * than the installed CLI version, silently re-copy them. Fast path is a single
9
+ * stamp read + string compare (sub-ms); the copy runs at most once per version
10
+ * bump. Best-effort, never throws. No-op outside a ruflo project (requires an
11
+ * existing hook-handler.cjs — never creates files in an unrelated directory).
12
+ */
13
+ export declare function autoRefreshHelpersIfStale(cwd: string): Promise<{
14
+ refreshed: boolean;
15
+ from?: string;
16
+ to?: string;
17
+ blocked?: string;
18
+ }>;
19
+ //# sourceMappingURL=helper-refresh.d.ts.map