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,68 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Quick Start Example
5
+ *
6
+ * Demonstrates basic usage of sqlite-vector
7
+ */
8
+
9
+ const { SqliteVectorDB, Presets } = require('../dist/index.js');
10
+
11
+ async function main() {
12
+ console.log('🚀 SQLiteVector Quick Start\n');
13
+
14
+ // 1. Create in-memory database
15
+ console.log('1️⃣ Creating in-memory database...');
16
+ const db = await SqliteVectorDB.new(Presets.inMemory(128));
17
+ console.log(' ✅ Database created\n');
18
+
19
+ // 2. Insert some vectors
20
+ console.log('2️⃣ Inserting vectors...');
21
+ const vectors = Array.from({ length: 100 }, (_, i) => ({
22
+ data: Array(128).fill(0).map(() => Math.random()),
23
+ metadata: { id: i, type: 'example' }
24
+ }));
25
+
26
+ const insertResult = await db.insertBatch(vectors);
27
+ console.log(` ✅ Inserted ${insertResult.inserted.length} vectors in ${insertResult.totalTimeMs}ms\n`);
28
+
29
+ // 3. Search for similar vectors
30
+ console.log('3️⃣ Searching for similar vectors...');
31
+ const queryVector = Array(128).fill(0).map(() => Math.random());
32
+
33
+ const startTime = Date.now();
34
+ const results = await db.search({ data: queryVector }, 5, 'cosine', 0.0);
35
+ const searchTime = Date.now() - startTime;
36
+
37
+ console.log(` ✅ Found ${results.length} results in ${searchTime}ms`);
38
+ console.log(' Top result:');
39
+ console.log(` - Similarity: ${results[0].similarity.toFixed(4)}`);
40
+ console.log(` - Metadata: ${JSON.stringify(results[0].metadata)}\n`);
41
+
42
+ // 4. Get statistics
43
+ console.log('4️⃣ Database statistics:');
44
+ const stats = await db.getStats();
45
+ console.log(` - Total vectors: ${stats.totalVectors}`);
46
+ console.log(` - Dimension: ${stats.dimension}`);
47
+ console.log(` - Mode: ${stats.mode}`);
48
+ console.log(` - Memory usage: ${(stats.memoryUsageBytes / 1024 / 1024).toFixed(2)} MB`);
49
+ console.log(` - Avg search latency: ${stats.performance.avgSearchLatencyUs.toFixed(0)} μs\n`);
50
+
51
+ // 5. Close database
52
+ console.log('5️⃣ Closing database...');
53
+ await db.close();
54
+ console.log(' ✅ Database closed\n');
55
+
56
+ console.log('✨ Quick start complete!\n');
57
+ console.log('Next steps:');
58
+ console.log(' - Read the README: https://github.com/ruvnet/agentic-flow/tree/main/packages/sqlite-vector');
59
+ console.log(' - Try persistent storage: Presets.smallDataset(128, "./vectors.db")');
60
+ console.log(' - Enable QUIC sync: Presets.withQuicSync(128, "./synced.db", "127.0.0.1:4433")');
61
+ console.log(' - Explore ReasoningBank: Presets.withReasoningBank(128, "./reasoning.db")');
62
+ console.log('');
63
+ }
64
+
65
+ main().catch(error => {
66
+ console.error('❌ Error:', error.message);
67
+ process.exit(1);
68
+ });
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Example: Using SQLiteVector with WASM backend
3
+ *
4
+ * This example demonstrates:
5
+ * - WASM backend initialization
6
+ * - Vector insertion and search
7
+ * - Import/Export for persistence
8
+ * - Performance benchmarking
9
+ */
10
+
11
+ import { SQLiteVectorDB, BackendType, WasmBackend } from '../src/index';
12
+
13
+ async function basicUsage() {
14
+ console.log('=== Basic WASM Backend Usage ===\n');
15
+
16
+ // Create database with WASM backend
17
+ const db = new SQLiteVectorDB({
18
+ backend: BackendType.WASM
19
+ });
20
+
21
+ // WASM requires async initialization
22
+ await db.initializeAsync();
23
+ console.log('✓ Database initialized');
24
+
25
+ // Insert vectors
26
+ const vectors = [
27
+ { id: 'vec1', embedding: [1.0, 0.0, 0.0], metadata: { label: 'x-axis' } },
28
+ { id: 'vec2', embedding: [0.0, 1.0, 0.0], metadata: { label: 'y-axis' } },
29
+ { id: 'vec3', embedding: [0.0, 0.0, 1.0], metadata: { label: 'z-axis' } },
30
+ { id: 'vec4', embedding: [0.7, 0.7, 0.0], metadata: { label: 'diagonal' } }
31
+ ];
32
+
33
+ const ids = db.insertBatch(vectors);
34
+ console.log(`✓ Inserted ${ids.length} vectors`);
35
+
36
+ // Search for similar vectors
37
+ const query = [1.0, 0.0, 0.0];
38
+ const results = db.search(query, 3, 'cosine', 0.0);
39
+
40
+ console.log('\nSearch results for [1.0, 0.0, 0.0]:');
41
+ results.forEach((result, i) => {
42
+ console.log(` ${i + 1}. ${result.id} - Score: ${result.score.toFixed(4)} - ${result.metadata?.label}`);
43
+ });
44
+
45
+ // Get statistics
46
+ const stats = db.stats();
47
+ console.log(`\nDatabase stats: ${stats.count} vectors, ${(stats.size / 1024).toFixed(2)} KB`);
48
+
49
+ db.close();
50
+ console.log('✓ Database closed\n');
51
+ }
52
+
53
+ async function persistenceExample() {
54
+ console.log('=== Persistence with Import/Export ===\n');
55
+
56
+ // Create and populate database
57
+ const db = new SQLiteVectorDB({ backend: BackendType.WASM });
58
+ await db.initializeAsync();
59
+
60
+ const vectors = Array.from({ length: 100 }, (_, i) => ({
61
+ embedding: [Math.random(), Math.random(), Math.random()],
62
+ metadata: { index: i }
63
+ }));
64
+
65
+ db.insertBatch(vectors);
66
+ console.log('✓ Inserted 100 vectors');
67
+
68
+ // Export to binary
69
+ const binary = db.export();
70
+ console.log(`✓ Exported database: ${binary.byteLength} bytes`);
71
+
72
+ db.close();
73
+
74
+ // Import to new database
75
+ const newDb = new SQLiteVectorDB({ backend: BackendType.WASM });
76
+ await newDb.importAsync(binary);
77
+ console.log('✓ Imported database');
78
+
79
+ const stats = newDb.stats();
80
+ console.log(`✓ Verified: ${stats.count} vectors restored\n`);
81
+
82
+ newDb.close();
83
+ }
84
+
85
+ async function performanceBenchmark() {
86
+ console.log('=== Performance Benchmark ===\n');
87
+
88
+ const db = new SQLiteVectorDB({ backend: BackendType.WASM });
89
+ await db.initializeAsync();
90
+
91
+ // Benchmark: Batch insert
92
+ const insertSize = 1000;
93
+ const vectors = Array.from({ length: insertSize }, (_, i) => ({
94
+ embedding: Array.from({ length: 384 }, () => Math.random())
95
+ }));
96
+
97
+ const insertStart = performance.now();
98
+ db.insertBatch(vectors);
99
+ const insertDuration = performance.now() - insertStart;
100
+
101
+ console.log(`Batch Insert (${insertSize} vectors, 384-dim):`);
102
+ console.log(` Total time: ${insertDuration.toFixed(2)}ms`);
103
+ console.log(` Rate: ${(insertSize / (insertDuration / 1000)).toFixed(0)} vectors/sec`);
104
+
105
+ // Benchmark: Search
106
+ const searchIterations = 100;
107
+ const query = Array.from({ length: 384 }, () => Math.random());
108
+
109
+ const searchStart = performance.now();
110
+ for (let i = 0; i < searchIterations; i++) {
111
+ db.search(query, 10, 'cosine', 0.0);
112
+ }
113
+ const searchDuration = performance.now() - searchStart;
114
+
115
+ console.log(`\nSearch (${searchIterations} iterations, k=10):`);
116
+ console.log(` Avg time: ${(searchDuration / searchIterations).toFixed(2)}ms`);
117
+ console.log(` Rate: ${(searchIterations / (searchDuration / 1000)).toFixed(0)} searches/sec`);
118
+
119
+ // Memory usage
120
+ const stats = db.stats();
121
+ console.log(`\nMemory usage: ${(stats.size / (1024 * 1024)).toFixed(2)} MB`);
122
+
123
+ db.close();
124
+ }
125
+
126
+ async function similarityComparison() {
127
+ console.log('\n=== Similarity Metrics Comparison ===\n');
128
+
129
+ const db = new SQLiteVectorDB({ backend: BackendType.WASM });
130
+ await db.initializeAsync();
131
+
132
+ // Insert test vectors
133
+ const vectors = [
134
+ { id: 'parallel', embedding: [1.0, 1.0, 1.0] },
135
+ { id: 'orthogonal', embedding: [1.0, -1.0, 0.0] },
136
+ { id: 'opposite', embedding: [-1.0, -1.0, -1.0] },
137
+ { id: 'similar', embedding: [0.9, 0.9, 0.9] }
138
+ ];
139
+
140
+ db.insertBatch(vectors);
141
+
142
+ const query = [1.0, 1.0, 1.0];
143
+
144
+ // Compare metrics
145
+ console.log('Query: [1.0, 1.0, 1.0]\n');
146
+
147
+ const cosineResults = db.search(query, 4, 'cosine', 0.0);
148
+ console.log('Cosine Similarity:');
149
+ cosineResults.forEach(r => {
150
+ console.log(` ${r.id.padEnd(12)} - ${r.score.toFixed(4)}`);
151
+ });
152
+
153
+ const euclideanResults = db.search(query, 4, 'euclidean', 0.0);
154
+ console.log('\nEuclidean Distance:');
155
+ euclideanResults.forEach(r => {
156
+ console.log(` ${r.id.padEnd(12)} - ${r.score.toFixed(4)}`);
157
+ });
158
+
159
+ const dotResults = db.search(query, 4, 'dot', 0.0);
160
+ console.log('\nDot Product:');
161
+ dotResults.forEach(r => {
162
+ console.log(` ${r.id.padEnd(12)} - ${r.score.toFixed(4)}`);
163
+ });
164
+
165
+ db.close();
166
+ console.log();
167
+ }
168
+
169
+ async function directBackendUsage() {
170
+ console.log('\n=== Direct WASM Backend Usage ===\n');
171
+
172
+ // Use WasmBackend directly for more control
173
+ const backend = new WasmBackend();
174
+ await backend.initializeAsync({
175
+ cacheSize: 50 * 1024, // 50MB cache
176
+ memoryMode: true
177
+ });
178
+
179
+ console.log('✓ WASM backend initialized');
180
+
181
+ // All operations same as unified API
182
+ const id = backend.insert({
183
+ embedding: [1, 2, 3, 4, 5],
184
+ metadata: { type: 'test' }
185
+ });
186
+
187
+ const vector = backend.get(id);
188
+ console.log(`✓ Retrieved vector: ${vector?.embedding.slice(0, 5)}`);
189
+
190
+ const results = backend.search([1, 2, 3, 4, 5], 1, 'cosine', 0.0);
191
+ console.log(`✓ Search found ${results.length} results`);
192
+
193
+ backend.close();
194
+ console.log('✓ Backend closed\n');
195
+ }
196
+
197
+ // Run all examples
198
+ async function main() {
199
+ console.log('SQLiteVector WASM Backend Examples\n');
200
+ console.log('===================================\n');
201
+
202
+ try {
203
+ await basicUsage();
204
+ await persistenceExample();
205
+ await performanceBenchmark();
206
+ await similarityComparison();
207
+ await directBackendUsage();
208
+
209
+ console.log('===================================\n');
210
+ console.log('✓ All examples completed successfully!');
211
+ } catch (error) {
212
+ console.error('Error:', error);
213
+ process.exit(1);
214
+ }
215
+ }
216
+
217
+ // Run if executed directly
218
+ if (require.main === module) {
219
+ main();
220
+ }
221
+
222
+ export { main };
package/package.json ADDED
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "agentdb",
3
+ "version": "1.0.0",
4
+ "description": "Ultra-fast agent memory and vector database with ReasoningBank for AI agents. Built on SQLite with QUIC sync. From ruv.io - Advanced AI Infrastructure.",
5
+ "keywords": [
6
+ "agent",
7
+ "agentdb",
8
+ "agent-memory",
9
+ "vector",
10
+ "database",
11
+ "sqlite",
12
+ "embeddings",
13
+ "ai",
14
+ "wasm",
15
+ "quic",
16
+ "similarity-search",
17
+ "machine-learning",
18
+ "vector-database",
19
+ "semantic-search",
20
+ "agentic",
21
+ "claude",
22
+ "mcp",
23
+ "reasoning",
24
+ "memory",
25
+ "rag",
26
+ "ruv",
27
+ "ruvnet"
28
+ ],
29
+ "author": "rUv (@ruvnet) <team@agentic-flow.dev>",
30
+ "license": "MIT OR Apache-2.0",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/ruvnet/agentic-flow.git",
34
+ "directory": "packages/agentdb"
35
+ },
36
+ "bugs": {
37
+ "url": "https://github.com/ruvnet/agentic-flow/issues"
38
+ },
39
+ "homepage": "https://ruv.io",
40
+ "main": "dist/index.js",
41
+ "module": "dist/index.mjs",
42
+ "types": "dist/index.d.ts",
43
+ "bin": {
44
+ "agentdb": "./bin/agentdb.js"
45
+ },
46
+ "exports": {
47
+ ".": {
48
+ "types": "./dist/index.d.ts",
49
+ "import": "./dist/index.mjs",
50
+ "require": "./dist/index.js"
51
+ },
52
+ "./package.json": "./package.json"
53
+ },
54
+ "files": [
55
+ "dist",
56
+ "bin",
57
+ "examples",
58
+ "README.md",
59
+ "LICENSE-MIT",
60
+ "LICENSE-APACHE"
61
+ ],
62
+ "scripts": {
63
+ "prepack": "npm run build",
64
+ "build": "npm run build:ts",
65
+ "build:ts": "tsc && tsc -p tsconfig.esm.json && node scripts/build-esm.js",
66
+ "build:native": "echo 'Native backend uses better-sqlite3 (already built)'",
67
+ "build:wasm": "echo 'WASM backend uses sql.js (no compilation needed)'",
68
+ "test": "jest",
69
+ "test:watch": "jest --watch",
70
+ "test:coverage": "jest --coverage",
71
+ "test:wasm": "jest --testPathPattern=wasm-backend",
72
+ "test:native": "jest --testPathPattern=native-backend",
73
+ "test:backends": "jest --testPathPattern=backend",
74
+ "bench": "ts-node benchmarks/sync-performance.bench.ts",
75
+ "bench:comprehensive": "ts-node benchmarks/comprehensive-performance.bench.ts",
76
+ "bench:backends": "jest --testPathPattern=backend-comparison --verbose",
77
+ "lint": "eslint src tests --ext .ts",
78
+ "format": "prettier --write 'src/**/*.ts'",
79
+ "typecheck": "tsc --noEmit",
80
+ "_prepublishOnly_disabled": "npm run test && npm run build",
81
+ "verify": "node scripts/verify-install.js",
82
+ "mcp": "node bin/agentdb.js mcp"
83
+ },
84
+ "dependencies": {
85
+ "@modelcontextprotocol/sdk": "^1.20.1",
86
+ "ajv": "^8.12.0",
87
+ "better-sqlite3": "^9.2.2",
88
+ "chalk": "^5.3.0",
89
+ "commander": "^11.1.0",
90
+ "inquirer": "^9.2.12",
91
+ "msgpackr": "^1.10.1",
92
+ "sql.js": "^1.13.0",
93
+ "yaml": "^2.3.4",
94
+ "zod": "^3.25.76"
95
+ },
96
+ "devDependencies": {
97
+ "@types/better-sqlite3": "^7.6.13",
98
+ "@types/inquirer": "^9.0.9",
99
+ "@types/jest": "^29.5.11",
100
+ "@types/node": "^20.10.6",
101
+ "@types/sql.js": "^1.4.9",
102
+ "@typescript-eslint/eslint-plugin": "^6.17.0",
103
+ "@typescript-eslint/parser": "^6.17.0",
104
+ "benchmark": "^2.1.4",
105
+ "eslint": "^8.56.0",
106
+ "jest": "^29.7.0",
107
+ "prettier": "^3.6.2",
108
+ "ts-jest": "^29.1.1",
109
+ "ts-node": "^10.9.2",
110
+ "typescript": "^5.3.3"
111
+ },
112
+ "engines": {
113
+ "node": ">=18.0.0"
114
+ },
115
+ "publishConfig": {
116
+ "access": "public"
117
+ }
118
+ }