@claude-flow/cli 3.32.3 → 3.32.5

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 (683) hide show
  1. package/.claude/helpers/helpers.manifest.json +2 -2
  2. package/catalog-manifest.json +2 -2
  3. package/dist/src/agenticow/speculative-exploration.d.ts +148 -0
  4. package/dist/src/agenticow/speculative-exploration.js +218 -0
  5. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  6. package/dist/src/appliance/gguf-engine.js +425 -0
  7. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  8. package/dist/src/appliance/ruvllm-bridge.js +292 -0
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.js +329 -0
  11. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  12. package/dist/src/appliance/rvfa-distribution.js +370 -0
  13. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  14. package/dist/src/appliance/rvfa-format.js +393 -0
  15. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  16. package/dist/src/appliance/rvfa-runner.js +237 -0
  17. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  18. package/dist/src/appliance/rvfa-signing.js +347 -0
  19. package/dist/src/auth/client.d.ts +89 -0
  20. package/dist/src/auth/client.js +242 -0
  21. package/dist/src/auth/constants.d.ts +7 -0
  22. package/dist/src/auth/constants.js +7 -0
  23. package/dist/src/auth/scopes.d.ts +14 -0
  24. package/dist/src/auth/scopes.js +21 -0
  25. package/dist/src/auth/security-bridge.d.ts +36 -0
  26. package/dist/src/auth/security-bridge.js +42 -0
  27. package/dist/src/auth/session.d.ts +20 -0
  28. package/dist/src/auth/session.js +32 -0
  29. package/dist/src/auth/state.d.ts +19 -0
  30. package/dist/src/auth/state.js +53 -0
  31. package/dist/src/auth/types.d.ts +27 -0
  32. package/dist/src/auth/types.js +11 -0
  33. package/dist/src/autopilot-state.d.ts +77 -0
  34. package/dist/src/autopilot-state.js +271 -0
  35. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +18 -0
  36. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +253 -0
  37. package/dist/src/benchmarks/gaia-agent.d.ts +198 -0
  38. package/dist/src/benchmarks/gaia-agent.js +651 -0
  39. package/dist/src/benchmarks/gaia-causal-memory.d.ts +133 -0
  40. package/dist/src/benchmarks/gaia-causal-memory.js +281 -0
  41. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +22 -0
  42. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +300 -0
  43. package/dist/src/benchmarks/gaia-convergence.d.ts +138 -0
  44. package/dist/src/benchmarks/gaia-convergence.js +260 -0
  45. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +19 -0
  46. package/dist/src/benchmarks/gaia-convergence.smoke.js +246 -0
  47. package/dist/src/benchmarks/gaia-critic.d.ts +123 -0
  48. package/dist/src/benchmarks/gaia-critic.js +312 -0
  49. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +21 -0
  50. package/dist/src/benchmarks/gaia-critic.smoke.js +327 -0
  51. package/dist/src/benchmarks/gaia-decomposer.d.ts +125 -0
  52. package/dist/src/benchmarks/gaia-decomposer.js +350 -0
  53. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +21 -0
  54. package/dist/src/benchmarks/gaia-decomposer.smoke.js +228 -0
  55. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +27 -0
  56. package/dist/src/benchmarks/gaia-e2e-smoke.js +136 -0
  57. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +45 -0
  58. package/dist/src/benchmarks/gaia-extract.smoke.js +242 -0
  59. package/dist/src/benchmarks/gaia-hardness/features.d.ts +46 -0
  60. package/dist/src/benchmarks/gaia-hardness/features.js +170 -0
  61. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +105 -0
  62. package/dist/src/benchmarks/gaia-hardness/predictor.js +260 -0
  63. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +20 -0
  64. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +235 -0
  65. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +51 -0
  66. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +179 -0
  67. package/dist/src/benchmarks/gaia-judge.d.ts +88 -0
  68. package/dist/src/benchmarks/gaia-judge.js +437 -0
  69. package/dist/src/benchmarks/gaia-loader.d.ts +87 -0
  70. package/dist/src/benchmarks/gaia-loader.js +326 -0
  71. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +35 -0
  72. package/dist/src/benchmarks/gaia-tools/file_read.js +403 -0
  73. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +126 -0
  74. package/dist/src/benchmarks/gaia-tools/grounded_query.js +225 -0
  75. package/dist/src/benchmarks/gaia-tools/index.d.ts +32 -0
  76. package/dist/src/benchmarks/gaia-tools/index.js +36 -0
  77. package/dist/src/benchmarks/gaia-tools/types.d.ts +62 -0
  78. package/dist/src/benchmarks/gaia-tools/types.js +12 -0
  79. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +30 -0
  80. package/dist/src/benchmarks/gaia-tools/web_search.js +210 -0
  81. package/dist/src/benchmarks/gaia-voting.d.ts +88 -0
  82. package/dist/src/benchmarks/gaia-voting.js +297 -0
  83. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +20 -0
  84. package/dist/src/benchmarks/gaia-voting.smoke.js +332 -0
  85. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  86. package/dist/src/benchmarks/pretrain/index.js +404 -0
  87. package/dist/src/business-pods/bbs-budget-tracker.d.ts +139 -0
  88. package/dist/src/business-pods/bbs-budget-tracker.js +358 -0
  89. package/dist/src/business-pods/domain-affinity-policy.d.ts +47 -0
  90. package/dist/src/business-pods/domain-affinity-policy.js +65 -0
  91. package/dist/src/business-pods/pod-schema.d.ts +96 -0
  92. package/dist/src/business-pods/pod-schema.js +225 -0
  93. package/dist/src/commands/advisor.d.ts +15 -0
  94. package/dist/src/commands/advisor.js +94 -0
  95. package/dist/src/commands/agent-wasm.d.ts +14 -0
  96. package/dist/src/commands/agent-wasm.js +333 -0
  97. package/dist/src/commands/agent.d.ts +8 -0
  98. package/dist/src/commands/agent.js +927 -0
  99. package/dist/src/commands/analyze.d.ts +19 -0
  100. package/dist/src/commands/analyze.js +2047 -0
  101. package/dist/src/commands/announcements.d.ts +17 -0
  102. package/dist/src/commands/announcements.js +0 -0
  103. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  104. package/dist/src/commands/appliance-advanced.js +215 -0
  105. package/dist/src/commands/appliance.d.ts +8 -0
  106. package/dist/src/commands/appliance.js +404 -0
  107. package/dist/src/commands/auth.d.ts +15 -0
  108. package/dist/src/commands/auth.js +244 -0
  109. package/dist/src/commands/autopilot.d.ts +15 -0
  110. package/dist/src/commands/autopilot.js +407 -0
  111. package/dist/src/commands/benchmark.d.ts +10 -0
  112. package/dist/src/commands/benchmark.js +460 -0
  113. package/dist/src/commands/claims.d.ts +10 -0
  114. package/dist/src/commands/claims.js +620 -0
  115. package/dist/src/commands/cleanup.d.ts +13 -0
  116. package/dist/src/commands/cleanup.js +250 -0
  117. package/dist/src/commands/completions.d.ts +10 -0
  118. package/dist/src/commands/completions.js +539 -0
  119. package/dist/src/commands/config.d.ts +8 -0
  120. package/dist/src/commands/config.js +428 -0
  121. package/dist/src/commands/daemon.d.ts +59 -0
  122. package/dist/src/commands/daemon.js +1733 -0
  123. package/dist/src/commands/deployment.d.ts +10 -0
  124. package/dist/src/commands/deployment.js +672 -0
  125. package/dist/src/commands/doctor.d.ts +10 -0
  126. package/dist/src/commands/doctor.js +1902 -0
  127. package/dist/src/commands/eject.d.ts +33 -0
  128. package/dist/src/commands/eject.js +195 -0
  129. package/dist/src/commands/embeddings.d.ts +18 -0
  130. package/dist/src/commands/embeddings.js +1623 -0
  131. package/dist/src/commands/funnel.d.ts +18 -0
  132. package/dist/src/commands/funnel.js +302 -0
  133. package/dist/src/commands/gaia-bench.d.ts +40 -0
  134. package/dist/src/commands/gaia-bench.js +597 -0
  135. package/dist/src/commands/guidance.d.ts +8 -0
  136. package/dist/src/commands/guidance.js +556 -0
  137. package/dist/src/commands/hive-mind.d.ts +11 -0
  138. package/dist/src/commands/hive-mind.js +1319 -0
  139. package/dist/src/commands/hooks.d.ts +8 -0
  140. package/dist/src/commands/hooks.js +4606 -0
  141. package/dist/src/commands/index.d.ts +118 -0
  142. package/dist/src/commands/index.js +366 -0
  143. package/dist/src/commands/init.d.ts +13 -0
  144. package/dist/src/commands/init.js +1297 -0
  145. package/dist/src/commands/issues.d.ts +21 -0
  146. package/dist/src/commands/issues.js +567 -0
  147. package/dist/src/commands/mcp.d.ts +11 -0
  148. package/dist/src/commands/mcp.js +732 -0
  149. package/dist/src/commands/memory-backup.d.ts +11 -0
  150. package/dist/src/commands/memory-backup.js +46 -0
  151. package/dist/src/commands/memory-distill.d.ts +27 -0
  152. package/dist/src/commands/memory-distill.js +374 -0
  153. package/dist/src/commands/memory.d.ts +8 -0
  154. package/dist/src/commands/memory.js +1596 -0
  155. package/dist/src/commands/metaharness.d.ts +39 -0
  156. package/dist/src/commands/metaharness.js +215 -0
  157. package/dist/src/commands/migrate.d.ts +8 -0
  158. package/dist/src/commands/migrate.js +742 -0
  159. package/dist/src/commands/neural.d.ts +10 -0
  160. package/dist/src/commands/neural.js +4331 -0
  161. package/dist/src/commands/performance.d.ts +10 -0
  162. package/dist/src/commands/performance.js +583 -0
  163. package/dist/src/commands/plugins.d.ts +11 -0
  164. package/dist/src/commands/plugins.js +826 -0
  165. package/dist/src/commands/process.d.ts +10 -0
  166. package/dist/src/commands/process.js +694 -0
  167. package/dist/src/commands/progress.d.ts +11 -0
  168. package/dist/src/commands/progress.js +259 -0
  169. package/dist/src/commands/providers.d.ts +10 -0
  170. package/dist/src/commands/providers.js +502 -0
  171. package/dist/src/commands/proxy-lifecycle.d.ts +20 -0
  172. package/dist/src/commands/proxy-lifecycle.js +277 -0
  173. package/dist/src/commands/proxy.d.ts +21 -0
  174. package/dist/src/commands/proxy.js +403 -0
  175. package/dist/src/commands/route.d.ts +16 -0
  176. package/dist/src/commands/route.js +822 -0
  177. package/dist/src/commands/ruvector/backup.d.ts +11 -0
  178. package/dist/src/commands/ruvector/backup.js +747 -0
  179. package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  180. package/dist/src/commands/ruvector/benchmark.js +490 -0
  181. package/dist/src/commands/ruvector/import.d.ts +18 -0
  182. package/dist/src/commands/ruvector/import.js +373 -0
  183. package/dist/src/commands/ruvector/index.d.ts +29 -0
  184. package/dist/src/commands/ruvector/index.js +129 -0
  185. package/dist/src/commands/ruvector/init.d.ts +11 -0
  186. package/dist/src/commands/ruvector/init.js +467 -0
  187. package/dist/src/commands/ruvector/migrate.d.ts +11 -0
  188. package/dist/src/commands/ruvector/migrate.js +498 -0
  189. package/dist/src/commands/ruvector/optimize.d.ts +11 -0
  190. package/dist/src/commands/ruvector/optimize.js +505 -0
  191. package/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
  192. package/dist/src/commands/ruvector/pg-utils.js +41 -0
  193. package/dist/src/commands/ruvector/setup.d.ts +18 -0
  194. package/dist/src/commands/ruvector/setup.js +765 -0
  195. package/dist/src/commands/ruvector/status.d.ts +11 -0
  196. package/dist/src/commands/ruvector/status.js +479 -0
  197. package/dist/src/commands/security.d.ts +10 -0
  198. package/dist/src/commands/security.js +1012 -0
  199. package/dist/src/commands/session.d.ts +8 -0
  200. package/dist/src/commands/session.js +757 -0
  201. package/dist/src/commands/settings.d.ts +19 -0
  202. package/dist/src/commands/settings.js +180 -0
  203. package/dist/src/commands/spinner.d.ts +16 -0
  204. package/dist/src/commands/spinner.js +329 -0
  205. package/dist/src/commands/start.d.ts +8 -0
  206. package/dist/src/commands/start.js +418 -0
  207. package/dist/src/commands/status.d.ts +8 -0
  208. package/dist/src/commands/status.js +608 -0
  209. package/dist/src/commands/swarm.d.ts +8 -0
  210. package/dist/src/commands/swarm.js +891 -0
  211. package/dist/src/commands/task.d.ts +8 -0
  212. package/dist/src/commands/task.js +675 -0
  213. package/dist/src/commands/transfer-store.d.ts +13 -0
  214. package/dist/src/commands/transfer-store.js +428 -0
  215. package/dist/src/commands/update.d.ts +8 -0
  216. package/dist/src/commands/update.js +276 -0
  217. package/dist/src/commands/verify.d.ts +19 -0
  218. package/dist/src/commands/verify.js +261 -0
  219. package/dist/src/commands/version.d.ts +42 -0
  220. package/dist/src/commands/version.js +106 -0
  221. package/dist/src/commands/workflow.d.ts +8 -0
  222. package/dist/src/commands/workflow.js +617 -0
  223. package/dist/src/config/harness-feedback-applier.d.ts +50 -0
  224. package/dist/src/config/harness-feedback-applier.js +122 -0
  225. package/dist/src/config/proven-config-refresh.d.ts +39 -0
  226. package/dist/src/config/proven-config-refresh.js +154 -0
  227. package/dist/src/config/proven-config-rvfa.d.ts +23 -0
  228. package/dist/src/config/proven-config-rvfa.js +73 -0
  229. package/dist/src/config/proven-config.d.ts +86 -0
  230. package/dist/src/config/proven-config.js +176 -0
  231. package/dist/src/config-adapter.d.ts +15 -0
  232. package/dist/src/config-adapter.js +186 -0
  233. package/dist/src/encryption/vault.d.ts +94 -0
  234. package/dist/src/encryption/vault.js +172 -0
  235. package/dist/src/fs-secure.d.ts +86 -0
  236. package/dist/src/fs-secure.js +133 -0
  237. package/dist/src/funnel/advisor-tip.d.ts +58 -0
  238. package/dist/src/funnel/advisor-tip.js +92 -0
  239. package/dist/src/funnel/attribution.d.ts +37 -0
  240. package/dist/src/funnel/attribution.js +101 -0
  241. package/dist/src/funnel/consent.d.ts +22 -0
  242. package/dist/src/funnel/consent.js +58 -0
  243. package/dist/src/funnel/credit-errors.d.ts +31 -0
  244. package/dist/src/funnel/credit-errors.js +88 -0
  245. package/dist/src/funnel/credit-notifier.d.ts +44 -0
  246. package/dist/src/funnel/credit-notifier.js +74 -0
  247. package/dist/src/funnel/disclosure.d.ts +47 -0
  248. package/dist/src/funnel/disclosure.js +109 -0
  249. package/dist/src/funnel/enrollment.d.ts +36 -0
  250. package/dist/src/funnel/enrollment.js +64 -0
  251. package/dist/src/funnel/environment.d.ts +17 -0
  252. package/dist/src/funnel/environment.js +39 -0
  253. package/dist/src/funnel/event-transport.d.ts +51 -0
  254. package/dist/src/funnel/event-transport.js +199 -0
  255. package/dist/src/funnel/events.d.ts +42 -0
  256. package/dist/src/funnel/events.js +150 -0
  257. package/dist/src/funnel/index.d.ts +21 -0
  258. package/dist/src/funnel/index.js +21 -0
  259. package/dist/src/funnel/insights.d.ts +50 -0
  260. package/dist/src/funnel/insights.js +120 -0
  261. package/dist/src/funnel/local-signals.d.ts +20 -0
  262. package/dist/src/funnel/local-signals.js +77 -0
  263. package/dist/src/funnel/message-transport.d.ts +51 -0
  264. package/dist/src/funnel/message-transport.js +149 -0
  265. package/dist/src/funnel/messages.d.ts +55 -0
  266. package/dist/src/funnel/messages.js +160 -0
  267. package/dist/src/funnel/payout.d.ts +40 -0
  268. package/dist/src/funnel/payout.js +60 -0
  269. package/dist/src/funnel/power-saver-notifier.d.ts +44 -0
  270. package/dist/src/funnel/power-saver-notifier.js +92 -0
  271. package/dist/src/funnel/precedence.d.ts +16 -0
  272. package/dist/src/funnel/precedence.js +85 -0
  273. package/dist/src/funnel/promo.d.ts +41 -0
  274. package/dist/src/funnel/promo.js +144 -0
  275. package/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
  276. package/dist/src/funnel/rate-limit-notifier.js +102 -0
  277. package/dist/src/funnel/rotation.d.ts +19 -0
  278. package/dist/src/funnel/rotation.js +70 -0
  279. package/dist/src/funnel/state.d.ts +13 -0
  280. package/dist/src/funnel/state.js +52 -0
  281. package/dist/src/funnel/toggle-cooldown.d.ts +17 -0
  282. package/dist/src/funnel/toggle-cooldown.js +32 -0
  283. package/dist/src/funnel/types.d.ts +98 -0
  284. package/dist/src/funnel/types.js +26 -0
  285. package/dist/src/index.d.ts +81 -0
  286. package/dist/src/index.js +609 -0
  287. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  288. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  289. package/dist/src/init/claudemd-generator.d.ts +16 -0
  290. package/dist/src/init/claudemd-generator.js +368 -0
  291. package/dist/src/init/executor.d.ts +41 -0
  292. package/dist/src/init/executor.js +2142 -0
  293. package/dist/src/init/helper-refresh.d.ts +79 -0
  294. package/dist/src/init/helper-refresh.js +347 -0
  295. package/dist/src/init/helper-signing.d.ts +37 -0
  296. package/dist/src/init/helper-signing.js +67 -0
  297. package/dist/src/init/helpers-generator.d.ts +87 -0
  298. package/dist/src/init/helpers-generator.js +1456 -0
  299. package/dist/src/init/index.d.ts +13 -0
  300. package/dist/src/init/index.js +15 -0
  301. package/dist/src/init/mcp-generator.d.ts +26 -0
  302. package/dist/src/init/mcp-generator.js +126 -0
  303. package/dist/src/init/memory-package-resolver.d.ts +53 -0
  304. package/dist/src/init/memory-package-resolver.js +118 -0
  305. package/dist/src/init/settings-generator.d.ts +14 -0
  306. package/dist/src/init/settings-generator.js +462 -0
  307. package/dist/src/init/statusline-generator.d.ts +28 -0
  308. package/dist/src/init/statusline-generator.js +177 -0
  309. package/dist/src/init/types.d.ts +331 -0
  310. package/dist/src/init/types.js +276 -0
  311. package/dist/src/log-filters.d.ts +46 -0
  312. package/dist/src/log-filters.js +107 -0
  313. package/dist/src/mcp-client.d.ts +92 -0
  314. package/dist/src/mcp-client.js +397 -0
  315. package/dist/src/mcp-server.d.ts +163 -0
  316. package/dist/src/mcp-server.js +751 -0
  317. package/dist/src/mcp-tools/agent-execute-core.d.ts +115 -0
  318. package/dist/src/mcp-tools/agent-execute-core.js +587 -0
  319. package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  320. package/dist/src/mcp-tools/agent-tools.js +837 -0
  321. package/dist/src/mcp-tools/agentbbs-tools.d.ts +28 -0
  322. package/dist/src/mcp-tools/agentbbs-tools.js +394 -0
  323. package/dist/src/mcp-tools/agentdb-tools.d.ts +35 -0
  324. package/dist/src/mcp-tools/agentdb-tools.js +1473 -0
  325. package/dist/src/mcp-tools/agenticow-loader.d.ts +59 -0
  326. package/dist/src/mcp-tools/agenticow-loader.js +105 -0
  327. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +24 -0
  328. package/dist/src/mcp-tools/agenticow-speculate-tools.js +209 -0
  329. package/dist/src/mcp-tools/agenticow-tools.d.ts +36 -0
  330. package/dist/src/mcp-tools/agenticow-tools.js +360 -0
  331. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  332. package/dist/src/mcp-tools/analyze-tools.js +346 -0
  333. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  334. package/dist/src/mcp-tools/auto-install.js +131 -0
  335. package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  336. package/dist/src/mcp-tools/autopilot-tools.js +231 -0
  337. package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
  338. package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
  339. package/dist/src/mcp-tools/browser-session-tools.d.ts +27 -0
  340. package/dist/src/mcp-tools/browser-session-tools.js +398 -0
  341. package/dist/src/mcp-tools/browser-tools.d.ts +21 -0
  342. package/dist/src/mcp-tools/browser-tools.js +760 -0
  343. package/dist/src/mcp-tools/business-pod-tools.d.ts +20 -0
  344. package/dist/src/mcp-tools/business-pod-tools.js +169 -0
  345. package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  346. package/dist/src/mcp-tools/claims-tools.js +863 -0
  347. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  348. package/dist/src/mcp-tools/config-tools.js +411 -0
  349. package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  350. package/dist/src/mcp-tools/coordination-tools.js +729 -0
  351. package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  352. package/dist/src/mcp-tools/daa-tools.js +534 -0
  353. package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  354. package/dist/src/mcp-tools/embeddings-tools.js +904 -0
  355. package/dist/src/mcp-tools/github-tools.d.ts +9 -0
  356. package/dist/src/mcp-tools/github-tools.js +659 -0
  357. package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  358. package/dist/src/mcp-tools/guidance-tools.js +639 -0
  359. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  360. package/dist/src/mcp-tools/hive-mind-tools.js +953 -0
  361. package/dist/src/mcp-tools/hooks-tools.d.ts +65 -0
  362. package/dist/src/mcp-tools/hooks-tools.js +4836 -0
  363. package/dist/src/mcp-tools/http-fetch-tools.d.ts +55 -0
  364. package/dist/src/mcp-tools/http-fetch-tools.js +329 -0
  365. package/dist/src/mcp-tools/index.d.ts +34 -0
  366. package/dist/src/mcp-tools/index.js +40 -0
  367. package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
  368. package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
  369. package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  370. package/dist/src/mcp-tools/memory-tools.js +1330 -0
  371. package/dist/src/mcp-tools/metaharness-tools.d.ts +51 -0
  372. package/dist/src/mcp-tools/metaharness-tools.js +684 -0
  373. package/dist/src/mcp-tools/neural-tools.d.ts +54 -0
  374. package/dist/src/mcp-tools/neural-tools.js +1168 -0
  375. package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  376. package/dist/src/mcp-tools/performance-tools.js +675 -0
  377. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  378. package/dist/src/mcp-tools/progress-tools.js +348 -0
  379. package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  380. package/dist/src/mcp-tools/request-tracker.js +27 -0
  381. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  382. package/dist/src/mcp-tools/ruvllm-tools.js +355 -0
  383. package/dist/src/mcp-tools/security-tools.d.ts +18 -0
  384. package/dist/src/mcp-tools/security-tools.js +556 -0
  385. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  386. package/dist/src/mcp-tools/session-tools.js +517 -0
  387. package/dist/src/mcp-tools/swarm-tools.d.ts +37 -0
  388. package/dist/src/mcp-tools/swarm-tools.js +390 -0
  389. package/dist/src/mcp-tools/system-tools.d.ts +13 -0
  390. package/dist/src/mcp-tools/system-tools.js +688 -0
  391. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  392. package/dist/src/mcp-tools/task-tools.js +487 -0
  393. package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  394. package/dist/src/mcp-tools/terminal-tools.js +306 -0
  395. package/dist/src/mcp-tools/testgen-tools.d.ts +26 -0
  396. package/dist/src/mcp-tools/testgen-tools.js +168 -0
  397. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +31 -0
  398. package/dist/src/mcp-tools/tool-loop-guardrail.js +71 -0
  399. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  400. package/dist/src/mcp-tools/transfer-tools.js +447 -0
  401. package/dist/src/mcp-tools/types.d.ts +8 -0
  402. package/dist/src/mcp-tools/types.js +8 -0
  403. package/dist/src/mcp-tools/validate-input.d.ts +9 -0
  404. package/dist/src/mcp-tools/validate-input.js +9 -0
  405. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +13 -0
  406. package/dist/src/mcp-tools/wasm-agent-tools.js +840 -0
  407. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  408. package/dist/src/mcp-tools/workflow-tools.js +884 -0
  409. package/dist/src/memory/bge-embedder.d.ts +25 -0
  410. package/dist/src/memory/bge-embedder.js +121 -0
  411. package/dist/src/memory/cross-encoder-rerank.d.ts +33 -0
  412. package/dist/src/memory/cross-encoder-rerank.js +123 -0
  413. package/dist/src/memory/embedding-policy.d.ts +21 -0
  414. package/dist/src/memory/embedding-policy.js +30 -0
  415. package/dist/src/memory/embedding-quantization.d.ts +62 -0
  416. package/dist/src/memory/embedding-quantization.js +156 -0
  417. package/dist/src/memory/ewc-consolidation.d.ts +305 -0
  418. package/dist/src/memory/ewc-consolidation.js +611 -0
  419. package/dist/src/memory/graph-edge-writer.d.ts +95 -0
  420. package/dist/src/memory/graph-edge-writer.js +217 -0
  421. package/dist/src/memory/hybrid-retrieval.d.ts +77 -0
  422. package/dist/src/memory/hybrid-retrieval.js +192 -0
  423. package/dist/src/memory/intelligence.d.ts +405 -0
  424. package/dist/src/memory/intelligence.js +1316 -0
  425. package/dist/src/memory/lucene-bm25.d.ts +19 -0
  426. package/dist/src/memory/lucene-bm25.js +308 -0
  427. package/dist/src/memory/memory-bridge.d.ts +537 -0
  428. package/dist/src/memory/memory-bridge.js +2460 -0
  429. package/dist/src/memory/memory-initializer.d.ts +556 -0
  430. package/dist/src/memory/memory-initializer.js +3021 -0
  431. package/dist/src/memory/neural-package-bridge.d.ts +48 -0
  432. package/dist/src/memory/neural-package-bridge.js +87 -0
  433. package/dist/src/memory/rabitq-index.d.ts +60 -0
  434. package/dist/src/memory/rabitq-index.js +242 -0
  435. package/dist/src/memory/sona-optimizer.d.ts +267 -0
  436. package/dist/src/memory/sona-optimizer.js +779 -0
  437. package/dist/src/memory/structured-distill.d.ts +48 -0
  438. package/dist/src/memory/structured-distill.js +125 -0
  439. package/dist/src/output.d.ts +9 -0
  440. package/dist/src/output.js +9 -0
  441. package/dist/src/parser.d.ts +89 -0
  442. package/dist/src/parser.js +516 -0
  443. package/dist/src/plugins/manager.d.ts +133 -0
  444. package/dist/src/plugins/manager.js +415 -0
  445. package/dist/src/plugins/store/discovery.d.ts +99 -0
  446. package/dist/src/plugins/store/discovery.js +1224 -0
  447. package/dist/src/plugins/store/index.d.ts +76 -0
  448. package/dist/src/plugins/store/index.js +141 -0
  449. package/dist/src/plugins/store/search.d.ts +46 -0
  450. package/dist/src/plugins/store/search.js +230 -0
  451. package/dist/src/plugins/store/types.d.ts +279 -0
  452. package/dist/src/plugins/store/types.js +7 -0
  453. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  454. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  455. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  456. package/dist/src/plugins/tests/standalone-test.js +188 -0
  457. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  458. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  459. package/dist/src/production/circuit-breaker.d.ts +101 -0
  460. package/dist/src/production/circuit-breaker.js +241 -0
  461. package/dist/src/production/error-handler.d.ts +92 -0
  462. package/dist/src/production/error-handler.js +299 -0
  463. package/dist/src/production/index.d.ts +23 -0
  464. package/dist/src/production/index.js +18 -0
  465. package/dist/src/production/monitoring.d.ts +161 -0
  466. package/dist/src/production/monitoring.js +356 -0
  467. package/dist/src/production/rate-limiter.d.ts +80 -0
  468. package/dist/src/production/rate-limiter.js +201 -0
  469. package/dist/src/production/retry.d.ts +48 -0
  470. package/dist/src/production/retry.js +179 -0
  471. package/dist/src/prompt.d.ts +44 -0
  472. package/dist/src/prompt.js +501 -0
  473. package/dist/src/proxy/install.d.ts +29 -0
  474. package/dist/src/proxy/install.js +135 -0
  475. package/dist/src/proxy/lifecycle.d.ts +61 -0
  476. package/dist/src/proxy/lifecycle.js +249 -0
  477. package/dist/src/proxy/paths.d.ts +34 -0
  478. package/dist/src/proxy/paths.js +70 -0
  479. package/dist/src/proxy/release.d.ts +47 -0
  480. package/dist/src/proxy/release.js +138 -0
  481. package/dist/src/proxy/token-bridge.d.ts +5 -0
  482. package/dist/src/proxy/token-bridge.js +61 -0
  483. package/dist/src/proxy/verify.d.ts +44 -0
  484. package/dist/src/proxy/verify.js +68 -0
  485. package/dist/src/runtime/headless.d.ts +60 -0
  486. package/dist/src/runtime/headless.js +284 -0
  487. package/dist/src/runtime/parent-death-watchdog.d.ts +42 -0
  488. package/dist/src/runtime/parent-death-watchdog.js +70 -0
  489. package/dist/src/ruvector/agent-wasm.d.ts +228 -0
  490. package/dist/src/ruvector/agent-wasm.js +463 -0
  491. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  492. package/dist/src/ruvector/ast-analyzer.js +277 -0
  493. package/dist/src/ruvector/codemods/engine.d.ts +45 -0
  494. package/dist/src/ruvector/codemods/engine.js +291 -0
  495. package/dist/src/ruvector/codemods/scope-analysis.d.ts +29 -0
  496. package/dist/src/ruvector/codemods/scope-analysis.js +162 -0
  497. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  498. package/dist/src/ruvector/coverage-router.js +531 -0
  499. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  500. package/dist/src/ruvector/coverage-tools.js +157 -0
  501. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  502. package/dist/src/ruvector/diff-classifier.js +699 -0
  503. package/dist/src/ruvector/diskann-backend.d.ts +78 -0
  504. package/dist/src/ruvector/diskann-backend.js +310 -0
  505. package/dist/src/ruvector/enhanced-model-router.d.ts +172 -0
  506. package/dist/src/ruvector/enhanced-model-router.js +577 -0
  507. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  508. package/dist/src/ruvector/graph-analyzer.js +929 -0
  509. package/dist/src/ruvector/graph-backend.d.ts +79 -0
  510. package/dist/src/ruvector/graph-backend.js +220 -0
  511. package/dist/src/ruvector/index.d.ts +38 -0
  512. package/dist/src/ruvector/index.js +86 -0
  513. package/dist/src/ruvector/lora-adapter.d.ts +292 -0
  514. package/dist/src/ruvector/lora-adapter.js +710 -0
  515. package/dist/src/ruvector/model-prices.d.ts +50 -0
  516. package/dist/src/ruvector/model-prices.js +72 -0
  517. package/dist/src/ruvector/model-router.d.ts +408 -0
  518. package/dist/src/ruvector/model-router.js +1162 -0
  519. package/dist/src/ruvector/neural-router.d.ts +182 -0
  520. package/dist/src/ruvector/neural-router.js +825 -0
  521. package/dist/src/ruvector/output-verifier.d.ts +83 -0
  522. package/dist/src/ruvector/output-verifier.js +277 -0
  523. package/dist/src/ruvector/q-learning-router.d.ts +227 -0
  524. package/dist/src/ruvector/q-learning-router.js +721 -0
  525. package/dist/src/ruvector/router-calibrator.d.ts +65 -0
  526. package/dist/src/ruvector/router-calibrator.js +120 -0
  527. package/dist/src/ruvector/router-parallel-recorder.d.ts +127 -0
  528. package/dist/src/ruvector/router-parallel-recorder.js +183 -0
  529. package/dist/src/ruvector/router-trajectory.d.ts +194 -0
  530. package/dist/src/ruvector/router-trajectory.js +281 -0
  531. package/dist/src/ruvector/run-transcript-recorder.d.ts +154 -0
  532. package/dist/src/ruvector/run-transcript-recorder.js +209 -0
  533. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  534. package/dist/src/ruvector/ruvllm-wasm.js +379 -0
  535. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  536. package/dist/src/ruvector/semantic-router.js +178 -0
  537. package/dist/src/ruvector/task-embedder.d.ts +56 -0
  538. package/dist/src/ruvector/task-embedder.js +237 -0
  539. package/dist/src/ruvector/trajectory-tree.d.ts +113 -0
  540. package/dist/src/ruvector/trajectory-tree.js +237 -0
  541. package/dist/src/ruvector/vector-db.d.ts +73 -0
  542. package/dist/src/ruvector/vector-db.js +301 -0
  543. package/dist/src/ruvector/wasm-embedder.d.ts +13 -0
  544. package/dist/src/ruvector/wasm-embedder.js +143 -0
  545. package/dist/src/security/builtin-aidefence.d.ts +34 -0
  546. package/dist/src/security/builtin-aidefence.js +86 -0
  547. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  548. package/dist/src/services/agentic-flow-bridge.js +95 -0
  549. package/dist/src/services/ai-job-dedup.d.ts +61 -0
  550. package/dist/src/services/ai-job-dedup.js +136 -0
  551. package/dist/src/services/checkpoint-gate.d.ts +140 -0
  552. package/dist/src/services/checkpoint-gate.js +223 -0
  553. package/dist/src/services/claim-service.d.ts +204 -0
  554. package/dist/src/services/claim-service.js +818 -0
  555. package/dist/src/services/config-file-manager.d.ts +37 -0
  556. package/dist/src/services/config-file-manager.js +224 -0
  557. package/dist/src/services/container-worker-pool.d.ts +204 -0
  558. package/dist/src/services/container-worker-pool.js +589 -0
  559. package/dist/src/services/daemon-autostart.d.ts +17 -0
  560. package/dist/src/services/daemon-autostart.js +102 -0
  561. package/dist/src/services/distill-oracle.d.ts +190 -0
  562. package/dist/src/services/distill-oracle.js +349 -0
  563. package/dist/src/services/distill-tuning.d.ts +111 -0
  564. package/dist/src/services/distill-tuning.js +510 -0
  565. package/dist/src/services/evolve-proof.d.ts +253 -0
  566. package/dist/src/services/evolve-proof.js +343 -0
  567. package/dist/src/services/fable-harness.d.ts +208 -0
  568. package/dist/src/services/fable-harness.js +388 -0
  569. package/dist/src/services/git-workspace-identity.d.ts +42 -0
  570. package/dist/src/services/git-workspace-identity.js +99 -0
  571. package/dist/src/services/global-ai-budget.d.ts +135 -0
  572. package/dist/src/services/global-ai-budget.js +415 -0
  573. package/dist/src/services/harness-benchmark.d.ts +68 -0
  574. package/dist/src/services/harness-benchmark.js +94 -0
  575. package/dist/src/services/harness-canary.d.ts +60 -0
  576. package/dist/src/services/harness-canary.js +69 -0
  577. package/dist/src/services/harness-corpus-harvester.d.ts +51 -0
  578. package/dist/src/services/harness-corpus-harvester.js +74 -0
  579. package/dist/src/services/harness-flywheel-generations.d.ts +115 -0
  580. package/dist/src/services/harness-flywheel-generations.js +360 -0
  581. package/dist/src/services/harness-flywheel-runtime.d.ts +25 -0
  582. package/dist/src/services/harness-flywheel-runtime.js +92 -0
  583. package/dist/src/services/harness-flywheel.d.ts +48 -0
  584. package/dist/src/services/harness-flywheel.js +207 -0
  585. package/dist/src/services/harness-frozen-eval.d.ts +22 -0
  586. package/dist/src/services/harness-frozen-eval.js +66 -0
  587. package/dist/src/services/harness-hosts.d.ts +40 -0
  588. package/dist/src/services/harness-hosts.js +88 -0
  589. package/dist/src/services/harness-improvement-ledger.d.ts +63 -0
  590. package/dist/src/services/harness-improvement-ledger.js +101 -0
  591. package/dist/src/services/harness-loop.d.ts +53 -0
  592. package/dist/src/services/harness-loop.js +85 -0
  593. package/dist/src/services/harness-qualification.d.ts +66 -0
  594. package/dist/src/services/harness-qualification.js +143 -0
  595. package/dist/src/services/harness-replay.d.ts +37 -0
  596. package/dist/src/services/harness-replay.js +92 -0
  597. package/dist/src/services/harness-verify.d.ts +33 -0
  598. package/dist/src/services/harness-verify.js +26 -0
  599. package/dist/src/services/harness-worker.d.ts +23 -0
  600. package/dist/src/services/harness-worker.js +66 -0
  601. package/dist/src/services/headless-worker-executor.d.ts +358 -0
  602. package/dist/src/services/headless-worker-executor.js +1269 -0
  603. package/dist/src/services/index.d.ts +13 -0
  604. package/dist/src/services/index.js +11 -0
  605. package/dist/src/services/memory-backup.d.ts +53 -0
  606. package/dist/src/services/memory-backup.js +198 -0
  607. package/dist/src/services/memory-distillation.d.ts +41 -0
  608. package/dist/src/services/memory-distillation.js +277 -0
  609. package/dist/src/services/native-training.d.ts +68 -0
  610. package/dist/src/services/native-training.js +141 -0
  611. package/dist/src/services/registry-api.d.ts +58 -0
  612. package/dist/src/services/registry-api.js +146 -0
  613. package/dist/src/services/repo-supervisor.d.ts +70 -0
  614. package/dist/src/services/repo-supervisor.js +228 -0
  615. package/dist/src/services/ruvector-training.d.ts +222 -0
  616. package/dist/src/services/ruvector-training.js +693 -0
  617. package/dist/src/services/swarm-memory-branches.d.ts +135 -0
  618. package/dist/src/services/swarm-memory-branches.js +213 -0
  619. package/dist/src/services/weight-eft.d.ts +305 -0
  620. package/dist/src/services/weight-eft.js +296 -0
  621. package/dist/src/services/worker-daemon.d.ts +439 -0
  622. package/dist/src/services/worker-daemon.js +1865 -0
  623. package/dist/src/services/worker-queue.d.ts +194 -0
  624. package/dist/src/services/worker-queue.js +513 -0
  625. package/dist/src/services/workspace-lease.d.ts +55 -0
  626. package/dist/src/services/workspace-lease.js +191 -0
  627. package/dist/src/suggest.d.ts +53 -0
  628. package/dist/src/suggest.js +200 -0
  629. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  630. package/dist/src/transfer/anonymization/index.js +175 -0
  631. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  632. package/dist/src/transfer/deploy-seraphine.js +205 -0
  633. package/dist/src/transfer/export.d.ts +25 -0
  634. package/dist/src/transfer/export.js +113 -0
  635. package/dist/src/transfer/index.d.ts +12 -0
  636. package/dist/src/transfer/index.js +31 -0
  637. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  638. package/dist/src/transfer/ipfs/client.js +307 -0
  639. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  640. package/dist/src/transfer/ipfs/upload.js +413 -0
  641. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  642. package/dist/src/transfer/models/seraphine.js +373 -0
  643. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  644. package/dist/src/transfer/serialization/cfp.js +183 -0
  645. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  646. package/dist/src/transfer/storage/gcs.js +272 -0
  647. package/dist/src/transfer/storage/index.d.ts +6 -0
  648. package/dist/src/transfer/storage/index.js +6 -0
  649. package/dist/src/transfer/store/discovery.d.ts +84 -0
  650. package/dist/src/transfer/store/discovery.js +382 -0
  651. package/dist/src/transfer/store/download.d.ts +70 -0
  652. package/dist/src/transfer/store/download.js +334 -0
  653. package/dist/src/transfer/store/index.d.ts +84 -0
  654. package/dist/src/transfer/store/index.js +153 -0
  655. package/dist/src/transfer/store/publish.d.ts +76 -0
  656. package/dist/src/transfer/store/publish.js +294 -0
  657. package/dist/src/transfer/store/registry.d.ts +58 -0
  658. package/dist/src/transfer/store/registry.js +285 -0
  659. package/dist/src/transfer/store/search.d.ts +54 -0
  660. package/dist/src/transfer/store/search.js +232 -0
  661. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  662. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  663. package/dist/src/transfer/store/types.d.ts +193 -0
  664. package/dist/src/transfer/store/types.js +6 -0
  665. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  666. package/dist/src/transfer/test-seraphine.js +105 -0
  667. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  668. package/dist/src/transfer/tests/test-store.js +214 -0
  669. package/dist/src/transfer/types.d.ts +245 -0
  670. package/dist/src/transfer/types.js +6 -0
  671. package/dist/src/types.d.ts +13 -0
  672. package/dist/src/types.js +13 -0
  673. package/dist/src/update/checker.d.ts +34 -0
  674. package/dist/src/update/checker.js +191 -0
  675. package/dist/src/update/executor.d.ts +33 -0
  676. package/dist/src/update/executor.js +217 -0
  677. package/dist/src/update/index.d.ts +33 -0
  678. package/dist/src/update/index.js +64 -0
  679. package/dist/src/update/rate-limiter.d.ts +20 -0
  680. package/dist/src/update/rate-limiter.js +96 -0
  681. package/dist/src/update/validator.d.ts +17 -0
  682. package/dist/src/update/validator.js +123 -0
  683. package/package.json +1 -1
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Graph Edge Writer — ADR-130 Phase 1
3
+ *
4
+ * Provides a minimal interface for inserting rows into the graph_edges
5
+ * SQLite table defined by MEMORY_SCHEMA_V3.
6
+ *
7
+ * #2431 fix (2026-06-22) — replaces the prior sql.js implementation. The
8
+ * prior version opened sql.js, performed in-memory updates, then called
9
+ * `fs.writeFileSync(dbPath, db.export())` after every edge insert. This
10
+ * whole-file flush overwrote the main `memory.db` while the better-sqlite3
11
+ * bridge was actively writing through its WAL — exactly the dual-write
12
+ * race that ADR-068 (#1257) removed. Symptom: PRAGMA integrity_check
13
+ * reports `database disk image is malformed (11)` after a single
14
+ * memory_store + causal-edge sequence.
15
+ *
16
+ * Fix posture: use better-sqlite3 directly (the same native engine the
17
+ * memory bridge uses). WAL-native, no whole-file fsync, no race. Keeps
18
+ * the public API surface identical so callers don't have to change.
19
+ *
20
+ * Note: this is the minimum-safe fix. The architecturally cleaner fix
21
+ * (route writes through the bridge's controller layer) is scoped to a
22
+ * future ADR — see #2431 for the discussion. Until that ADR lands, this
23
+ * module owns its own better-sqlite3 handle but on the same file, with
24
+ * WAL mode enabled (which makes concurrent writers safe by SQLite's own
25
+ * design — no overlapping fsync).
26
+ *
27
+ * The module is designed for fire-and-forget callers — every public
28
+ * function suppresses errors internally so callers never need try/catch.
29
+ *
30
+ * @module v3/cli/memory/graph-edge-writer
31
+ */
32
+ import * as path from 'path';
33
+ import * as fs from 'fs';
34
+ import * as crypto from 'crypto';
35
+ import { getMemoryRoot } from './memory-initializer.js';
36
+ import { encodeEmbedding } from './embedding-quantization.js';
37
+ // ============================================================================
38
+ // Lazy-cached better-sqlite3 db handle
39
+ // ============================================================================
40
+ let _db = null;
41
+ let _dbPath = '';
42
+ let _dbInitializing = false;
43
+ /**
44
+ * Return the better-sqlite3 Database instance for graph_edges writes.
45
+ * Creates the graph_edges table if it is absent (idempotent).
46
+ * Returns null if better-sqlite3 is not available or db cannot be opened.
47
+ *
48
+ * #2246 fix: `createIfMissing` (default false for back-compat) — when true,
49
+ * lazily creates an empty memory.db with the graph_edges schema so
50
+ * graph-pathfinder works on fresh environments before any memory writes.
51
+ *
52
+ * #2431 fix: better-sqlite3 + WAL mode replaces sql.js + whole-file
53
+ * writeFileSync. Eliminates the dual-write race that corrupted memory.db
54
+ * when called alongside the memory bridge's better-sqlite3 writer.
55
+ */
56
+ export async function getBridgeDb(customDbPath, opts) {
57
+ const dbPath = customDbPath ?? path.join(getMemoryRoot(), 'memory.db');
58
+ const createIfMissing = opts?.createIfMissing === true;
59
+ if (_db && _dbPath === dbPath)
60
+ return _db;
61
+ if (_dbInitializing)
62
+ return null;
63
+ _dbInitializing = true;
64
+ try {
65
+ const dbExists = fs.existsSync(dbPath);
66
+ if (!dbExists && !createIfMissing)
67
+ return null;
68
+ // Ensure parent dir exists for createIfMissing case.
69
+ if (!dbExists && createIfMissing) {
70
+ const dir = path.dirname(dbPath);
71
+ if (!fs.existsSync(dir))
72
+ fs.mkdirSync(dir, { recursive: true });
73
+ }
74
+ // better-sqlite3 may not be available on all platforms (it's a native
75
+ // module, so platform-specific binaries are required). If unavailable,
76
+ // return null and let callers degrade gracefully — same posture as the
77
+ // prior sql.js version when sql.js failed to load.
78
+ //
79
+ // The module name is hidden behind a variable so the TypeScript compiler
80
+ // does not statically resolve and require the `better-sqlite3` types at
81
+ // build time — they would only be installed via optionalDependencies,
82
+ // which CI doesn't always install. This is the standard pattern for
83
+ // runtime-only optional native deps. The actual presence is gated by
84
+ // the try/catch below.
85
+ let BetterSqlite3;
86
+ try {
87
+ const mod = 'better-sqlite3';
88
+ BetterSqlite3 = (await import(mod)).default;
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ const db = new BetterSqlite3(dbPath);
94
+ // WAL mode is the load-bearing piece of the #2431 fix: it lets multiple
95
+ // connections (this module + the memory bridge) write to the same file
96
+ // without overlapping fsyncs corrupting each other. SQLite's WAL is
97
+ // designed for exactly this case.
98
+ db.pragma('journal_mode = WAL');
99
+ db.pragma('synchronous = NORMAL'); // WAL-safe + faster than FULL
100
+ db.pragma('busy_timeout = 5000'); // wait up to 5s on lock contention
101
+ // Ensure graph_edges table exists (in case this is an older DB that
102
+ // predates ADR-130 Phase 1 schema migration).
103
+ db.exec(`
104
+ CREATE TABLE IF NOT EXISTS graph_edges (
105
+ id TEXT PRIMARY KEY,
106
+ source_id TEXT NOT NULL,
107
+ target_id TEXT NOT NULL,
108
+ relation TEXT NOT NULL,
109
+ weight REAL DEFAULT 1.0,
110
+ confidence REAL DEFAULT 1.0,
111
+ decay_rate REAL DEFAULT 0.0,
112
+ last_reinforced TEXT,
113
+ witness_id TEXT,
114
+ embedding_ref TEXT,
115
+ metadata TEXT,
116
+ created_at TEXT NOT NULL
117
+ );
118
+ CREATE INDEX IF NOT EXISTS idx_graph_edges_source ON graph_edges (source_id);
119
+ CREATE INDEX IF NOT EXISTS idx_graph_edges_target ON graph_edges (target_id);
120
+ CREATE INDEX IF NOT EXISTS idx_graph_edges_relation ON graph_edges (relation);
121
+ CREATE INDEX IF NOT EXISTS idx_graph_edges_reinforced ON graph_edges (last_reinforced);
122
+ `);
123
+ _db = db;
124
+ _dbPath = dbPath;
125
+ return db;
126
+ }
127
+ catch {
128
+ return null;
129
+ }
130
+ finally {
131
+ _dbInitializing = false;
132
+ }
133
+ }
134
+ /**
135
+ * Insert a single edge into graph_edges.
136
+ * Fire-and-forget — errors are suppressed.
137
+ * Returns true if the write succeeded, false otherwise.
138
+ *
139
+ * #2431 fix: uses better-sqlite3 prepared statements + implicit WAL
140
+ * journal. No `fs.writeFileSync` whole-file flush — the WAL handles
141
+ * durability without overwriting the main file out from under other
142
+ * writers.
143
+ */
144
+ export async function insertGraphEdge(input) {
145
+ try {
146
+ const db = await getBridgeDb(input.dbPath);
147
+ if (!db)
148
+ return false;
149
+ const id = `edge-${crypto.randomUUID()}`;
150
+ const createdAt = new Date().toISOString();
151
+ let embeddingRef = null;
152
+ if (input.embedding && input.embedding.length > 0) {
153
+ embeddingRef = encodeEmbedding(input.embedding);
154
+ }
155
+ const metaStr = input.metadata ? JSON.stringify(input.metadata) : null;
156
+ db.prepare(`INSERT OR IGNORE INTO graph_edges
157
+ (id, source_id, target_id, relation, weight, confidence, decay_rate,
158
+ last_reinforced, witness_id, embedding_ref, metadata, created_at)
159
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.sourceId, input.targetId, input.relation, input.weight ?? 1.0, input.confidence ?? 1.0, input.decayRate ?? 0.0, input.lastReinforced ?? null, input.witnessId ?? null, embeddingRef, metaStr, createdAt);
160
+ return true;
161
+ }
162
+ catch {
163
+ return false;
164
+ }
165
+ }
166
+ /**
167
+ * Query graph_edges by source_id.
168
+ * Returns rows or empty array on error.
169
+ */
170
+ export async function queryEdgesBySource(sourceId, relation, dbPath) {
171
+ try {
172
+ const db = await getBridgeDb(dbPath);
173
+ if (!db)
174
+ return [];
175
+ const sql = relation
176
+ ? `SELECT id, source_id, target_id, relation, weight FROM graph_edges WHERE source_id = ? AND relation = ? LIMIT 1000`
177
+ : `SELECT id, source_id, target_id, relation, weight FROM graph_edges WHERE source_id = ? LIMIT 1000`;
178
+ const args = relation ? [sourceId, relation] : [sourceId];
179
+ return db.prepare(sql).all(...args);
180
+ }
181
+ catch {
182
+ return [];
183
+ }
184
+ }
185
+ /**
186
+ * Count rows in graph_edges (for test assertions).
187
+ */
188
+ export async function countGraphEdges(dbPath) {
189
+ try {
190
+ const db = await getBridgeDb(dbPath);
191
+ if (!db)
192
+ return 0;
193
+ const row = db.prepare(`SELECT COUNT(*) AS n FROM graph_edges`).get();
194
+ return row?.n ?? 0;
195
+ }
196
+ catch {
197
+ return 0;
198
+ }
199
+ }
200
+ /**
201
+ * Reset the cached db handle (for tests that need a fresh DB).
202
+ *
203
+ * #2431 fix: also explicitly closes the prior handle so file locks
204
+ * release immediately — better-sqlite3 holds an OS-level file handle
205
+ * which the prior sql.js implementation did not.
206
+ */
207
+ export function _resetBridgeDb() {
208
+ if (_db) {
209
+ try {
210
+ _db.close();
211
+ }
212
+ catch { /* best-effort */ }
213
+ }
214
+ _db = null;
215
+ _dbPath = '';
216
+ }
217
+ //# sourceMappingURL=graph-edge-writer.js.map
@@ -0,0 +1,77 @@
1
+ /** Tokenise text into lowercase content tokens (drops stopwords + length<3). */
2
+ export declare function tokenize(text: string): string[];
3
+ export interface CorpusStats {
4
+ /** docFreq: how many documents contain each token */
5
+ df: Map<string, number>;
6
+ /** idf: log((N - df + 0.5) / (df + 0.5) + 1) — BM25's smoothed IDF */
7
+ idf: Map<string, number>;
8
+ /** averageDocumentLength in tokens */
9
+ avgDocLen: number;
10
+ /** total docs in corpus */
11
+ N: number;
12
+ }
13
+ /** Build BM25 corpus statistics from a set of tokenised documents. */
14
+ export declare function buildCorpusStats(tokenisedDocs: string[][]): CorpusStats;
15
+ /**
16
+ * Type penalty for meta-commits — multiplies the hybrid score by `factor`
17
+ * when the document's name matches the meta-commit regex (release bumps,
18
+ * merge commits, badge updates, etc.). These commits bundle every issue
19
+ * number from a release window and steal top-1 from real work commits.
20
+ *
21
+ * Defaults: factor 0.5, regex covers `chore(release)`, `Merge `, `bump `,
22
+ * `[Dream Cycle]`, `publish 3.x.y`. Tune via env or call site.
23
+ */
24
+ export declare const META_COMMIT_REGEX: RegExp;
25
+ export declare function typePenalty(name: string | undefined, factor?: number, regex?: RegExp): number;
26
+ /**
27
+ * BM25 score of one document against a query.
28
+ * Standard Okapi formula with k1=1.5 and b=0.75.
29
+ */
30
+ export declare function bm25Score(queryTokens: string[], docTokens: string[], stats: CorpusStats, k1?: number, b?: number): number;
31
+ /**
32
+ * Min-max normalise a score vector to [0, 1].
33
+ * Returns the original vector if it is constant (avoid divide-by-zero).
34
+ */
35
+ export declare function normalise(scores: number[]): number[];
36
+ /**
37
+ * Combine cosine and BM25 scores. Both vectors must be aligned by docIndex.
38
+ * Returns hybridScores[] aligned to the same index.
39
+ * alpha controls the cosine weight; (1-alpha) is the BM25 weight.
40
+ */
41
+ export declare function hybridScores(cosine: number[], bm25: number[], alpha?: number): number[];
42
+ /**
43
+ * Multi-field BM25 score — treats subject and body as separate fields with
44
+ * independent token frequencies, then combines `subjectWeight * subjectBM25
45
+ * + bodyWeight * bodyBM25`. Subject (commit title / pattern name) carries
46
+ * the high-signal tokens (file names, action verbs, ADR refs); body is
47
+ * often boilerplate. Default 3:1 weight reflects that asymmetry.
48
+ *
49
+ * Caller must build separate CorpusStats for subjects and bodies (their
50
+ * IDF distributions differ — subjects are short, bodies long).
51
+ */
52
+ export declare function multiFieldBM25(queryTokens: string[], subjectTokens: string[], bodyTokens: string[], subjectStats: CorpusStats, bodyStats: CorpusStats, subjectWeight?: number, bodyWeight?: number): number;
53
+ /**
54
+ * Cosine similarity between two equal-length numeric vectors.
55
+ * Returns 0 if either has zero norm.
56
+ */
57
+ export declare function cosineSim(a: number[], b: number[]): number;
58
+ /**
59
+ * Maximal Marginal Relevance rerank.
60
+ *
61
+ * Greedy selection: at each step pick the candidate that maximises
62
+ * lambda * relevance(c) - (1-lambda) * max(similarity(c, picked))
63
+ *
64
+ * lambda=1.0 → pure relevance (no diversity adjustment)
65
+ * lambda=0.0 → pure diversity
66
+ *
67
+ * Default lambda=0.5 balances both.
68
+ */
69
+ export declare function mmrRerank<T extends {
70
+ embedding: number[];
71
+ }>(candidates: Array<T & {
72
+ relevance: number;
73
+ }>, k: number, lambda?: number): Array<T & {
74
+ relevance: number;
75
+ mmrScore: number;
76
+ }>;
77
+ //# sourceMappingURL=hybrid-retrieval.d.ts.map
@@ -0,0 +1,192 @@
1
+ // Hybrid retrieval — sparse (BM25) + dense (cosine) + MMR diversity.
2
+ //
3
+ // Why: on small corpora (N<1k) a bi-encoder like all-MiniLM-L6-v2 produces
4
+ // noisy cosine scores — random short commits with low-IDF token overlap can
5
+ // outrank exact-keyword matches. BM25 over the same text recovers the
6
+ // "did the query's content tokens actually appear?" signal. We linearly
7
+ // combine the two on normalised scores, then MMR-rerank to suppress
8
+ // near-duplicate top-K.
9
+ //
10
+ // Pure functions, no external deps. Tested via __tests__/hybrid-retrieval.test.ts
11
+ // and the live A/B in scripts/benchmark-pretrained-retrieval.mjs (HYBRID=0|1).
12
+ const STOPWORDS = new Set([
13
+ 'the', 'a', 'an', 'and', 'or', 'but', 'if', 'then', 'else', 'of', 'in', 'to', 'for', 'on', 'at',
14
+ 'by', 'with', 'from', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had',
15
+ 'do', 'does', 'did', 'will', 'would', 'should', 'could', 'can', 'may', 'might', 'must', 'this',
16
+ 'that', 'these', 'those', 'it', 'its', 'as', 'also', 'not', 'no', 'so', 'too', 'very',
17
+ ]);
18
+ /** Tokenise text into lowercase content tokens (drops stopwords + length<3). */
19
+ export function tokenize(text) {
20
+ if (!text)
21
+ return [];
22
+ return text
23
+ .toLowerCase()
24
+ .split(/[^a-z0-9_\-/.]+/g)
25
+ .filter((t) => t.length >= 3 && !STOPWORDS.has(t));
26
+ }
27
+ /** Build BM25 corpus statistics from a set of tokenised documents. */
28
+ export function buildCorpusStats(tokenisedDocs) {
29
+ const N = tokenisedDocs.length;
30
+ const df = new Map();
31
+ let totalLen = 0;
32
+ for (const doc of tokenisedDocs) {
33
+ totalLen += doc.length;
34
+ const seen = new Set();
35
+ for (const tok of doc) {
36
+ if (seen.has(tok))
37
+ continue;
38
+ seen.add(tok);
39
+ df.set(tok, (df.get(tok) ?? 0) + 1);
40
+ }
41
+ }
42
+ const idf = new Map();
43
+ for (const [tok, dfVal] of df) {
44
+ // BM25 smoothed IDF — never negative, always > 0
45
+ idf.set(tok, Math.log(1 + (N - dfVal + 0.5) / (dfVal + 0.5)));
46
+ }
47
+ return { df, idf, avgDocLen: N > 0 ? totalLen / N : 0, N };
48
+ }
49
+ /**
50
+ * Type penalty for meta-commits — multiplies the hybrid score by `factor`
51
+ * when the document's name matches the meta-commit regex (release bumps,
52
+ * merge commits, badge updates, etc.). These commits bundle every issue
53
+ * number from a release window and steal top-1 from real work commits.
54
+ *
55
+ * Defaults: factor 0.5, regex covers `chore(release)`, `Merge `, `bump `,
56
+ * `[Dream Cycle]`, `publish 3.x.y`. Tune via env or call site.
57
+ */
58
+ export const META_COMMIT_REGEX = /^(chore\(release\)|Merge\s|bump\s|publish\s+\d|\[Dream Cycle\b)/i;
59
+ export function typePenalty(name, factor = 0.5, regex = META_COMMIT_REGEX) {
60
+ if (!name)
61
+ return 1.0;
62
+ return regex.test(name) ? factor : 1.0;
63
+ }
64
+ /**
65
+ * BM25 score of one document against a query.
66
+ * Standard Okapi formula with k1=1.5 and b=0.75.
67
+ */
68
+ export function bm25Score(queryTokens, docTokens, stats, k1 = 1.5, b = 0.75) {
69
+ if (queryTokens.length === 0 || docTokens.length === 0)
70
+ return 0;
71
+ // Term frequency in this document
72
+ const tf = new Map();
73
+ for (const tok of docTokens)
74
+ tf.set(tok, (tf.get(tok) ?? 0) + 1);
75
+ const docLen = docTokens.length;
76
+ const norm = docLen / (stats.avgDocLen || 1);
77
+ let score = 0;
78
+ for (const qt of queryTokens) {
79
+ const f = tf.get(qt);
80
+ if (!f)
81
+ continue;
82
+ const idf = stats.idf.get(qt) ?? 0;
83
+ if (idf === 0)
84
+ continue;
85
+ const numerator = f * (k1 + 1);
86
+ const denominator = f + k1 * (1 - b + b * norm);
87
+ score += idf * (numerator / denominator);
88
+ }
89
+ return score;
90
+ }
91
+ /**
92
+ * Min-max normalise a score vector to [0, 1].
93
+ * Returns the original vector if it is constant (avoid divide-by-zero).
94
+ */
95
+ export function normalise(scores) {
96
+ if (scores.length === 0)
97
+ return scores;
98
+ let lo = Infinity, hi = -Infinity;
99
+ for (const s of scores) {
100
+ if (s < lo)
101
+ lo = s;
102
+ if (s > hi)
103
+ hi = s;
104
+ }
105
+ const range = hi - lo;
106
+ if (range < 1e-9)
107
+ return scores.map(() => 0.5);
108
+ return scores.map((s) => (s - lo) / range);
109
+ }
110
+ /**
111
+ * Combine cosine and BM25 scores. Both vectors must be aligned by docIndex.
112
+ * Returns hybridScores[] aligned to the same index.
113
+ * alpha controls the cosine weight; (1-alpha) is the BM25 weight.
114
+ */
115
+ export function hybridScores(cosine, bm25, alpha = 0.6) {
116
+ if (cosine.length !== bm25.length) {
117
+ throw new Error('hybridScores: cosine and bm25 length mismatch');
118
+ }
119
+ const cN = normalise(cosine);
120
+ const bN = normalise(bm25);
121
+ return cN.map((c, i) => alpha * c + (1 - alpha) * bN[i]);
122
+ }
123
+ /**
124
+ * Multi-field BM25 score — treats subject and body as separate fields with
125
+ * independent token frequencies, then combines `subjectWeight * subjectBM25
126
+ * + bodyWeight * bodyBM25`. Subject (commit title / pattern name) carries
127
+ * the high-signal tokens (file names, action verbs, ADR refs); body is
128
+ * often boilerplate. Default 3:1 weight reflects that asymmetry.
129
+ *
130
+ * Caller must build separate CorpusStats for subjects and bodies (their
131
+ * IDF distributions differ — subjects are short, bodies long).
132
+ */
133
+ export function multiFieldBM25(queryTokens, subjectTokens, bodyTokens, subjectStats, bodyStats, subjectWeight = 3.0, bodyWeight = 1.0) {
134
+ const sScore = bm25Score(queryTokens, subjectTokens, subjectStats);
135
+ const bScore = bm25Score(queryTokens, bodyTokens, bodyStats);
136
+ return subjectWeight * sScore + bodyWeight * bScore;
137
+ }
138
+ /**
139
+ * Cosine similarity between two equal-length numeric vectors.
140
+ * Returns 0 if either has zero norm.
141
+ */
142
+ export function cosineSim(a, b) {
143
+ if (a.length !== b.length)
144
+ return 0;
145
+ let dot = 0, na = 0, nb = 0;
146
+ for (let i = 0; i < a.length; i++) {
147
+ dot += a[i] * b[i];
148
+ na += a[i] * a[i];
149
+ nb += b[i] * b[i];
150
+ }
151
+ const denom = Math.sqrt(na) * Math.sqrt(nb);
152
+ return denom > 1e-9 ? dot / denom : 0;
153
+ }
154
+ /**
155
+ * Maximal Marginal Relevance rerank.
156
+ *
157
+ * Greedy selection: at each step pick the candidate that maximises
158
+ * lambda * relevance(c) - (1-lambda) * max(similarity(c, picked))
159
+ *
160
+ * lambda=1.0 → pure relevance (no diversity adjustment)
161
+ * lambda=0.0 → pure diversity
162
+ *
163
+ * Default lambda=0.5 balances both.
164
+ */
165
+ export function mmrRerank(candidates, k, lambda = 0.5) {
166
+ if (candidates.length === 0 || k === 0)
167
+ return [];
168
+ const picked = [];
169
+ const remaining = candidates.slice();
170
+ while (picked.length < k && remaining.length > 0) {
171
+ let bestIdx = 0;
172
+ let bestScore = -Infinity;
173
+ for (let i = 0; i < remaining.length; i++) {
174
+ const cand = remaining[i];
175
+ let maxSimToPicked = 0;
176
+ for (const p of picked) {
177
+ const s = cosineSim(cand.embedding, p.embedding);
178
+ if (s > maxSimToPicked)
179
+ maxSimToPicked = s;
180
+ }
181
+ const mmrScore = lambda * cand.relevance - (1 - lambda) * maxSimToPicked;
182
+ if (mmrScore > bestScore) {
183
+ bestScore = mmrScore;
184
+ bestIdx = i;
185
+ }
186
+ }
187
+ const chosen = remaining.splice(bestIdx, 1)[0];
188
+ picked.push({ ...chosen, mmrScore: bestScore });
189
+ }
190
+ return picked;
191
+ }
192
+ //# sourceMappingURL=hybrid-retrieval.js.map