agentdb 3.0.0-alpha.2 → 3.0.0-alpha.20

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 (519) hide show
  1. package/README.md +208 -2593
  2. package/dist/src/backends/GraphBackend.d.ts +8 -8
  3. package/dist/src/backends/GraphBackend.d.ts.map +1 -1
  4. package/dist/src/backends/GraphBackend.js +15 -16
  5. package/dist/src/backends/GraphBackend.js.map +1 -1
  6. package/dist/src/backends/LearningBackend.d.ts +2 -2
  7. package/dist/src/backends/LearningBackend.d.ts.map +1 -1
  8. package/dist/src/backends/LearningBackend.js +10 -11
  9. package/dist/src/backends/LearningBackend.js.map +1 -1
  10. package/dist/src/backends/VectorBackend.d.ts +10 -0
  11. package/dist/src/backends/VectorBackend.d.ts.map +1 -1
  12. package/dist/src/backends/detector.d.ts +3 -25
  13. package/dist/src/backends/detector.d.ts.map +1 -1
  14. package/dist/src/backends/detector.js +15 -119
  15. package/dist/src/backends/detector.js.map +1 -1
  16. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +55 -1
  17. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
  18. package/dist/src/backends/graph/GraphDatabaseAdapter.js +133 -7
  19. package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
  20. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +2 -2
  21. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
  22. package/dist/src/backends/hnswlib/HNSWLibBackend.js +12 -21
  23. package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
  24. package/dist/src/backends/index.d.ts +3 -25
  25. package/dist/src/backends/index.d.ts.map +1 -1
  26. package/dist/src/backends/index.js +1 -23
  27. package/dist/src/backends/index.js.map +1 -1
  28. package/dist/src/backends/ruvector/RuVectorBackend.d.ts +4 -4
  29. package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
  30. package/dist/src/backends/ruvector/RuVectorBackend.js +2 -2
  31. package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
  32. package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
  33. package/dist/src/backends/ruvector/RuVectorLearning.js +5 -10
  34. package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
  35. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +1 -1
  36. package/dist/src/backends/rvf/SelfLearningRvfBackend.js +45 -2
  37. package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +1 -1
  38. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +26 -0
  39. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -1
  40. package/dist/src/backends/rvf/SqlJsRvfBackend.js +93 -31
  41. package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -1
  42. package/dist/src/benchmark/BenchmarkSuite.d.ts.map +1 -1
  43. package/dist/src/benchmark/BenchmarkSuite.js +0 -2
  44. package/dist/src/benchmark/BenchmarkSuite.js.map +1 -1
  45. package/dist/src/benchmarks/wasm-vector-benchmark.d.ts +10 -0
  46. package/dist/src/benchmarks/wasm-vector-benchmark.d.ts.map +1 -0
  47. package/dist/src/benchmarks/wasm-vector-benchmark.js +196 -0
  48. package/dist/src/benchmarks/wasm-vector-benchmark.js.map +1 -0
  49. package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -1
  50. package/dist/src/browser/AdvancedFeatures.js +10 -3
  51. package/dist/src/browser/AdvancedFeatures.js.map +1 -1
  52. package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
  53. package/dist/src/browser/AttentionBrowser.js +13 -5
  54. package/dist/src/browser/AttentionBrowser.js.map +1 -1
  55. package/dist/src/browser/HNSWIndex.d.ts +1 -31
  56. package/dist/src/browser/HNSWIndex.d.ts.map +1 -1
  57. package/dist/src/browser/HNSWIndex.js +18 -136
  58. package/dist/src/browser/HNSWIndex.js.map +1 -1
  59. package/dist/src/browser/ProductQuantization.d.ts.map +1 -1
  60. package/dist/src/browser/ProductQuantization.js +1 -0
  61. package/dist/src/browser/ProductQuantization.js.map +1 -1
  62. package/dist/src/browser/index.d.ts +3 -3
  63. package/dist/src/browser/index.d.ts.map +1 -1
  64. package/dist/src/browser/index.js +1 -2
  65. package/dist/src/browser/index.js.map +1 -1
  66. package/dist/src/cli/agentdb-cli.d.ts +2 -3
  67. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  68. package/dist/src/cli/agentdb-cli.js +142 -96
  69. package/dist/src/cli/agentdb-cli.js.map +1 -1
  70. package/dist/src/cli/commands/attention.js +15 -5
  71. package/dist/src/cli/commands/attention.js.map +1 -1
  72. package/dist/src/cli/commands/doctor.d.ts +0 -2
  73. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  74. package/dist/src/cli/commands/doctor.js +6 -111
  75. package/dist/src/cli/commands/doctor.js.map +1 -1
  76. package/dist/src/cli/commands/hyperbolic.d.ts.map +1 -1
  77. package/dist/src/cli/commands/hyperbolic.js +15 -3
  78. package/dist/src/cli/commands/hyperbolic.js.map +1 -1
  79. package/dist/src/cli/commands/init.d.ts +1 -2
  80. package/dist/src/cli/commands/init.d.ts.map +1 -1
  81. package/dist/src/cli/commands/init.js +7 -30
  82. package/dist/src/cli/commands/init.js.map +1 -1
  83. package/dist/src/cli/commands/install-embeddings.d.ts +1 -1
  84. package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
  85. package/dist/src/cli/commands/install-embeddings.js +17 -11
  86. package/dist/src/cli/commands/install-embeddings.js.map +1 -1
  87. package/dist/src/cli/commands/learn.d.ts.map +1 -1
  88. package/dist/src/cli/commands/learn.js +12 -6
  89. package/dist/src/cli/commands/learn.js.map +1 -1
  90. package/dist/src/cli/commands/migrate.d.ts.map +1 -1
  91. package/dist/src/cli/commands/migrate.js +31 -10
  92. package/dist/src/cli/commands/migrate.js.map +1 -1
  93. package/dist/src/cli/commands/route.d.ts.map +1 -1
  94. package/dist/src/cli/commands/route.js +6 -1
  95. package/dist/src/cli/commands/route.js.map +1 -1
  96. package/dist/src/cli/commands/simulate-report.js +14 -2
  97. package/dist/src/cli/commands/simulate-report.js.map +1 -1
  98. package/dist/src/cli/commands/simulate-wizard.js.map +1 -1
  99. package/dist/src/cli/commands/simulate.d.ts +7 -0
  100. package/dist/src/cli/commands/simulate.d.ts.map +1 -0
  101. package/dist/src/cli/commands/simulate.js +100 -0
  102. package/dist/src/cli/commands/simulate.js.map +1 -0
  103. package/dist/src/cli/commands/status.js +1 -5
  104. package/dist/src/cli/commands/status.js.map +1 -1
  105. package/dist/src/cli/lib/attention-config.d.ts +2 -2
  106. package/dist/src/cli/lib/attention-config.d.ts.map +1 -1
  107. package/dist/src/cli/lib/attention-config.js +1 -2
  108. package/dist/src/cli/lib/attention-config.js.map +1 -1
  109. package/dist/src/cli/lib/config-manager.d.ts +110 -0
  110. package/dist/src/cli/lib/config-manager.d.ts.map +1 -0
  111. package/dist/src/cli/lib/config-manager.js +512 -0
  112. package/dist/src/cli/lib/config-manager.js.map +1 -0
  113. package/dist/src/cli/lib/config-validator.d.ts +1 -1
  114. package/dist/src/cli/lib/config-validator.d.ts.map +1 -1
  115. package/dist/src/cli/lib/health-monitor.d.ts +149 -0
  116. package/dist/src/cli/lib/health-monitor.d.ts.map +1 -0
  117. package/dist/src/cli/lib/health-monitor.js +380 -0
  118. package/dist/src/cli/lib/health-monitor.js.map +1 -0
  119. package/dist/src/cli/lib/history-tracker.d.ts +103 -0
  120. package/dist/src/cli/lib/history-tracker.d.ts.map +1 -0
  121. package/dist/src/cli/lib/history-tracker.js +352 -0
  122. package/dist/src/cli/lib/history-tracker.js.map +1 -0
  123. package/dist/src/cli/lib/report-store.d.ts.map +1 -1
  124. package/dist/src/cli/lib/report-store.js +3 -5
  125. package/dist/src/cli/lib/report-store.js.map +1 -1
  126. package/dist/src/cli/lib/simulation-registry.d.ts +1 -1
  127. package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -1
  128. package/dist/src/cli/lib/simulation-registry.js +0 -1
  129. package/dist/src/cli/lib/simulation-registry.js.map +1 -1
  130. package/dist/src/cli/lib/simulation-runner.d.ts +1 -1
  131. package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
  132. package/dist/src/cli/lib/simulation-runner.js +1 -4
  133. package/dist/src/cli/lib/simulation-runner.js.map +1 -1
  134. package/dist/src/compatibility/DeprecationWarnings.d.ts.map +1 -1
  135. package/dist/src/compatibility/V1toV2Adapter.d.ts +2 -2
  136. package/dist/src/compatibility/V1toV2Adapter.d.ts.map +1 -1
  137. package/dist/src/compatibility/V1toV2Adapter.js +1 -14
  138. package/dist/src/compatibility/V1toV2Adapter.js.map +1 -1
  139. package/dist/src/compatibility/VersionDetector.d.ts +1 -1
  140. package/dist/src/compatibility/VersionDetector.d.ts.map +1 -1
  141. package/dist/src/compatibility/VersionDetector.js +3 -3
  142. package/dist/src/compatibility/VersionDetector.js.map +1 -1
  143. package/dist/src/compatibility/index.d.ts +3 -0
  144. package/dist/src/compatibility/index.d.ts.map +1 -1
  145. package/dist/src/compatibility/index.js +11 -0
  146. package/dist/src/compatibility/index.js.map +1 -1
  147. package/dist/src/controllers/AttentionService.d.ts +98 -122
  148. package/dist/src/controllers/AttentionService.d.ts.map +1 -1
  149. package/dist/src/controllers/AttentionService.js +463 -238
  150. package/dist/src/controllers/AttentionService.js.map +1 -1
  151. package/dist/src/controllers/CausalMemoryGraph.d.ts +4 -4
  152. package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
  153. package/dist/src/controllers/CausalMemoryGraph.js +7 -8
  154. package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
  155. package/dist/src/controllers/CausalRecall.d.ts +3 -2
  156. package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
  157. package/dist/src/controllers/CausalRecall.js +21 -10
  158. package/dist/src/controllers/CausalRecall.js.map +1 -1
  159. package/dist/src/controllers/ContextSynthesizer.d.ts +1 -1
  160. package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -1
  161. package/dist/src/controllers/EmbeddingService.d.ts +29 -0
  162. package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
  163. package/dist/src/controllers/EmbeddingService.js +149 -34
  164. package/dist/src/controllers/EmbeddingService.js.map +1 -1
  165. package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
  166. package/dist/src/controllers/EnhancedEmbeddingService.js +14 -7
  167. package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
  168. package/dist/src/controllers/ExplainableRecall.d.ts +5 -4
  169. package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
  170. package/dist/src/controllers/ExplainableRecall.js +12 -20
  171. package/dist/src/controllers/ExplainableRecall.js.map +1 -1
  172. package/dist/src/controllers/HNSWIndex.d.ts +5 -4
  173. package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
  174. package/dist/src/controllers/HNSWIndex.js +6 -9
  175. package/dist/src/controllers/HNSWIndex.js.map +1 -1
  176. package/dist/src/controllers/LearningSystem.d.ts +10 -105
  177. package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
  178. package/dist/src/controllers/LearningSystem.js +28 -39
  179. package/dist/src/controllers/LearningSystem.js.map +1 -1
  180. package/dist/src/controllers/MMRDiversityRanker.d.ts +1 -1
  181. package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -1
  182. package/dist/src/controllers/MemoryController.d.ts +15 -2
  183. package/dist/src/controllers/MemoryController.d.ts.map +1 -1
  184. package/dist/src/controllers/MemoryController.js +33 -3
  185. package/dist/src/controllers/MemoryController.js.map +1 -1
  186. package/dist/src/controllers/MetadataFilter.d.ts +3 -3
  187. package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
  188. package/dist/src/controllers/MetadataFilter.js +6 -9
  189. package/dist/src/controllers/MetadataFilter.js.map +1 -1
  190. package/dist/src/controllers/MincutService.d.ts +92 -0
  191. package/dist/src/controllers/MincutService.d.ts.map +1 -0
  192. package/dist/src/controllers/MincutService.js +336 -0
  193. package/dist/src/controllers/MincutService.js.map +1 -0
  194. package/dist/src/controllers/NightlyLearner.d.ts +3 -4
  195. package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
  196. package/dist/src/controllers/NightlyLearner.js +17 -22
  197. package/dist/src/controllers/NightlyLearner.js.map +1 -1
  198. package/dist/src/controllers/QUICClient.d.ts +7 -10
  199. package/dist/src/controllers/QUICClient.d.ts.map +1 -1
  200. package/dist/src/controllers/QUICClient.js +3 -3
  201. package/dist/src/controllers/QUICClient.js.map +1 -1
  202. package/dist/src/controllers/QUICServer.d.ts +4 -4
  203. package/dist/src/controllers/QUICServer.d.ts.map +1 -1
  204. package/dist/src/controllers/QUICServer.js +14 -22
  205. package/dist/src/controllers/QUICServer.js.map +1 -1
  206. package/dist/src/controllers/ReasoningBank.d.ts +2 -9
  207. package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
  208. package/dist/src/controllers/ReasoningBank.js +39 -35
  209. package/dist/src/controllers/ReasoningBank.js.map +1 -1
  210. package/dist/src/controllers/ReflexionMemory.d.ts +51 -1
  211. package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
  212. package/dist/src/controllers/ReflexionMemory.js +307 -33
  213. package/dist/src/controllers/ReflexionMemory.js.map +1 -1
  214. package/dist/src/controllers/SkillLibrary.d.ts +5 -11
  215. package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
  216. package/dist/src/controllers/SkillLibrary.js +39 -48
  217. package/dist/src/controllers/SkillLibrary.js.map +1 -1
  218. package/dist/src/controllers/SparsificationService.d.ts +151 -0
  219. package/dist/src/controllers/SparsificationService.d.ts.map +1 -0
  220. package/dist/src/controllers/SparsificationService.js +375 -0
  221. package/dist/src/controllers/SparsificationService.js.map +1 -0
  222. package/dist/src/controllers/SyncCoordinator.d.ts +3 -2
  223. package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
  224. package/dist/src/controllers/SyncCoordinator.js +2 -2
  225. package/dist/src/controllers/SyncCoordinator.js.map +1 -1
  226. package/dist/src/controllers/WASMVectorSearch.d.ts +7 -6
  227. package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
  228. package/dist/src/controllers/WASMVectorSearch.js +2 -4
  229. package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
  230. package/dist/src/controllers/attention/AttentionCache.d.ts +38 -0
  231. package/dist/src/controllers/attention/AttentionCache.d.ts.map +1 -0
  232. package/dist/src/controllers/attention/AttentionCache.js +80 -0
  233. package/dist/src/controllers/attention/AttentionCache.js.map +1 -0
  234. package/dist/src/controllers/attention/AttentionConfig.d.ts +127 -0
  235. package/dist/src/controllers/attention/AttentionConfig.d.ts.map +1 -0
  236. package/dist/src/controllers/attention/AttentionConfig.js +124 -0
  237. package/dist/src/controllers/attention/AttentionConfig.js.map +1 -0
  238. package/dist/src/controllers/attention/AttentionCore.d.ts +89 -0
  239. package/dist/src/controllers/attention/AttentionCore.d.ts.map +1 -0
  240. package/dist/src/controllers/attention/AttentionCore.js +289 -0
  241. package/dist/src/controllers/attention/AttentionCore.js.map +1 -0
  242. package/dist/src/controllers/attention/AttentionHelpers.d.ts +55 -0
  243. package/dist/src/controllers/attention/AttentionHelpers.d.ts.map +1 -0
  244. package/dist/src/controllers/attention/AttentionHelpers.js +148 -0
  245. package/dist/src/controllers/attention/AttentionHelpers.js.map +1 -0
  246. package/dist/src/controllers/attention/AttentionMetrics.d.ts +55 -0
  247. package/dist/src/controllers/attention/AttentionMetrics.d.ts.map +1 -0
  248. package/dist/src/controllers/attention/AttentionMetrics.js +72 -0
  249. package/dist/src/controllers/attention/AttentionMetrics.js.map +1 -0
  250. package/dist/src/controllers/attention/AttentionWASM.d.ts +98 -0
  251. package/dist/src/controllers/attention/AttentionWASM.d.ts.map +1 -0
  252. package/dist/src/controllers/attention/AttentionWASM.js +147 -0
  253. package/dist/src/controllers/attention/AttentionWASM.js.map +1 -0
  254. package/dist/src/controllers/attention/CrossAttentionController.d.ts +1 -1
  255. package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +1 -1
  256. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +1 -1
  257. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +1 -1
  258. package/dist/src/controllers/attention/MultiHeadAttentionController.js +5 -8
  259. package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +1 -1
  260. package/dist/src/controllers/attention/SelfAttentionController.d.ts +1 -1
  261. package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +1 -1
  262. package/dist/src/controllers/attention/index.d.ts +9 -0
  263. package/dist/src/controllers/attention/index.d.ts.map +1 -1
  264. package/dist/src/controllers/attention/index.js +8 -0
  265. package/dist/src/controllers/attention/index.js.map +1 -1
  266. package/dist/src/controllers/frontier-index.d.ts +14 -0
  267. package/dist/src/controllers/frontier-index.d.ts.map +1 -0
  268. package/dist/src/controllers/frontier-index.js +10 -0
  269. package/dist/src/controllers/frontier-index.js.map +1 -0
  270. package/dist/src/controllers/index.d.ts +7 -1
  271. package/dist/src/controllers/index.d.ts.map +1 -1
  272. package/dist/src/controllers/index.js +5 -1
  273. package/dist/src/controllers/index.js.map +1 -1
  274. package/dist/src/controllers/prerequisites.d.ts +76 -0
  275. package/dist/src/controllers/prerequisites.d.ts.map +1 -0
  276. package/dist/src/controllers/prerequisites.js +235 -0
  277. package/dist/src/controllers/prerequisites.js.map +1 -0
  278. package/dist/src/core/AgentDB.d.ts +11 -36
  279. package/dist/src/core/AgentDB.d.ts.map +1 -1
  280. package/dist/src/core/AgentDB.js +31 -89
  281. package/dist/src/core/AgentDB.js.map +1 -1
  282. package/dist/src/core/QueryCache.d.ts +1 -1
  283. package/dist/src/core/QueryCache.d.ts.map +1 -1
  284. package/dist/src/core/QueryCache.js +2 -6
  285. package/dist/src/core/QueryCache.js.map +1 -1
  286. package/dist/src/db-fallback.d.ts +40 -3
  287. package/dist/src/db-fallback.d.ts.map +1 -1
  288. package/dist/src/db-fallback.js +308 -84
  289. package/dist/src/db-fallback.js.map +1 -1
  290. package/dist/src/db-test.d.ts +13 -0
  291. package/dist/src/db-test.d.ts.map +1 -0
  292. package/dist/src/db-test.js +55 -0
  293. package/dist/src/db-test.js.map +1 -0
  294. package/dist/src/db-unified.d.ts +76 -0
  295. package/dist/src/db-unified.d.ts.map +1 -0
  296. package/dist/src/db-unified.js +281 -0
  297. package/dist/src/db-unified.js.map +1 -0
  298. package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts +58 -0
  299. package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts.map +1 -0
  300. package/dist/src/embedding/EmbeddingSpaceIdentity.js +137 -0
  301. package/dist/src/embedding/EmbeddingSpaceIdentity.js.map +1 -0
  302. package/dist/src/embedding/index.d.ts +3 -0
  303. package/dist/src/embedding/index.d.ts.map +1 -0
  304. package/dist/src/embedding/index.js +2 -0
  305. package/dist/src/embedding/index.js.map +1 -0
  306. package/dist/src/examples/quic-sync-example.d.ts +9 -0
  307. package/dist/src/examples/quic-sync-example.d.ts.map +1 -0
  308. package/dist/src/examples/quic-sync-example.js +169 -0
  309. package/dist/src/examples/quic-sync-example.js.map +1 -0
  310. package/dist/src/examples/wasm-vector-usage.d.ts +12 -0
  311. package/dist/src/examples/wasm-vector-usage.d.ts.map +1 -0
  312. package/dist/src/examples/wasm-vector-usage.js +190 -0
  313. package/dist/src/examples/wasm-vector-usage.js.map +1 -0
  314. package/dist/src/governance/MetaHarnessGateway.d.ts +55 -0
  315. package/dist/src/governance/MetaHarnessGateway.d.ts.map +1 -0
  316. package/dist/src/governance/MetaHarnessGateway.js +65 -0
  317. package/dist/src/governance/MetaHarnessGateway.js.map +1 -0
  318. package/dist/src/governance/RvfExperimentBranch.d.ts +65 -0
  319. package/dist/src/governance/RvfExperimentBranch.d.ts.map +1 -0
  320. package/dist/src/governance/RvfExperimentBranch.js +115 -0
  321. package/dist/src/governance/RvfExperimentBranch.js.map +1 -0
  322. package/dist/src/index.d.ts +7 -25
  323. package/dist/src/index.d.ts.map +1 -1
  324. package/dist/src/index.js +9 -10
  325. package/dist/src/index.js.map +1 -1
  326. package/dist/src/mcp/agentdb-mcp-server.js +162 -159
  327. package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
  328. package/dist/src/mcp/learning-tools-handlers.d.ts +16 -0
  329. package/dist/src/mcp/learning-tools-handlers.d.ts.map +1 -0
  330. package/dist/src/mcp/learning-tools-handlers.js +105 -0
  331. package/dist/src/mcp/learning-tools-handlers.js.map +1 -0
  332. package/dist/src/model/ModelCacheLoader.d.ts +24 -0
  333. package/dist/src/model/ModelCacheLoader.d.ts.map +1 -0
  334. package/dist/src/model/ModelCacheLoader.js +123 -0
  335. package/dist/src/model/ModelCacheLoader.js.map +1 -0
  336. package/dist/src/observability/integration.d.ts +3 -3
  337. package/dist/src/observability/integration.d.ts.map +1 -1
  338. package/dist/src/observability/integration.js +2 -0
  339. package/dist/src/observability/integration.js.map +1 -1
  340. package/dist/src/observability/telemetry.d.ts +3 -3
  341. package/dist/src/observability/telemetry.d.ts.map +1 -1
  342. package/dist/src/observability/telemetry.js +3 -5
  343. package/dist/src/observability/telemetry.js.map +1 -1
  344. package/dist/src/optimizations/BatchOperations.d.ts +6 -6
  345. package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
  346. package/dist/src/optimizations/BatchOperations.js +6 -5
  347. package/dist/src/optimizations/BatchOperations.js.map +1 -1
  348. package/dist/src/optimizations/Quantization.d.ts +330 -0
  349. package/dist/src/optimizations/Quantization.d.ts.map +1 -0
  350. package/dist/src/optimizations/Quantization.js +793 -0
  351. package/dist/src/optimizations/Quantization.js.map +1 -0
  352. package/dist/src/optimizations/QueryOptimizer.d.ts +4 -4
  353. package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -1
  354. package/dist/src/optimizations/QueryOptimizer.js +1 -3
  355. package/dist/src/optimizations/QueryOptimizer.js.map +1 -1
  356. package/dist/src/optimizations/ToolCache.d.ts +4 -4
  357. package/dist/src/optimizations/ToolCache.d.ts.map +1 -1
  358. package/dist/src/optimizations/ToolCache.js.map +1 -1
  359. package/dist/src/quantization/vector-quantization.d.ts.map +1 -1
  360. package/dist/src/quantization/vector-quantization.js +1 -5
  361. package/dist/src/quantization/vector-quantization.js.map +1 -1
  362. package/dist/src/schemas/inline.d.ts +3 -0
  363. package/dist/src/schemas/inline.d.ts.map +1 -0
  364. package/dist/src/schemas/inline.js +10 -0
  365. package/dist/src/schemas/inline.js.map +1 -0
  366. package/dist/src/search/HybridSearch.d.ts +6 -6
  367. package/dist/src/search/HybridSearch.d.ts.map +1 -1
  368. package/dist/src/search/HybridSearch.js.map +1 -1
  369. package/dist/src/security/input-validation.d.ts +34 -12
  370. package/dist/src/security/input-validation.d.ts.map +1 -1
  371. package/dist/src/security/input-validation.js +46 -1
  372. package/dist/src/security/input-validation.js.map +1 -1
  373. package/dist/src/security/limits.d.ts +150 -0
  374. package/dist/src/security/limits.d.ts.map +1 -0
  375. package/dist/src/security/limits.js +288 -0
  376. package/dist/src/security/limits.js.map +1 -0
  377. package/dist/src/security/mcp-policy.d.ts +13 -0
  378. package/dist/src/security/mcp-policy.d.ts.map +1 -0
  379. package/dist/src/security/mcp-policy.js +66 -0
  380. package/dist/src/security/mcp-policy.js.map +1 -0
  381. package/dist/src/security/path-security.d.ts +100 -0
  382. package/dist/src/security/path-security.d.ts.map +1 -0
  383. package/dist/src/security/path-security.js +339 -0
  384. package/dist/src/security/path-security.js.map +1 -0
  385. package/dist/src/security/validation.d.ts +95 -0
  386. package/dist/src/security/validation.d.ts.map +1 -0
  387. package/dist/src/security/validation.js +315 -0
  388. package/dist/src/security/validation.js.map +1 -0
  389. package/dist/src/services/AttentionService.d.ts.map +1 -1
  390. package/dist/src/services/AttentionService.js +2 -4
  391. package/dist/src/services/AttentionService.js.map +1 -1
  392. package/dist/src/services/LLMRouter.d.ts +2 -2
  393. package/dist/src/services/LLMRouter.d.ts.map +1 -1
  394. package/dist/src/services/LLMRouter.js +3 -9
  395. package/dist/src/services/LLMRouter.js.map +1 -1
  396. package/dist/src/services/audit-logger.service.d.ts +168 -0
  397. package/dist/src/services/audit-logger.service.d.ts.map +1 -0
  398. package/dist/src/services/audit-logger.service.js +331 -0
  399. package/dist/src/services/audit-logger.service.js.map +1 -0
  400. package/dist/src/services/enhanced-embeddings.d.ts +271 -0
  401. package/dist/src/services/enhanced-embeddings.d.ts.map +1 -0
  402. package/dist/src/services/enhanced-embeddings.js +1035 -0
  403. package/dist/src/services/enhanced-embeddings.js.map +1 -0
  404. package/dist/src/services/federated-learning.d.ts +172 -0
  405. package/dist/src/services/federated-learning.d.ts.map +1 -0
  406. package/dist/src/services/federated-learning.js +342 -0
  407. package/dist/src/services/federated-learning.js.map +1 -0
  408. package/dist/src/simd/simd-vector-ops.d.ts.map +1 -1
  409. package/dist/src/simd/simd-vector-ops.js +0 -2
  410. package/dist/src/simd/simd-vector-ops.js.map +1 -1
  411. package/dist/src/types/attention.d.ts +249 -0
  412. package/dist/src/types/attention.d.ts.map +1 -0
  413. package/dist/src/types/attention.js +43 -0
  414. package/dist/src/types/attention.js.map +1 -0
  415. package/dist/src/types/database.types.d.ts +11 -11
  416. package/dist/src/types/database.types.d.ts.map +1 -1
  417. package/dist/src/types/database.types.js +2 -4
  418. package/dist/src/types/database.types.js.map +1 -1
  419. package/dist/src/types/graph.d.ts +29 -0
  420. package/dist/src/types/graph.d.ts.map +1 -0
  421. package/dist/src/types/graph.js +8 -0
  422. package/dist/src/types/graph.js.map +1 -0
  423. package/dist/src/types/quic.d.ts +518 -0
  424. package/dist/src/types/quic.d.ts.map +1 -0
  425. package/dist/src/types/quic.js +272 -0
  426. package/dist/src/types/quic.js.map +1 -0
  427. package/dist/src/utils/attention-metrics.d.ts +76 -0
  428. package/dist/src/utils/attention-metrics.d.ts.map +1 -0
  429. package/dist/src/utils/attention-metrics.js +178 -0
  430. package/dist/src/utils/attention-metrics.js.map +1 -0
  431. package/dist/src/wasm-loader.d.ts +0 -1
  432. package/dist/src/wasm-loader.d.ts.map +1 -1
  433. package/dist/src/wasm-loader.js +0 -2
  434. package/dist/src/wasm-loader.js.map +1 -1
  435. package/dist/src/wrappers/agentdb-fast.d.ts +5 -4
  436. package/dist/src/wrappers/agentdb-fast.d.ts.map +1 -1
  437. package/dist/src/wrappers/agentdb-fast.js +6 -13
  438. package/dist/src/wrappers/agentdb-fast.js.map +1 -1
  439. package/dist/src/wrappers/attention-fallbacks.d.ts +0 -8
  440. package/dist/src/wrappers/attention-fallbacks.d.ts.map +1 -1
  441. package/dist/src/wrappers/attention-fallbacks.js +3 -6
  442. package/dist/src/wrappers/attention-fallbacks.js.map +1 -1
  443. package/dist/src/wrappers/attention-native.d.ts +111 -0
  444. package/dist/src/wrappers/attention-native.d.ts.map +1 -0
  445. package/dist/src/wrappers/attention-native.js +273 -0
  446. package/dist/src/wrappers/attention-native.js.map +1 -0
  447. package/dist/src/wrappers/embedding-service.d.ts +4 -4
  448. package/dist/src/wrappers/embedding-service.d.ts.map +1 -1
  449. package/dist/src/wrappers/embedding-service.js +2 -8
  450. package/dist/src/wrappers/embedding-service.js.map +1 -1
  451. package/dist/src/wrappers/gnn-wrapper.d.ts.map +1 -1
  452. package/dist/src/wrappers/gnn-wrapper.js +3 -7
  453. package/dist/src/wrappers/gnn-wrapper.js.map +1 -1
  454. package/package.json +87 -18
  455. package/scripts/postinstall.cjs +13 -144
  456. package/dist/src/cli/tests/agentdb-cli.test.d.ts +0 -8
  457. package/dist/src/cli/tests/agentdb-cli.test.d.ts.map +0 -1
  458. package/dist/src/cli/tests/agentdb-cli.test.js +0 -50
  459. package/dist/src/cli/tests/agentdb-cli.test.js.map +0 -1
  460. package/dist/src/cli/tests/attention-cli.test.d.ts +0 -5
  461. package/dist/src/cli/tests/attention-cli.test.d.ts.map +0 -1
  462. package/dist/src/cli/tests/attention-cli.test.js +0 -257
  463. package/dist/src/cli/tests/attention-cli.test.js.map +0 -1
  464. package/dist/src/coordination/MultiDatabaseCoordinator.d.ts +0 -348
  465. package/dist/src/coordination/MultiDatabaseCoordinator.d.ts.map +0 -1
  466. package/dist/src/coordination/MultiDatabaseCoordinator.js +0 -803
  467. package/dist/src/coordination/MultiDatabaseCoordinator.js.map +0 -1
  468. package/dist/src/coordination/index.d.ts +0 -10
  469. package/dist/src/coordination/index.d.ts.map +0 -1
  470. package/dist/src/coordination/index.js +0 -10
  471. package/dist/src/coordination/index.js.map +0 -1
  472. package/dist/src/tests/attention-service.test.d.ts +0 -7
  473. package/dist/src/tests/attention-service.test.d.ts.map +0 -1
  474. package/dist/src/tests/attention-service.test.js +0 -401
  475. package/dist/src/tests/attention-service.test.js.map +0 -1
  476. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts +0 -7
  477. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts.map +0 -1
  478. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js +0 -283
  479. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js.map +0 -1
  480. package/dist/src/tests/query-cache.test.d.ts +0 -7
  481. package/dist/src/tests/query-cache.test.d.ts.map +0 -1
  482. package/dist/src/tests/query-cache.test.js +0 -343
  483. package/dist/src/tests/query-cache.test.js.map +0 -1
  484. package/dist/src/tests/ruvector-integration.test.d.ts +0 -14
  485. package/dist/src/tests/ruvector-integration.test.d.ts.map +0 -1
  486. package/dist/src/tests/ruvector-integration.test.js +0 -1156
  487. package/dist/src/tests/ruvector-integration.test.js.map +0 -1
  488. package/dist/src/tests/unit/auth/crypto.utils.test.d.ts +0 -6
  489. package/dist/src/tests/unit/auth/crypto.utils.test.d.ts.map +0 -1
  490. package/dist/src/tests/unit/auth/crypto.utils.test.js +0 -310
  491. package/dist/src/tests/unit/auth/crypto.utils.test.js.map +0 -1
  492. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts +0 -5
  493. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts.map +0 -1
  494. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js +0 -207
  495. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js.map +0 -1
  496. package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts +0 -5
  497. package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts.map +0 -1
  498. package/dist/src/tests/unit/compatibility/migration-utils.test.js +0 -264
  499. package/dist/src/tests/unit/compatibility/migration-utils.test.js.map +0 -1
  500. package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts +0 -7
  501. package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts.map +0 -1
  502. package/dist/src/tests/unit/compatibility/v1-adapter.test.js +0 -228
  503. package/dist/src/tests/unit/compatibility/v1-adapter.test.js.map +0 -1
  504. package/dist/src/tests/unit/compatibility/version-detector.test.d.ts +0 -10
  505. package/dist/src/tests/unit/compatibility/version-detector.test.d.ts.map +0 -1
  506. package/dist/src/tests/unit/compatibility/version-detector.test.js +0 -162
  507. package/dist/src/tests/unit/compatibility/version-detector.test.js.map +0 -1
  508. package/dist/src/tests/vector-quantization.test.d.ts +0 -5
  509. package/dist/src/tests/vector-quantization.test.d.ts.map +0 -1
  510. package/dist/src/tests/vector-quantization.test.js +0 -338
  511. package/dist/src/tests/vector-quantization.test.js.map +0 -1
  512. package/dist/src/tests/wasm-vector-search.test.d.ts +0 -7
  513. package/dist/src/tests/wasm-vector-search.test.d.ts.map +0 -1
  514. package/dist/src/tests/wasm-vector-search.test.js +0 -193
  515. package/dist/src/tests/wasm-vector-search.test.js.map +0 -1
  516. package/dist/src/utils/crypto.utils.d.ts +0 -122
  517. package/dist/src/utils/crypto.utils.d.ts.map +0 -1
  518. package/dist/src/utils/crypto.utils.js +0 -296
  519. package/dist/src/utils/crypto.utils.js.map +0 -1
