@claude-flow/cli 3.32.3 → 3.32.4

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 +12 -0
  172. package/dist/src/commands/proxy-lifecycle.js +232 -0
  173. package/dist/src/commands/proxy.d.ts +21 -0
  174. package/dist/src/commands/proxy.js +398 -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,611 @@
1
+ /**
2
+ * EWC++ (Elastic Weight Consolidation) Implementation
3
+ * Prevents catastrophic forgetting of important patterns during continual learning
4
+ *
5
+ * Algorithm:
6
+ * L_total = L_new + (lambda/2) * sum_i(F_i * (theta_i - theta_old_i)^2)
7
+ *
8
+ * Where:
9
+ * - L_new is the loss on new data
10
+ * - lambda is the importance weight (ewcLambda)
11
+ * - F_i is the Fisher information for parameter i
12
+ * - theta_i is the current parameter value
13
+ * - theta_old_i is the previous parameter value
14
+ *
15
+ * Features:
16
+ * - Fisher Information Matrix computation from gradient history
17
+ * - Online EWC updates for streaming patterns
18
+ * - Selective consolidation based on pattern importance
19
+ * - Persistent storage in .swarm/ewc-fisher.json
20
+ *
21
+ * IMPLEMENTATION NOTE (honesty — see docs/reviews/intelligence-system-audit-2026-05-29.md):
22
+ * The penalty math above is real, but `F_i` here is NOT true Fisher information
23
+ * (the expectation of squared log-likelihood gradients). There are no model
24
+ * gradients in this pattern-memory context, so `F_i` is a HEURISTIC IMPORTANCE
25
+ * PROXY: accumulated squared embedding magnitude per dimension
26
+ * (`F_i += embedding_i^2`, see computeFisherMatrix). It protects high-magnitude
27
+ * embedding dimensions during consolidation — a reasonable importance signal —
28
+ * but "Fisher information" overstates it; read `F_i` as "embedding-importance
29
+ * weight", not gradient curvature.
30
+ *
31
+ * @module v3/cli/memory/ewc-consolidation
32
+ */
33
+ import * as fs from 'fs';
34
+ import * as path from 'path';
35
+ // ============================================================================
36
+ // Default Configuration
37
+ // ============================================================================
38
+ const DEFAULT_EWC_CONFIG = {
39
+ lambda: 0.4,
40
+ maxPatterns: 1000,
41
+ fisherDecayRate: 0.01,
42
+ importanceThreshold: 0.3,
43
+ storagePath: path.join(process.cwd(), '.swarm', 'ewc-fisher.json'),
44
+ onlineMode: true,
45
+ dimensions: 384
46
+ };
47
+ // ============================================================================
48
+ // EWC Consolidator Class
49
+ // ============================================================================
50
+ /**
51
+ * EWC++ Consolidator
52
+ * Implements Elastic Weight Consolidation with online updates
53
+ * for preventing catastrophic forgetting in continual learning
54
+ */
55
+ export class EWCConsolidator {
56
+ config;
57
+ patterns = new Map();
58
+ gradientHistory = [];
59
+ globalFisher = [];
60
+ consolidationHistory = [];
61
+ initialized = false;
62
+ constructor(config) {
63
+ this.config = { ...DEFAULT_EWC_CONFIG, ...config };
64
+ this.globalFisher = new Array(this.config.dimensions).fill(0);
65
+ }
66
+ /**
67
+ * Initialize the consolidator by loading persisted state
68
+ */
69
+ async initialize() {
70
+ if (this.initialized)
71
+ return true;
72
+ try {
73
+ await this.loadFromDisk();
74
+ this.initialized = true;
75
+ return true;
76
+ }
77
+ catch {
78
+ // Start fresh if no persisted state
79
+ this.initialized = true;
80
+ return true;
81
+ }
82
+ }
83
+ /**
84
+ * Compute Fisher Information Matrix from gradient history
85
+ * Uses diagonal approximation for efficiency: F_i = E[g_i^2]
86
+ *
87
+ * @param patterns - Array of patterns with their gradients/embeddings
88
+ * @returns Fisher information diagonal
89
+ */
90
+ computeFisherMatrix(patterns) {
91
+ const fisher = new Array(this.config.dimensions).fill(0);
92
+ let sampleCount = 0;
93
+ for (const pattern of patterns) {
94
+ if (!pattern.embedding || pattern.embedding.length === 0)
95
+ continue;
96
+ // Only use successful patterns for Fisher computation
97
+ // (we want to preserve what worked)
98
+ if (!pattern.success)
99
+ continue;
100
+ sampleCount++;
101
+ // Fisher diagonal is expectation of squared gradients
102
+ // For embeddings, we use the embedding values as proxy for gradients
103
+ const len = Math.min(pattern.embedding.length, this.config.dimensions);
104
+ for (let i = 0; i < len; i++) {
105
+ // Accumulate squared values (gradient proxy)
106
+ fisher[i] += pattern.embedding[i] * pattern.embedding[i];
107
+ }
108
+ }
109
+ // Normalize by sample count
110
+ if (sampleCount > 0) {
111
+ for (let i = 0; i < this.config.dimensions; i++) {
112
+ fisher[i] /= sampleCount;
113
+ }
114
+ }
115
+ // Update global Fisher with exponential moving average (EWC++)
116
+ if (this.config.onlineMode) {
117
+ const decay = this.config.fisherDecayRate;
118
+ for (let i = 0; i < this.config.dimensions; i++) {
119
+ this.globalFisher[i] = (1 - decay) * this.globalFisher[i] + decay * fisher[i];
120
+ }
121
+ }
122
+ return fisher;
123
+ }
124
+ /**
125
+ * Consolidate new patterns with old patterns without forgetting
126
+ * Applies EWC penalty to preserve important weights
127
+ *
128
+ * @param newPatterns - New patterns to incorporate
129
+ * @param oldPatterns - Existing patterns to preserve
130
+ * @returns Consolidated patterns with modified weights
131
+ */
132
+ consolidate(newPatterns, oldPatterns) {
133
+ const startTime = performance.now();
134
+ const result = {
135
+ success: false,
136
+ patternsConsolidated: 0,
137
+ totalPenalty: 0,
138
+ modifiedPatterns: [],
139
+ protectedPatterns: [],
140
+ duration: 0
141
+ };
142
+ try {
143
+ // Use stored patterns if no old patterns provided
144
+ const existingPatterns = oldPatterns || Array.from(this.patterns.values());
145
+ // Compute Fisher from successful existing patterns
146
+ const fisherInput = existingPatterns
147
+ .filter(p => p.successCount > p.failureCount)
148
+ .map(p => ({
149
+ id: p.id,
150
+ embedding: p.weights,
151
+ success: true
152
+ }));
153
+ const fisher = this.computeFisherMatrix(fisherInput);
154
+ // Process each new pattern
155
+ for (const newPattern of newPatterns) {
156
+ if (!newPattern.embedding || newPattern.embedding.length === 0)
157
+ continue;
158
+ const existingPattern = this.patterns.get(newPattern.id);
159
+ if (existingPattern) {
160
+ // Calculate EWC penalty for updating existing pattern
161
+ const penalty = this.getPenalty(existingPattern.weights, newPattern.embedding, fisher);
162
+ // Determine if update is allowed based on penalty
163
+ const importanceScore = this.calculateImportance(existingPattern);
164
+ if (importanceScore > this.config.importanceThreshold && penalty > this.config.lambda) {
165
+ // Protect high-importance patterns with high penalty
166
+ result.protectedPatterns.push(newPattern.id);
167
+ // Apply constrained update: blend old and new based on importance
168
+ const blendFactor = 1 - importanceScore;
169
+ const blendedWeights = this.blendWeights(existingPattern.weights, newPattern.embedding, blendFactor, fisher);
170
+ existingPattern.weights = blendedWeights;
171
+ existingPattern.lastUpdated = Date.now();
172
+ result.modifiedPatterns.push(newPattern.id);
173
+ }
174
+ else {
175
+ // Low importance or low penalty: allow full update
176
+ existingPattern.weights = newPattern.embedding.slice(0, this.config.dimensions);
177
+ existingPattern.lastUpdated = Date.now();
178
+ result.modifiedPatterns.push(newPattern.id);
179
+ }
180
+ // Update Fisher diagonal for this pattern
181
+ existingPattern.fisherDiagonal = fisher;
182
+ result.totalPenalty += penalty;
183
+ }
184
+ else {
185
+ // New pattern: add directly
186
+ const weights = {
187
+ id: newPattern.id,
188
+ weights: newPattern.embedding.slice(0, this.config.dimensions),
189
+ fisherDiagonal: fisher,
190
+ importance: 0.5,
191
+ successCount: 0,
192
+ failureCount: 0,
193
+ lastUpdated: Date.now(),
194
+ type: newPattern.type,
195
+ description: newPattern.description
196
+ };
197
+ this.patterns.set(newPattern.id, weights);
198
+ result.modifiedPatterns.push(newPattern.id);
199
+ }
200
+ result.patternsConsolidated++;
201
+ }
202
+ // Prune old patterns if exceeding limit
203
+ if (this.patterns.size > this.config.maxPatterns) {
204
+ this.pruneOldPatterns();
205
+ }
206
+ // Record consolidation
207
+ this.consolidationHistory.push({
208
+ timestamp: Date.now(),
209
+ penalty: result.totalPenalty,
210
+ patterns: result.patternsConsolidated
211
+ });
212
+ // Persist to disk
213
+ this.saveToDisk();
214
+ result.success = true;
215
+ result.duration = performance.now() - startTime;
216
+ return result;
217
+ }
218
+ catch (error) {
219
+ result.error = error instanceof Error ? error.message : String(error);
220
+ result.duration = performance.now() - startTime;
221
+ return result;
222
+ }
223
+ }
224
+ /**
225
+ * Calculate EWC regularization penalty
226
+ *
227
+ * L_ewc = (lambda/2) * sum_i(F_i * (theta_i - theta_old_i)^2)
228
+ *
229
+ * @param oldWeights - Previous weight values
230
+ * @param newWeights - New weight values
231
+ * @param fisher - Fisher information diagonal (optional, uses global if not provided)
232
+ * @returns Regularization penalty value
233
+ */
234
+ getPenalty(oldWeights, newWeights, fisher) {
235
+ const fisherDiag = fisher || this.globalFisher;
236
+ const len = Math.min(oldWeights.length, newWeights.length, fisherDiag.length);
237
+ let penalty = 0;
238
+ for (let i = 0; i < len; i++) {
239
+ const diff = newWeights[i] - oldWeights[i];
240
+ penalty += fisherDiag[i] * diff * diff;
241
+ }
242
+ return (this.config.lambda / 2) * penalty;
243
+ }
244
+ /**
245
+ * Get consolidation statistics
246
+ */
247
+ getConsolidationStats() {
248
+ let totalFisher = 0;
249
+ let maxFisher = 0;
250
+ let highImportance = 0;
251
+ for (let i = 0; i < this.globalFisher.length; i++) {
252
+ totalFisher += this.globalFisher[i];
253
+ if (this.globalFisher[i] > maxFisher) {
254
+ maxFisher = this.globalFisher[i];
255
+ }
256
+ }
257
+ for (const pattern of this.patterns.values()) {
258
+ if (this.calculateImportance(pattern) > this.config.importanceThreshold) {
259
+ highImportance++;
260
+ }
261
+ }
262
+ const totalPenalty = this.consolidationHistory.reduce((sum, h) => sum + h.penalty, 0);
263
+ const avgPenalty = this.consolidationHistory.length > 0
264
+ ? totalPenalty / this.consolidationHistory.length
265
+ : 0;
266
+ // Estimate storage size
267
+ let storageSizeBytes = 0;
268
+ try {
269
+ if (fs.existsSync(this.config.storagePath)) {
270
+ const stats = fs.statSync(this.config.storagePath);
271
+ storageSizeBytes = stats.size;
272
+ }
273
+ }
274
+ catch {
275
+ // Ignore stat errors
276
+ }
277
+ return {
278
+ totalPatterns: this.patterns.size,
279
+ highImportancePatterns: highImportance,
280
+ avgFisherValue: this.globalFisher.length > 0 ? totalFisher / this.globalFisher.length : 0,
281
+ maxFisherValue: maxFisher,
282
+ consolidationCount: this.consolidationHistory.length,
283
+ lastConsolidation: this.consolidationHistory.length > 0
284
+ ? this.consolidationHistory[this.consolidationHistory.length - 1].timestamp
285
+ : null,
286
+ avgPenalty,
287
+ storageSizeBytes
288
+ };
289
+ }
290
+ /**
291
+ * Record a gradient sample for Fisher computation
292
+ */
293
+ recordGradient(patternId, gradients, success) {
294
+ this.gradientHistory.push({
295
+ patternId,
296
+ gradients,
297
+ timestamp: Date.now(),
298
+ success
299
+ });
300
+ // Keep only recent gradients
301
+ const maxGradients = this.config.maxPatterns * 2;
302
+ if (this.gradientHistory.length > maxGradients) {
303
+ this.gradientHistory = this.gradientHistory.slice(-maxGradients);
304
+ }
305
+ // Update pattern success/failure counts
306
+ const pattern = this.patterns.get(patternId);
307
+ if (pattern) {
308
+ if (success) {
309
+ pattern.successCount++;
310
+ }
311
+ else {
312
+ pattern.failureCount++;
313
+ }
314
+ pattern.importance = this.calculateImportance(pattern);
315
+ }
316
+ // Online Fisher update from this gradient
317
+ if (this.config.onlineMode && success) {
318
+ const decay = this.config.fisherDecayRate;
319
+ const len = Math.min(gradients.length, this.config.dimensions);
320
+ for (let i = 0; i < len; i++) {
321
+ this.globalFisher[i] = (1 - decay) * this.globalFisher[i] + decay * gradients[i] * gradients[i];
322
+ }
323
+ }
324
+ }
325
+ /**
326
+ * Get pattern weights by ID
327
+ */
328
+ getPatternWeights(id) {
329
+ return this.patterns.get(id);
330
+ }
331
+ /**
332
+ * Get all stored patterns
333
+ */
334
+ getAllPatterns() {
335
+ return Array.from(this.patterns.values());
336
+ }
337
+ /**
338
+ * Update EWC lambda (regularization strength)
339
+ */
340
+ setLambda(lambda) {
341
+ this.config.lambda = lambda;
342
+ }
343
+ /**
344
+ * Get current lambda value
345
+ */
346
+ getLambda() {
347
+ return this.config.lambda;
348
+ }
349
+ /**
350
+ * Reset Fisher matrix (use with caution - allows forgetting)
351
+ */
352
+ resetFisher() {
353
+ this.globalFisher = new Array(this.config.dimensions).fill(0);
354
+ }
355
+ /**
356
+ * Update Fisher matrix from pattern confidence changes.
357
+ * Called by SONA after distillLearning to track which patterns
358
+ * are important and should be protected from forgetting.
359
+ *
360
+ * Uses online averaging: F_new = alpha * F_old + (1-alpha) * F_current
361
+ *
362
+ * @param confidenceChanges - Array of {id, embedding, oldConf, newConf}
363
+ */
364
+ updateFisherFromConfidences(confidenceChanges) {
365
+ if (confidenceChanges.length === 0)
366
+ return;
367
+ const alpha = this.config.fisherDecayRate;
368
+ const currentFisher = new Array(this.config.dimensions).fill(0);
369
+ let sampleCount = 0;
370
+ for (const change of confidenceChanges) {
371
+ if (!change.embedding || change.embedding.length === 0)
372
+ continue;
373
+ const confDelta = Math.abs(change.newConf - change.oldConf);
374
+ if (confDelta === 0)
375
+ continue;
376
+ sampleCount++;
377
+ const len = Math.min(change.embedding.length, this.config.dimensions);
378
+ // Squared gradient proxy: embedding scaled by confidence change magnitude
379
+ for (let i = 0; i < len; i++) {
380
+ const grad = change.embedding[i] * confDelta;
381
+ currentFisher[i] += grad * grad;
382
+ }
383
+ }
384
+ if (sampleCount > 0) {
385
+ for (let i = 0; i < this.config.dimensions; i++) {
386
+ currentFisher[i] /= sampleCount;
387
+ }
388
+ }
389
+ // Online EMA: F_new = alpha * F_old + (1-alpha) * F_current
390
+ for (let i = 0; i < this.config.dimensions; i++) {
391
+ this.globalFisher[i] = alpha * this.globalFisher[i] + (1 - alpha) * currentFisher[i];
392
+ }
393
+ this.saveToDisk();
394
+ }
395
+ /**
396
+ * Compute consolidation penalty for a proposed confidence update.
397
+ * Used by SONA to check whether a pattern update would cause forgetting.
398
+ *
399
+ * @param oldConfidence - Current confidence value
400
+ * @param newConfidence - Proposed new confidence value
401
+ * @returns Penalty value (higher = more forgetting risk)
402
+ */
403
+ computeConfidencePenalty(oldConfidence, newConfidence) {
404
+ // Use the global Fisher to estimate penalty for scalar confidence change
405
+ // Average Fisher value represents overall importance
406
+ let avgFisher = 0;
407
+ for (let i = 0; i < this.globalFisher.length; i++) {
408
+ avgFisher += this.globalFisher[i];
409
+ }
410
+ avgFisher = this.globalFisher.length > 0 ? avgFisher / this.globalFisher.length : 0;
411
+ const diff = newConfidence - oldConfidence;
412
+ return (this.config.lambda / 2) * avgFisher * diff * diff;
413
+ }
414
+ /**
415
+ * Clear all patterns and history (full reset)
416
+ */
417
+ clear() {
418
+ this.patterns.clear();
419
+ this.gradientHistory = [];
420
+ this.globalFisher = new Array(this.config.dimensions).fill(0);
421
+ this.consolidationHistory = [];
422
+ // Remove persisted file
423
+ try {
424
+ if (fs.existsSync(this.config.storagePath)) {
425
+ fs.unlinkSync(this.config.storagePath);
426
+ }
427
+ }
428
+ catch {
429
+ // Ignore deletion errors
430
+ }
431
+ }
432
+ // ============================================================================
433
+ // Private Methods
434
+ // ============================================================================
435
+ /**
436
+ * Calculate importance score for a pattern based on usage
437
+ */
438
+ calculateImportance(pattern) {
439
+ const total = pattern.successCount + pattern.failureCount;
440
+ if (total === 0)
441
+ return 0.5;
442
+ // Success rate with Laplace smoothing
443
+ const successRate = (pattern.successCount + 1) / (total + 2);
444
+ // Recency factor: recent patterns are more important
445
+ const hoursSinceUpdate = (Date.now() - pattern.lastUpdated) / (1000 * 60 * 60);
446
+ const recencyFactor = Math.exp(-hoursSinceUpdate / 168); // 1 week half-life
447
+ // Combine factors
448
+ return successRate * 0.7 + recencyFactor * 0.3;
449
+ }
450
+ /**
451
+ * Blend old and new weights using Fisher-weighted interpolation
452
+ */
453
+ blendWeights(oldWeights, newWeights, blendFactor, fisher) {
454
+ const len = Math.min(oldWeights.length, newWeights.length, this.config.dimensions);
455
+ const result = new Array(len);
456
+ // Normalize Fisher for per-weight blend factors
457
+ let maxF = 0;
458
+ for (let i = 0; i < len; i++) {
459
+ if (fisher[i] > maxF)
460
+ maxF = fisher[i];
461
+ }
462
+ const normFactor = maxF > 0 ? 1 / maxF : 1;
463
+ for (let i = 0; i < len; i++) {
464
+ // Higher Fisher = more weight on old value
465
+ const fisherWeight = fisher[i] * normFactor;
466
+ const adjustedBlend = blendFactor * (1 - fisherWeight * 0.5);
467
+ result[i] = oldWeights[i] * (1 - adjustedBlend) + newWeights[i] * adjustedBlend;
468
+ }
469
+ return result;
470
+ }
471
+ /**
472
+ * Prune old, low-importance patterns to stay within limit
473
+ */
474
+ pruneOldPatterns() {
475
+ if (this.patterns.size <= this.config.maxPatterns)
476
+ return;
477
+ // Sort by importance (ascending)
478
+ const sortedPatterns = Array.from(this.patterns.entries())
479
+ .map(([id, pattern]) => ({ id, importance: this.calculateImportance(pattern) }))
480
+ .sort((a, b) => a.importance - b.importance);
481
+ // Remove lowest importance patterns
482
+ const toRemove = this.patterns.size - this.config.maxPatterns;
483
+ for (let i = 0; i < toRemove; i++) {
484
+ this.patterns.delete(sortedPatterns[i].id);
485
+ }
486
+ }
487
+ /**
488
+ * Save state to disk
489
+ */
490
+ saveToDisk() {
491
+ try {
492
+ const dir = path.dirname(this.config.storagePath);
493
+ if (!fs.existsSync(dir)) {
494
+ fs.mkdirSync(dir, { recursive: true });
495
+ }
496
+ const state = {
497
+ version: '1.0.0',
498
+ config: {
499
+ lambda: this.config.lambda,
500
+ dimensions: this.config.dimensions,
501
+ fisherDecayRate: this.config.fisherDecayRate
502
+ },
503
+ globalFisher: this.globalFisher,
504
+ patterns: Array.from(this.patterns.entries()),
505
+ consolidationHistory: this.consolidationHistory.slice(-100),
506
+ savedAt: Date.now()
507
+ };
508
+ fs.writeFileSync(this.config.storagePath, JSON.stringify(state, null, 2));
509
+ }
510
+ catch {
511
+ // Silently fail - persistence is best-effort
512
+ }
513
+ }
514
+ /**
515
+ * Load state from disk
516
+ */
517
+ async loadFromDisk() {
518
+ if (!fs.existsSync(this.config.storagePath)) {
519
+ throw new Error('No persisted state found');
520
+ }
521
+ const content = fs.readFileSync(this.config.storagePath, 'utf-8');
522
+ const state = JSON.parse(content);
523
+ // Validate version
524
+ if (state.version !== '1.0.0') {
525
+ throw new Error(`Unsupported state version: ${state.version}`);
526
+ }
527
+ // Restore state
528
+ this.globalFisher = state.globalFisher || new Array(this.config.dimensions).fill(0);
529
+ // Restore patterns
530
+ this.patterns.clear();
531
+ if (state.patterns) {
532
+ for (const [id, pattern] of state.patterns) {
533
+ this.patterns.set(id, pattern);
534
+ }
535
+ }
536
+ // Restore history
537
+ this.consolidationHistory = state.consolidationHistory || [];
538
+ // Update config from persisted values
539
+ if (state.config) {
540
+ this.config.lambda = state.config.lambda ?? this.config.lambda;
541
+ }
542
+ }
543
+ }
544
+ // ============================================================================
545
+ // Singleton Instance
546
+ // ============================================================================
547
+ let ewcConsolidatorInstance = null;
548
+ /**
549
+ * Get the singleton EWC Consolidator instance
550
+ *
551
+ * @param config - Optional configuration overrides
552
+ * @returns EWC Consolidator instance
553
+ */
554
+ export async function getEWCConsolidator(config) {
555
+ if (!ewcConsolidatorInstance) {
556
+ ewcConsolidatorInstance = new EWCConsolidator(config);
557
+ await ewcConsolidatorInstance.initialize();
558
+ }
559
+ return ewcConsolidatorInstance;
560
+ }
561
+ /**
562
+ * Reset the singleton instance (for testing)
563
+ */
564
+ export function resetEWCConsolidator() {
565
+ if (ewcConsolidatorInstance) {
566
+ ewcConsolidatorInstance.clear();
567
+ ewcConsolidatorInstance = null;
568
+ }
569
+ }
570
+ // ============================================================================
571
+ // Utility Functions
572
+ // ============================================================================
573
+ /**
574
+ * Quick consolidation helper for common use case
575
+ * Consolidates new patterns with existing ones using EWC
576
+ *
577
+ * @param newPatterns - New patterns to add
578
+ * @returns Consolidation result
579
+ */
580
+ export async function consolidatePatterns(newPatterns) {
581
+ const consolidator = await getEWCConsolidator();
582
+ return consolidator.consolidate(newPatterns);
583
+ }
584
+ /**
585
+ * Record pattern usage outcome
586
+ * Updates Fisher information and pattern importance
587
+ *
588
+ * @param patternId - Pattern identifier
589
+ * @param embedding - Pattern embedding (used as gradient proxy)
590
+ * @param success - Whether the pattern was successful
591
+ */
592
+ export async function recordPatternOutcome(patternId, embedding, success) {
593
+ const consolidator = await getEWCConsolidator();
594
+ consolidator.recordGradient(patternId, embedding, success);
595
+ }
596
+ /**
597
+ * Get EWC statistics
598
+ */
599
+ export async function getEWCStats() {
600
+ const consolidator = await getEWCConsolidator();
601
+ return consolidator.getConsolidationStats();
602
+ }
603
+ export default {
604
+ EWCConsolidator,
605
+ getEWCConsolidator,
606
+ resetEWCConsolidator,
607
+ consolidatePatterns,
608
+ recordPatternOutcome,
609
+ getEWCStats
610
+ };
611
+ //# sourceMappingURL=ewc-consolidation.js.map
@@ -0,0 +1,95 @@
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
+ /**
33
+ * Return the better-sqlite3 Database instance for graph_edges writes.
34
+ * Creates the graph_edges table if it is absent (idempotent).
35
+ * Returns null if better-sqlite3 is not available or db cannot be opened.
36
+ *
37
+ * #2246 fix: `createIfMissing` (default false for back-compat) — when true,
38
+ * lazily creates an empty memory.db with the graph_edges schema so
39
+ * graph-pathfinder works on fresh environments before any memory writes.
40
+ *
41
+ * #2431 fix: better-sqlite3 + WAL mode replaces sql.js + whole-file
42
+ * writeFileSync. Eliminates the dual-write race that corrupted memory.db
43
+ * when called alongside the memory bridge's better-sqlite3 writer.
44
+ */
45
+ export declare function getBridgeDb(customDbPath?: string, opts?: {
46
+ createIfMissing?: boolean;
47
+ }): Promise<any | null>;
48
+ export interface GraphEdgeInput {
49
+ sourceId: string;
50
+ targetId: string;
51
+ relation: string;
52
+ weight?: number;
53
+ confidence?: number;
54
+ decayRate?: number;
55
+ lastReinforced?: string;
56
+ witnessId?: string;
57
+ embedding?: number[];
58
+ metadata?: Record<string, unknown>;
59
+ dbPath?: string;
60
+ }
61
+ /**
62
+ * Insert a single edge into graph_edges.
63
+ * Fire-and-forget — errors are suppressed.
64
+ * Returns true if the write succeeded, false otherwise.
65
+ *
66
+ * #2431 fix: uses better-sqlite3 prepared statements + implicit WAL
67
+ * journal. No `fs.writeFileSync` whole-file flush — the WAL handles
68
+ * durability without overwriting the main file out from under other
69
+ * writers.
70
+ */
71
+ export declare function insertGraphEdge(input: GraphEdgeInput): Promise<boolean>;
72
+ /**
73
+ * Query graph_edges by source_id.
74
+ * Returns rows or empty array on error.
75
+ */
76
+ export declare function queryEdgesBySource(sourceId: string, relation?: string, dbPath?: string): Promise<Array<{
77
+ id: string;
78
+ source_id: string;
79
+ target_id: string;
80
+ relation: string;
81
+ weight: number;
82
+ }>>;
83
+ /**
84
+ * Count rows in graph_edges (for test assertions).
85
+ */
86
+ export declare function countGraphEdges(dbPath?: string): Promise<number>;
87
+ /**
88
+ * Reset the cached db handle (for tests that need a fresh DB).
89
+ *
90
+ * #2431 fix: also explicitly closes the prior handle so file locks
91
+ * release immediately — better-sqlite3 holds an OS-level file handle
92
+ * which the prior sql.js implementation did not.
93
+ */
94
+ export declare function _resetBridgeDb(): void;
95
+ //# sourceMappingURL=graph-edge-writer.d.ts.map