@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
@@ -27,10 +27,23 @@ const CYAN = '\x1b[0;36m';
27
27
  const DIM = '\x1b[2m';
28
28
  const RESET = '\x1b[0m';
29
29
 
30
+ const YELLOW = '\x1b[0;33m';
30
31
  const log = (msg) => console.log(`${CYAN}[AutoMemory] ${msg}${RESET}`);
31
32
  const success = (msg) => console.log(`${GREEN}[AutoMemory] ✓ ${msg}${RESET}`);
32
33
  const dim = (msg) => console.log(` ${DIM}${msg}${RESET}`);
33
34
 
35
+ // #2545: fail LOUD instead of a silent dim skip. When @claude-flow/memory cannot
36
+ // be resolved, self-learning imports are a no-op — the user must see this and be
37
+ // told exactly how to fix it (on both stdout, so it shows in the Claude Code hook
38
+ // transcript, and stderr, per the issue's requested channel).
39
+ function warnMemoryUnavailable() {
40
+ const line1 = `[AutoMemory] @claude-flow/memory not resolvable from ${PROJECT_ROOT} — self-learning imports are DISABLED.`;
41
+ const line2 = ' Fix: npm i -D @claude-flow/memory (or re-run: npx ruflo@latest init, then npx ruflo@latest doctor --fix)';
42
+ console.log(`${YELLOW}${line1}${RESET}`);
43
+ console.log(`${YELLOW}${line2}${RESET}`);
44
+ process.stderr.write(`${line1}\n${line2}\n`);
45
+ }
46
+
34
47
  const DEBUG = !!(process.env.RUFLO_DEBUG || process.env.DEBUG);
35
48
 
36
49
  // ── Graceful shutdown (FIX 3) ───────────────────────────────────────────────
