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
@@ -1,40 +1,234 @@
1
1
  /**
2
- * Database System using sql.js (WASM SQLite)
3
- * Pure JavaScript implementation with NO build dependencies
2
+ * Database System backed by SQLite.
3
+ *
4
+ * Resolution order (ruflo #2235 A):
5
+ * 1. **better-sqlite3** if the optional peer is loadable — native, faster,
6
+ * what most callers actually want when they install the native module.
7
+ * 2. **sql.js** (WASM) — pure-JS fallback, requires no build tools.
8
+ *
9
+ * Both implementations expose the same `db.prepare(sql).run/get/all(...)`
10
+ * interface (the sql.js wrapper below was designed to mimic better-sqlite3),
11
+ * so callers don't care which one served them.
4
12
  *
5
13
  * SECURITY: Fixed SQL injection vulnerabilities:
6
14
  * - PRAGMA commands validated against whitelist
7
15
  * - Removed eval() usage (replaced with async import)
8
16
  */
9
17
  import { validatePragmaCommand, ValidationError } from './security/input-validation.js';
18
+ import { createHash, randomUUID } from 'node:crypto';
10
19
  import * as fs from 'fs';
11
20
  import * as path from 'path';
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- cached wrapper class
13
- let sqlJsWrapper = null;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- cached impl (better-sqlite3 class or sql.js wrapper class)
22
+ let cachedImpl = null;
23
+ let cachedImplKind = null;
24
+ export class SqlJsConcurrentModificationError extends Error {
25
+ code = 'AGENTDB_SQLJS_CONCURRENT_MODIFICATION';
26
+ constructor(filename) {
27
+ super(`Refusing to overwrite "${filename}" because it changed after this sql.js instance opened. ` +
28
+ 'Another process may have written to the database; reopen it before retrying.');
29
+ this.name = 'SqlJsConcurrentModificationError';
30
+ }
31
+ }
32
+ function fingerprintFile(filename) {
33
+ let fd;
34
+ try {
35
+ fd = fs.openSync(filename, 'r');
36
+ const before = fs.fstatSync(fd);
37
+ const data = fs.readFileSync(fd);
38
+ const after = fs.fstatSync(fd);
39
+ if (before.dev !== after.dev ||
40
+ before.ino !== after.ino ||
41
+ before.size !== after.size ||
42
+ before.mtimeMs !== after.mtimeMs ||
43
+ before.ctimeMs !== after.ctimeMs) {
44
+ throw new SqlJsConcurrentModificationError(filename);
45
+ }
46
+ return {
47
+ exists: true,
48
+ device: after.dev,
49
+ inode: after.ino,
50
+ mode: after.mode,
51
+ size: after.size,
52
+ mtimeMs: after.mtimeMs,
53
+ ctimeMs: after.ctimeMs,
54
+ sha256: createHash('sha256').update(data).digest('hex'),
55
+ };
56
+ }
57
+ catch (error) {
58
+ if (error.code === 'ENOENT')
59
+ return { exists: false };
60
+ throw error;
61
+ }
62
+ finally {
63
+ if (fd !== undefined)
64
+ fs.closeSync(fd);
65
+ }
66
+ }
67
+ export function captureDatabaseFileState(filename) {
68
+ return {
69
+ database: fingerprintFile(filename),
70
+ wal: fingerprintFile(`${filename}-wal`),
71
+ shm: fingerprintFile(`${filename}-shm`),
72
+ journal: fingerprintFile(`${filename}-journal`),
73
+ };
74
+ }
75
+ export function loadSqlJsDatabaseFile(filename) {
76
+ const state = captureDatabaseFileState(filename);
77
+ if ((state.wal.exists && state.wal.size > 0) ||
78
+ (state.journal.exists && state.journal.size > 0)) {
79
+ throw new Error(`Refusing to open "${filename}" with sql.js while an active SQLite WAL or journal exists. ` +
80
+ 'Checkpoint/close the other SQLite writer first.');
81
+ }
82
+ if (!state.database.exists)
83
+ return { data: null, state };
84
+ // fingerprintFile hashes the exact bytes read from a stable descriptor.
85
+ // Read once more and verify the digest so the returned bytes and baseline
86
+ // are guaranteed to describe the same database generation.
87
+ const data = fs.readFileSync(filename);
88
+ const digest = createHash('sha256').update(data).digest('hex');
89
+ if (digest !== state.database.sha256) {
90
+ throw new SqlJsConcurrentModificationError(filename);
91
+ }
92
+ if (data.length < 16 ||
93
+ data.subarray(0, 16).toString('utf8') !== 'SQLite format 3\u0000') {
94
+ throw new Error(`Refusing to open invalid SQLite database file "${filename}"`);
95
+ }
96
+ return { data: new Uint8Array(data), state };
97
+ }
98
+ function sameDatabaseFileState(left, right) {
99
+ return JSON.stringify(left) === JSON.stringify(right);
100
+ }
101
+ function fsyncDirectory(directory) {
102
+ let fd;
103
+ try {
104
+ fd = fs.openSync(directory, 'r');
105
+ fs.fsyncSync(fd);
106
+ }
107
+ catch (error) {
108
+ // Some platforms/filesystems do not permit opening or syncing directories.
109
+ const code = error.code;
110
+ if (code !== 'EINVAL' && code !== 'EPERM' && code !== 'EISDIR')
111
+ throw error;
112
+ }
113
+ finally {
114
+ if (fd !== undefined)
115
+ fs.closeSync(fd);
116
+ }
117
+ }
118
+ export function persistSqlJsDatabase(filename, data, expectedState) {
119
+ const directory = path.dirname(filename);
120
+ fs.mkdirSync(directory, { recursive: true });
121
+ if (fs.existsSync(filename) && fs.lstatSync(filename).isSymbolicLink()) {
122
+ throw new Error(`Refusing to replace symbolic-link database path "${filename}"`);
123
+ }
124
+ const lockPath = `${filename}.agentdb.lock`;
125
+ let lockFd;
126
+ let tempPath;
127
+ try {
128
+ try {
129
+ lockFd = fs.openSync(lockPath, 'wx', 0o600);
130
+ fs.writeSync(lockFd, `${process.pid}\n`);
131
+ fs.fsyncSync(lockFd);
132
+ }
133
+ catch (error) {
134
+ if (error.code === 'EEXIST') {
135
+ throw new SqlJsConcurrentModificationError(filename);
136
+ }
137
+ throw error;
138
+ }
139
+ if (!sameDatabaseFileState(captureDatabaseFileState(filename), expectedState)) {
140
+ throw new SqlJsConcurrentModificationError(filename);
141
+ }
142
+ tempPath = path.join(directory, `.${path.basename(filename)}.${process.pid}.${randomUUID()}.tmp`);
143
+ const tempFd = fs.openSync(tempPath, 'wx', 0o600);
144
+ try {
145
+ fs.writeFileSync(tempFd, Buffer.from(data));
146
+ if (expectedState.database.exists && expectedState.database.mode !== undefined) {
147
+ fs.fchmodSync(tempFd, expectedState.database.mode);
148
+ }
149
+ fs.fsyncSync(tempFd);
150
+ }
151
+ finally {
152
+ fs.closeSync(tempFd);
153
+ }
154
+ // Recheck after export/write so a non-cooperating SQLite writer cannot be
155
+ // silently overwritten merely because it raced with the temporary write.
156
+ if (!sameDatabaseFileState(captureDatabaseFileState(filename), expectedState)) {
157
+ throw new SqlJsConcurrentModificationError(filename);
158
+ }
159
+ fs.renameSync(tempPath, filename);
160
+ tempPath = undefined;
161
+ fsyncDirectory(directory);
162
+ return captureDatabaseFileState(filename);
163
+ }
164
+ finally {
165
+ if (tempPath) {
166
+ try {
167
+ fs.unlinkSync(tempPath);
168
+ }
169
+ catch { /* best-effort cleanup */ }
170
+ }
171
+ if (lockFd !== undefined) {
172
+ fs.closeSync(lockFd);
173
+ try {
174
+ fs.unlinkSync(lockPath);
175
+ }
176
+ catch { /* preserve the original error */ }
177
+ }
178
+ }
179
+ }
14
180
  /**
15
- * Get sql.js database implementation (ONLY sql.js, no better-sqlite3)
181
+ * Get the SQLite database implementation. Prefers native `better-sqlite3`
182
+ * when loadable; falls back to WASM `sql.js` (no build tools required).
16
183
  */
