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,238 @@
1
+ /**
2
+ * SQLiteVector QUIC Sync - Delta Computation
3
+ *
4
+ * Efficient delta computation from SQLite changelog for sync
5
+ */
6
+ import { createHash } from 'crypto';
7
+ import { pack, unpack } from 'msgpackr';
8
+ /**
9
+ * Delta encoder for vector changes
10
+ */
11
+ export class DeltaEncoder {
12
+ /**
13
+ * Encode changes into compressed delta package
14
+ */
15
+ static encode(shardId, changes, compression = 'msgpack') {
16
+ if (changes.length === 0) {
17
+ throw new Error('Cannot encode empty changes');
18
+ }
19
+ const fromChangeId = Math.min(...changes.map(c => c.id));
20
+ const toChangeId = Math.max(...changes.map(c => c.id));
21
+ // Serialize changes based on compression
22
+ let processedChanges = changes;
23
+ if (compression === 'msgpack') {
24
+ // MessagePack handles compression automatically
25
+ processedChanges = changes.map(c => ({
26
+ ...c,
27
+ // Convert Map to Object for serialization
28
+ versionVector: Object.fromEntries(c.versionVector),
29
+ // Convert Float32Array to regular array for msgpack
30
+ vector: c.vector ? Array.from(c.vector) : undefined
31
+ }));
32
+ }
33
+ // Calculate checksum
34
+ const checksum = this.calculateChecksum(changes);
35
+ return {
36
+ shardId,
37
+ fromChangeId,
38
+ toChangeId,
39
+ changes: processedChanges,
40
+ checksum,
41
+ compression
42
+ };
43
+ }
44
+ /**
45
+ * Decode delta package back to changes
46
+ */
47
+ static decode(delta) {
48
+ // Verify checksum
49
+ const calculatedChecksum = this.calculateChecksum(delta.changes);
50
+ if (calculatedChecksum !== delta.checksum) {
51
+ throw new Error('Delta checksum mismatch - data corruption detected');
52
+ }
53
+ // Deserialize based on compression
54
+ if (delta.compression === 'msgpack') {
55
+ return delta.changes.map(c => ({
56
+ ...c,
57
+ // Convert Object back to Map
58
+ versionVector: new Map(Object.entries(c.versionVector)),
59
+ // Convert array back to Float32Array
60
+ vector: c.vector ? new Float32Array(c.vector) : undefined
61
+ }));
62
+ }
63
+ return delta.changes;
64
+ }
65
+ /**
66
+ * Serialize delta to bytes for QUIC transmission
67
+ */
68
+ static serialize(delta) {
69
+ const packed = pack(delta);
70
+ return packed;
71
+ }
72
+ /**
73
+ * Deserialize bytes back to delta
74
+ */
75
+ static deserialize(bytes) {
76
+ const delta = unpack(bytes);
77
+ // Reconstruct Maps and typed arrays
78
+ delta.changes = delta.changes.map(c => ({
79
+ ...c,
80
+ versionVector: new Map(Object.entries(c.versionVector || {})),
81
+ vector: c.vector ? new Float32Array(c.vector) : undefined
82
+ }));
83
+ return delta;
84
+ }
85
+ /**
86
+ * Calculate checksum for changes
87
+ */
88
+ static calculateChecksum(changes) {
89
+ const hash = createHash('sha256');
90
+ // Sort by ID for deterministic hash
91
+ const sorted = [...changes].sort((a, b) => a.id - b.id);
92
+ for (const change of sorted) {
93
+ hash.update(change.id.toString());
94
+ hash.update(change.operation);
95
+ hash.update(change.vectorId);
96
+ hash.update(change.timestamp.toString());
97
+ }
98
+ return hash.digest('hex');
99
+ }
100
+ /**
101
+ * Split large change sets into batches
102
+ */
103
+ static batch(changes, batchSize) {
104
+ const batches = [];
105
+ for (let i = 0; i < changes.length; i += batchSize) {
106
+ batches.push(changes.slice(i, i + batchSize));
107
+ }
108
+ return batches;
109
+ }
110
+ /**
111
+ * Optimize delta by removing redundant operations
112
+ */
113
+ static optimize(changes) {
114
+ const latestByVector = new Map();
115
+ // Keep only latest change per vector
116
+ for (const change of changes) {
117
+ const existing = latestByVector.get(change.vectorId);
118
+ if (!existing || change.timestamp > existing.timestamp) {
119
+ latestByVector.set(change.vectorId, change);
120
+ }
121
+ }
122
+ return Array.from(latestByVector.values()).sort((a, b) => a.id - b.id);
123
+ }
124
+ }
125
+ /**
126
+ * SQLite changelog reader
127
+ */
128
+ export class ChangelogReader {
129
+ constructor(db) {
130
+ this.db = db;
131
+ }
132
+ /**
133
+ * Read changes from SQLite changelog
134
+ */
135
+ async readChanges(shardId, fromChangeId, toChangeId) {
136
+ const changes = [];
137
+ // Query changelog table
138
+ const query = toChangeId
139
+ ? `SELECT * FROM vector_changelog
140
+ WHERE shard_id = ? AND change_id > ? AND change_id <= ?
141
+ ORDER BY change_id ASC`
142
+ : `SELECT * FROM vector_changelog
143
+ WHERE shard_id = ? AND change_id > ?
144
+ ORDER BY change_id ASC`;
145
+ const params = toChangeId
146
+ ? [shardId, fromChangeId, toChangeId]
147
+ : [shardId, fromChangeId];
148
+ const rows = this.db.prepare(query).all(...params);
149
+ for (const row of rows) {
150
+ changes.push({
151
+ id: row.change_id,
152
+ operation: row.operation,
153
+ shardId: row.shard_id,
154
+ vectorId: row.vector_id,
155
+ vector: row.vector_data ? new Float32Array(JSON.parse(row.vector_data)) : undefined,
156
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
157
+ timestamp: row.timestamp,
158
+ sourceNode: row.source_node,
159
+ versionVector: new Map(JSON.parse(row.version_vector || '{}'))
160
+ });
161
+ }
162
+ return changes;
163
+ }
164
+ /**
165
+ * Get latest change ID for shard
166
+ */
167
+ async getLatestChangeId(shardId) {
168
+ const row = this.db.prepare(`SELECT MAX(change_id) as max_id FROM vector_changelog WHERE shard_id = ?`).get(shardId);
169
+ return row?.max_id || 0;
170
+ }
171
+ /**
172
+ * Get version vector for shard
173
+ */
174
+ async getVersionVector(shardId) {
175
+ const row = this.db.prepare(`SELECT version_vector FROM shard_metadata WHERE shard_id = ?`).get(shardId);
176
+ if (!row) {
177
+ return new Map();
178
+ }
179
+ return new Map(Object.entries(JSON.parse(row.version_vector)));
180
+ }
181
+ /**
182
+ * Update version vector after sync
183
+ */
184
+ async updateVersionVector(shardId, versionVector) {
185
+ const vvJson = JSON.stringify(Object.fromEntries(versionVector));
186
+ this.db.prepare(`INSERT OR REPLACE INTO shard_metadata (shard_id, version_vector, updated_at)
187
+ VALUES (?, ?, ?)`).run(shardId, vvJson, Date.now());
188
+ }
189
+ }
190
+ /**
191
+ * Version vector utilities for causal ordering
192
+ */
193
+ export class VersionVector {
194
+ /**
195
+ * Compare two version vectors
196
+ * Returns: -1 (a < b), 0 (concurrent), 1 (a > b)
197
+ */
198
+ static compare(a, b) {
199
+ let aGreater = false;
200
+ let bGreater = false;
201
+ // Get all node IDs
202
+ const allNodes = new Set([...a.keys(), ...b.keys()]);
203
+ for (const nodeId of allNodes) {
204
+ const aVersion = a.get(nodeId) || 0;
205
+ const bVersion = b.get(nodeId) || 0;
206
+ if (aVersion > bVersion) {
207
+ aGreater = true;
208
+ }
209
+ else if (bVersion > aVersion) {
210
+ bGreater = true;
211
+ }
212
+ }
213
+ if (aGreater && !bGreater)
214
+ return 1;
215
+ if (bGreater && !aGreater)
216
+ return -1;
217
+ return 0; // Concurrent
218
+ }
219
+ /**
220
+ * Merge two version vectors (element-wise max)
221
+ */
222
+ static merge(a, b) {
223
+ const merged = new Map(a);
224
+ for (const [nodeId, version] of b) {
225
+ const currentVersion = merged.get(nodeId) || 0;
226
+ merged.set(nodeId, Math.max(currentVersion, version));
227
+ }
228
+ return merged;
229
+ }
230
+ /**
231
+ * Increment version for node
232
+ */
233
+ static increment(vv, nodeId) {
234
+ const updated = new Map(vv);
235
+ updated.set(nodeId, (updated.get(nodeId) || 0) + 1);
236
+ return updated;
237
+ }
238
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * SQLiteVector QUIC Sync - Main Export
3
+ *
4
+ * Real-time vector database synchronization using QUIC
5
+ */
6
+ export { VectorQuicSync, createVectorSync } from './quic-sync';
7
+ export { ShardCoordinator, createShardCoordinator, type PeerInfo } from './coordinator';
8
+ export { DeltaEncoder, ChangelogReader, VersionVector } from './delta';
9
+ export { ConflictResolver, ConflictTracker } from './conflict';
10
+ export type { VectorChange, VectorDelta, ChangeOperation, ConflictStrategy, SyncConflict, SyncResult, SyncSession, SyncConfig, ShardState, CoordinatorStats } from './types';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * SQLiteVector QUIC Sync - Main Export
4
+ *
5
+ * Real-time vector database synchronization using QUIC
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ConflictTracker = exports.ConflictResolver = exports.VersionVector = exports.ChangelogReader = exports.DeltaEncoder = exports.createShardCoordinator = exports.ShardCoordinator = exports.createVectorSync = exports.VectorQuicSync = void 0;
9
+ var quic_sync_1 = require("./quic-sync");
10
+ Object.defineProperty(exports, "VectorQuicSync", { enumerable: true, get: function () { return quic_sync_1.VectorQuicSync; } });
11
+ Object.defineProperty(exports, "createVectorSync", { enumerable: true, get: function () { return quic_sync_1.createVectorSync; } });
12
+ var coordinator_1 = require("./coordinator");
13
+ Object.defineProperty(exports, "ShardCoordinator", { enumerable: true, get: function () { return coordinator_1.ShardCoordinator; } });
14
+ Object.defineProperty(exports, "createShardCoordinator", { enumerable: true, get: function () { return coordinator_1.createShardCoordinator; } });
15
+ var delta_1 = require("./delta");
16
+ Object.defineProperty(exports, "DeltaEncoder", { enumerable: true, get: function () { return delta_1.DeltaEncoder; } });
17
+ Object.defineProperty(exports, "ChangelogReader", { enumerable: true, get: function () { return delta_1.ChangelogReader; } });
18
+ Object.defineProperty(exports, "VersionVector", { enumerable: true, get: function () { return delta_1.VersionVector; } });
19
+ var conflict_1 = require("./conflict");
20
+ Object.defineProperty(exports, "ConflictResolver", { enumerable: true, get: function () { return conflict_1.ConflictResolver; } });
21
+ Object.defineProperty(exports, "ConflictTracker", { enumerable: true, get: function () { return conflict_1.ConflictTracker; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAGqB;AAFnB,2GAAA,cAAc,OAAA;AACd,6GAAA,gBAAgB,OAAA;AAGlB,6CAIuB;AAHrB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AAIxB,iCAIiB;AAHf,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AAGf,uCAGoB;AAFlB,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * SQLiteVector QUIC Sync - Main Export
3
+ *
4
+ * Real-time vector database synchronization using QUIC
5
+ */
6
+ export { VectorQuicSync, createVectorSync } from './quic-sync.mjs';
7
+ export { ShardCoordinator, createShardCoordinator } from './coordinator.mjs';
8
+ export { DeltaEncoder, ChangelogReader, VersionVector } from './delta.mjs';
9
+ export { ConflictResolver, ConflictTracker } from './conflict.mjs';
@@ -0,0 +1,81 @@
1
+ /**
2
+ * SQLiteVector QUIC Sync - Main Synchronization Layer
3
+ *
4
+ * Real-time shard synchronization using QUIC transport from agentic-flow
5
+ */
6
+ import type { SyncResult, SyncSession, SyncConfig, ShardState } from './types';
7
+ /**
8
+ * QUIC-based vector database synchronization
9
+ */
10
+ export declare class VectorQuicSync {
11
+ private transport;
12
+ private changelogReader;
13
+ private conflictResolver;
14
+ private conflictTracker;
15
+ private config;
16
+ private nodeId;
17
+ private session;
18
+ private syncTimers;
19
+ constructor(db: any, nodeId: string, config?: Partial<SyncConfig>);
20
+ /**
21
+ * Initialize QUIC transport and sync session
22
+ */
23
+ initialize(quicConfig?: any): Promise<void>;
24
+ /**
25
+ * Synchronize shard with remote peer
26
+ */
27
+ sync(shardId: string, peerAddress: string, force?: boolean): Promise<SyncResult>;
28
+ /**
29
+ * Request remote changes from peer
30
+ */
31
+ private requestRemoteChanges;
32
+ /**
33
+ * Send local changes to peer
34
+ */
35
+ private sendLocalChanges;
36
+ /**
37
+ * Apply changes to local database
38
+ */
39
+ private applyChanges;
40
+ /**
41
+ * Start automatic periodic sync
42
+ */
43
+ startAutoSync(shardId: string, peerAddress: string): void;
44
+ /**
45
+ * Stop automatic sync for shard
46
+ */
47
+ stopAutoSync(shardId: string): void;
48
+ /**
49
+ * Stop all automatic syncs
50
+ */
51
+ stopAllAutoSyncs(): void;
52
+ /**
53
+ * Get current session
54
+ */
55
+ getSession(): SyncSession | null;
56
+ /**
57
+ * Get shard state
58
+ */
59
+ getShardState(shardId: string): Promise<ShardState>;
60
+ /**
61
+ * Get unresolved conflicts
62
+ */
63
+ getUnresolvedConflicts(shardId?: string): any[];
64
+ /**
65
+ * Save session to persistent storage
66
+ */
67
+ private saveSession;
68
+ /**
69
+ * Restore session from persistent storage
70
+ */
71
+ private restoreSession;
72
+ /**
73
+ * Close sync and cleanup resources
74
+ */
75
+ close(): Promise<void>;
76
+ }
77
+ /**
78
+ * Create VectorQuicSync instance with convenience wrapper
79
+ */
80
+ export declare function createVectorSync(db: any, nodeId: string, config?: Partial<SyncConfig>, quicConfig?: any): Promise<VectorQuicSync>;
81
+ //# sourceMappingURL=quic-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quic-sync.d.ts","sourceRoot":"","sources":["../../src/sync/quic-sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkDH,OAAO,KAAK,EAGV,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAA0C;gBAG1D,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAoBlC;;OAEG;IACG,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjD;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,UAAU,CAAC;IA2FtB;;OAEG;YACW,oBAAoB;IA2BlC;;OAEG;YACW,gBAAgB;IA+B9B;;OAEG;YACW,YAAY;IA8B1B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAgBzD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQnC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAMxB;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAezD;;OAEG;IACH,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE;IAM/C;;OAEG;YACW,WAAW;IAmBzB;;OAEG;YACW,cAAc;IAK5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,GAAG,EACP,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAC5B,UAAU,CAAC,EAAE,GAAG,GACf,OAAO,CAAC,cAAc,CAAC,CAIzB"}