@@ -152,6 +165,21 @@ class JsonFileBackend {
152
165
  // ============================================================================
153
166
 
154
167
  async function loadMemoryPackage() {
168
+ // Strategy 0 (#2545): sidecar recorded by `init` / `doctor --fix`. On the
169
+ // documented `npx ruflo` path @claude-flow/memory (an optionalDependency of
170
+ // the CLI) lands in the npx cache, which is NOT on the walk-up path from the
171
+ // project — so init resolves it from the CLI's own context and records the
172
+ // absolute path here. This is the only strategy that works on that install.
173
+ try {
174
+ const sidecar = join(PROJECT_ROOT, '.claude-flow', 'memory-package.json');
175
+ if (existsSync(sidecar)) {
176
+ const rec = JSON.parse(readFileSync(sidecar, 'utf-8'));
177
+ if (rec?.distPath && existsSync(rec.distPath)) {
178
+ return await import(`file://${rec.distPath}`);
179
+ }
180
+ }
181
+ } catch { /* fall through */ }
182
+
155
183
  // Strategy 1: Local dev (built dist)
156
184
  const localDist = join(PROJECT_ROOT, 'v3/@claude-flow/memory/dist/index.js');
157
185
  if (existsSync(localDist)) {
@@ -235,7 +263,7 @@ async function doImport() {
235
263
 
236
264
  const memPkg = await loadMemoryPackage();
237
265
  if (!memPkg || !memPkg.AutoMemoryBridge) {
238
- dim('Memory package not available — skipping auto memory import');
266
+ warnMemoryUnavailable();
239
267
  return;
240
268
  }
241
269
 
@@ -288,7 +316,7 @@ async function doSync() {
288
316
 
289
317
  const memPkg = await loadMemoryPackage();
290
318
  if (!memPkg || !memPkg.AutoMemoryBridge) {
291
- dim('Memory package not available — skipping sync');
319
+ warnMemoryUnavailable();
292
320
  return;
293
321
  }
294
322
 
@@ -346,8 +374,12 @@ async function doStatus() {
346
374
  const memPkg = await loadMemoryPackage();
347
375
  const config = readConfig();
348
376
 
377
+ const sidecar = join(PROJECT_ROOT, '.claude-flow', 'memory-package.json');
378
+ const hasSidecar = existsSync(sidecar);
379
+
349
380
  console.log('\n=== Auto Memory Bridge Status ===\n');
350
- console.log(` Package: ${memPkg ? '✅ Available' : '❌ Not found'}`);
381
+ console.log(` Package: ${memPkg ? '✅ Available' : '❌ Not found — self-learning DISABLED (fix: npm i -D @claude-flow/memory)'}`);
382
+ console.log(` Resolver: ${hasSidecar ? '✅ .claude-flow/memory-package.json' : '⏸ no sidecar (run: npx ruflo@latest doctor --fix)'}`);
351
383
  console.log(` Store: ${existsSync(STORE_PATH) ? '✅ ' + STORE_PATH : '⏸ Not initialized'}`);
352
384
  console.log(` LearningBridge: ${config.learningBridge.enabled ? '✅ Enabled' : '⏸ Disabled'}`);
353
385
  console.log(` MemoryGraph: ${config.memoryGraph.enabled ? '✅ Enabled' : '⏸ Disabled'}`);
@@ -0,0 +1,12 @@
1
+ {
2
+ "manifest": {
3
+ "version": "3.22.0",
4
+ "files": {
5
+ "auto-memory-hook.mjs": "68be7e9a9eba7bf9c4e8a230db7bf61a243b965639f8504842799d6c6ca28762",
6
+ "hook-handler.cjs": "bc4d2d26823d49b3ab1dded2946b66369f1f67bd76b4c30dca9f3b6df3cca8f0",
7
+ "intelligence.cjs": "760cb82ed2000031abc1ac1fa90a014e7d91d93966e3aa4741b07ab7aff8d066"
8
+ }
9
+ },
10
+ "signature": "sTqZ2JNEoWfS0LKrQVESAqJ+yfNB6/YExxxn5mmsZ/kPuH8u9uURt8J+RPICG1/qwNIOkkDEYJtQtGzpVW0jAw==",
11
+ "algorithm": "ed25519"
12
+ }
@@ -124,6 +124,25 @@ async function main() {
124
124
  const prompt = hookInput.prompt || hookInput.command || toolInput.command
125
125
  || process.env.PROMPT || process.env.TOOL_INPUT_command || args.join(' ') || '';
126
126
 
127
+ // ADR-174: capture FAILURES so the learning substrate has negative examples.
128
+ // Claude Code's PostToolUse payload carries the tool result; a failed
129
+ // Write/Edit/Bash surfaces as tool_response.is_error / an error string /
130
+ // a non-zero exit code. Conservative — only a positive error signal counts
131
+ // as failure (mirrors isToolFailure() in helpers-generator.ts).
132
+ const toolFailed = (function (hi) {
133
+ if (!hi || typeof hi !== 'object') return false;
134
+ const tr = hi.tool_response != null ? hi.tool_response : (hi.toolResponse != null ? hi.toolResponse : hi.result);
135
+ if (tr == null) return false;
136
+ if (typeof tr === 'string') return /\b(error|failed|failure|exception|not found|no such|permission denied|traceback)\b/i.test(tr);
137
+ if (typeof tr === 'object') {
138
+ if (tr.is_error === true || tr.isError === true || tr.success === false || tr.error != null) return true;
139
+ const code = tr.exit_code != null ? tr.exit_code : (tr.exitCode != null ? tr.exitCode : tr.code);
140
+ if (typeof code === 'number' && code !== 0) return true;
141
+ if (Array.isArray(tr.content) && tr.is_error === true) return true;
142
+ }
143
+ return false;
144
+ })(hookInput);
145
+
127
146
  const handlers = {
128
147
  'route': () => {
129
148
  // Inject ranked intelligence context before routing
@@ -178,10 +197,10 @@ const handlers = {
178
197
  try {
179
198
  const file = hookInput.file_path || toolInput.file_path
180
199
  || process.env.TOOL_INPUT_file_path || args[0] || '';
181
- intelligence.recordEdit(file);
200
+ intelligence.recordEdit(file, !toolFailed);
182
201
  } catch (e) { /* non-fatal */ }
183
202
  }
184
- console.log('[OK] Edit recorded');
203
+ console.log(toolFailed ? '[LEARN] Edit FAILURE recorded' : '[OK] Edit recorded');
185
204
  },
186
205
 
187
206
  'session-restore': async () => {
@@ -246,13 +265,15 @@ const handlers = {
246
265
  },
247
266
 
248
267
  'post-task': () => {
249
- // Implicit success feedback for intelligence
268
+ // ADR-174: feed the REAL outcome (feedback() boosts confidence on success,
269
+ // decays it on failure) instead of a hardcoded true — no more all-positive
270
+ // signal that the substrate can't learn from.
250
271
  if (intelligence && intelligence.feedback) {
251
272
  try {
252
- intelligence.feedback(true);
273
+ intelligence.feedback(!toolFailed);
253
274
  } catch (e) { /* non-fatal */ }
254
275
  }
255
- console.log('[OK] Task completed');
276
+ console.log(toolFailed ? '[LEARN] Task FAILURE recorded' : '[OK] Task completed');
256
277
  },
257
278
 
258
279
  'stats': () => {
@@ -575,11 +575,14 @@ function getContext(prompt) {
575
575
  * recordEdit(file) — Called from post-edit. Budget: <2ms.
576
576
  * Appends to pending-insights.jsonl.
577
577
  */
578
- function recordEdit(file) {
578
+ function recordEdit(file, success) {
579
579
  ensureDataDir();
580
580
  const entry = JSON.stringify({
581
581
  type: 'edit',
582
582
  file: file || 'unknown',
583
+ // ADR-174: record failures too, not just successes — the learning substrate
584
+ // needs negative examples. Defaults true; an explicit false is a failed edit.
585
+ success: success !== false,
583
586
  timestamp: Date.now(),
584
587
  sessionId: sessionGet('sessionId') || null,
585
588
  });
@@ -14,6 +14,12 @@ const startCommand = {
14
14
  description: 'Start the worker daemon with all enabled background workers',
15
15
  options: [
16
16
  { name: 'workers', short: 'w', type: 'string', description: 'Comma-separated list of workers to enable (default: map,audit,optimize,consolidate,testgaps)' },
17
+ // ADR-174 M3: consolidate now runs a real memory-distillation pass
18
+ // (memory_entries -> episodes/reasoning_patterns/causal_edges) instead of
19
+ // a no-op stub. This opt-out skips just that pass for the life of this
20
+ // daemon process, without touching persisted worker-enabled state — for
21
+ // permanently disabling the worker use `daemon enable -w consolidate --disable`.
22
+ { name: 'no-distill', type: 'boolean', description: 'Disable the consolidate worker\'s memory-distillation pass (ADR-174)' },
17
23
  { name: 'quiet', short: 'Q', type: 'boolean', description: 'Suppress output' },
18
24
  { name: 'background', short: 'b', type: 'boolean', description: 'Run daemon in background (detached process)', default: true },
19
25
  { name: 'foreground', short: 'f', type: 'boolean', description: 'Run daemon in foreground (blocks terminal)' },
@@ -35,10 +41,19 @@ const startCommand = {
35
41
  { command: 'claude-flow daemon start --foreground', description: 'Start in foreground (blocks terminal)' },
36
42
  { command: 'claude-flow daemon start -w map,audit,optimize', description: 'Start with specific workers' },
37
43
  { command: 'claude-flow daemon start --headless --sandbox strict', description: 'Start with headless workers in strict sandbox' },
44
+ { command: 'claude-flow daemon start --no-distill', description: 'Start with the consolidate worker\'s distillation pass disabled' },
38
45
  ],
39
46
  action: async (ctx) => {
40
47
  const quiet = ctx.flags.quiet;
41
48
  const foreground = ctx.flags.foreground;
49
+ const noDistill = ctx.flags['no-distill'];
50
+ // ADR-174 M3: honored by WorkerDaemon's consolidate worker directly via
51
+ // process.env — set it now so the foreground path (which runs in this
52
+ // same process) picks it up too; the background path forwards it to the
53
+ // forked child's env explicitly (see startBackgroundDaemon below).
54
+ if (noDistill) {
55
+ process.env.RUFLO_DAEMON_NO_DISTILL = '1';
56
+ }
42
57
  // #1914: a forked daemon child receives --workspace <root>; the launcher
43
58
  // and interactive invocations have no flag and fall back to cwd.
44
59
  const projectRoot = resolveWorkspaceFlag(ctx.flags.workspace) ?? process.cwd();
@@ -208,6 +223,7 @@ const startCommand = {
208
223
  headless: ctx.flags.headless,
209
224
  sandbox: ctx.flags.sandbox,
210
225
  ttl: rawTtl,
226
+ noDistill,
211
227
  });
212
228
  }
213
229
  finally {
@@ -404,7 +420,7 @@ export function extractWorkspaceFromDaemonLine(commandLine) {
404
420
  return ws.length > 0 ? ws : null;
405
421
  }
406
422
  async function startBackgroundDaemon(projectRoot, quiet, forwarded = {}) {
407
- const { maxCpuLoad, minFreeMemory, workers, headless, sandbox, ttl } = forwarded;
423
+ const { maxCpuLoad, minFreeMemory, workers, headless, sandbox, ttl, noDistill } = forwarded;
408
424
  // Validate and resolve project root
409
425
  const resolvedRoot = resolve(projectRoot);
410
426
  validatePath(resolvedRoot, 'Project root');
@@ -493,6 +509,11 @@ async function startBackgroundDaemon(projectRoot, quiet, forwarded = {}) {
493
509
  if (typeof sandbox === 'string' && (sandbox === 'strict' || sandbox === 'permissive' || sandbox === 'disabled')) {
494
510
  forkArgs.push('--sandbox', sandbox);
495
511
  }
512
+ // ADR-174 M3: forward the distillation opt-out to the forked foreground
513
+ // child; its own `start` action sets RUFLO_DAEMON_NO_DISTILL from this flag.
514
+ if (noDistill === true) {
515
+ forkArgs.push('--no-distill');
516
+ }
496
517
  // #1914: stamp the workspace into argv (kept LAST) so the foreground daemon
497
518
  // process is self-identifying and `killStaleDaemons` only reaps daemons
498
519
  // belonging to this workspace. resolvedRoot was validatePath()'d above.
@@ -1352,7 +1373,7 @@ export const daemonCommand = {
1352
1373
  `${output.highlight('map')} - Codebase mapping (5 min interval)`,
1353
1374
  `${output.highlight('audit')} - Security analysis (10 min interval)`,
1354
1375
  `${output.highlight('optimize')} - Performance optimization (15 min interval)`,
1355
- `${output.highlight('consolidate')} - Memory consolidation (30 min interval)`,
1376
+ `${output.highlight('consolidate')} - Memory distillation: memory_entries -> episodes/reasoning_patterns/causal_edges (30 min interval, ADR-174; --no-distill to disable)`,
1356
1377
  `${output.highlight('testgaps')} - Test coverage analysis (20 min interval)`,
1357
1378
  `${output.highlight('predict')} - Predictive preloading (2 min, disabled by default)`,
1358
1379
  `${output.highlight('document')} - Auto-documentation (60 min, disabled by default)`,
@@ -13,6 +13,7 @@ import { execSync, exec } from 'child_process';
13
13
  import { promisify } from 'util';
14
14
  import { decodeKey, isEncryptionEnabled } from '../encryption/vault.js';
15
15
  import { isEncryptedBlob } from '../encryption/vault.js';
16
+ import { resolveMemoryPackageFromProject, readMemoryPackageVersion, recordMemoryPackagePath, } from '../init/memory-package-resolver.js';
16
17
  // Promisified exec with proper shell and env inheritance for cross-platform support
17
18
  const execAsync = promisify(exec);
18
19
  /**
@@ -244,6 +245,37 @@ async function checkMemoryDatabase() {
244
245
  }
245
246
  return { name: 'Memory Database', status: 'warn', message: 'Not initialized', fix: 'claude-flow memory configure --backend hybrid' };
246
247
  }
248
+ // #2545: Check that the self-learning bridge can actually load @claude-flow/memory
249
+ // the SAME way the SessionStart auto-memory hook does. On the documented `npx ruflo`
250
+ // path the package lands in the npx cache — unreachable from the project — so the
251
+ // hook silently no-op'd with no signal anywhere. This surfaces it.
252
+ async function checkLearningBridge() {
253
+ const cwd = process.cwd();
254
+ const hookPath = join(cwd, '.claude', 'helpers', 'auto-memory-hook.mjs');
255
+ // Only relevant once init has deployed the hook; otherwise stay quiet.
256
+ if (!existsSync(hookPath)) {
257
+ return {
258
+ name: 'Learning Bridge',
259
+ status: 'pass',
260
+ message: 'auto-memory hook not installed (run: npx ruflo@latest init)',
261
+ };
262
+ }
263
+ const distPath = resolveMemoryPackageFromProject(cwd);
264
+ if (distPath) {
265
+ const version = readMemoryPackageVersion(distPath);
266
+ return {
267
+ name: 'Learning Bridge',
268
+ status: 'pass',
269
+ message: `@claude-flow/memory resolvable${version ? ` (v${version})` : ''}`,
270
+ };
271
+ }
272
+ return {
273
+ name: 'Learning Bridge',
274
+ status: 'fail',
275
+ message: '@claude-flow/memory NOT resolvable — SessionStart self-learning imports are a silent no-op',
276
+ fix: 'npx ruflo@latest doctor --fix (records resolver sidecar) — or: npm i -D @claude-flow/memory',
277
+ };
278
+ }
247
279
  // Check API keys
248
280
  async function checkApiKeys() {
249
281
  const keys = ['ANTHROPIC_API_KEY', 'CLAUDE_API_KEY', 'OPENAI_API_KEY'];
@@ -1036,6 +1068,7 @@ export const doctorCommand = {
1036
1068
  checkStaleSettingsNpx, // #2448 — runaway `npx @latest` in statusLine/hooks
1037
1069
  checkDaemonStatus,
1038
1070
  checkMemoryDatabase,
1071
+ checkLearningBridge, // #2545 — can the auto-memory hook actually load @claude-flow/memory?
1039
1072
  checkApiKeys,
1040
1073
  checkMcpServers,
1041
1074
  checkAIDefence, // #1807
@@ -1057,6 +1090,8 @@ export const doctorCommand = {
1057
1090
  'stale-settings': checkStaleSettingsNpx, // #2448
1058
1091
  'daemon': checkDaemonStatus,
1059
1092
  'memory': checkMemoryDatabase,
1093
+ 'learning': checkLearningBridge, // #2545
1094
+ 'learning-bridge': checkLearningBridge, // #2545
1060
1095
  'api': checkApiKeys,
1061
1096
  'git': checkGit,
1062
1097
  'mcp': checkMcpServers,
@@ -1107,6 +1142,27 @@ export const doctorCommand = {
1107
1142
  spinner.stop();
1108
1143
  output.writeln(output.error('Failed to run health checks'));
1109
1144
  }
1145
+ // #2545: --fix / --install can actually repair the Learning Bridge by
1146
+ // recording the resolver sidecar. When doctor runs via `npx ruflo`, the CLI
1147
+ // CAN resolve its optional @claude-flow/memory dep (it is in the same npx
1148
+ // cache), so writing the sidecar makes the SessionStart hook find it.
1149
+ if ((showFix || autoInstall)) {
1150
+ const lbResult = results.find(r => r.name === 'Learning Bridge');
1151
+ if (lbResult && lbResult.status === 'fail') {
1152
+ const record = recordMemoryPackagePath(process.cwd(), 'doctor');
1153
+ if (record) {
1154
+ const newCheck = await checkLearningBridge();
1155
+ const idx = results.findIndex(r => r.name === 'Learning Bridge');
1156
+ if (idx !== -1)
1157
+ results[idx] = newCheck;
1158
+ const fixIdx = fixes.findIndex(f => f.startsWith('Learning Bridge:'));
1159
+ if (fixIdx !== -1 && newCheck.status === 'pass')
1160
+ fixes.splice(fixIdx, 1);
1161
+ output.writeln(output.success(`Repaired Learning Bridge — wrote .claude-flow/memory-package.json → ${record.distPath}`));
1162
+ output.writeln(formatCheck(newCheck));
1163
+ }
1164
+ }
1165
+ }
1110
1166
  // Auto-install missing dependencies if requested
1111
1167
  if (autoInstall) {
1112
1168
  const claudeCodeResult = results.find(r => r.name === 'Claude Code CLI');
@@ -0,0 +1,27 @@
1
+ import type { Command, CommandContext } from '../types.js';
2
+ export interface DistillCliConfig {
3
+ dryRun: boolean;
4
+ namespaces?: string[];
5
+ batchSize: number;
6
+ dedupDistance: number;
7
+ maxEntries?: number;
8
+ sinceRowid?: number;
9
+ budgetUsd: number;
10
+ judge: 'structural' | 'fable';
11
+ }
12
+ type ResolveResult = {
13
+ ok: true;
14
+ config: DistillCliConfig;
15
+ } | {
16
+ ok: false;
17
+ error: string;
18
+ };
19
+ /**
20
+ * Resolve the effective distill config from: built-in defaults, an optional
21
+ * `--config <path>` JSON file, an `--aggressive`/`--conservative` preset, and
22
+ * finally explicit CLI flags (highest precedence).
23
+ */
24
+ export declare function resolveDistillConfig(ctx: CommandContext): ResolveResult;
25
+ export declare const distillCommand: Command;
26
+ export default distillCommand;
27
+ //# sourceMappingURL=memory-distill.d.ts.map