17
184
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- returns dynamically constructed class
18
185
  export async function getDatabaseImplementation() {
19
- // Return cached wrapper
20
- if (sqlJsWrapper) {
21
- return sqlJsWrapper;
186
+ if (cachedImpl)
187
+ return cachedImpl;
188
+ // 1. Try native better-sqlite3 (optional peer; same prepare/run API).
189
+ if (!process.env.AGENTDB_FORCE_SQLJS) {
190
+ try {
191
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- dynamic optional import
192
+ const mod = await import('better-sqlite3');
193
+ const BetterSqlite3 = mod.default ?? mod;
194
+ if (typeof BetterSqlite3 === 'function') {
195
+ // Importing the JS wrapper can succeed even when its native binding is
196
+ // missing or incompatible with the current Node ABI. Probe an actual
197
+ // in-memory connection before selecting it.
198
+ const probe = new BetterSqlite3(':memory:');
199
+ probe.close();
200
+ cachedImpl = BetterSqlite3;
201
+ cachedImplKind = 'better-sqlite3';
202
+ console.error('✅ Using native better-sqlite3');
203
+ return cachedImpl;
204
+ }
205
+ }
206
+ catch {
207
+ // Not installed or failed to load → fall through to sql.js.
208
+ }
22
209
  }
210
+ // 2. Fall back to sql.js (WASM, no build tools).
23
211
  try {
24
- console.log('✅ Using sql.js (WASM SQLite, no build tools required)');
212
+ console.error('✅ Using sql.js (WASM SQLite, no build tools required)');
25
213
  // sql.js requires async initialization
26
214
  const mod = await import('sql.js');
27
215
  const SQL = await mod.default();
28
- // Create database wrapper
29
- sqlJsWrapper = createSqlJsWrapper(SQL);
30
- return sqlJsWrapper;
216
+ cachedImpl = createSqlJsWrapper(SQL);
217
+ cachedImplKind = 'sql.js';
218
+ return cachedImpl;
31
219
  }
32
220
  catch (error) {
33
221
  console.error('❌ Failed to initialize sql.js:', error.message);
34
- throw new Error('Failed to initialize SQLite. Please ensure sql.js is installed:\n' +
35
- 'npm install sql.js');
222
+ throw new Error('Failed to initialize SQLite. Install one of:\n' +
223
+ ' npm install better-sqlite3 # native, faster (recommended)\n' +
224
+ ' npm install sql.js # pure-JS fallback, no build tools');
36
225
  }
37
226
  }
227
+ /** Reset the cached implementation (intended for tests). */
228
+ export function _resetDatabaseImplementationForTests() {
229
+ cachedImpl = null;
230
+ cachedImplKind = null;
231
+ }
38
232
  /**
39
233
  * Create a better-sqlite3 compatible wrapper around sql.js
40
234
  * This allows AgentDB to work (with reduced performance) without native compilation
@@ -45,29 +239,32 @@ function createSqlJsWrapper(SQL) {
45
239
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Database instance
46
240
  db;
47
241
  filename;
242
+ fileState;
48
243
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Statement instances
49
244
  activeStatements = new Map();
245
+ // Cache wrappers by SQL text so repeated db.prepare(sameSql) returns the
246
+ // same underlying sql.js Statement and doesn't add a new entry to
247
+ // activeStatements. Without this, callers using the
248
+ // db.prepare(sql).run(...)-and-discard pattern (idiomatic in
249
+ // better-sqlite3, where V8 GCs the handle) leak forever under sql.js.
250
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- prepared-statement wrapper objects
251
+ statementCache = new Map();
50
252
  statementCounter = 0;
51
253
  intervalId = null;
52
254
  constructor(filename, _options) {
53
255
  this.filename = filename;
256
+ const loaded = filename === ':memory:' ? null : loadSqlJsDatabaseFile(filename);
257
+ this.fileState = loaded?.state ?? null;
54
258
  // In-memory database
55
259
  if (filename === ':memory:') {
56
260
  this.db = new SQL.Database();
57
261
  }
58
262
  else {
59
263
  // File-based database - use safe fs module (no eval)
60
- try {
61
- if (fs.existsSync(filename)) {
62
- const buffer = fs.readFileSync(filename);
63
- this.db = new SQL.Database(buffer);
64
- }
65
- else {
66
- this.db = new SQL.Database();
67
- }
264
+ if (loaded.data) {
265
+ this.db = new SQL.Database(loaded.data);
68
266
  }
69
- catch (error) {
70
- console.warn('⚠️ Could not read database file:', error.message);
267
+ else {
71
268
  this.db = new SQL.Database();
72
269
  }
73
270
  }
@@ -79,12 +276,28 @@ function createSqlJsWrapper(SQL) {
79
276
  }, 10000);
80
277
  }
81
278
  prepare(sql) {
279
+ // Reuse the cached wrapper for an identical SQL string. The cache owns
280
+ // the underlying stmt's lifetime; finalize() is a no-op on a cached
281
+ // wrapper so concurrent callers that all called prepare(sql) keep
282
+ // working. close() drops everything.
283
+ const cached = this.statementCache.get(sql);
284
+ if (cached)
285
+ return cached;
82
286
  const stmt = this.db.prepare(sql);
83
287
  let isFinalized = false;
84
288
  const stmtId = ++this.statementCounter;
289
+ const self = this;
85
290
  // Track active statement
86
291
  this.activeStatements.set(stmtId, stmt);
87
- return {
292
+ const evictOnError = () => {
293
+ if (!isFinalized) {
294
+ stmt.free();
295
+ isFinalized = true;
296
+ self.activeStatements.delete(stmtId);
297
+ self.statementCache.delete(sql);
298
+ }
299
+ };
300
+ const wrapper = {
88
301
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js bind accepts heterogeneous params
89
302
  run: (...params) => {
90
303
  if (isFinalized)
@@ -99,12 +312,7 @@ function createSqlJsWrapper(SQL) {
99
312
  };
100
313
  }
101
314
  catch (error) {
102
- // Auto-free on error to prevent memory leak
103
- if (!isFinalized) {
104
- stmt.free();
105
- isFinalized = true;
106
- this.activeStatements.delete(stmtId);
107
- }
315
+ evictOnError();
108
316
  throw error;
109
317
  }
110
318
  },
@@ -129,12 +337,7 @@ function createSqlJsWrapper(SQL) {
129
337
  return result;
130
338
  }
131
339
  catch (error) {
132
- // Auto-free on error to prevent memory leak
133
- if (!isFinalized) {
134
- stmt.free();
135
- isFinalized = true;
136
- this.activeStatements.delete(stmtId);
137
- }
340
+ evictOnError();
138
341
  throw error;
139
342
  }
140
343
  },
@@ -158,23 +361,18 @@ function createSqlJsWrapper(SQL) {
158
361
  return results;
159
362
  }
160
363
  catch (error) {
161
- // Auto-free on error to prevent memory leak
162
- if (!isFinalized) {
163
- stmt.free();
164
- isFinalized = true;
165
- this.activeStatements.delete(stmtId);
166
- }
364
+ evictOnError();
167
365
  throw error;
168
366
  }
169
367
  },
170
368
  finalize: () => {
171
- if (!isFinalized) {
172
- stmt.free();
173
- isFinalized = true;
174
- this.activeStatements.delete(stmtId);
175
- }
369
+ // No-op while cached: the wrapper is shared and finalize() must not
370
+ // tear out a stmt another caller is about to use. close() handles
371
+ // the real teardown.
176
372
  }
177
373
  };
374
+ this.statementCache.set(sql, wrapper);
375
+ return wrapper;
178
376
  }
179
377
  exec(sql) {
180
378
  return this.db.exec(sql);
@@ -183,13 +381,8 @@ function createSqlJsWrapper(SQL) {
183
381
  // Save to file if needed
184
382
  if (this.filename !== ':memory:') {
185
383
  try {
186
- // Create parent directories if they don't exist
187
- const dir = path.dirname(this.filename);
188
- if (!fs.existsSync(dir)) {
189
- fs.mkdirSync(dir, { recursive: true });
190
- }
191
384
  const data = this.db.export();
192
- fs.writeFileSync(this.filename, Buffer.from(data));
385
+ this.fileState = persistSqlJsDatabase(this.filename, data, this.fileState);
193
386
  }
194
387
  catch (error) {
195
388
  console.error('❌ Could not save database to file:', error.message);
@@ -198,6 +391,13 @@ function createSqlJsWrapper(SQL) {
198
391
  }
199
392
  }
200
393
  close() {
394
+ let saveError;
395
+ try {
396
+ this.save();
397
+ }
398
+ catch (error) {
399
+ saveError = error;
400
+ }
201
401
  // Clear interval timer
202
402
  if (this.intervalId) {
203
403
  clearInterval(this.intervalId);
@@ -213,9 +413,10 @@ function createSqlJsWrapper(SQL) {
213
413
  }
214
414
  }
215
415
  this.activeStatements.clear();
216
- // Save to file before closing
217
- this.save();
416
+ this.statementCache.clear();
218
417
  this.db.close();
418
+ if (saveError)
419
+ throw saveError;
219
420
  }
220
421
  pragma(pragma, _options) {
221
422
  try {
@@ -271,14 +472,36 @@ export async function createDatabase(filename, options) {
271
472
  export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
272
473
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Statement instances
273
474
  const activeStatements = new Map();
475
+ // SQL-text cache; see SqlJsDatabase.statementCache for rationale.
476
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- prepared-statement wrapper objects
477
+ const statementCache = new Map();
274
478
  let statementCounter = 0;
479
+ const loaded = filename === ':memory:' ? null : loadSqlJsDatabaseFile(filename);
480
+ let fileState = loaded?.state ?? null;
481
+ if (loaded?.data) {
482
+ const rawDigest = createHash('sha256').update(rawDb.export()).digest('hex');
483
+ if (rawDigest !== fileState.database.sha256) {
484
+ throw new SqlJsConcurrentModificationError(filename);
485
+ }
486
+ }
275
487
  return {
276
488
  prepare(sql) {
489
+ const cached = statementCache.get(sql);
490
+ if (cached)
491
+ return cached;
277
492
  const stmt = rawDb.prepare(sql);
278
493
  let isFinalized = false;
279
494
  const stmtId = ++statementCounter;
280
495
  activeStatements.set(stmtId, stmt);
281
- return {
496
+ const evictOnError = () => {
497
+ if (!isFinalized) {
498
+ stmt.free();
499
+ isFinalized = true;
500
+ activeStatements.delete(stmtId);
501
+ statementCache.delete(sql);
502
+ }
503
+ };
504
+ const wrapper = {
282
505
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js bind accepts heterogeneous params
283
506
  run(...params) {
284
507
  if (isFinalized)
@@ -293,11 +516,7 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
293
516
  };
294
517
  }
295
518
  catch (error) {
296
- if (!isFinalized) {
297
- stmt.free();
298
- isFinalized = true;
299
- activeStatements.delete(stmtId);
300
- }
519
+ evictOnError();
301
520
  throw error;
302
521
  }
303
522
  },
@@ -320,11 +539,7 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
320
539
  return result;
321
540
  }
322
541
  catch (error) {
323
- if (!isFinalized) {
324
- stmt.free();
325
- isFinalized = true;
326
- activeStatements.delete(stmtId);
327
- }
542
+ evictOnError();
328
543
  throw error;
329
544
  }
330
545
  },
@@ -346,37 +561,34 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
346
561
  return results;
347
562
  }
348
563
  catch (error) {
349
- if (!isFinalized) {
350
- stmt.free();
351
- isFinalized = true;
352
- activeStatements.delete(stmtId);
353
- }
564
+ evictOnError();
354
565
  throw error;
355
566
  }
356
567
  },
357
568
  finalize() {
358
- if (!isFinalized) {
359
- stmt.free();
360
- isFinalized = true;
361
- activeStatements.delete(stmtId);
362
- }
569
+ // No-op while cached; close() handles teardown.
363
570
  },
364
571
  };
572
+ statementCache.set(sql, wrapper);
573
+ return wrapper;
365
574
  },
366
575
  exec(sql) {
367
576
  return rawDb.exec(sql);
368
577
  },
369
578
  save() {
370
579
  if (filename !== ':memory:') {
371
- const dir = path.dirname(filename);
372
- if (!fs.existsSync(dir)) {
373
- fs.mkdirSync(dir, { recursive: true });
374
- }
375
580
  const data = rawDb.export();
376
- fs.writeFileSync(filename, Buffer.from(data));
581
+ fileState = persistSqlJsDatabase(filename, data, fileState);
377
582
  }
378
583
  },
379
584
  close() {
585
+ let saveError;
586
+ try {
587
+ this.save();
588
+ }
589
+ catch (error) {
590
+ saveError = error;
591
+ }
380
592
  for (const [, stmt] of activeStatements.entries()) {
381
593
  try {
382
594
  stmt.free();
@@ -384,8 +596,10 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
384
596
  catch { /* already freed */ }