@@ -7,8 +7,7 @@
7
7
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
8
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
9
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
10
- // Database type - IDatabaseConnection from types
11
- // (type alias removed: was unused)
10
+ import { createDatabase } from '../db-fallback.js';
12
11
  import { CausalMemoryGraph } from '../controllers/CausalMemoryGraph.js';
13
12
  import { CausalRecall } from '../controllers/CausalRecall.js';
14
13
  import { ReflexionMemory } from '../controllers/ReflexionMemory.js';
@@ -20,7 +19,19 @@ import { BatchOperations } from '../optimizations/BatchOperations.js';
20
19
  import { ReasoningBank } from '../controllers/ReasoningBank.js';
21
20
  import { MCPToolCaches } from '../optimizations/ToolCache.js';
22
21
  import { validateId, validateTimestamp, validateSessionId, validateTaskString, validateNumericRange, validateArrayLength, validateBoolean, validateEnum, ValidationError, handleSecurityError, } from '../security/input-validation.js';
22
+ import * as path from 'path';
23
23
  import * as fs from 'fs';
24
+ import { fileURLToPath } from 'url';
25
+ import { dirname } from 'path';
26
+ import { buildMcpToolPolicy, filterMcpTools, isMcpToolAllowed, } from '../security/mcp-policy.js';
27
+ // ES module equivalent of __dirname
28
+ const __filename = fileURLToPath(import.meta.url);
29
+ const __dirname = dirname(__filename);
30
+ const toolPolicy = buildMcpToolPolicy();
31
+ // stdout belongs exclusively to JSON-RPC when running over stdio. Route every
32
+ // transitive diagnostic (including legacy controller console.log calls) to
33
+ // stderr before database and embedding initialization begins.
34
+ console.log = (...args) => console.error(...args);
24
35
  // ============================================================================
