agentdb 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/LICENSE +38 -0
  2. package/LICENSE-APACHE +190 -0
  3. package/LICENSE-MIT +21 -0
  4. package/README.md +953 -0
  5. package/bin/agentdb.js +485 -0
  6. package/bin/plugin-cli-wrapper.mjs +21 -0
  7. package/dist/cache/query-cache.d.ts +105 -0
  8. package/dist/cache/query-cache.d.ts.map +1 -0
  9. package/dist/cache/query-cache.js +224 -0
  10. package/dist/cache/query-cache.js.map +1 -0
  11. package/dist/cache/query-cache.mjs +219 -0
  12. package/dist/cli/cache/query-cache.d.ts +104 -0
  13. package/dist/cli/cache/query-cache.js +244 -0
  14. package/dist/cli/cli/db-commands.d.ts +48 -0
  15. package/dist/cli/cli/db-commands.js +613 -0
  16. package/dist/cli/commands.d.ts +7 -0
  17. package/dist/cli/commands.d.ts.map +1 -0
  18. package/dist/cli/commands.js +113 -0
  19. package/dist/cli/commands.js.map +1 -0
  20. package/dist/cli/commands.mjs +104 -0
  21. package/dist/cli/core/backend-interface.d.ts +70 -0
  22. package/dist/cli/core/backend-interface.js +15 -0
  23. package/dist/cli/core/native-backend.d.ts +140 -0
  24. package/dist/cli/core/native-backend.js +432 -0
  25. package/dist/cli/core/vector-db.d.ts +126 -0
  26. package/dist/cli/core/vector-db.js +338 -0
  27. package/dist/cli/core/wasm-backend.d.ts +95 -0
  28. package/dist/cli/core/wasm-backend.js +418 -0
  29. package/dist/cli/db-commands.d.ts +49 -0
  30. package/dist/cli/db-commands.d.ts.map +1 -0
  31. package/dist/cli/db-commands.js +533 -0
  32. package/dist/cli/db-commands.js.map +1 -0
  33. package/dist/cli/db-commands.mjs +522 -0
  34. package/dist/cli/generator.d.ts +11 -0
  35. package/dist/cli/generator.d.ts.map +1 -0
  36. package/dist/cli/generator.js +567 -0
  37. package/dist/cli/generator.js.map +1 -0
  38. package/dist/cli/generator.mjs +527 -0
  39. package/dist/cli/help.d.ts +18 -0
  40. package/dist/cli/help.d.ts.map +1 -0
  41. package/dist/cli/help.js +676 -0
  42. package/dist/cli/help.js.map +1 -0
  43. package/dist/cli/help.mjs +667 -0
  44. package/dist/cli/index/hnsw.d.ts +164 -0
  45. package/dist/cli/index/hnsw.js +558 -0
  46. package/dist/cli/plugin-cli.d.ts +7 -0
  47. package/dist/cli/plugin-cli.d.ts.map +1 -0
  48. package/dist/cli/plugin-cli.js +295 -0
  49. package/dist/cli/plugin-cli.js.map +1 -0
  50. package/dist/cli/plugin-cli.mjs +289 -0
  51. package/dist/cli/quantization/product-quantization.d.ts +108 -0
  52. package/dist/cli/quantization/product-quantization.js +350 -0
  53. package/dist/cli/query/query-builder.d.ts +322 -0
  54. package/dist/cli/query/query-builder.js +600 -0
  55. package/dist/cli/templates.d.ts +14 -0
  56. package/dist/cli/templates.d.ts.map +1 -0
  57. package/dist/cli/templates.js +182 -0
  58. package/dist/cli/templates.js.map +1 -0
  59. package/dist/cli/templates.mjs +176 -0
  60. package/dist/cli/types/index.d.ts +116 -0
  61. package/dist/cli/types/index.js +5 -0
  62. package/dist/cli/types.d.ts +91 -0
  63. package/dist/cli/types.d.ts.map +1 -0
  64. package/dist/cli/types.js +6 -0
  65. package/dist/cli/types.js.map +1 -0
  66. package/dist/cli/types.mjs +4 -0
  67. package/dist/cli/wizard/index.d.ts +6 -0
  68. package/dist/cli/wizard/index.d.ts.map +1 -0
  69. package/dist/cli/wizard/index.js +138 -0
  70. package/dist/cli/wizard/index.js.map +1 -0
  71. package/dist/cli/wizard/index.mjs +131 -0
  72. package/dist/cli/wizard/prompts.d.ts +11 -0
  73. package/dist/cli/wizard/prompts.d.ts.map +1 -0
  74. package/dist/cli/wizard/prompts.js +482 -0
  75. package/dist/cli/wizard/prompts.js.map +1 -0
  76. package/dist/cli/wizard/prompts.mjs +470 -0
  77. package/dist/cli/wizard/validator.d.ts +13 -0
  78. package/dist/cli/wizard/validator.d.ts.map +1 -0
  79. package/dist/cli/wizard/validator.js +234 -0
  80. package/dist/cli/wizard/validator.js.map +1 -0
  81. package/dist/cli/wizard/validator.mjs +224 -0
  82. package/dist/core/backend-interface.d.ts +71 -0
  83. package/dist/core/backend-interface.d.ts.map +1 -0
  84. package/dist/core/backend-interface.js +16 -0
  85. package/dist/core/backend-interface.js.map +1 -0
  86. package/dist/core/backend-interface.mjs +12 -0
  87. package/dist/core/native-backend.d.ts +141 -0
  88. package/dist/core/native-backend.d.ts.map +1 -0
  89. package/dist/core/native-backend.js +457 -0
  90. package/dist/core/native-backend.js.map +1 -0
  91. package/dist/core/native-backend.mjs +449 -0
  92. package/dist/core/vector-db.d.ts +127 -0
  93. package/dist/core/vector-db.d.ts.map +1 -0
  94. package/dist/core/vector-db.js +266 -0
  95. package/dist/core/vector-db.js.map +1 -0
  96. package/dist/core/vector-db.mjs +261 -0
  97. package/dist/core/wasm-backend.d.ts +96 -0
  98. package/dist/core/wasm-backend.d.ts.map +1 -0
  99. package/dist/core/wasm-backend.js +393 -0
  100. package/dist/core/wasm-backend.js.map +1 -0
  101. package/dist/core/wasm-backend.mjs +385 -0
  102. package/dist/index/hnsw-optimized.d.ts +75 -0
  103. package/dist/index/hnsw-optimized.d.ts.map +1 -0
  104. package/dist/index/hnsw-optimized.js +412 -0
  105. package/dist/index/hnsw-optimized.js.map +1 -0
  106. package/dist/index/hnsw-optimized.mjs +407 -0
  107. package/dist/index/hnsw.d.ts +165 -0
  108. package/dist/index/hnsw.d.ts.map +1 -0
  109. package/dist/index/hnsw.js +521 -0
  110. package/dist/index/hnsw.js.map +1 -0
  111. package/dist/index/hnsw.mjs +516 -0
  112. package/dist/index.d.ts +57 -0
  113. package/dist/index.d.ts.map +1 -0
  114. package/dist/index.js +82 -0
  115. package/dist/index.js.map +1 -0
  116. package/dist/index.mjs +63 -0
  117. package/dist/mcp-server.d.ts +27 -0
  118. package/dist/mcp-server.d.ts.map +1 -0
  119. package/dist/mcp-server.js +789 -0
  120. package/dist/mcp-server.js.map +1 -0
  121. package/dist/mcp-server.mjs +784 -0
  122. package/dist/plugins/base-plugin.d.ts +114 -0
  123. package/dist/plugins/base-plugin.d.ts.map +1 -0
  124. package/dist/plugins/base-plugin.js +313 -0
  125. package/dist/plugins/base-plugin.js.map +1 -0
  126. package/dist/plugins/base-plugin.mjs +275 -0
  127. package/dist/plugins/implementations/active-learning.d.ts +135 -0
  128. package/dist/plugins/implementations/active-learning.d.ts.map +1 -0
  129. package/dist/plugins/implementations/active-learning.js +372 -0
  130. package/dist/plugins/implementations/active-learning.js.map +1 -0
  131. package/dist/plugins/implementations/active-learning.mjs +367 -0
  132. package/dist/plugins/implementations/actor-critic.d.ts +64 -0
  133. package/dist/plugins/implementations/actor-critic.d.ts.map +1 -0
  134. package/dist/plugins/implementations/actor-critic.js +363 -0
  135. package/dist/plugins/implementations/actor-critic.js.map +1 -0
  136. package/dist/plugins/implementations/actor-critic.mjs +358 -0
  137. package/dist/plugins/implementations/adversarial-training.d.ts +133 -0
  138. package/dist/plugins/implementations/adversarial-training.d.ts.map +1 -0
  139. package/dist/plugins/implementations/adversarial-training.js +409 -0
  140. package/dist/plugins/implementations/adversarial-training.js.map +1 -0
  141. package/dist/plugins/implementations/adversarial-training.mjs +404 -0
  142. package/dist/plugins/implementations/curriculum-learning.d.ts +132 -0
  143. package/dist/plugins/implementations/curriculum-learning.d.ts.map +1 -0
  144. package/dist/plugins/implementations/curriculum-learning.js +354 -0
  145. package/dist/plugins/implementations/curriculum-learning.js.map +1 -0
  146. package/dist/plugins/implementations/curriculum-learning.mjs +349 -0
  147. package/dist/plugins/implementations/decision-transformer.d.ts +77 -0
  148. package/dist/plugins/implementations/decision-transformer.d.ts.map +1 -0
  149. package/dist/plugins/implementations/decision-transformer.js +422 -0
  150. package/dist/plugins/implementations/decision-transformer.js.map +1 -0
  151. package/dist/plugins/implementations/decision-transformer.mjs +417 -0
  152. package/dist/plugins/implementations/federated-learning.d.ts +126 -0
  153. package/dist/plugins/implementations/federated-learning.d.ts.map +1 -0
  154. package/dist/plugins/implementations/federated-learning.js +436 -0
  155. package/dist/plugins/implementations/federated-learning.js.map +1 -0
  156. package/dist/plugins/implementations/federated-learning.mjs +431 -0
  157. package/dist/plugins/implementations/index.d.ts +30 -0
  158. package/dist/plugins/implementations/index.d.ts.map +1 -0
  159. package/dist/plugins/implementations/index.js +45 -0
  160. package/dist/plugins/implementations/index.js.map +1 -0
  161. package/dist/plugins/implementations/index.mjs +31 -0
  162. package/dist/plugins/implementations/multi-task-learning.d.ts +115 -0
  163. package/dist/plugins/implementations/multi-task-learning.d.ts.map +1 -0
  164. package/dist/plugins/implementations/multi-task-learning.js +369 -0
  165. package/dist/plugins/implementations/multi-task-learning.js.map +1 -0
  166. package/dist/plugins/implementations/multi-task-learning.mjs +364 -0
  167. package/dist/plugins/implementations/neural-architecture-search.d.ts +148 -0
  168. package/dist/plugins/implementations/neural-architecture-search.d.ts.map +1 -0
  169. package/dist/plugins/implementations/neural-architecture-search.js +379 -0
  170. package/dist/plugins/implementations/neural-architecture-search.js.map +1 -0
  171. package/dist/plugins/implementations/neural-architecture-search.mjs +374 -0
  172. package/dist/plugins/implementations/q-learning.d.ts +98 -0
  173. package/dist/plugins/implementations/q-learning.d.ts.map +1 -0
  174. package/dist/plugins/implementations/q-learning.js +435 -0
  175. package/dist/plugins/implementations/q-learning.js.map +1 -0
  176. package/dist/plugins/implementations/q-learning.mjs +430 -0
  177. package/dist/plugins/implementations/sarsa.d.ts +103 -0
  178. package/dist/plugins/implementations/sarsa.d.ts.map +1 -0
  179. package/dist/plugins/implementations/sarsa.js +347 -0
  180. package/dist/plugins/implementations/sarsa.js.map +1 -0
  181. package/dist/plugins/implementations/sarsa.mjs +342 -0
  182. package/dist/plugins/index.d.ts +107 -0
  183. package/dist/plugins/index.d.ts.map +1 -0
  184. package/dist/plugins/index.js +179 -0
  185. package/dist/plugins/index.js.map +1 -0
  186. package/dist/plugins/index.mjs +168 -0
  187. package/dist/plugins/interface.d.ts +439 -0
  188. package/dist/plugins/interface.d.ts.map +1 -0
  189. package/dist/plugins/interface.js +12 -0
  190. package/dist/plugins/interface.js.map +1 -0
  191. package/dist/plugins/interface.mjs +10 -0
  192. package/dist/plugins/learning-plugin.interface.d.ts +257 -0
  193. package/dist/plugins/learning-plugin.interface.d.ts.map +1 -0
  194. package/dist/plugins/learning-plugin.interface.js +7 -0
  195. package/dist/plugins/learning-plugin.interface.js.map +1 -0
  196. package/dist/plugins/learning-plugin.interface.mjs +5 -0
  197. package/dist/plugins/plugin-exports.d.ts +71 -0
  198. package/dist/plugins/plugin-exports.d.ts.map +1 -0
  199. package/dist/plugins/plugin-exports.js +78 -0
  200. package/dist/plugins/plugin-exports.js.map +1 -0
  201. package/dist/plugins/plugin-exports.mjs +69 -0
  202. package/dist/plugins/registry.d.ts +206 -0
  203. package/dist/plugins/registry.d.ts.map +1 -0
  204. package/dist/plugins/registry.js +365 -0
  205. package/dist/plugins/registry.js.map +1 -0
  206. package/dist/plugins/registry.mjs +356 -0
  207. package/dist/plugins/validator.d.ts +63 -0
  208. package/dist/plugins/validator.d.ts.map +1 -0
  209. package/dist/plugins/validator.js +464 -0
  210. package/dist/plugins/validator.js.map +1 -0
  211. package/dist/plugins/validator.mjs +458 -0
  212. package/dist/quantization/binary-quantization.d.ts +104 -0
  213. package/dist/quantization/binary-quantization.d.ts.map +1 -0
  214. package/dist/quantization/binary-quantization.js +246 -0
  215. package/dist/quantization/binary-quantization.js.map +1 -0
  216. package/dist/quantization/binary-quantization.mjs +240 -0
  217. package/dist/quantization/optimized-pq.d.ts +138 -0
  218. package/dist/quantization/optimized-pq.d.ts.map +1 -0
  219. package/dist/quantization/optimized-pq.js +320 -0
  220. package/dist/quantization/optimized-pq.js.map +1 -0
  221. package/dist/quantization/optimized-pq.mjs +313 -0
  222. package/dist/quantization/product-quantization.d.ts +109 -0
  223. package/dist/quantization/product-quantization.d.ts.map +1 -0
  224. package/dist/quantization/product-quantization.js +287 -0
  225. package/dist/quantization/product-quantization.js.map +1 -0
  226. package/dist/quantization/product-quantization.mjs +282 -0
  227. package/dist/quantization/scalar-quantization.d.ts +100 -0
  228. package/dist/quantization/scalar-quantization.d.ts.map +1 -0
  229. package/dist/quantization/scalar-quantization.js +324 -0
  230. package/dist/quantization/scalar-quantization.js.map +1 -0
  231. package/dist/quantization/scalar-quantization.mjs +319 -0
  232. package/dist/query/index.d.ts +6 -0
  233. package/dist/query/index.d.ts.map +1 -0
  234. package/dist/query/index.js +9 -0
  235. package/dist/query/index.js.map +1 -0
  236. package/dist/query/index.mjs +4 -0
  237. package/dist/query/query-builder.d.ts +323 -0
  238. package/dist/query/query-builder.d.ts.map +1 -0
  239. package/dist/query/query-builder.js +524 -0
  240. package/dist/query/query-builder.js.map +1 -0
  241. package/dist/query/query-builder.mjs +519 -0
  242. package/dist/reasoning/context-synthesizer.d.ts +57 -0
  243. package/dist/reasoning/context-synthesizer.d.ts.map +1 -0
  244. package/dist/reasoning/context-synthesizer.js +224 -0
  245. package/dist/reasoning/context-synthesizer.js.map +1 -0
  246. package/dist/reasoning/context-synthesizer.mjs +219 -0
  247. package/dist/reasoning/experience-curator.d.ts +66 -0
  248. package/dist/reasoning/experience-curator.d.ts.map +1 -0
  249. package/dist/reasoning/experience-curator.js +288 -0
  250. package/dist/reasoning/experience-curator.js.map +1 -0
  251. package/dist/reasoning/experience-curator.mjs +283 -0
  252. package/dist/reasoning/memory-optimizer.d.ts +69 -0
  253. package/dist/reasoning/memory-optimizer.d.ts.map +1 -0
  254. package/dist/reasoning/memory-optimizer.js +331 -0
  255. package/dist/reasoning/memory-optimizer.js.map +1 -0
  256. package/dist/reasoning/memory-optimizer.mjs +326 -0
  257. package/dist/reasoning/pattern-matcher.d.ts +59 -0
  258. package/dist/reasoning/pattern-matcher.d.ts.map +1 -0
  259. package/dist/reasoning/pattern-matcher.js +229 -0
  260. package/dist/reasoning/pattern-matcher.js.map +1 -0
  261. package/dist/reasoning/pattern-matcher.mjs +224 -0
  262. package/dist/reasoningbank/adapter/agentdb-adapter.d.ts +118 -0
  263. package/dist/reasoningbank/adapter/agentdb-adapter.d.ts.map +1 -0
  264. package/dist/reasoningbank/adapter/agentdb-adapter.js +477 -0
  265. package/dist/reasoningbank/adapter/agentdb-adapter.js.map +1 -0
  266. package/dist/reasoningbank/adapter/types.d.ts +113 -0
  267. package/dist/reasoningbank/adapter/types.d.ts.map +1 -0
  268. package/dist/reasoningbank/adapter/types.js +9 -0
  269. package/dist/reasoningbank/adapter/types.js.map +1 -0
  270. package/dist/reasoningbank/cli/commands.d.ts +16 -0
  271. package/dist/reasoningbank/cli/commands.d.ts.map +1 -0
  272. package/dist/reasoningbank/cli/commands.js +272 -0
  273. package/dist/reasoningbank/cli/commands.js.map +1 -0
  274. package/dist/reasoningbank/mcp/agentdb-tools.d.ts +319 -0
  275. package/dist/reasoningbank/mcp/agentdb-tools.d.ts.map +1 -0
  276. package/dist/reasoningbank/mcp/agentdb-tools.js +301 -0
  277. package/dist/reasoningbank/mcp/agentdb-tools.js.map +1 -0
  278. package/dist/reasoningbank/migration/migrate.d.ts +25 -0
  279. package/dist/reasoningbank/migration/migrate.d.ts.map +1 -0
  280. package/dist/reasoningbank/migration/migrate.js +178 -0
  281. package/dist/reasoningbank/migration/migrate.js.map +1 -0
  282. package/dist/reasoningbank/reasoning/context-synthesizer.d.ts +37 -0
  283. package/dist/reasoningbank/reasoning/context-synthesizer.d.ts.map +1 -0
  284. package/dist/reasoningbank/reasoning/context-synthesizer.js +114 -0
  285. package/dist/reasoningbank/reasoning/context-synthesizer.js.map +1 -0
  286. package/dist/reasoningbank/reasoning/experience-curator.d.ts +39 -0
  287. package/dist/reasoningbank/reasoning/experience-curator.d.ts.map +1 -0
  288. package/dist/reasoningbank/reasoning/experience-curator.js +98 -0
  289. package/dist/reasoningbank/reasoning/experience-curator.js.map +1 -0
  290. package/dist/reasoningbank/reasoning/memory-optimizer.d.ts +44 -0
  291. package/dist/reasoningbank/reasoning/memory-optimizer.d.ts.map +1 -0
  292. package/dist/reasoningbank/reasoning/memory-optimizer.js +184 -0
  293. package/dist/reasoningbank/reasoning/memory-optimizer.js.map +1 -0
  294. package/dist/reasoningbank/reasoning/pattern-matcher.d.ts +40 -0
  295. package/dist/reasoningbank/reasoning/pattern-matcher.d.ts.map +1 -0
  296. package/dist/reasoningbank/reasoning/pattern-matcher.js +87 -0
  297. package/dist/reasoningbank/reasoning/pattern-matcher.js.map +1 -0
  298. package/dist/reasoningbank/sync/quic-sync.d.ts +77 -0
  299. package/dist/reasoningbank/sync/quic-sync.d.ts.map +1 -0
  300. package/dist/reasoningbank/sync/quic-sync.js +165 -0
  301. package/dist/reasoningbank/sync/quic-sync.js.map +1 -0
  302. package/dist/sync/conflict.d.ts +78 -0
  303. package/dist/sync/conflict.d.ts.map +1 -0
  304. package/dist/sync/conflict.js +202 -0
  305. package/dist/sync/conflict.js.map +1 -0
  306. package/dist/sync/conflict.mjs +196 -0
  307. package/dist/sync/coordinator.d.ts +111 -0
  308. package/dist/sync/coordinator.d.ts.map +1 -0
  309. package/dist/sync/coordinator.js +256 -0
  310. package/dist/sync/coordinator.js.map +1 -0
  311. package/dist/sync/coordinator.mjs +250 -0
  312. package/dist/sync/delta.d.ts +81 -0
  313. package/dist/sync/delta.d.ts.map +1 -0
  314. package/dist/sync/delta.js +245 -0
  315. package/dist/sync/delta.js.map +1 -0
  316. package/dist/sync/delta.mjs +238 -0
  317. package/dist/sync/index.d.ts +11 -0
  318. package/dist/sync/index.d.ts.map +1 -0
  319. package/dist/sync/index.js +22 -0
  320. package/dist/sync/index.js.map +1 -0
  321. package/dist/sync/index.mjs +9 -0
  322. package/dist/sync/quic-sync.d.ts +81 -0
  323. package/dist/sync/quic-sync.d.ts.map +1 -0
  324. package/dist/sync/quic-sync.js +329 -0
  325. package/dist/sync/quic-sync.js.map +1 -0
  326. package/dist/sync/quic-sync.mjs +323 -0
  327. package/dist/sync/types.d.ts +168 -0
  328. package/dist/sync/types.d.ts.map +1 -0
  329. package/dist/sync/types.js +8 -0
  330. package/dist/sync/types.js.map +1 -0
  331. package/dist/sync/types.mjs +6 -0
  332. package/dist/types/index.d.ts +117 -0
  333. package/dist/types/index.d.ts.map +1 -0
  334. package/dist/types/index.js +6 -0
  335. package/dist/types/index.js.map +1 -0
  336. package/dist/types/index.mjs +4 -0
  337. package/dist/wasm-loader.d.ts +32 -0
  338. package/dist/wasm-loader.d.ts.map +1 -0
  339. package/dist/wasm-loader.js +75 -0
  340. package/dist/wasm-loader.js.map +1 -0
  341. package/dist/wasm-loader.mjs +64 -0
  342. package/examples/adaptive-learning.ts +284 -0
  343. package/examples/browser/README.md +732 -0
  344. package/examples/browser/adaptive-recommendations/index.html +427 -0
  345. package/examples/browser/collaborative-filtering/index.html +310 -0
  346. package/examples/browser/continual-learning/index.html +736 -0
  347. package/examples/browser/experience-replay/index.html +616 -0
  348. package/examples/browser/index.html +369 -0
  349. package/examples/browser/meta-learning/index.html +789 -0
  350. package/examples/browser/neuro-symbolic/index.html +692 -0
  351. package/examples/browser/pattern-learning/index.html +620 -0
  352. package/examples/browser/quantum-inspired/index.html +728 -0
  353. package/examples/browser/rag/index.html +624 -0
  354. package/examples/browser/swarm-intelligence/index.html +811 -0
  355. package/examples/browser-basic.html +170 -0
  356. package/examples/hnsw-example.ts +148 -0
  357. package/examples/node-basic.js +70 -0
  358. package/examples/quic-sync-example.ts +310 -0
  359. package/examples/quick-start.js +68 -0
  360. package/examples/wasm-example.ts +222 -0
  361. package/package.json +118 -0
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+ /**
3
+ * Core SQLiteVector database implementation with backend abstraction
4
+ * Supports both native (better-sqlite3) and WASM (sql.js) backends
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ var __generator = (this && this.__generator) || function (thisArg, body) {
16
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
18
+ function verb(n) { return function (v) { return step([n, v]); }; }
19
+ function step(op) {
20
+ if (f) throw new TypeError("Generator is already executing.");
21
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
22
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
23
+ if (y = 0, t) op = [op[0] & 2, t.value];
24
+ switch (op[0]) {
25
+ case 0: case 1: t = op; break;
26
+ case 4: _.label++; return { value: op[1], done: false };
27
+ case 5: _.label++; y = op[1]; op = [0]; continue;
28
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
29
+ default:
30
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
31
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
32
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
33
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
34
+ if (t[2]) _.ops.pop();
35
+ _.trys.pop(); continue;
36
+ }
37
+ op = body.call(thisArg, _);
38
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
39
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40
+ }
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.SQLiteVectorDB = void 0;
44
+ var backend_interface_1 = require("./backend-interface");
45
+ var native_backend_1 = require("./native-backend");
46
+ var wasm_backend_1 = require("./wasm-backend");
47
+ var query_cache_1 = require("../cache/query-cache");
48
+ var product_quantization_1 = require("../quantization/product-quantization");
49
+ var query_builder_1 = require("../query/query-builder");
50
+ var SQLiteVectorDB = /** @class */ (function () {
51
+ function SQLiteVectorDB(config) {
52
+ if (config === void 0) { config = {}; }
53
+ var _a, _b;
54
+ // If path is provided but memoryMode not specified, default to file mode
55
+ if (config.path && config.memoryMode === undefined) {
56
+ config.memoryMode = false;
57
+ }
58
+ // Determine backend type
59
+ this.backendType = this.detectBackend(config);
60
+ // Create appropriate backend
61
+ this.backend = this.createBackend(this.backendType);
62
+ // Initialize query cache if enabled
63
+ if (((_a = config.queryCache) === null || _a === void 0 ? void 0 : _a.enabled) !== false) {
64
+ this.queryCache = new query_cache_1.QueryCache(config.queryCache);
65
+ }
66
+ // Initialize quantizer if enabled
67
+ if ((_b = config.quantization) === null || _b === void 0 ? void 0 : _b.enabled) {
68
+ this.quantizer = new product_quantization_1.ProductQuantizer(config.quantization);
69
+ }
70
+ // Initialize backend
71
+ if (this.backendType === backend_interface_1.BackendType.WASM) {
72
+ // WASM backend requires async initialization
73
+ // Store config for later async init
74
+ this.backend._pendingConfig = config;
75
+ }
76
+ else {
77
+ // Native backend can initialize synchronously
78
+ this.backend.initialize(config);
79
+ }
80
+ }
81
+ /**
82
+ * Detect appropriate backend based on environment and configuration
83
+ */
84
+ SQLiteVectorDB.prototype.detectBackend = function (config) {
85
+ // Explicit backend selection
86
+ if (config.backend) {
87
+ return config.backend;
88
+ }
89
+ // Auto-detect based on environment
90
+ if (typeof window !== 'undefined' || typeof process === 'undefined') {
91
+ // Browser environment
92
+ return backend_interface_1.BackendType.WASM;
93
+ }
94
+ // Node.js environment - check if better-sqlite3 is available
95
+ try {
96
+ require.resolve('better-sqlite3');
97
+ return backend_interface_1.BackendType.NATIVE;
98
+ }
99
+ catch (_a) {
100
+ return backend_interface_1.BackendType.WASM;
101
+ }
102
+ };
103
+ /**
104
+ * Create backend instance
105
+ */
106
+ SQLiteVectorDB.prototype.createBackend = function (type) {
107
+ switch (type) {
108
+ case backend_interface_1.BackendType.NATIVE:
109
+ return new native_backend_1.NativeBackend();
110
+ case backend_interface_1.BackendType.WASM:
111
+ return new wasm_backend_1.WasmBackend();
112
+ default:
113
+ throw new Error("Unsupported backend type: ".concat(type));
114
+ }
115
+ };
116
+ /**
117
+ * Async initialization for WASM backend
118
+ * Must be called after constructor if using WASM backend
119
+ */
120
+ SQLiteVectorDB.prototype.initializeAsync = function (config) {
121
+ return __awaiter(this, void 0, void 0, function () {
122
+ var wasmBackend, finalConfig;
123
+ return __generator(this, function (_a) {
124
+ switch (_a.label) {
125
+ case 0:
126
+ if (!(this.backendType === backend_interface_1.BackendType.WASM)) return [3 /*break*/, 2];
127
+ wasmBackend = this.backend;
128
+ finalConfig = config || wasmBackend._pendingConfig || {};
129
+ return [4 /*yield*/, wasmBackend.initializeAsync(finalConfig)];
130
+ case 1:
131
+ _a.sent();
132
+ delete wasmBackend._pendingConfig;
133
+ _a.label = 2;
134
+ case 2: return [2 /*return*/];
135
+ }
136
+ });
137
+ });
138
+ };
139
+ /**
140
+ * Get backend type
141
+ */
142
+ SQLiteVectorDB.prototype.getBackendType = function () {
143
+ return this.backendType;
144
+ };
145
+ /**
146
+ * Check if backend is initialized
147
+ */
148
+ SQLiteVectorDB.prototype.isInitialized = function () {
149
+ if (this.backendType === backend_interface_1.BackendType.WASM) {
150
+ return this.backend.isInitialized();
151
+ }
152
+ return this.backend.isInitialized();
153
+ };
154
+ /**
155
+ * Insert a single vector
156
+ */
157
+ SQLiteVectorDB.prototype.insert = function (vector) {
158
+ return this.backend.insert(vector);
159
+ };
160
+ /**
161
+ * Insert multiple vectors in a transaction
162
+ */
163
+ SQLiteVectorDB.prototype.insertBatch = function (vectors) {
164
+ return this.backend.insertBatch(vectors);
165
+ };
166
+ /**
167
+ * Search for k-nearest neighbors with optional caching
168
+ */
169
+ SQLiteVectorDB.prototype.search = function (queryEmbedding, k, metric, threshold) {
170
+ if (k === void 0) { k = 5; }
171
+ if (metric === void 0) { metric = 'cosine'; }
172
+ if (threshold === void 0) { threshold = 0.0; }
173
+ // Check cache if enabled
174
+ if (this.queryCache) {
175
+ var cacheKey = query_cache_1.QueryCache.generateKey(queryEmbedding, k, metric, threshold);
176
+ var cached = this.queryCache.get(cacheKey);
177
+ if (cached) {
178
+ return cached;
179
+ }
180
+ // Cache miss - perform search and cache result
181
+ var results = this.backend.search(queryEmbedding, k, metric, threshold);
182
+ this.queryCache.set(cacheKey, results);
183
+ return results;
184
+ }
185
+ // No cache - perform search directly
186
+ return this.backend.search(queryEmbedding, k, metric, threshold);
187
+ };
188
+ /**
189
+ * Get vector by ID
190
+ */
191
+ SQLiteVectorDB.prototype.get = function (id) {
192
+ return this.backend.get(id);
193
+ };
194
+ /**
195
+ * Delete vector by ID
196
+ */
197
+ SQLiteVectorDB.prototype.delete = function (id) {
198
+ return this.backend.delete(id);
199
+ };
200
+ /**
201
+ * Get database statistics
202
+ */
203
+ SQLiteVectorDB.prototype.stats = function () {
204
+ return this.backend.stats();
205
+ };
206
+ /**
207
+ * Close database connection
208
+ */
209
+ SQLiteVectorDB.prototype.close = function () {
210
+ this.backend.close();
211
+ };
212
+ /**
213
+ * Export database to binary format (WASM only)
214
+ */
215
+ SQLiteVectorDB.prototype.export = function () {
216
+ if (this.backend.export) {
217
+ return this.backend.export();
218
+ }
219
+ throw new Error('Export not supported by current backend');
220
+ };
221
+ /**
222
+ * Import database from binary format (WASM only)
223
+ */
224
+ SQLiteVectorDB.prototype.importAsync = function (data) {
225
+ return __awaiter(this, void 0, void 0, function () {
226
+ return __generator(this, function (_a) {
227
+ switch (_a.label) {
228
+ case 0:
229
+ if (!(this.backendType === backend_interface_1.BackendType.WASM)) return [3 /*break*/, 2];
230
+ return [4 /*yield*/, this.backend.importAsync(data)];
231
+ case 1:
232
+ _a.sent();
233
+ return [3 /*break*/, 3];
234
+ case 2: throw new Error('Import not supported by native backend');
235
+ case 3: return [2 /*return*/];
236
+ }
237
+ });
238
+ });
239
+ };
240
+ /**
241
+ * Get raw backend instance (for advanced usage)
242
+ */
243
+ SQLiteVectorDB.prototype.getBackend = function () {
244
+ return this.backend;
245
+ };
246
+ /**
247
+ * Get raw database instance (for advanced usage with native backend)
248
+ * @deprecated Use getBackend() instead for cross-backend compatibility
249
+ */
250
+ SQLiteVectorDB.prototype.getDatabase = function () {
251
+ if (this.backendType === backend_interface_1.BackendType.NATIVE) {
252
+ return this.backend.getDatabase();
253
+ }
254
+ throw new Error('getDatabase() only supported on native backend. Use getBackend() instead.');
255
+ };
256
+ /**
257
+ * Get query cache instance
258
+ */
259
+ SQLiteVectorDB.prototype.getQueryCache = function () {
260
+ return this.queryCache;
261
+ };
262
+ /**
263
+ * Get query cache statistics
264
+ */
265
+ SQLiteVectorDB.prototype.getCacheStats = function () {
266
+ var _a;
267
+ return (_a = this.queryCache) === null || _a === void 0 ? void 0 : _a.getStats();
268
+ };
269
+ /**
270
+ * Clear query cache
271
+ */
272
+ SQLiteVectorDB.prototype.clearCache = function () {
273
+ var _a;
274
+ (_a = this.queryCache) === null || _a === void 0 ? void 0 : _a.clear();
275
+ };
276
+ /**
277
+ * Get quantizer instance
278
+ */
279
+ SQLiteVectorDB.prototype.getQuantizer = function () {
280
+ return this.quantizer;
281
+ };
282
+ /**
283
+ * Train quantizer with existing vectors
284
+ */
285
+ SQLiteVectorDB.prototype.trainQuantizer = function () {
286
+ return __awaiter(this, void 0, void 0, function () {
287
+ var allStats, vectors;
288
+ return __generator(this, function (_a) {
289
+ switch (_a.label) {
290
+ case 0:
291
+ if (!this.quantizer) {
292
+ throw new Error('Quantization not enabled');
293
+ }
294
+ allStats = this.stats();
295
+ if (allStats.count === 0) {
296
+ throw new Error('No vectors to train quantizer');
297
+ }
298
+ vectors = [];
299
+ // Note: This would need backend support to efficiently fetch all embeddings
300
+ console.log('Training quantizer with existing vectors...');
301
+ return [4 /*yield*/, this.quantizer.train(vectors)];
302
+ case 1:
303
+ _a.sent();
304
+ console.log('Quantizer training complete');
305
+ return [2 /*return*/];
306
+ }
307
+ });
308
+ });
309
+ };
310
+ /**
311
+ * Get compression statistics (if quantization enabled)
312
+ */
313
+ SQLiteVectorDB.prototype.getCompressionStats = function () {
314
+ var _a;
315
+ return (_a = this.quantizer) === null || _a === void 0 ? void 0 : _a.getStats();
316
+ };
317
+ /**
318
+ * Create a fluent query builder for complex queries
319
+ *
320
+ * @returns VectorQueryBuilder instance
321
+ *
322
+ * @example
323
+ * ```typescript
324
+ * const results = await db.query()
325
+ * .similarTo(queryVector)
326
+ * .where('metadata.category', '=', 'tech')
327
+ * .whereBetween('metadata.year', 2020, 2024)
328
+ * .orderBySimilarity('desc')
329
+ * .limit(10)
330
+ * .execute();
331
+ * ```
332
+ */
333
+ SQLiteVectorDB.prototype.query = function () {
334
+ return new query_builder_1.VectorQueryBuilder(this);
335
+ };
336
+ return SQLiteVectorDB;
337
+ }());
338
+ exports.SQLiteVectorDB = SQLiteVectorDB;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * WASM backend implementation using sql.js
3
+ * Provides browser-compatible vector database operations
4
+ */
5
+ import { Vector, SearchResult, SimilarityMetric, DatabaseConfig } from '../types';
6
+ import { VectorBackend } from './backend-interface';
7
+ /**
8
+ * WASM backend using sql.js
9
+ * Runs in both Node.js and browser environments
10
+ */
11
+ export declare class WasmBackend implements VectorBackend {
12
+ private SQL;
13
+ private db;
14
+ private initialized;
15
+ /**
16
+ * Initialize the WASM backend
17
+ */
18
+ initializeAsync(config?: DatabaseConfig): Promise<void>;
19
+ /**
20
+ * Synchronous initialization (throws if not already initialized)
21
+ */
22
+ initialize(config?: DatabaseConfig): void;
23
+ /**
24
+ * Initialize database schema
25
+ */
26
+ private initializeSchema;
27
+ /**
28
+ * Register custom SQL functions for similarity calculations
29
+ */
30
+ private registerCustomFunctions;
31
+ /**
32
+ * Calculate L2 norm of a vector
33
+ */
34
+ private calculateNorm;
35
+ /**
36
+ * Serialize embedding to Uint8Array (binary format)
37
+ */
38
+ private serializeEmbedding;
39
+ /**
40
+ * Deserialize embedding from Uint8Array
41
+ */
42
+ private deserializeEmbedding;
43
+ /**
44
+ * Generate unique ID
45
+ */
46
+ private generateId;
47
+ /**
48
+ * Insert a single vector
49
+ */
50
+ insert(vector: Vector): string;
51
+ /**
52
+ * Insert multiple vectors in a transaction with optimized batch processing
53
+ * Performance improvements:
54
+ * - Single transaction for all inserts
55
+ * - Prepared statement created once and reused
56
+ * - No wrapper function overhead
57
+ * - Chunked processing for large batches
58
+ */
59
+ insertBatch(vectors: Vector[]): string[];
60
+ /**
61
+ * Search for k-nearest neighbors
62
+ */
63
+ search(queryEmbedding: number[], k?: number, metric?: SimilarityMetric, threshold?: number): SearchResult[];
64
+ /**
65
+ * Get vector by ID
66
+ */
67
+ get(id: string): Vector | null;
68
+ /**
69
+ * Delete vector by ID
70
+ */
71
+ delete(id: string): boolean;
72
+ /**
73
+ * Get database statistics
74
+ */
75
+ stats(): {
76
+ count: number;
77
+ size: number;
78
+ };
79
+ /**
80
+ * Export database to binary format (for persistence)
81
+ */
82
+ export(): Uint8Array;
83
+ /**
84
+ * Import database from binary format
85
+ */
86
+ importAsync(data: Uint8Array): Promise<void>;
87
+ /**
88
+ * Close database and cleanup resources
89
+ */
90
+ close(): void;
91
+ /**
92
+ * Check if backend is initialized
93
+ */
94
+ isInitialized(): boolean;
95
+ }