385
597
  }
386
598
  activeStatements.clear();
387
- this.save();
599
+ statementCache.clear();
388
600
  rawDb.close();
601
+ if (saveError)
602
+ throw saveError;
389
603
  },
390
604
  pragma(pragma, _options) {
391
605
  try {
@@ -421,11 +635,21 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
421
635
  * Get information about current database implementation
422
636
  */
423
637
  export function getDatabaseInfo() {
638
+ // Reports the currently-loaded backend; falls back to the sql.js description
639
+ // before getDatabaseImplementation() has run.
640
+ if (cachedImplKind === 'better-sqlite3') {
641
+ return {
642
+ implementation: 'better-sqlite3 (native)',
643
+ isNative: true,
644
+ performance: 'high',
645
+ requiresBuildTools: true,
646
+ };
647
+ }
424
648
  return {
425
649
  implementation: 'sql.js (WASM)',
426
650
  isNative: false,
427
651
  performance: 'medium',
428
- requiresBuildTools: false
652
+ requiresBuildTools: false,
429
653
  };
430
654
  }
431
655
  //# sourceMappingURL=db-fallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Test Database Factory - Uses better-sqlite3 when available for testing
3
+ *
4
+ * Integration tests need to create large datasets and run many queries,
5
+ * which can exceed sql.js WASM memory limit (64MB). This factory attempts
6
+ * to use better-sqlite3 for tests, falling back to sql.js if unavailable.
7
+ */
8
+ import type { Database } from 'better-sqlite3';
9
+ /**
10
+ * Create database for testing - prefers better-sqlite3, falls back to sql.js
11
+ */
12
+ export declare function createTestDatabase(filename: string, options?: any): Promise<Database>;
13
+ //# sourceMappingURL=db-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-test.d.ts","sourceRoot":"","sources":["../../src/db-test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAmC/C;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAY3F"}