25
36
  // Helper Functions for Core Vector DB Operations
26
37
  // ============================================================================
@@ -154,19 +165,19 @@ function initializeSchema(database) {
154
165
  /**
155
166
  * Serialize embedding to BLOB
156
167
  */
157
- function _serializeEmbedding(embedding) {
168
+ function serializeEmbedding(embedding) {
158
169
  return Buffer.from(embedding.buffer);
159
170
  }
160
171
  /**
161
172
  * Deserialize embedding from BLOB
162
173
  */
163
- function _deserializeEmbedding(blob) {
174
+ function deserializeEmbedding(blob) {
164
175
  return new Float32Array(blob.buffer, blob.byteOffset, blob.byteLength / 4);
165
176
  }
166
177
  /**
167
178
  * Calculate cosine similarity between two vectors
168
179
  */
169
- function _cosineSimilarity(a, b) {
180
+ function cosineSimilarity(a, b) {
170
181
  if (a.length !== b.length) {
171
182
  throw new Error('Vectors must have same length');
172
183
  }
@@ -180,39 +191,51 @@ function _cosineSimilarity(a, b) {
180
191
  }
181
192
  return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
182
193
  }
183
- // Keep references to suppress unused warnings (functions may be needed later)
184
- void _serializeEmbedding;
185
- void _deserializeEmbedding;
186
- void _cosineSimilarity;
187
194
  // ============================================================================
188
- // Initialize Database and Controllers via unified AgentDB
195
+ // Initialize Database and Controllers
189
196
  // ============================================================================
190
- import { AgentDB } from '../core/AgentDB.js';
191
- const dbPath = process.env.AGENTDB_PATH || './agentdb.rvf';
192
- const agentdb = new AgentDB({
193
- dbPath,
194
- vectorBackend: 'rvf',
195
- vectorDimension: 384,
196
- });
197
- await agentdb.initialize();
198
- const db = agentdb.database;
199
- console.error(`✅ Unified AgentDB initialized (${agentdb.isUnifiedMode ? 'single .rvf file' : 'legacy'} mode)`);
200
- // Initialize embedding service (shared by MCP-local helpers)
197
+ const dbPath = process.env.AGENTDB_PATH || './agentdb.db';
198
+ const db = await createDatabase(dbPath);
199
+ // Configure for performance
200
+ db.pragma('journal_mode = WAL');
201
+ db.pragma('synchronous = NORMAL');
202
+ db.pragma('cache_size = -64000');
203
+ // Initialize schema automatically on server start using SQL files
204
+ const schemaPath = path.join(__dirname, '../schemas/schema.sql');
205
+ const frontierSchemaPath = path.join(__dirname, '../schemas/frontier-schema.sql');
206
+ try {
207
+ if (fs.existsSync(schemaPath)) {
208
+ const schemaSQL = fs.readFileSync(schemaPath, 'utf-8');
209
+ db.exec(schemaSQL);
210
+ console.error('✅ Main schema loaded');
211
+ }
212
+ if (fs.existsSync(frontierSchemaPath)) {
213
+ const frontierSQL = fs.readFileSync(frontierSchemaPath, 'utf-8');
214
+ db.exec(frontierSQL);
215
+ console.error('✅ Frontier schema loaded');
216
+ }
217
+ console.error('✅ Database schema initialized');
218
+ }
219
+ catch (error) {
220
+ console.error('⚠️ Schema initialization failed, using fallback:', error.message);
221
+ // Fallback to initializeSchema function if SQL files not found
222
+ initializeSchema(db);
223
+ }
224
+ // Initialize embedding service
201
225
  const embeddingService = new EmbeddingService({
202
226
  model: 'Xenova/all-MiniLM-L6-v2',
203
227
  dimension: 384,
204
228
  provider: 'transformers'
205
229
  });
206
230
  await embeddingService.initialize();
207
- // Initialize all controllers using the shared db
231
+ // Initialize all controllers
208
232
  const causalGraph = new CausalMemoryGraph(db);
209
233
  const reflexion = new ReflexionMemory(db, embeddingService);
210
234
  const skills = new SkillLibrary(db, embeddingService);
211
235
  const causalRecall = new CausalRecall(db, embeddingService);
212
236
  const learner = new NightlyLearner(db, embeddingService);
213
237
  const learningSystem = new LearningSystem(db, embeddingService);
214
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
215
- const _batchOps = new BatchOperations(db, embeddingService);
238
+ const batchOps = new BatchOperations(db, embeddingService);
216
239
  const reasoningBank = new ReasoningBank(db, embeddingService);
217
240
  const caches = new MCPToolCaches();
218
241
  // ============================================================================
@@ -220,7 +243,7 @@ const caches = new MCPToolCaches();
220
243
  // ============================================================================
221
244
  const server = new Server({
222
245
  name: 'agentdb',
223
- version: '3.0.0',
246
+ version: '1.3.0',
224
247
  }, {
225
248
  capabilities: {
226
249
  tools: {},
@@ -239,7 +262,7 @@ const tools = [
239
262
  inputSchema: {
240
263
  type: 'object',
241
264
  properties: {
242
- db_path: { type: 'string', description: 'Database file path (optional, defaults to ./agentdb.rvf)', default: './agentdb.rvf' },
265
+ db_path: { type: 'string', description: 'Database file path (optional, defaults to ./agentdb.db)', default: './agentdb.db' },
243
266
  reset: { type: 'boolean', description: 'Reset database (delete existing)', default: false },
244
267
  },
245
268
  },
@@ -812,86 +835,57 @@ const tools = [
812
835
  required: ['patterns'],
813
836
  },
814
837
  },
815
- ];
816
- // ============================================================================
817
- // Solver MCP Tools (ADR-010 — gated behind WASM availability)
818
- // ============================================================================
819
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
820
- let solverInstance = null;
821
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
822
- async function getSolver() {
823
- if (solverInstance)
824
- return solverInstance;
825
- try {
826
- const { AgentDBSolver } = await import('../backends/rvf/RvfSolver.js');
827
- if (await AgentDBSolver.isAvailable()) {
828
- solverInstance = await AgentDBSolver.create();
829
- return solverInstance;
830
- }
831
- }
832
- catch { /* skip */ }
833
- return null;
834
- }
835
- // Register solver tools at startup if WASM is available
836
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
837
- const solverTools = [
838
+ // ==========================================================================
839
+ // ADR-073 — SOTA roadmap additions (causal traversal · batch delete · on-demand consolidation)
840
+ // ==========================================================================
838
841
  {
839
- name: 'solver_train',
840
- description: 'Train the RVF self-learning solver on generated puzzles. Uses three-loop architecture: fast (constraint propagation), medium (PolicyKernel skip-mode), slow (KnowledgeCompiler pattern distillation).',
842
+ name: 'causal_traverse',
843
+ description: 'Walk the causal graph between two memories. Returns the chain of causal links (with confidence and uplift) up to max_depth hops. Use this to answer "WHY does this memory matter?" / "what chain of causes led here?" — the primary explainability surface beyond a single recall. Wraps CausalMemoryGraph.getCausalChain().',
841
844
  inputSchema: {
842
845
  type: 'object',
843
846
  properties: {
844
- count: { type: 'number', description: 'Number of puzzles to generate and solve (1-100000)' },
845
- min_difficulty: { type: 'number', description: 'Minimum puzzle difficulty 1-10' },
846
- max_difficulty: { type: 'number', description: 'Maximum puzzle difficulty 1-10' },
847
- seed: { type: 'number', description: 'RNG seed for reproducibility' },
847
+ from_memory_id: { type: 'number', description: 'Starting memory id (the cause / earlier node)' },
848
+ to_memory_id: { type: 'number', description: 'Ending memory id (the effect / target node)' },
849
+ max_depth: { type: 'number', description: 'Maximum hops along the causal chain', default: 5, minimum: 1, maximum: 20 },
848
850
  },
851
+ required: ['from_memory_id', 'to_memory_id'],
849
852
  },
850
853
  },
851
854
  {
852
- name: 'solver_acceptance',
853
- description: 'Run the A/B/C ablation acceptance test. Mode A: fixed heuristic baseline, Mode B: compiler-suggested policy, Mode C: learned Thompson Sampling policy. Returns multi-dimensional pass/fail with accuracy, cost, robustness, and violation metrics.',
855
+ name: 'agentdb_delete_batch',
856
+ description: 'Delete many episode/pattern rows by ID list in a single transaction. Faster and safer than looping `agentdb_delete` (one transaction, validated IDs, atomic). Use for bulk cleanup of old sessions / failed experiments.',
854
857
  inputSchema: {
855
858
  type: 'object',
856
859
  properties: {
857
- cycles: { type: 'number', description: 'Number of acceptance cycles (1-50)' },
858
- holdout_size: { type: 'number', description: 'Holdout set size' },
859
- training_per_cycle: { type: 'number', description: 'Training puzzles per cycle' },
860
- step_budget: { type: 'number', description: 'Max steps per solve' },
861
- seed: { type: 'number', description: 'RNG seed for reproducibility' },
860
+ ids: { type: 'array', items: { type: 'number' }, description: 'Episode IDs to delete (1–1000 per call)', minItems: 1, maxItems: 1000 },
861
+ table: { type: 'string', enum: ['episodes', 'reasoning_patterns'], default: 'episodes', description: 'Target table (whitelist-validated)' },
862
862
  },
863
+ required: ['ids'],
863
864
  },
864
865
  },
865
866
  {
866
- name: 'solver_policy',
867
- description: 'Get the current Thompson Sampling policy state: 18 context-bucketed bandits (3 range x 3 distractor x 2 noise), per-arm stats, KnowledgeCompiler cache, and speculative execution metrics.',
868
- inputSchema: { type: 'object', properties: {} },
869
- },
870
- {
871
- name: 'solver_witness',
872
- description: 'Get the SHAKE-256 tamper-evident witness chain summary. Each entry is 73 bytes. Provides cryptographic audit trail of all solver state transitions.',
873
- inputSchema: { type: 'object', properties: {} },
867
+ name: 'consolidate_now',
868
+ description: 'Run the NightlyLearner consolidation pass on demand discovers new causal edges, prunes low-confidence edges, and promotes high-reward episodes into skills. Use after a batch of new episodes or when you want consolidated memories available immediately (instead of waiting for a scheduled run). Returns a summary report.',
869
+ inputSchema: {
870
+ type: 'object',
871
+ properties: {
872
+ session_id: { type: 'string', description: 'Optional: limit consolidation to this session' },
873
+ },
874
+ },
874
875
  },
875
876
  ];
876
- (async () => {
877
- try {
878
- const { AgentDBSolver } = await import('../backends/rvf/RvfSolver.js');
879
- if (await AgentDBSolver.isAvailable()) {
880
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
881
- tools.push(...solverTools);
882
- }
883
- }
884
- catch { /* solver not available — tools not registered */ }
885
- })();
886
877
  // ============================================================================
887
878
  // Tool Handlers
888
879
  // ============================================================================
889
880
  server.setRequestHandler(ListToolsRequestSchema, async () => {
890
- return { tools };
881
+ return { tools: filterMcpTools(tools, toolPolicy) };
891
882
  });
892
883
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
893
884
  const { name, arguments: args } = request.params;
894
885
  try {
886
+ if (!isMcpToolAllowed(name, toolPolicy)) {
887
+ throw new Error(`MCP tool "${name}" is not permitted by the active AgentDB capability policy`);
888
+ }
895
889
  switch (name) {
896
890
  // ======================================================================
897
891
  // CORE VECTOR DB OPERATIONS
@@ -910,7 +904,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
910
904
  type: 'text',
911
905
  text: `✅ AgentDB initialized successfully!\n` +
912
906
  `📍 Database: ${targetDbPath}\n` +
913
- `📊 Tables created: ${stats?.count ?? 0}\n` +
907
+ `📊 Tables created: ${stats.count}\n` +
914
908
  `⚙️ Optimizations: WAL mode, cache_size=64MB\n` +
915
909
  `🧠 Embedding service: ${embeddingService.constructor.name} ready`,
916
910
  },
@@ -1247,12 +1241,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1247
1241
  }
1248
1242
  case 'db_stats': {
1249
1243
  const stats = {
1250
- causal_edges: (db.prepare('SELECT COUNT(*) as count FROM causal_edges').get())?.count || 0,
1251
- causal_experiments: (db.prepare('SELECT COUNT(*) as count FROM causal_experiments').get())?.count || 0,
1252
- causal_observations: (db.prepare('SELECT COUNT(*) as count FROM causal_observations').get())?.count || 0,
1253
- episodes: (db.prepare('SELECT COUNT(*) as count FROM episodes').get())?.count || 0,
1254
- episode_embeddings: (db.prepare('SELECT COUNT(*) as count FROM episode_embeddings').get())?.count || 0,
1255
- skills: (db.prepare('SELECT COUNT(*) as count FROM skills').get())?.count || 0,
1244
+ causal_edges: db.prepare('SELECT COUNT(*) as count FROM causal_edges').get()?.count || 0,
1245
+ causal_experiments: db.prepare('SELECT COUNT(*) as count FROM causal_experiments').get()?.count || 0,
1246
+ causal_observations: db.prepare('SELECT COUNT(*) as count FROM causal_observations').get()?.count || 0,
1247
+ episodes: db.prepare('SELECT COUNT(*) as count FROM episodes').get()?.count || 0,
1248
+ episode_embeddings: db.prepare('SELECT COUNT(*) as count FROM episode_embeddings').get()?.count || 0,
1249
+ skills: db.prepare('SELECT COUNT(*) as count FROM skills').get()?.count || 0,
1256
1250
  };
1257
1251
  return {
1258
1252
  content: [
@@ -1290,7 +1284,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1290
1284
  // Helper to safely query table count
1291
1285
  const safeCount = (tableName) => {
1292
1286
  try {
1293
- return (db.prepare(`SELECT COUNT(*) as count FROM ${tableName}`).get())?.count || 0;
1287
+ return db.prepare(`SELECT COUNT(*) as count FROM ${tableName}`).get()?.count || 0;
1294
1288
  }
1295
1289
  catch {
1296
1290
  return 0; // Table doesn't exist
@@ -1327,7 +1321,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1327
1321
  SELECT page_count * page_size as total_bytes
1328
1322
  FROM pragma_page_count(), pragma_page_size()
1329
1323
  `).get();
1330
- const totalMB = ((dbStats?.total_bytes ?? 0) / (1024 * 1024)).toFixed(2);
1324
+ const totalMB = (dbStats.total_bytes / (1024 * 1024)).toFixed(2);
1331
1325
  // Add recent activity stats
1332
1326
  const recentActivity = db.prepare(`
1333
1327
  SELECT COUNT(*) as count
@@ -1336,7 +1330,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1336
1330
  `).get();
1337
1331
  output += `\n📦 Storage:\n` +
1338
1332
  ` Database Size: ${totalMB} MB\n` +
1339
- ` Recent Activity (7d): ${recentActivity?.count ?? 0} episodes\n`;
1333
+ ` Recent Activity (7d): ${recentActivity.count} episodes\n`;
1340
1334
  }
1341
1335
  // Cache the result (60s TTL)
1342
1336
  caches.stats.set(cacheKey, output);
@@ -1489,7 +1483,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1489
1483
  const batchSize = args?.batch_size ? validateNumericRange(args.batch_size, 'batch_size', 1, 100) : 32;
1490
1484
  const format = args?.format ? validateEnum(args.format, 'format', ['concise', 'detailed', 'json']) : 'concise';
1491
1485
  // Validate each skill
1492
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1493
1486
  const validatedSkills = skillsArray.map((skill, index) => {
1494
1487
  const name = validateTaskString(skill.name, `skills[${index}].name`);
1495
1488
  const description = validateTaskString(skill.description, `skills[${index}].description`);
@@ -1592,7 +1585,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1592
1585
  const batchSize = args?.batch_size ? validateNumericRange(args.batch_size, 'batch_size', 1, 1000) : 100;
1593
1586
  const format = args?.format ? validateEnum(args.format, 'format', ['concise', 'detailed', 'json']) : 'concise';
1594
1587
  // Validate each episode
1595
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1596
1588
  const validatedEpisodes = episodesArray.map((ep, index) => {
1597
1589
  const sessionId = validateSessionId(ep.session_id);
1598
1590
  const task = validateTaskString(ep.task, `episodes[${index}].task`);
@@ -1695,7 +1687,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1695
1687
  const batchSize = args?.batch_size ? validateNumericRange(args.batch_size, 'batch_size', 1, 500) : 50;
1696
1688
  const format = args?.format ? validateEnum(args.format, 'format', ['concise', 'detailed', 'json']) : 'concise';
1697
1689
  // Validate each pattern
1698
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1699
1690
  const validatedPatterns = patternsArray.map((pattern, index) => {
1700
1691
  const taskType = validateTaskString(pattern.taskType, `patterns[${index}].taskType`);
1701
1692
  const approach = validateTaskString(pattern.approach, `patterns[${index}].approach`);
@@ -1889,7 +1880,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1889
1880
  const epochs = args?.epochs || 50;
1890
1881
  const batchSize = args?.batch_size || 32;
1891
1882
  const learningRate = args?.learning_rate || 0.01;
1892
- console.error(`🎓 Training session ${sessionId}...`);
1883
+ console.log(`🎓 Training session ${sessionId}...`);
1893
1884
  const result = await learningSystem.train(sessionId, epochs, batchSize, learningRate);
1894
1885
  return {
1895
1886
  content: [
@@ -1969,7 +1960,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1969
1960
  const sourceTask = args?.source_task;
1970
1961
  const targetTask = args?.target_task;
1971
1962
  const minSimilarity = args?.min_similarity || 0.7;
1972
- const transferType = (args?.transfer_type || 'all');
1963
+ const transferType = args?.transfer_type || 'all';
1973
1964
  const maxTransfers = args?.max_transfers || 10;
1974
1965
  const result = await learningSystem.transferLearning({
1975
1966
  sourceSession,
@@ -2003,7 +1994,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
2003
1994
  case 'learning_explain': {
2004
1995
  const query = args?.query;
2005
1996
  const k = args?.k || 5;
2006
- const explainDepth = (args?.explain_depth || 'detailed');
1997
+ const explainDepth = args?.explain_depth || 'detailed';
2007
1998
  const includeConfidence = args?.include_confidence !== false;
2008
1999
  const includeEvidence = args?.include_evidence !== false;
2009
2000
  const includeCausal = args?.include_causal !== false;
@@ -2034,7 +2025,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
2034
2025
  ` • Avg Similarity: ${(explanation.reasoning.avgSimilarity * 100).toFixed(1)}%\n` +
2035
2026
  ` • Unique Actions Considered: ${explanation.reasoning.uniqueActions}` : '') +
2036
2027
  (includeCausal && explanation.causalChains && explanation.causalChains.length > 0 ? `\n\n🔗 Causal Reasoning Chains:\n` +
2037
- explanation.causalChains.slice(0, 3).map((chain, i) => ` ${i + 1}. ${chain.from_memory_id} → ${chain.to_memory_id} (uplift: ${(chain.uplift || 0).toFixed(3)})`).join('\n') : ''),
2028
+ explanation.causalChains.slice(0, 3).map((chain, i) => ` ${i + 1}. ${chain.fromMemoryType} → ${chain.toMemoryType} (uplift: ${(chain.uplift || 0).toFixed(3)})`).join('\n') : ''),
2038
2029
  },
2039
2030
  ],
2040
2031
  };
@@ -2089,7 +2080,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
2089
2080
  const timeTakenMs = args?.time_taken_ms;
2090
2081
  const expectedTimeMs = args?.expected_time_ms;
2091
2082
  const includeCausal = args?.include_causal !== false;
2092
- const rewardFunction = (args?.reward_function || 'standard');
2083
+ const rewardFunction = args?.reward_function || 'standard';
2093
2084
  const reward = learningSystem.calculateReward({
2094
2085
  episodeId,
2095
2086
  success,
@@ -2121,69 +2112,64 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
2121
2112
  };
2122
2113
  }
2123
2114
  // ======================================================================
2124
- // SOLVER TOOLS (ADR-010)
2115
+ // ADR-073 SOTA roadmap handlers
2125
2116
  // ======================================================================
2126
- case 'solver_train': {
2127
- const solver = await getSolver();
2128
- if (!solver)
2129
- throw new Error('RVF Solver not available. Install @ruvector/rvf-solver.');
2130
- const count = validateNumericRange(args?.count ?? 50, 'count', 1, 100000);
2131
- const minDifficulty = validateNumericRange(args?.min_difficulty ?? 1, 'min_difficulty', 1, 10);
2132
- const maxDifficulty = validateNumericRange(args?.max_difficulty ?? 10, 'max_difficulty', 1, 10);
2133
- const result = solver.train({ count, minDifficulty, maxDifficulty, seed: args?.seed });
2117
+ case 'causal_traverse': {
2118
+ const fromId = args?.from_memory_id;
2119
+ const toId = args?.to_memory_id;
2120
+ const maxDepth = args?.max_depth || 5;
2121
+ const chain = await causalGraph.getCausalChain(fromId, toId, maxDepth);
2122
+ const found = chain && Array.isArray(chain.edges) ? chain.edges.length > 0 : false;
2134
2123
  return {
2135
2124
  content: [{
2136
2125
  type: 'text',
2137
- text: JSON.stringify(result, null, 2),
2126
+ text: found
2127
+ ? `🔗 Causal chain ${fromId} → ${toId} (max ${maxDepth} hops):\n${JSON.stringify(chain, null, 2)}`
2128
+ : `❌ No causal chain found between memory #${fromId} and #${toId} within ${maxDepth} hops.`,
2138
2129
  }],
2139
2130
  };
2140
2131
  }
2141
- case 'solver_acceptance': {
2142
- const solver = await getSolver();
2143
- if (!solver)
2144
- throw new Error('RVF Solver not available. Install @ruvector/rvf-solver.');
2145
- const manifest = solver.acceptance({
2146
- cycles: args?.cycles,
2147
- holdoutSize: args?.holdout_size,
2148
- trainingPerCycle: args?.training_per_cycle,
2149
- stepBudget: args?.step_budget,
2150
- seed: args?.seed,
2132
+ case 'agentdb_delete_batch': {
2133
+ const ids = args?.ids || [];
2134
+ const requestedTable = args?.table || 'episodes';
2135
+ const allowedTables = new Set(['episodes', 'reasoning_patterns']);
2136
+ if (!allowedTables.has(requestedTable)) {
2137
+ throw new Error(`Invalid table: ${requestedTable}`);
2138
+ }
2139
+ if (ids.length === 0) {
2140
+ return { content: [{ type: 'text', text: '⚠️ No IDs supplied — nothing to delete.' }] };
2141
+ }
2142
+ // Validate each id is a positive integer (defense in depth)
2143
+ const safeIds = ids.map((raw) => {
2144
+ const n = Number(raw);
2145
+ if (!Number.isInteger(n) || n <= 0)
2146
+ throw new Error(`Invalid id: ${raw}`);
2147
+ return n;
2151
2148
  });
2149
+ const placeholders = safeIds.map(() => '?').join(',');
2150
+ // requestedTable is whitelist-checked above; parameterising values via ?.
2151
+ const stmt = db.prepare(`DELETE FROM ${requestedTable} WHERE id IN (${placeholders})`);
2152
+ const result = stmt.run(...safeIds);
2152
2153
  return {
2153
2154
  content: [{
2154
2155
  type: 'text',
2155
- text: JSON.stringify(manifest, null, 2),
2156
+ text: `🗑️ Batch delete from \`${requestedTable}\`: ${result.changes}/${safeIds.length} rows removed (atomic).`,
2156
2157
  }],
2157
2158
  };
2158
2159
  }
2159
- case 'solver_policy': {
2160
- const solver = await getSolver();
2161
- if (!solver)
2162
- throw new Error('RVF Solver not available. Install @ruvector/rvf-solver.');
2163
- const policy = solver.policy();
2164
- return {
2165
- content: [{
2166
- type: 'text',
2167
- text: policy ? JSON.stringify(policy, null, 2) : 'No policy state available (no training yet).',
2168
- }],
2169
- };
2170
- }
2171
- case 'solver_witness': {
2172
- const solver = await getSolver();
2173
- if (!solver)
2174
- throw new Error('RVF Solver not available. Install @ruvector/rvf-solver.');
2175
- const chain = solver.witnessChain();
2176
- if (!chain || chain.length === 0) {
2177
- return { content: [{ type: 'text', text: JSON.stringify({ entries: 0, bytes: 0, hex: '' }) }] };
2178
- }
2179
- const entries = Math.floor(chain.length / 73);
2180
- const slice = new Uint8Array(chain.buffer, chain.byteOffset, Math.min(chain.length, 73 * 3));
2181
- const hex = Array.from(slice)
2182
- .map(b => b.toString(16).padStart(2, '0')).join('');
2160
+ case 'consolidate_now': {
2161
+ const sessionId = args?.session_id;
2162
+ const t0 = Date.now();
2163
+ // Prefer the session-scoped path when sessionId is given.
2164
+ const report = sessionId
2165
+ ? await learner.consolidateEpisodes(sessionId)
2166
+ : await learner.run();
2167
+ const ms = Date.now() - t0;
2183
2168
  return {
2184
2169
  content: [{
2185
2170
  type: 'text',
2186
- text: JSON.stringify({ entries, bytes: chain.length, hex: hex.length > 438 ? hex.slice(0, 438) + '...' : hex }, null, 2),
2171
+ text: `🌙 Consolidation complete${sessionId ? ` (session=${sessionId})` : ''} in ${ms}ms\n` +
2172
+ JSON.stringify(report, null, 2),
2187
2173
  }],
2188
2174
  };
2189
2175
  }
@@ -2196,7 +2182,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
2196
2182
  content: [
2197
2183
  {
2198
2184
  type: 'text',
2199
- text: `❌ Error: ${error.message}`,
2185
+ text: `❌ Error: ${error.message}\n${error.stack || ''}`,
2200
2186
  },
2201
2187
  ],
2202
2188
  isError: true,
@@ -2209,8 +2195,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
2209
2195
  async function main() {
2210
2196
  const transport = new StdioServerTransport();
2211
2197
  await server.connect(transport);
2212
- console.error('🚀 AgentDB MCP Server v3.0.0 running on stdio');
2213
- console.error('📦 33 tools available (5 core + 9 frontier + 10 learning + 5 AgentDB + 4 batch ops)');
2198
+ console.error('🚀 AgentDB MCP Server v2.0.0 running on stdio');
2199
+ console.error('📦 32 tools available (5 core + 9 frontier + 10 learning + 5 AgentDB + 3 batch ops)');
2214
2200
  console.error('🧠 Embedding service initialized');
2215
2201
  console.error('🎓 Learning system ready (9 RL algorithms)');
2216
2202
  console.error('⚡ NEW v2.0: Batch operations (3-4x faster), format parameters, enhanced validation');
@@ -2223,10 +2209,12 @@ async function main() {
2223
2209
  // Empty interval just to keep event loop alive
2224
2210
  }, 1000 * 60 * 60); // Every hour (basically forever)
2225
2211
  // Periodic auto-save: Save database every 5 minutes to prevent data loss
2226
- const autoSaveInterval = setInterval(async () => {
2212
+ const autoSaveInterval = setInterval(() => {
2227
2213
  try {
2228
- await agentdb.save();
2229
- console.error('💾 Auto-saved database to', dbPath);
2214
+ if (db && typeof db.save === 'function') {
2215
+ db.save();
2216
+ console.error('💾 Auto-saved database to', dbPath);
2217
+ }
2230
2218
  }
2231
2219
  catch (error) {
2232
2220
  console.error('❌ Auto-save failed:', error.message);
@@ -2238,18 +2226,33 @@ async function main() {
2238
2226
  // Clear intervals
2239
2227
  clearInterval(keepAlive);
2240
2228
  clearInterval(autoSaveInterval);
2241
- // Save and close via unified AgentDB (handles both vectors + relational)
2229
+ let persistenceFailed = false;
2230
+ // Save database before exit
2231
+ try {
2232
+ if (db && typeof db.save === 'function') {
2233
+ console.error('💾 Saving database to', dbPath);
2234
+ await db.save();
2235
+ console.error('✅ Database saved successfully');
2236
+ }
2237
+ }
2238
+ catch (error) {
2239
+ persistenceFailed = true;
2240
+ console.error('❌ Error saving database:', error.message);
2241
+ }
2242
+ // Close database connection. close() persists sql.js itself, so only call
2243
+ // it after save when save succeeded; a failed optimistic save must not be
2244
+ // retried against the same stale snapshot.
2242
2245
  try {
2243
- console.error('💾 Saving database to', dbPath);
2244
- await agentdb.save();
2245
- console.error('✅ Database saved successfully');
2246
- await agentdb.close();
2247
- console.error('✅ Database connection closed');
2246
+ if (!persistenceFailed && db && typeof db.close === 'function') {
2247
+ db.close();
2248
+ console.error('✅ Database connection closed');
2249
+ }
2248
2250
  }
2249
2251
  catch (error) {
2250
- console.error('❌ Error during shutdown:', error.message);
2252
+ persistenceFailed = true;
2253
+ console.error('❌ Error closing database:', error.message);
2251
2254
  }
2252
- process.exit(0);
2255
+ process.exit(persistenceFailed ? 1 : 0);
2253
2256
  };
2254
2257
  process.on('SIGINT', shutdown);
2255
2258
  process.on('SIGTERM', shutdown);