agentdb 3.0.0-alpha.2 → 3.0.0-alpha.4

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 (1038) hide show
  1. package/README.md +978 -2342
  2. package/dist/agentdb.browser.js +1492 -0
  3. package/dist/agentdb.browser.js.map +7 -0
  4. package/dist/agentdb.browser.min.js +3 -0
  5. package/dist/agentdb.browser.min.js.map +7 -0
  6. package/dist/agentdb.wasm-loader.js +207 -0
  7. package/dist/schemas/frontier-schema.sql +0 -7
  8. package/dist/schemas/schema.sql +0 -7
  9. package/dist/simulation/cli.d.ts +9 -0
  10. package/dist/simulation/cli.d.ts.map +1 -0
  11. package/dist/simulation/cli.js +68 -0
  12. package/dist/simulation/cli.js.map +1 -0
  13. package/dist/simulation/runner.d.ts +21 -0
  14. package/dist/simulation/runner.d.ts.map +1 -0
  15. package/dist/simulation/runner.js +241 -0
  16. package/dist/simulation/runner.js.map +1 -0
  17. package/dist/simulation/scenarios/aidefence-integration.d.ts +24 -0
  18. package/dist/simulation/scenarios/aidefence-integration.d.ts.map +1 -0
  19. package/dist/simulation/scenarios/aidefence-integration.js +124 -0
  20. package/dist/simulation/scenarios/aidefence-integration.js.map +1 -0
  21. package/dist/simulation/scenarios/bmssp-integration.d.ts +23 -0
  22. package/dist/simulation/scenarios/bmssp-integration.d.ts.map +1 -0
  23. package/dist/simulation/scenarios/bmssp-integration.js +104 -0
  24. package/dist/simulation/scenarios/bmssp-integration.js.map +1 -0
  25. package/dist/simulation/scenarios/causal-reasoning.d.ts +16 -0
  26. package/dist/simulation/scenarios/causal-reasoning.d.ts.map +1 -0
  27. package/dist/simulation/scenarios/causal-reasoning.js +108 -0
  28. package/dist/simulation/scenarios/causal-reasoning.js.map +1 -0
  29. package/dist/simulation/scenarios/consciousness-explorer.d.ts +25 -0
  30. package/dist/simulation/scenarios/consciousness-explorer.d.ts.map +1 -0
  31. package/dist/simulation/scenarios/consciousness-explorer.js +108 -0
  32. package/dist/simulation/scenarios/consciousness-explorer.js.map +1 -0
  33. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts +135 -0
  34. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts.map +1 -0
  35. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js +158 -0
  36. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js.map +1 -0
  37. package/dist/simulation/scenarios/domain-examples/index.d.ts +14 -0
  38. package/dist/simulation/scenarios/domain-examples/index.d.ts.map +1 -0
  39. package/dist/simulation/scenarios/domain-examples/index.js +14 -0
  40. package/dist/simulation/scenarios/domain-examples/index.js.map +1 -0
  41. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts +178 -0
  42. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts.map +1 -0
  43. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js +218 -0
  44. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js.map +1 -0
  45. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts +122 -0
  46. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts.map +1 -0
  47. package/dist/simulation/scenarios/domain-examples/medical-imaging.js +129 -0
  48. package/dist/simulation/scenarios/domain-examples/medical-imaging.js.map +1 -0
  49. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts +166 -0
  50. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts.map +1 -0
  51. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js +161 -0
  52. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js.map +1 -0
  53. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts +151 -0
  54. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts.map +1 -0
  55. package/dist/simulation/scenarios/domain-examples/scientific-research.js +187 -0
  56. package/dist/simulation/scenarios/domain-examples/scientific-research.js.map +1 -0
  57. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts +102 -0
  58. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts.map +1 -0
  59. package/dist/simulation/scenarios/domain-examples/trading-systems.js +100 -0
  60. package/dist/simulation/scenarios/domain-examples/trading-systems.js.map +1 -0
  61. package/dist/simulation/scenarios/goalie-integration.d.ts +24 -0
  62. package/dist/simulation/scenarios/goalie-integration.d.ts.map +1 -0
  63. package/dist/simulation/scenarios/goalie-integration.js +121 -0
  64. package/dist/simulation/scenarios/goalie-integration.js.map +1 -0
  65. package/dist/simulation/scenarios/graph-traversal.d.ts +17 -0
  66. package/dist/simulation/scenarios/graph-traversal.d.ts.map +1 -0
  67. package/dist/simulation/scenarios/graph-traversal.js +101 -0
  68. package/dist/simulation/scenarios/graph-traversal.js.map +1 -0
  69. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts +45 -0
  70. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts.map +1 -0
  71. package/dist/simulation/scenarios/latent-space/attention-analysis.js +435 -0
  72. package/dist/simulation/scenarios/latent-space/attention-analysis.js.map +1 -0
  73. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts +55 -0
  74. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts.map +1 -0
  75. package/dist/simulation/scenarios/latent-space/clustering-analysis.js +606 -0
  76. package/dist/simulation/scenarios/latent-space/clustering-analysis.js.map +1 -0
  77. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts +74 -0
  78. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts.map +1 -0
  79. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js +391 -0
  80. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js.map +1 -0
  81. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts +51 -0
  82. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts.map +1 -0
  83. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js +536 -0
  84. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js.map +1 -0
  85. package/dist/simulation/scenarios/latent-space/index.d.ts +35 -0
  86. package/dist/simulation/scenarios/latent-space/index.d.ts.map +1 -0
  87. package/dist/simulation/scenarios/latent-space/index.js +35 -0
  88. package/dist/simulation/scenarios/latent-space/index.js.map +1 -0
  89. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts +52 -0
  90. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts.map +1 -0
  91. package/dist/simulation/scenarios/latent-space/neural-augmentation.js +472 -0
  92. package/dist/simulation/scenarios/latent-space/neural-augmentation.js.map +1 -0
  93. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts +53 -0
  94. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts.map +1 -0
  95. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js +391 -0
  96. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js.map +1 -0
  97. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts +52 -0
  98. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts.map +1 -0
  99. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js +514 -0
  100. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js.map +1 -0
  101. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts +53 -0
  102. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts.map +1 -0
  103. package/dist/simulation/scenarios/latent-space/traversal-optimization.js +595 -0
  104. package/dist/simulation/scenarios/latent-space/traversal-optimization.js.map +1 -0
  105. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts +18 -0
  106. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts.map +1 -0
  107. package/dist/simulation/scenarios/lean-agentic-swarm.js +132 -0
  108. package/dist/simulation/scenarios/lean-agentic-swarm.js.map +1 -0
  109. package/dist/simulation/scenarios/multi-agent-swarm.d.ts +17 -0
  110. package/dist/simulation/scenarios/multi-agent-swarm.d.ts.map +1 -0
  111. package/dist/simulation/scenarios/multi-agent-swarm.js +111 -0
  112. package/dist/simulation/scenarios/multi-agent-swarm.js.map +1 -0
  113. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts +23 -0
  114. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts.map +1 -0
  115. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js +98 -0
  116. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js.map +1 -0
  117. package/dist/simulation/scenarios/reflexion-learning.d.ts +16 -0
  118. package/dist/simulation/scenarios/reflexion-learning.d.ts.map +1 -0
  119. package/dist/simulation/scenarios/reflexion-learning.js +98 -0
  120. package/dist/simulation/scenarios/reflexion-learning.js.map +1 -0
  121. package/dist/simulation/scenarios/research-swarm.d.ts +24 -0
  122. package/dist/simulation/scenarios/research-swarm.d.ts.map +1 -0
  123. package/dist/simulation/scenarios/research-swarm.js +146 -0
  124. package/dist/simulation/scenarios/research-swarm.js.map +1 -0
  125. package/dist/simulation/scenarios/skill-evolution.d.ts +16 -0
  126. package/dist/simulation/scenarios/skill-evolution.d.ts.map +1 -0
  127. package/dist/simulation/scenarios/skill-evolution.js +109 -0
  128. package/dist/simulation/scenarios/skill-evolution.js.map +1 -0
  129. package/dist/simulation/scenarios/stock-market-emergence.d.ts +33 -0
  130. package/dist/simulation/scenarios/stock-market-emergence.d.ts.map +1 -0
  131. package/dist/simulation/scenarios/stock-market-emergence.js +246 -0
  132. package/dist/simulation/scenarios/stock-market-emergence.js.map +1 -0
  133. package/dist/simulation/scenarios/strange-loops.d.ts +18 -0
  134. package/dist/simulation/scenarios/strange-loops.d.ts.map +1 -0
  135. package/dist/simulation/scenarios/strange-loops.js +133 -0
  136. package/dist/simulation/scenarios/strange-loops.js.map +1 -0
  137. package/dist/simulation/scenarios/sublinear-solver.d.ts +22 -0
  138. package/dist/simulation/scenarios/sublinear-solver.d.ts.map +1 -0
  139. package/dist/simulation/scenarios/sublinear-solver.js +82 -0
  140. package/dist/simulation/scenarios/sublinear-solver.js.map +1 -0
  141. package/dist/simulation/scenarios/temporal-lead-solver.d.ts +23 -0
  142. package/dist/simulation/scenarios/temporal-lead-solver.d.ts.map +1 -0
  143. package/dist/simulation/scenarios/temporal-lead-solver.js +90 -0
  144. package/dist/simulation/scenarios/temporal-lead-solver.js.map +1 -0
  145. package/dist/simulation/scenarios/voting-system-consensus.d.ts +27 -0
  146. package/dist/simulation/scenarios/voting-system-consensus.d.ts.map +1 -0
  147. package/dist/simulation/scenarios/voting-system-consensus.js +175 -0
  148. package/dist/simulation/scenarios/voting-system-consensus.js.map +1 -0
  149. package/dist/simulation/types.d.ts +162 -0
  150. package/dist/simulation/types.d.ts.map +1 -0
  151. package/dist/simulation/types.js +5 -0
  152. package/dist/simulation/types.js.map +1 -0
  153. package/dist/simulation/utils/PerformanceOptimizer.d.ts +115 -0
  154. package/dist/simulation/utils/PerformanceOptimizer.d.ts.map +1 -0
  155. package/dist/simulation/utils/PerformanceOptimizer.js +223 -0
  156. package/dist/simulation/utils/PerformanceOptimizer.js.map +1 -0
  157. package/dist/src/backends/GraphBackend.d.ts +8 -8
  158. package/dist/src/backends/GraphBackend.d.ts.map +1 -1
  159. package/dist/src/backends/GraphBackend.js +15 -16
  160. package/dist/src/backends/GraphBackend.js.map +1 -1
  161. package/dist/src/backends/LearningBackend.d.ts +2 -2
  162. package/dist/src/backends/LearningBackend.d.ts.map +1 -1
  163. package/dist/src/backends/LearningBackend.js +10 -11
  164. package/dist/src/backends/LearningBackend.js.map +1 -1
  165. package/dist/src/backends/VectorBackend.d.ts +6 -31
  166. package/dist/src/backends/VectorBackend.d.ts.map +1 -1
  167. package/dist/src/backends/detector.d.ts +3 -25
  168. package/dist/src/backends/detector.d.ts.map +1 -1
  169. package/dist/src/backends/detector.js +15 -119
  170. package/dist/src/backends/detector.js.map +1 -1
  171. package/dist/src/backends/factory.d.ts +32 -16
  172. package/dist/src/backends/factory.d.ts.map +1 -1
  173. package/dist/src/backends/factory.js +70 -133
  174. package/dist/src/backends/factory.js.map +1 -1
  175. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +1 -1
  176. package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
  177. package/dist/src/backends/graph/GraphDatabaseAdapter.js +1 -5
  178. package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
  179. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +2 -2
  180. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
  181. package/dist/src/backends/hnswlib/HNSWLibBackend.js +13 -49
  182. package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
  183. package/dist/src/backends/index.d.ts +3 -25
  184. package/dist/src/backends/index.d.ts.map +1 -1
  185. package/dist/src/backends/index.js +1 -23
  186. package/dist/src/backends/index.js.map +1 -1
  187. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts +93 -0
  188. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts.map +1 -0
  189. package/dist/src/backends/ruvector/GuardedVectorBackend.js +182 -0
  190. package/dist/src/backends/ruvector/GuardedVectorBackend.js.map +1 -0
  191. package/dist/src/backends/ruvector/RuVectorBackend.d.ts +16 -187
  192. package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
  193. package/dist/src/backends/ruvector/RuVectorBackend.js +94 -576
  194. package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
  195. package/dist/src/backends/ruvector/RuVectorLearning.d.ts +4 -0
  196. package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
  197. package/dist/src/backends/ruvector/RuVectorLearning.js +11 -10
  198. package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
  199. package/dist/src/benchmarks/wasm-vector-benchmark.d.ts +10 -0
  200. package/dist/src/benchmarks/wasm-vector-benchmark.d.ts.map +1 -0
  201. package/dist/src/benchmarks/wasm-vector-benchmark.js +196 -0
  202. package/dist/src/benchmarks/wasm-vector-benchmark.js.map +1 -0
  203. package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -1
  204. package/dist/src/browser/AdvancedFeatures.js +10 -3
  205. package/dist/src/browser/AdvancedFeatures.js.map +1 -1
  206. package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
  207. package/dist/src/browser/AttentionBrowser.js +12 -5
  208. package/dist/src/browser/AttentionBrowser.js.map +1 -1
  209. package/dist/src/browser/HNSWIndex.d.ts +1 -31
  210. package/dist/src/browser/HNSWIndex.d.ts.map +1 -1
  211. package/dist/src/browser/HNSWIndex.js +18 -136
  212. package/dist/src/browser/HNSWIndex.js.map +1 -1
  213. package/dist/src/browser/ProductQuantization.d.ts.map +1 -1
  214. package/dist/src/browser/ProductQuantization.js +1 -0
  215. package/dist/src/browser/ProductQuantization.js.map +1 -1
  216. package/dist/src/browser/index.d.ts +3 -3
  217. package/dist/src/browser/index.d.ts.map +1 -1
  218. package/dist/src/browser/index.js +1 -2
  219. package/dist/src/browser/index.js.map +1 -1
  220. package/dist/src/cli/agentdb-cli.d.ts +2 -16
  221. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  222. package/dist/src/cli/agentdb-cli.js +216 -853
  223. package/dist/src/cli/agentdb-cli.js.map +1 -1
  224. package/dist/src/cli/commands/attention.js +3 -3
  225. package/dist/src/cli/commands/attention.js.map +1 -1
  226. package/dist/src/cli/commands/doctor.d.ts +0 -2
  227. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  228. package/dist/src/cli/commands/doctor.js +1 -106
  229. package/dist/src/cli/commands/doctor.js.map +1 -1
  230. package/dist/src/cli/commands/init.d.ts +1 -2
  231. package/dist/src/cli/commands/init.d.ts.map +1 -1
  232. package/dist/src/cli/commands/init.js +7 -30
  233. package/dist/src/cli/commands/init.js.map +1 -1
  234. package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
  235. package/dist/src/cli/commands/install-embeddings.js.map +1 -1
  236. package/dist/src/cli/commands/migrate.d.ts +0 -15
  237. package/dist/src/cli/commands/migrate.d.ts.map +1 -1
  238. package/dist/src/cli/commands/migrate.js +5 -164
  239. package/dist/src/cli/commands/migrate.js.map +1 -1
  240. package/dist/src/cli/commands/simulate-report.js.map +1 -1
  241. package/dist/src/cli/commands/simulate-wizard.js.map +1 -1
  242. package/dist/src/cli/commands/simulate.d.ts +7 -0
  243. package/dist/src/cli/commands/simulate.d.ts.map +1 -0
  244. package/dist/src/cli/commands/simulate.js +100 -0
  245. package/dist/src/cli/commands/simulate.js.map +1 -0
  246. package/dist/src/cli/commands/status.js +1 -5
  247. package/dist/src/cli/commands/status.js.map +1 -1
  248. package/dist/src/cli/lib/attention-config.d.ts +2 -2
  249. package/dist/src/cli/lib/attention-config.d.ts.map +1 -1
  250. package/dist/src/cli/lib/attention-config.js +1 -2
  251. package/dist/src/cli/lib/attention-config.js.map +1 -1
  252. package/dist/src/cli/lib/config-manager.d.ts +110 -0
  253. package/dist/src/cli/lib/config-manager.d.ts.map +1 -0
  254. package/dist/src/cli/lib/config-manager.js +512 -0
  255. package/dist/src/cli/lib/config-manager.js.map +1 -0
  256. package/dist/src/cli/lib/config-validator.d.ts +1 -1
  257. package/dist/src/cli/lib/config-validator.d.ts.map +1 -1
  258. package/dist/src/cli/lib/health-monitor.d.ts +149 -0
  259. package/dist/src/cli/lib/health-monitor.d.ts.map +1 -0
  260. package/dist/src/cli/lib/health-monitor.js +380 -0
  261. package/dist/src/cli/lib/health-monitor.js.map +1 -0
  262. package/dist/src/cli/lib/history-tracker.d.ts +103 -0
  263. package/dist/src/cli/lib/history-tracker.d.ts.map +1 -0
  264. package/dist/src/cli/lib/history-tracker.js +352 -0
  265. package/dist/src/cli/lib/history-tracker.js.map +1 -0
  266. package/dist/src/cli/lib/report-store.d.ts +1 -2
  267. package/dist/src/cli/lib/report-store.d.ts.map +1 -1
  268. package/dist/src/cli/lib/report-store.js +65 -87
  269. package/dist/src/cli/lib/report-store.js.map +1 -1
  270. package/dist/src/cli/lib/simulation-registry.d.ts +1 -1
  271. package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -1
  272. package/dist/src/cli/lib/simulation-registry.js +0 -1
  273. package/dist/src/cli/lib/simulation-registry.js.map +1 -1
  274. package/dist/src/cli/lib/simulation-runner.d.ts +4 -41
  275. package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
  276. package/dist/src/cli/lib/simulation-runner.js +6 -251
  277. package/dist/src/cli/lib/simulation-runner.js.map +1 -1
  278. package/dist/src/controllers/AttentionService.d.ts.map +1 -1
  279. package/dist/src/controllers/AttentionService.js +5 -3
  280. package/dist/src/controllers/AttentionService.js.map +1 -1
  281. package/dist/src/controllers/CausalMemoryGraph.d.ts +8 -33
  282. package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
  283. package/dist/src/controllers/CausalMemoryGraph.js +16 -93
  284. package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
  285. package/dist/src/controllers/CausalRecall.d.ts +3 -6
  286. package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
  287. package/dist/src/controllers/CausalRecall.js +8 -14
  288. package/dist/src/controllers/CausalRecall.js.map +1 -1
  289. package/dist/src/controllers/ContextSynthesizer.d.ts +1 -1
  290. package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -1
  291. package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
  292. package/dist/src/controllers/EmbeddingService.js +3 -10
  293. package/dist/src/controllers/EmbeddingService.js.map +1 -1
  294. package/dist/src/controllers/EnhancedEmbeddingService.d.ts +0 -4
  295. package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
  296. package/dist/src/controllers/EnhancedEmbeddingService.js +3 -10
  297. package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
  298. package/dist/src/controllers/ExplainableRecall.d.ts +6 -5
  299. package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
  300. package/dist/src/controllers/ExplainableRecall.js +13 -21
  301. package/dist/src/controllers/ExplainableRecall.js.map +1 -1
  302. package/dist/src/controllers/HNSWIndex.d.ts +7 -24
  303. package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
  304. package/dist/src/controllers/HNSWIndex.js +10 -89
  305. package/dist/src/controllers/HNSWIndex.js.map +1 -1
  306. package/dist/src/controllers/LearningSystem.d.ts +10 -106
  307. package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
  308. package/dist/src/controllers/LearningSystem.js +14 -39
  309. package/dist/src/controllers/LearningSystem.js.map +1 -1
  310. package/dist/src/controllers/MMRDiversityRanker.d.ts +1 -1
  311. package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -1
  312. package/dist/src/controllers/MetadataFilter.d.ts +3 -3
  313. package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
  314. package/dist/src/controllers/MetadataFilter.js +6 -9
  315. package/dist/src/controllers/MetadataFilter.js.map +1 -1
  316. package/dist/src/controllers/NightlyLearner.d.ts +4 -9
  317. package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
  318. package/dist/src/controllers/NightlyLearner.js +9 -28
  319. package/dist/src/controllers/NightlyLearner.js.map +1 -1
  320. package/dist/src/controllers/QUICClient.d.ts +2 -50
  321. package/dist/src/controllers/QUICClient.d.ts.map +1 -1
  322. package/dist/src/controllers/QUICClient.js +3 -193
  323. package/dist/src/controllers/QUICClient.js.map +1 -1
  324. package/dist/src/controllers/QUICServer.d.ts +4 -4
  325. package/dist/src/controllers/QUICServer.d.ts.map +1 -1
  326. package/dist/src/controllers/QUICServer.js +14 -22
  327. package/dist/src/controllers/QUICServer.js.map +1 -1
  328. package/dist/src/controllers/ReasoningBank.d.ts +4 -14
  329. package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
  330. package/dist/src/controllers/ReasoningBank.js +46 -59
  331. package/dist/src/controllers/ReasoningBank.js.map +1 -1
  332. package/dist/src/controllers/ReflexionMemory.d.ts +7 -80
  333. package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
  334. package/dist/src/controllers/ReflexionMemory.js +214 -372
  335. package/dist/src/controllers/ReflexionMemory.js.map +1 -1
  336. package/dist/src/controllers/SkillLibrary.d.ts +7 -37
  337. package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
  338. package/dist/src/controllers/SkillLibrary.js +96 -212
  339. package/dist/src/controllers/SkillLibrary.js.map +1 -1
  340. package/dist/src/controllers/SyncCoordinator.d.ts +3 -2
  341. package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
  342. package/dist/src/controllers/SyncCoordinator.js +5 -117
  343. package/dist/src/controllers/SyncCoordinator.js.map +1 -1
  344. package/dist/src/controllers/WASMVectorSearch.d.ts +9 -20
  345. package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
  346. package/dist/src/controllers/WASMVectorSearch.js +29 -154
  347. package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
  348. package/dist/src/controllers/frontier-index.d.ts +14 -0
  349. package/dist/src/controllers/frontier-index.d.ts.map +1 -0
  350. package/dist/src/controllers/frontier-index.js +10 -0
  351. package/dist/src/controllers/frontier-index.js.map +1 -0
  352. package/dist/src/controllers/index.d.ts +17 -8
  353. package/dist/src/controllers/index.d.ts.map +1 -1
  354. package/dist/src/controllers/index.js +12 -6
  355. package/dist/src/controllers/index.js.map +1 -1
  356. package/dist/src/core/AgentDB.d.ts +25 -57
  357. package/dist/src/core/AgentDB.d.ts.map +1 -1
  358. package/dist/src/core/AgentDB.js +115 -137
  359. package/dist/src/core/AgentDB.js.map +1 -1
  360. package/dist/src/db-fallback.d.ts +1 -10
  361. package/dist/src/db-fallback.d.ts.map +1 -1
  362. package/dist/src/db-fallback.js +4 -171
  363. package/dist/src/db-fallback.js.map +1 -1
  364. package/dist/src/db-test.d.ts +13 -0
  365. package/dist/src/db-test.d.ts.map +1 -0
  366. package/dist/src/db-test.js +55 -0
  367. package/dist/src/db-test.js.map +1 -0
  368. package/dist/src/db-unified.d.ts +76 -0
  369. package/dist/src/db-unified.d.ts.map +1 -0
  370. package/dist/src/db-unified.js +279 -0
  371. package/dist/src/db-unified.js.map +1 -0
  372. package/dist/src/examples/quic-sync-example.d.ts +9 -0
  373. package/dist/src/examples/quic-sync-example.d.ts.map +1 -0
  374. package/dist/src/examples/quic-sync-example.js +169 -0
  375. package/dist/src/examples/quic-sync-example.js.map +1 -0
  376. package/dist/src/examples/wasm-vector-usage.d.ts +12 -0
  377. package/dist/src/examples/wasm-vector-usage.d.ts.map +1 -0
  378. package/dist/src/examples/wasm-vector-usage.js +190 -0
  379. package/dist/src/examples/wasm-vector-usage.js.map +1 -0
  380. package/dist/src/index.d.ts +12 -38
  381. package/dist/src/index.d.ts.map +1 -1
  382. package/dist/src/index.js +11 -46
  383. package/dist/src/index.js.map +1 -1
  384. package/dist/src/mcp/agentdb-mcp-server.js +63 -219
  385. package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
  386. package/dist/src/mcp/learning-tools-handlers.d.ts +16 -0
  387. package/dist/src/mcp/learning-tools-handlers.d.ts.map +1 -0
  388. package/dist/src/mcp/learning-tools-handlers.js +105 -0
  389. package/dist/src/mcp/learning-tools-handlers.js.map +1 -0
  390. package/dist/src/optimizations/BatchOperations.d.ts +5 -52
  391. package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
  392. package/dist/src/optimizations/BatchOperations.js +33 -186
  393. package/dist/src/optimizations/BatchOperations.js.map +1 -1
  394. package/dist/src/optimizations/QueryOptimizer.d.ts +4 -4
  395. package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -1
  396. package/dist/src/optimizations/QueryOptimizer.js +1 -3
  397. package/dist/src/optimizations/QueryOptimizer.js.map +1 -1
  398. package/dist/src/optimizations/ToolCache.d.ts +4 -4
  399. package/dist/src/optimizations/ToolCache.d.ts.map +1 -1
  400. package/dist/src/optimizations/ToolCache.js.map +1 -1
  401. package/dist/src/optimizations/index.d.ts +1 -1
  402. package/dist/src/optimizations/index.d.ts.map +1 -1
  403. package/dist/src/security/AttestationLog.d.ts +70 -0
  404. package/dist/src/security/AttestationLog.d.ts.map +1 -0
  405. package/dist/src/security/AttestationLog.js +174 -0
  406. package/dist/src/security/AttestationLog.js.map +1 -0
  407. package/dist/src/security/MutationGuard.d.ts +83 -0
  408. package/dist/src/security/MutationGuard.d.ts.map +1 -0
  409. package/dist/src/security/MutationGuard.js +379 -0
  410. package/dist/src/security/MutationGuard.js.map +1 -0
  411. package/dist/src/security/index.d.ts +15 -0
  412. package/dist/src/security/index.d.ts.map +1 -0
  413. package/dist/src/security/index.js +18 -0
  414. package/dist/src/security/index.js.map +1 -0
  415. package/dist/src/security/input-validation.d.ts +12 -12
  416. package/dist/src/security/input-validation.d.ts.map +1 -1
  417. package/dist/src/security/input-validation.js +0 -1
  418. package/dist/src/security/input-validation.js.map +1 -1
  419. package/dist/src/security/limits.d.ts +150 -0
  420. package/dist/src/security/limits.d.ts.map +1 -0
  421. package/dist/src/security/limits.js +288 -0
  422. package/dist/src/security/limits.js.map +1 -0
  423. package/dist/src/security/path-security.d.ts +100 -0
  424. package/dist/src/security/path-security.d.ts.map +1 -0
  425. package/dist/src/security/path-security.js +337 -0
  426. package/dist/src/security/path-security.js.map +1 -0
  427. package/dist/src/security/validation.d.ts +95 -0
  428. package/dist/src/security/validation.d.ts.map +1 -0
  429. package/dist/src/security/validation.js +315 -0
  430. package/dist/src/security/validation.js.map +1 -0
  431. package/dist/src/services/GraphTransformerService.d.ts +79 -0
  432. package/dist/src/services/GraphTransformerService.d.ts.map +1 -0
  433. package/dist/src/services/GraphTransformerService.js +331 -0
  434. package/dist/src/services/GraphTransformerService.js.map +1 -0
  435. package/dist/src/services/LLMRouter.d.ts +7 -61
  436. package/dist/src/services/LLMRouter.d.ts.map +1 -1
  437. package/dist/src/services/LLMRouter.js +25 -295
  438. package/dist/src/services/LLMRouter.js.map +1 -1
  439. package/dist/src/services/SemanticRouter.d.ts +78 -0
  440. package/dist/src/services/SemanticRouter.d.ts.map +1 -0
  441. package/dist/src/services/SemanticRouter.js +149 -0
  442. package/dist/src/services/SemanticRouter.js.map +1 -0
  443. package/dist/src/services/SonaTrajectoryService.d.ts +100 -0
  444. package/dist/src/services/SonaTrajectoryService.d.ts.map +1 -0
  445. package/dist/src/services/SonaTrajectoryService.js +231 -0
  446. package/dist/src/services/SonaTrajectoryService.js.map +1 -0
  447. package/dist/src/types/attention.d.ts +249 -0
  448. package/dist/src/types/attention.d.ts.map +1 -0
  449. package/dist/src/types/attention.js +43 -0
  450. package/dist/src/types/attention.js.map +1 -0
  451. package/dist/src/types/quic.d.ts +518 -0
  452. package/dist/src/types/quic.d.ts.map +1 -0
  453. package/dist/src/types/quic.js +272 -0
  454. package/dist/src/types/quic.js.map +1 -0
  455. package/dist/src/utils/LegacyAttentionAdapter.d.ts +93 -0
  456. package/dist/src/utils/LegacyAttentionAdapter.d.ts.map +1 -0
  457. package/dist/src/utils/LegacyAttentionAdapter.js +241 -0
  458. package/dist/src/utils/LegacyAttentionAdapter.js.map +1 -0
  459. package/dist/src/utils/attention-metrics.d.ts +76 -0
  460. package/dist/src/utils/attention-metrics.d.ts.map +1 -0
  461. package/dist/src/utils/attention-metrics.js +178 -0
  462. package/dist/src/utils/attention-metrics.js.map +1 -0
  463. package/dist/src/utils/vector-math.d.ts +29 -0
  464. package/dist/src/utils/vector-math.d.ts.map +1 -0
  465. package/dist/src/utils/vector-math.js +66 -0
  466. package/dist/src/utils/vector-math.js.map +1 -0
  467. package/examples/README.md +105 -0
  468. package/examples/browser/attention-demo.html +499 -0
  469. package/examples/browser/flash-consolidation.html +598 -0
  470. package/examples/browser/hyperbolic-hierarchy.html +497 -0
  471. package/examples/quickstart.js +43 -0
  472. package/package.json +53 -56
  473. package/simulation/.claude-flow/metrics/agent-metrics.json +1 -0
  474. package/simulation/.claude-flow/metrics/performance.json +87 -0
  475. package/simulation/.claude-flow/metrics/task-metrics.json +10 -0
  476. package/simulation/COMPLETION-STATUS.md +139 -0
  477. package/simulation/FINAL-RESULTS.md +414 -0
  478. package/simulation/FINAL-STATUS.md +281 -0
  479. package/simulation/INTEGRATION-COMPLETE.md +452 -0
  480. package/simulation/MIGRATION-STATUS.md +231 -0
  481. package/simulation/OPTIMIZATION-RESULTS.md +397 -0
  482. package/simulation/PHASE1-COMPLETE.md +163 -0
  483. package/simulation/README.md +848 -0
  484. package/simulation/SIMULATION-RESULTS.md +239 -0
  485. package/simulation/cli.ts +78 -0
  486. package/simulation/configs/default.json +37 -0
  487. package/simulation/data/advanced/aidefence.graph +0 -0
  488. package/simulation/data/advanced/bmssp.graph +0 -0
  489. package/simulation/data/advanced/consciousness.graph +0 -0
  490. package/simulation/data/advanced/goalie.graph +0 -0
  491. package/simulation/data/advanced/psycho-symbolic.graph +0 -0
  492. package/simulation/data/advanced/research-swarm.graph +0 -0
  493. package/simulation/data/advanced/sublinear.graph +0 -0
  494. package/simulation/data/advanced/temporal.graph +0 -0
  495. package/simulation/data/causal.graph +0 -0
  496. package/simulation/data/graph-traversal.graph +0 -0
  497. package/simulation/data/lean-agentic.graph +0 -0
  498. package/simulation/data/reflexion.graph +0 -0
  499. package/simulation/data/skills.graph +0 -0
  500. package/simulation/data/stock-market.graph +0 -0
  501. package/simulation/data/strange-loops.graph +0 -0
  502. package/simulation/data/swarm.graph +0 -0
  503. package/simulation/data/voting-consensus.graph +0 -0
  504. package/simulation/docs/CLI-INTEGRATION-PLAN.md +1038 -0
  505. package/simulation/docs/COMPREHENSIVE-LATENT-SPACE-COMPLETION.md +354 -0
  506. package/simulation/docs/DOCUMENTATION-INDEX.md +226 -0
  507. package/simulation/docs/IMPLEMENTATION-COMPLETE.md +521 -0
  508. package/simulation/docs/OPTIMIZATION-SUMMARY.md +279 -0
  509. package/simulation/docs/README.md +229 -0
  510. package/simulation/docs/SWARM-5-INTEGRATION-SUMMARY.md +528 -0
  511. package/simulation/docs/TESTING-SUMMARY.md +304 -0
  512. package/simulation/docs/architecture/EXTENSION-API.md +868 -0
  513. package/simulation/docs/architecture/INTEGRATION-ARCHITECTURE.md +1138 -0
  514. package/simulation/docs/architecture/OPTIMIZATION-STRATEGY.md +778 -0
  515. package/simulation/docs/architecture/SIMULATION-ARCHITECTURE.md +892 -0
  516. package/simulation/docs/guides/CLI-REFERENCE.md +896 -0
  517. package/simulation/docs/guides/CUSTOM-SIMULATIONS.md +931 -0
  518. package/simulation/docs/guides/DEPLOYMENT.md +832 -0
  519. package/simulation/docs/guides/IMPLEMENTATION-SUMMARY.md +544 -0
  520. package/simulation/docs/guides/MIGRATION-GUIDE.md +591 -0
  521. package/simulation/docs/guides/QUICK-START.md +361 -0
  522. package/simulation/docs/guides/README.md +736 -0
  523. package/simulation/docs/guides/TROUBLESHOOTING.md +817 -0
  524. package/simulation/docs/guides/WIZARD-GUIDE.md +869 -0
  525. package/simulation/docs/reports/latent-space/MASTER-SYNTHESIS.md +345 -0
  526. package/simulation/docs/reports/latent-space/README.md +132 -0
  527. package/simulation/docs/reports/latent-space/attention-analysis-RESULTS.md +238 -0
  528. package/simulation/docs/reports/latent-space/clustering-analysis-RESULTS.md +210 -0
  529. package/simulation/docs/reports/latent-space/hnsw-exploration-RESULTS.md +332 -0
  530. package/simulation/docs/reports/latent-space/hypergraph-exploration-RESULTS.md +37 -0
  531. package/simulation/docs/reports/latent-space/neural-augmentation-RESULTS.md +69 -0
  532. package/simulation/docs/reports/latent-space/quantum-hybrid-RESULTS.md +91 -0
  533. package/simulation/docs/reports/latent-space/self-organizing-hnsw-RESULTS.md +51 -0
  534. package/simulation/docs/reports/latent-space/traversal-optimization-RESULTS.md +238 -0
  535. package/simulation/reports/README.md +397 -0
  536. package/simulation/reports/advanced-simulations-performance.md +1241 -0
  537. package/simulation/reports/aidefence-integration-2025-11-30T01-36-53-486Z.json +30 -0
  538. package/simulation/reports/architecture-analysis.md +1396 -0
  539. package/simulation/reports/basic-scenarios-performance.md +1840 -0
  540. package/simulation/reports/bmssp-integration-2025-11-30T01-36-27-193Z.json +30 -0
  541. package/simulation/reports/bmssp-integration-2025-11-30T03-38-12-887Z.json +30 -0
  542. package/simulation/reports/causal-reasoning-2025-11-29T23-35-21-795Z.json +36 -0
  543. package/simulation/reports/causal-reasoning-2025-11-30T00-58-42-862Z.json +30 -0
  544. package/simulation/reports/causal-reasoning-2025-11-30T00-59-12-546Z.json +40 -0
  545. package/simulation/reports/consciousness-explorer-2025-11-30T01-36-51-269Z.json +31 -0
  546. package/simulation/reports/core-benchmarks.md +727 -0
  547. package/simulation/reports/goalie-integration-2025-11-30T01-36-52-377Z.json +30 -0
  548. package/simulation/reports/graph-traversal-2025-11-29T23-35-35-279Z.json +78 -0
  549. package/simulation/reports/graph-traversal-2025-11-29T23-37-36-697Z.json +30 -0
  550. package/simulation/reports/graph-traversal-2025-11-30T01-03-59-716Z.json +30 -0
  551. package/simulation/reports/graph-traversal-2025-11-30T01-05-10-984Z.json +30 -0
  552. package/simulation/reports/graph-traversal-2025-11-30T01-06-16-334Z.json +30 -0
  553. package/simulation/reports/graph-traversal-2025-11-30T01-06-53-312Z.json +30 -0
  554. package/simulation/reports/graph-traversal-2025-11-30T01-07-51-075Z.json +24 -0
  555. package/simulation/reports/graph-traversal-2025-11-30T01-08-22-179Z.json +42 -0
  556. package/simulation/reports/lean-agentic-swarm-2025-11-29T23-37-23-804Z.json +148 -0
  557. package/simulation/reports/lean-agentic-swarm-2025-11-30T01-31-24-401Z.json +31 -0
  558. package/simulation/reports/lean-agentic-swarm-2025-11-30T03-38-01-470Z.json +31 -0
  559. package/simulation/reports/multi-agent-swarm-2025-11-29T23-35-28-093Z.json +78 -0
  560. package/simulation/reports/multi-agent-swarm-2025-11-30T01-03-54-062Z.json +42 -0
  561. package/simulation/reports/multi-agent-swarm-2025-11-30T01-05-06-092Z.json +42 -0
  562. package/simulation/reports/psycho-symbolic-reasoner-2025-11-30T01-36-50-180Z.json +30 -0
  563. package/simulation/reports/quality-metrics.md +727 -0
  564. package/simulation/reports/reflexion-learning-2025-11-29T23-35-09-774Z.json +48 -0
  565. package/simulation/reports/reflexion-learning-2025-11-29T23-37-16-934Z.json +36 -0
  566. package/simulation/reports/reflexion-learning-2025-11-30T00-07-49-259Z.json +30 -0
  567. package/simulation/reports/reflexion-learning-2025-11-30T00-09-29-319Z.json +51 -0
  568. package/simulation/reports/reflexion-learning-2025-11-30T00-28-37-659Z.json +51 -0
  569. package/simulation/reports/reflexion-learning-2025-11-30T01-31-30-690Z.json +29 -0
  570. package/simulation/reports/reflexion-learning-2025-11-30T03-38-06-937Z.json +29 -0
  571. package/simulation/reports/research-foundations.md +2004 -0
  572. package/simulation/reports/research-swarm-2025-11-30T01-36-54-647Z.json +30 -0
  573. package/simulation/reports/scalability-deployment.md +2404 -0
  574. package/simulation/reports/skill-evolution-2025-11-29T23-35-15-945Z.json +36 -0
  575. package/simulation/reports/skill-evolution-2025-11-30T01-03-17-995Z.json +30 -0
  576. package/simulation/reports/skill-evolution-2025-11-30T01-03-48-441Z.json +30 -0
  577. package/simulation/reports/skill-evolution-2025-11-30T01-05-00-554Z.json +30 -0
  578. package/simulation/reports/skill-evolution-2025-11-30T01-06-11-436Z.json +30 -0
  579. package/simulation/reports/skill-evolution-2025-11-30T01-06-51-979Z.json +30 -0
  580. package/simulation/reports/skill-evolution-2025-11-30T01-07-32-695Z.json +40 -0
  581. package/simulation/reports/stock-market-emergence-2025-11-30T00-11-43-865Z.json +56 -0
  582. package/simulation/reports/stock-market-emergence-2025-11-30T00-28-57-495Z.json +56 -0
  583. package/simulation/reports/strange-loops-2025-11-29T23-37-30-621Z.json +78 -0
  584. package/simulation/reports/strange-loops-2025-11-30T00-07-55-415Z.json +30 -0
  585. package/simulation/reports/strange-loops-2025-11-30T00-09-35-133Z.json +30 -0
  586. package/simulation/reports/strange-loops-2025-11-30T00-48-50-744Z.json +24 -0
  587. package/simulation/reports/strange-loops-2025-11-30T00-54-48-044Z.json +24 -0
  588. package/simulation/reports/strange-loops-2025-11-30T00-57-27-633Z.json +24 -0
  589. package/simulation/reports/strange-loops-2025-11-30T00-57-59-135Z.json +42 -0
  590. package/simulation/reports/sublinear-solver-2025-11-30T01-36-33-134Z.json +30 -0
  591. package/simulation/reports/temporal-lead-solver-2025-11-30T01-36-38-628Z.json +30 -0
  592. package/simulation/reports/use-cases-applications.md +2212 -0
  593. package/simulation/reports/voting-system-consensus-2025-11-30T00-11-37-199Z.json +58 -0
  594. package/simulation/reports/voting-system-consensus-2025-11-30T00-28-47-735Z.json +58 -0
  595. package/simulation/runner.ts +300 -0
  596. package/simulation/scenarios/README-advanced/aidefence-integration.md +63 -0
  597. package/simulation/scenarios/README-advanced/bmssp-integration.md +58 -0
  598. package/simulation/scenarios/README-advanced/consciousness-explorer.md +53 -0
  599. package/simulation/scenarios/README-advanced/goalie-integration.md +61 -0
  600. package/simulation/scenarios/README-advanced/psycho-symbolic-reasoner.md +55 -0
  601. package/simulation/scenarios/README-advanced/research-swarm.md +63 -0
  602. package/simulation/scenarios/README-advanced/sublinear-solver.md +58 -0
  603. package/simulation/scenarios/README-advanced/temporal-lead-solver.md +55 -0
  604. package/simulation/scenarios/README-basic/causal-reasoning.md +39 -0
  605. package/simulation/scenarios/README-basic/graph-traversal.md +41 -0
  606. package/simulation/scenarios/README-basic/lean-agentic-swarm.md +122 -0
  607. package/simulation/scenarios/README-basic/multi-agent-swarm.md +34 -0
  608. package/simulation/scenarios/README-basic/reflexion-learning.md +41 -0
  609. package/simulation/scenarios/README-basic/skill-evolution.md +38 -0
  610. package/simulation/scenarios/README-basic/stock-market-emergence.md +28 -0
  611. package/simulation/scenarios/README-basic/strange-loops.md +36 -0
  612. package/simulation/scenarios/README-basic/voting-system-consensus.md +28 -0
  613. package/simulation/scenarios/README.md +438 -0
  614. package/simulation/scenarios/aidefence-integration.ts +165 -0
  615. package/simulation/scenarios/bmssp-integration.ts +137 -0
  616. package/simulation/scenarios/causal-reasoning.ts +143 -0
  617. package/simulation/scenarios/consciousness-explorer.ts +139 -0
  618. package/simulation/scenarios/domain-examples/.claude-flow/metrics/agent-metrics.json +1 -0
  619. package/simulation/scenarios/domain-examples/.claude-flow/metrics/performance.json +87 -0
  620. package/simulation/scenarios/domain-examples/.claude-flow/metrics/task-metrics.json +10 -0
  621. package/simulation/scenarios/domain-examples/README.md +525 -0
  622. package/simulation/scenarios/domain-examples/e-commerce-recommendations.ts +220 -0
  623. package/simulation/scenarios/domain-examples/index.ts +81 -0
  624. package/simulation/scenarios/domain-examples/iot-sensor-networks.ts +290 -0
  625. package/simulation/scenarios/domain-examples/medical-imaging.ts +181 -0
  626. package/simulation/scenarios/domain-examples/robotics-navigation.ts +214 -0
  627. package/simulation/scenarios/domain-examples/scientific-research.ts +250 -0
  628. package/simulation/scenarios/domain-examples/trading-systems.ts +138 -0
  629. package/simulation/scenarios/goalie-integration.ts +161 -0
  630. package/simulation/scenarios/graph-traversal.ts +129 -0
  631. package/simulation/scenarios/latent-space/OPTIMIZATION-COMPLETE.md +287 -0
  632. package/simulation/scenarios/latent-space/README-attention-analysis.md +170 -0
  633. package/simulation/scenarios/latent-space/README-clustering-analysis.md +239 -0
  634. package/simulation/scenarios/latent-space/README-hnsw-exploration.md +199 -0
  635. package/simulation/scenarios/latent-space/README-hypergraph-exploration.md +279 -0
  636. package/simulation/scenarios/latent-space/README-neural-augmentation.md +267 -0
  637. package/simulation/scenarios/latent-space/README-quantum-hybrid.md +276 -0
  638. package/simulation/scenarios/latent-space/README-self-organizing-hnsw.md +244 -0
  639. package/simulation/scenarios/latent-space/README-traversal-optimization.md +212 -0
  640. package/simulation/scenarios/latent-space/attention-analysis.ts +598 -0
  641. package/simulation/scenarios/latent-space/clustering-analysis.ts +796 -0
  642. package/simulation/scenarios/latent-space/hnsw-exploration.ts +526 -0
  643. package/simulation/scenarios/latent-space/hypergraph-exploration.ts +706 -0
  644. package/simulation/scenarios/latent-space/index.ts +47 -0
  645. package/simulation/scenarios/latent-space/neural-augmentation.ts +604 -0
  646. package/simulation/scenarios/latent-space/quantum-hybrid.ts +508 -0
  647. package/simulation/scenarios/latent-space/self-organizing-hnsw.ts +680 -0
  648. package/simulation/scenarios/latent-space/traversal-optimization.ts +782 -0
  649. package/simulation/scenarios/lean-agentic-swarm.ts +182 -0
  650. package/simulation/scenarios/multi-agent-swarm.ts +146 -0
  651. package/simulation/scenarios/psycho-symbolic-reasoner.ts +136 -0
  652. package/simulation/scenarios/reflexion-learning.ts +132 -0
  653. package/simulation/scenarios/research-swarm.ts +187 -0
  654. package/simulation/scenarios/skill-evolution.ts +135 -0
  655. package/simulation/scenarios/stock-market-emergence.ts +323 -0
  656. package/simulation/scenarios/strange-loops.ts +175 -0
  657. package/simulation/scenarios/sublinear-solver.ts +108 -0
  658. package/simulation/scenarios/temporal-lead-solver.ts +121 -0
  659. package/simulation/scenarios/voting-system-consensus.ts +251 -0
  660. package/simulation/tests/latent-space/attention-analysis.test.ts +204 -0
  661. package/simulation/tests/latent-space/clustering-analysis.test.ts +281 -0
  662. package/simulation/tests/latent-space/hnsw-exploration.test.ts +253 -0
  663. package/simulation/tests/latent-space/hypergraph-exploration.test.ts +295 -0
  664. package/simulation/tests/latent-space/neural-augmentation.test.ts +326 -0
  665. package/simulation/tests/latent-space/quantum-hybrid.test.ts +307 -0
  666. package/simulation/tests/latent-space/self-organizing-hnsw.test.ts +291 -0
  667. package/simulation/tests/latent-space/traversal-optimization.test.ts +261 -0
  668. package/simulation/types.ts +177 -0
  669. package/simulation/utils/PerformanceOptimizer.ts +269 -0
  670. package/src/backends/GraphBackend.ts +290 -0
  671. package/src/backends/LearningBackend.ts +210 -0
  672. package/src/backends/README.md +389 -0
  673. package/src/backends/VectorBackend.ts +147 -0
  674. package/src/backends/detector.ts +283 -0
  675. package/src/backends/factory.ts +279 -0
  676. package/src/backends/graph/GraphDatabaseAdapter.ts +334 -0
  677. package/src/backends/hnswlib/HNSWLibBackend.ts +419 -0
  678. package/src/backends/hnswlib/index.ts +7 -0
  679. package/src/backends/index.ts +32 -0
  680. package/src/backends/ruvector/GuardedVectorBackend.ts +219 -0
  681. package/src/backends/ruvector/RuVectorBackend.ts +343 -0
  682. package/src/backends/ruvector/RuVectorLearning.ts +254 -0
  683. package/src/backends/ruvector/index.ts +9 -0
  684. package/src/benchmarks/wasm-vector-benchmark.ts +250 -0
  685. package/src/browser/AdvancedFeatures.ts +565 -0
  686. package/src/browser/AttentionBrowser.ts +387 -0
  687. package/src/browser/HNSWIndex.ts +494 -0
  688. package/src/browser/ProductQuantization.ts +419 -0
  689. package/src/browser/index.ts +317 -0
  690. package/src/cli/agentdb-cli.ts +2712 -0
  691. package/src/cli/attention-cli-integration.ts +91 -0
  692. package/src/cli/commands/attention.ts +656 -0
  693. package/src/cli/commands/doctor.ts +322 -0
  694. package/src/cli/commands/init.ts +176 -0
  695. package/src/cli/commands/install-embeddings.ts +81 -0
  696. package/src/cli/commands/migrate.ts +545 -0
  697. package/src/cli/commands/simulate-custom.ts +232 -0
  698. package/src/cli/commands/simulate-report.ts +171 -0
  699. package/src/cli/commands/simulate-wizard.ts +379 -0
  700. package/src/cli/commands/simulate.ts +115 -0
  701. package/src/cli/commands/status.ts +156 -0
  702. package/src/cli/examples.sh +83 -0
  703. package/src/cli/lib/attention-config.ts +326 -0
  704. package/src/cli/lib/config-manager.ts +627 -0
  705. package/src/cli/lib/config-validator.ts +261 -0
  706. package/src/cli/lib/health-monitor.ts +513 -0
  707. package/src/cli/lib/help-formatter.ts +406 -0
  708. package/src/cli/lib/history-tracker.ts +503 -0
  709. package/src/cli/lib/report-generator.ts +455 -0
  710. package/src/cli/lib/report-store.ts +582 -0
  711. package/src/cli/lib/simulation-registry.ts +503 -0
  712. package/src/cli/lib/simulation-runner.ts +291 -0
  713. package/src/cli/tests/agentdb-cli.test.ts +58 -0
  714. package/src/cli/tests/attention-cli.test.ts +335 -0
  715. package/src/controllers/AttentionService.ts +770 -0
  716. package/src/controllers/CausalMemoryGraph.ts +773 -0
  717. package/src/controllers/CausalRecall.ts +484 -0
  718. package/src/controllers/ContextSynthesizer.ts +285 -0
  719. package/src/controllers/EmbeddingService.ts +161 -0
  720. package/src/controllers/EnhancedEmbeddingService.ts +143 -0
  721. package/src/controllers/ExplainableRecall.ts +746 -0
  722. package/src/controllers/HNSWIndex.ts +495 -0
  723. package/src/controllers/LearningSystem.ts +1270 -0
  724. package/src/controllers/MMRDiversityRanker.ts +187 -0
  725. package/src/controllers/MetadataFilter.ts +280 -0
  726. package/src/controllers/NightlyLearner.ts +647 -0
  727. package/src/controllers/QUICClient.ts +413 -0
  728. package/src/controllers/QUICServer.ts +498 -0
  729. package/src/controllers/ReasoningBank.ts +665 -0
  730. package/src/controllers/ReflexionMemory.ts +872 -0
  731. package/src/controllers/SkillLibrary.ts +795 -0
  732. package/src/controllers/SyncCoordinator.ts +597 -0
  733. package/src/controllers/WASMVectorSearch.ts +292 -0
  734. package/src/controllers/frontier-index.ts +35 -0
  735. package/src/controllers/index.ts +57 -0
  736. package/src/coordination/MultiDatabaseCoordinator.ts +1107 -0
  737. package/src/coordination/index.ts +24 -0
  738. package/src/core/AgentDB.ts +211 -0
  739. package/src/db-fallback.ts +296 -0
  740. package/src/db-test.ts +59 -0
  741. package/src/db-unified.ts +327 -0
  742. package/src/examples/quic-sync-example.ts +198 -0
  743. package/src/examples/wasm-vector-usage.ts +245 -0
  744. package/src/index.ts +69 -0
  745. package/src/mcp/agentdb-mcp-server.ts +2318 -0
  746. package/src/mcp/attention-mcp-integration.ts +145 -0
  747. package/src/mcp/attention-tools-handlers.ts +586 -0
  748. package/src/mcp/learning-tools-handlers.ts +106 -0
  749. package/src/optimizations/BatchOperations.ts +594 -0
  750. package/src/optimizations/QueryOptimizer.ts +297 -0
  751. package/src/optimizations/ToolCache.ts +355 -0
  752. package/src/optimizations/index.ts +11 -0
  753. package/src/schemas/frontier-schema.sql +378 -0
  754. package/src/schemas/schema.sql +382 -0
  755. package/src/security/AttestationLog.ts +252 -0
  756. package/src/security/MutationGuard.ts +420 -0
  757. package/src/security/index.ts +52 -0
  758. package/src/security/input-validation.ts +543 -0
  759. package/src/security/limits.ts +375 -0
  760. package/src/security/path-security.ts +436 -0
  761. package/src/security/validation.ts +556 -0
  762. package/src/services/GraphTransformerService.ts +389 -0
  763. package/src/services/LLMRouter.ts +380 -0
  764. package/src/services/SemanticRouter.ts +169 -0
  765. package/src/services/SonaTrajectoryService.ts +264 -0
  766. package/src/tests/attention-service.test.ts +492 -0
  767. package/src/tests/wasm-vector-search.test.ts +240 -0
  768. package/src/types/attention.ts +392 -0
  769. package/src/types/quic.ts +772 -0
  770. package/src/utils/LegacyAttentionAdapter.ts +393 -0
  771. package/src/utils/NodeIdMapper.ts +64 -0
  772. package/src/utils/attention-metrics.ts +253 -0
  773. package/src/utils/vector-math.ts +71 -0
  774. package/LICENSE +0 -21
  775. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts +0 -175
  776. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts.map +0 -1
  777. package/dist/src/backends/rvf/AdaptiveIndexTuner.js +0 -559
  778. package/dist/src/backends/rvf/AdaptiveIndexTuner.js.map +0 -1
  779. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts +0 -148
  780. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts.map +0 -1
  781. package/dist/src/backends/rvf/ContrastiveTrainer.js +0 -438
  782. package/dist/src/backends/rvf/ContrastiveTrainer.js.map +0 -1
  783. package/dist/src/backends/rvf/FederatedSessionManager.d.ts +0 -211
  784. package/dist/src/backends/rvf/FederatedSessionManager.d.ts.map +0 -1
  785. package/dist/src/backends/rvf/FederatedSessionManager.js +0 -389
  786. package/dist/src/backends/rvf/FederatedSessionManager.js.map +0 -1
  787. package/dist/src/backends/rvf/FilterBuilder.d.ts +0 -136
  788. package/dist/src/backends/rvf/FilterBuilder.d.ts.map +0 -1
  789. package/dist/src/backends/rvf/FilterBuilder.js +0 -157
  790. package/dist/src/backends/rvf/FilterBuilder.js.map +0 -1
  791. package/dist/src/backends/rvf/NativeAccelerator.d.ts +0 -140
  792. package/dist/src/backends/rvf/NativeAccelerator.d.ts.map +0 -1
  793. package/dist/src/backends/rvf/NativeAccelerator.js +0 -630
  794. package/dist/src/backends/rvf/NativeAccelerator.js.map +0 -1
  795. package/dist/src/backends/rvf/RvfBackend.d.ts +0 -194
  796. package/dist/src/backends/rvf/RvfBackend.d.ts.map +0 -1
  797. package/dist/src/backends/rvf/RvfBackend.js +0 -607
  798. package/dist/src/backends/rvf/RvfBackend.js.map +0 -1
  799. package/dist/src/backends/rvf/RvfSolver.d.ts +0 -175
  800. package/dist/src/backends/rvf/RvfSolver.d.ts.map +0 -1
  801. package/dist/src/backends/rvf/RvfSolver.js +0 -176
  802. package/dist/src/backends/rvf/RvfSolver.js.map +0 -1
  803. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts +0 -143
  804. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +0 -1
  805. package/dist/src/backends/rvf/SelfLearningRvfBackend.js +0 -569
  806. package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +0 -1
  807. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts +0 -128
  808. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts.map +0 -1
  809. package/dist/src/backends/rvf/SemanticQueryRouter.js +0 -415
  810. package/dist/src/backends/rvf/SemanticQueryRouter.js.map +0 -1
  811. package/dist/src/backends/rvf/SimdFallbacks.d.ts +0 -25
  812. package/dist/src/backends/rvf/SimdFallbacks.d.ts.map +0 -1
  813. package/dist/src/backends/rvf/SimdFallbacks.js +0 -287
  814. package/dist/src/backends/rvf/SimdFallbacks.js.map +0 -1
  815. package/dist/src/backends/rvf/SolverBandit.d.ts +0 -100
  816. package/dist/src/backends/rvf/SolverBandit.d.ts.map +0 -1
  817. package/dist/src/backends/rvf/SolverBandit.js +0 -216
  818. package/dist/src/backends/rvf/SolverBandit.js.map +0 -1
  819. package/dist/src/backends/rvf/SonaLearningBackend.d.ts +0 -157
  820. package/dist/src/backends/rvf/SonaLearningBackend.d.ts.map +0 -1
  821. package/dist/src/backends/rvf/SonaLearningBackend.js +0 -283
  822. package/dist/src/backends/rvf/SonaLearningBackend.js.map +0 -1
  823. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +0 -77
  824. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +0 -1
  825. package/dist/src/backends/rvf/SqlJsRvfBackend.js +0 -382
  826. package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +0 -1
  827. package/dist/src/backends/rvf/WasmStoreBridge.d.ts +0 -27
  828. package/dist/src/backends/rvf/WasmStoreBridge.d.ts.map +0 -1
  829. package/dist/src/backends/rvf/WasmStoreBridge.js +0 -87
  830. package/dist/src/backends/rvf/WasmStoreBridge.js.map +0 -1
  831. package/dist/src/backends/rvf/validation.d.ts +0 -20
  832. package/dist/src/backends/rvf/validation.d.ts.map +0 -1
  833. package/dist/src/backends/rvf/validation.js +0 -78
  834. package/dist/src/backends/rvf/validation.js.map +0 -1
  835. package/dist/src/benchmark/BenchmarkSuite.d.ts +0 -318
  836. package/dist/src/benchmark/BenchmarkSuite.d.ts.map +0 -1
  837. package/dist/src/benchmark/BenchmarkSuite.js +0 -986
  838. package/dist/src/benchmark/BenchmarkSuite.js.map +0 -1
  839. package/dist/src/benchmark/index.d.ts +0 -29
  840. package/dist/src/benchmark/index.d.ts.map +0 -1
  841. package/dist/src/benchmark/index.js +0 -39
  842. package/dist/src/benchmark/index.js.map +0 -1
  843. package/dist/src/cli/commands/hyperbolic.d.ts +0 -11
  844. package/dist/src/cli/commands/hyperbolic.d.ts.map +0 -1
  845. package/dist/src/cli/commands/hyperbolic.js +0 -428
  846. package/dist/src/cli/commands/hyperbolic.js.map +0 -1
  847. package/dist/src/cli/commands/learn.d.ts +0 -11
  848. package/dist/src/cli/commands/learn.d.ts.map +0 -1
  849. package/dist/src/cli/commands/learn.js +0 -404
  850. package/dist/src/cli/commands/learn.js.map +0 -1
  851. package/dist/src/cli/commands/route.d.ts +0 -11
  852. package/dist/src/cli/commands/route.d.ts.map +0 -1
  853. package/dist/src/cli/commands/route.js +0 -414
  854. package/dist/src/cli/commands/route.js.map +0 -1
  855. package/dist/src/cli/commands/rvf.d.ts +0 -21
  856. package/dist/src/cli/commands/rvf.d.ts.map +0 -1
  857. package/dist/src/cli/commands/rvf.js +0 -448
  858. package/dist/src/cli/commands/rvf.js.map +0 -1
  859. package/dist/src/cli/tests/agentdb-cli.test.d.ts +0 -8
  860. package/dist/src/cli/tests/agentdb-cli.test.d.ts.map +0 -1
  861. package/dist/src/cli/tests/agentdb-cli.test.js +0 -50
  862. package/dist/src/cli/tests/agentdb-cli.test.js.map +0 -1
  863. package/dist/src/cli/tests/attention-cli.test.d.ts +0 -5
  864. package/dist/src/cli/tests/attention-cli.test.d.ts.map +0 -1
  865. package/dist/src/cli/tests/attention-cli.test.js +0 -257
  866. package/dist/src/cli/tests/attention-cli.test.js.map +0 -1
  867. package/dist/src/compatibility/DeprecationWarnings.d.ts +0 -54
  868. package/dist/src/compatibility/DeprecationWarnings.d.ts.map +0 -1
  869. package/dist/src/compatibility/DeprecationWarnings.js +0 -131
  870. package/dist/src/compatibility/DeprecationWarnings.js.map +0 -1
  871. package/dist/src/compatibility/MigrationUtilities.d.ts +0 -30
  872. package/dist/src/compatibility/MigrationUtilities.d.ts.map +0 -1
  873. package/dist/src/compatibility/MigrationUtilities.js +0 -184
  874. package/dist/src/compatibility/MigrationUtilities.js.map +0 -1
  875. package/dist/src/compatibility/V1toV2Adapter.d.ts +0 -76
  876. package/dist/src/compatibility/V1toV2Adapter.d.ts.map +0 -1
  877. package/dist/src/compatibility/V1toV2Adapter.js +0 -198
  878. package/dist/src/compatibility/V1toV2Adapter.js.map +0 -1
  879. package/dist/src/compatibility/VersionDetector.d.ts +0 -32
  880. package/dist/src/compatibility/VersionDetector.d.ts.map +0 -1
  881. package/dist/src/compatibility/VersionDetector.js +0 -144
  882. package/dist/src/compatibility/VersionDetector.js.map +0 -1
  883. package/dist/src/compatibility/index.d.ts +0 -11
  884. package/dist/src/compatibility/index.d.ts.map +0 -1
  885. package/dist/src/compatibility/index.js +0 -10
  886. package/dist/src/compatibility/index.js.map +0 -1
  887. package/dist/src/compatibility/types.d.ts +0 -103
  888. package/dist/src/compatibility/types.d.ts.map +0 -1
  889. package/dist/src/compatibility/types.js +0 -5
  890. package/dist/src/compatibility/types.js.map +0 -1
  891. package/dist/src/controllers/MemoryController.d.ts +0 -161
  892. package/dist/src/controllers/MemoryController.d.ts.map +0 -1
  893. package/dist/src/controllers/MemoryController.js +0 -290
  894. package/dist/src/controllers/MemoryController.js.map +0 -1
  895. package/dist/src/controllers/attention/CrossAttentionController.d.ts +0 -141
  896. package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +0 -1
  897. package/dist/src/controllers/attention/CrossAttentionController.js +0 -325
  898. package/dist/src/controllers/attention/CrossAttentionController.js.map +0 -1
  899. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +0 -137
  900. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +0 -1
  901. package/dist/src/controllers/attention/MultiHeadAttentionController.js +0 -339
  902. package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +0 -1
  903. package/dist/src/controllers/attention/SelfAttentionController.d.ts +0 -117
  904. package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +0 -1
  905. package/dist/src/controllers/attention/SelfAttentionController.js +0 -205
  906. package/dist/src/controllers/attention/SelfAttentionController.js.map +0 -1
  907. package/dist/src/controllers/attention/index.d.ts +0 -15
  908. package/dist/src/controllers/attention/index.d.ts.map +0 -1
  909. package/dist/src/controllers/attention/index.js +0 -12
  910. package/dist/src/controllers/attention/index.js.map +0 -1
  911. package/dist/src/core/QueryCache.d.ts +0 -138
  912. package/dist/src/core/QueryCache.d.ts.map +0 -1
  913. package/dist/src/core/QueryCache.js +0 -313
  914. package/dist/src/core/QueryCache.js.map +0 -1
  915. package/dist/src/observability/index.d.ts +0 -8
  916. package/dist/src/observability/index.d.ts.map +0 -1
  917. package/dist/src/observability/index.js +0 -8
  918. package/dist/src/observability/index.js.map +0 -1
  919. package/dist/src/observability/integration.d.ts +0 -32
  920. package/dist/src/observability/integration.d.ts.map +0 -1
  921. package/dist/src/observability/integration.js +0 -157
  922. package/dist/src/observability/integration.js.map +0 -1
  923. package/dist/src/observability/telemetry.d.ts +0 -137
  924. package/dist/src/observability/telemetry.d.ts.map +0 -1
  925. package/dist/src/observability/telemetry.js +0 -420
  926. package/dist/src/observability/telemetry.js.map +0 -1
  927. package/dist/src/quantization/index.d.ts +0 -7
  928. package/dist/src/quantization/index.d.ts.map +0 -1
  929. package/dist/src/quantization/index.js +0 -15
  930. package/dist/src/quantization/index.js.map +0 -1
  931. package/dist/src/quantization/vector-quantization.d.ts +0 -388
  932. package/dist/src/quantization/vector-quantization.d.ts.map +0 -1
  933. package/dist/src/quantization/vector-quantization.js +0 -1136
  934. package/dist/src/quantization/vector-quantization.js.map +0 -1
  935. package/dist/src/search/HybridSearch.d.ts +0 -311
  936. package/dist/src/search/HybridSearch.d.ts.map +0 -1
  937. package/dist/src/search/HybridSearch.js +0 -712
  938. package/dist/src/search/HybridSearch.js.map +0 -1
  939. package/dist/src/search/index.d.ts +0 -12
  940. package/dist/src/search/index.d.ts.map +0 -1
  941. package/dist/src/search/index.js +0 -16
  942. package/dist/src/search/index.js.map +0 -1
  943. package/dist/src/services/AttentionService.d.ts +0 -303
  944. package/dist/src/services/AttentionService.d.ts.map +0 -1
  945. package/dist/src/services/AttentionService.js +0 -1167
  946. package/dist/src/services/AttentionService.js.map +0 -1
  947. package/dist/src/simd/index.d.ts +0 -9
  948. package/dist/src/simd/index.d.ts.map +0 -1
  949. package/dist/src/simd/index.js +0 -27
  950. package/dist/src/simd/index.js.map +0 -1
  951. package/dist/src/simd/simd-vector-ops.d.ts +0 -332
  952. package/dist/src/simd/simd-vector-ops.d.ts.map +0 -1
  953. package/dist/src/simd/simd-vector-ops.js +0 -947
  954. package/dist/src/simd/simd-vector-ops.js.map +0 -1
  955. package/dist/src/tests/attention-service.test.d.ts +0 -7
  956. package/dist/src/tests/attention-service.test.d.ts.map +0 -1
  957. package/dist/src/tests/attention-service.test.js +0 -401
  958. package/dist/src/tests/attention-service.test.js.map +0 -1
  959. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts +0 -7
  960. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts.map +0 -1
  961. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js +0 -283
  962. package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js.map +0 -1
  963. package/dist/src/tests/query-cache.test.d.ts +0 -7
  964. package/dist/src/tests/query-cache.test.d.ts.map +0 -1
  965. package/dist/src/tests/query-cache.test.js +0 -343
  966. package/dist/src/tests/query-cache.test.js.map +0 -1
  967. package/dist/src/tests/ruvector-integration.test.d.ts +0 -14
  968. package/dist/src/tests/ruvector-integration.test.d.ts.map +0 -1
  969. package/dist/src/tests/ruvector-integration.test.js +0 -1156
  970. package/dist/src/tests/ruvector-integration.test.js.map +0 -1
  971. package/dist/src/tests/unit/auth/crypto.utils.test.d.ts +0 -6
  972. package/dist/src/tests/unit/auth/crypto.utils.test.d.ts.map +0 -1
  973. package/dist/src/tests/unit/auth/crypto.utils.test.js +0 -310
  974. package/dist/src/tests/unit/auth/crypto.utils.test.js.map +0 -1
  975. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts +0 -5
  976. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts.map +0 -1
  977. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js +0 -207
  978. package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js.map +0 -1
  979. package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts +0 -5
  980. package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts.map +0 -1
  981. package/dist/src/tests/unit/compatibility/migration-utils.test.js +0 -264
  982. package/dist/src/tests/unit/compatibility/migration-utils.test.js.map +0 -1
  983. package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts +0 -7
  984. package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts.map +0 -1
  985. package/dist/src/tests/unit/compatibility/v1-adapter.test.js +0 -228
  986. package/dist/src/tests/unit/compatibility/v1-adapter.test.js.map +0 -1
  987. package/dist/src/tests/unit/compatibility/version-detector.test.d.ts +0 -10
  988. package/dist/src/tests/unit/compatibility/version-detector.test.d.ts.map +0 -1
  989. package/dist/src/tests/unit/compatibility/version-detector.test.js +0 -162
  990. package/dist/src/tests/unit/compatibility/version-detector.test.js.map +0 -1
  991. package/dist/src/tests/vector-quantization.test.d.ts +0 -5
  992. package/dist/src/tests/vector-quantization.test.d.ts.map +0 -1
  993. package/dist/src/tests/vector-quantization.test.js +0 -338
  994. package/dist/src/tests/vector-quantization.test.js.map +0 -1
  995. package/dist/src/tests/wasm-vector-search.test.d.ts +0 -7
  996. package/dist/src/tests/wasm-vector-search.test.d.ts.map +0 -1
  997. package/dist/src/tests/wasm-vector-search.test.js +0 -193
  998. package/dist/src/tests/wasm-vector-search.test.js.map +0 -1
  999. package/dist/src/types/database.types.d.ts +0 -275
  1000. package/dist/src/types/database.types.d.ts.map +0 -1
  1001. package/dist/src/types/database.types.js +0 -57
  1002. package/dist/src/types/database.types.js.map +0 -1
  1003. package/dist/src/utils/chalk-fallback.d.ts +0 -3
  1004. package/dist/src/utils/chalk-fallback.d.ts.map +0 -1
  1005. package/dist/src/utils/chalk-fallback.js +0 -20
  1006. package/dist/src/utils/chalk-fallback.js.map +0 -1
  1007. package/dist/src/utils/crypto.utils.d.ts +0 -122
  1008. package/dist/src/utils/crypto.utils.d.ts.map +0 -1
  1009. package/dist/src/utils/crypto.utils.js +0 -296
  1010. package/dist/src/utils/crypto.utils.js.map +0 -1
  1011. package/dist/src/utils/similarity.d.ts +0 -11
  1012. package/dist/src/utils/similarity.d.ts.map +0 -1
  1013. package/dist/src/utils/similarity.js +0 -25
  1014. package/dist/src/utils/similarity.js.map +0 -1
  1015. package/dist/src/wasm-loader.d.ts +0 -67
  1016. package/dist/src/wasm-loader.d.ts.map +0 -1
  1017. package/dist/src/wasm-loader.js +0 -78
  1018. package/dist/src/wasm-loader.js.map +0 -1
  1019. package/dist/src/wrappers/agentdb-fast.d.ts +0 -139
  1020. package/dist/src/wrappers/agentdb-fast.d.ts.map +0 -1
  1021. package/dist/src/wrappers/agentdb-fast.js +0 -316
  1022. package/dist/src/wrappers/agentdb-fast.js.map +0 -1
  1023. package/dist/src/wrappers/attention-fallbacks.d.ts +0 -351
  1024. package/dist/src/wrappers/attention-fallbacks.d.ts.map +0 -1
  1025. package/dist/src/wrappers/attention-fallbacks.js +0 -1487
  1026. package/dist/src/wrappers/attention-fallbacks.js.map +0 -1
  1027. package/dist/src/wrappers/embedding-service.d.ts +0 -117
  1028. package/dist/src/wrappers/embedding-service.d.ts.map +0 -1
  1029. package/dist/src/wrappers/embedding-service.js +0 -376
  1030. package/dist/src/wrappers/embedding-service.js.map +0 -1
  1031. package/dist/src/wrappers/gnn-wrapper.d.ts +0 -71
  1032. package/dist/src/wrappers/gnn-wrapper.d.ts.map +0 -1
  1033. package/dist/src/wrappers/gnn-wrapper.js +0 -240
  1034. package/dist/src/wrappers/gnn-wrapper.js.map +0 -1
  1035. package/dist/src/wrappers/index.d.ts +0 -48
  1036. package/dist/src/wrappers/index.d.ts.map +0 -1
  1037. package/dist/src/wrappers/index.js +0 -83
  1038. package/dist/src/wrappers/index.js.map +0 -1
@@ -1,1136 +0,0 @@
1
- /**
2
- * Vector Quantization for AgentDB
3
- *
4
- * Provides memory-efficient vector storage through quantization techniques:
5
- *
6
- * 1. Scalar Quantization (8-bit and 4-bit)
7
- * - 8-bit: 4x memory reduction (Float32 -> Uint8)
8
- * - 4-bit: 8x memory reduction (Float32 -> 4-bit packed)
9
- *
10
- * 2. Product Quantization
11
- * - Configurable subspaces and centroids
12
- * - Higher compression ratios (up to 32x+)
13
- * - Requires training on representative data
14
- *
15
- * 3. QuantizedVectorStore
16
- * - Wraps vector collections with quantized storage
17
- * - Asymmetric distance computation (full precision queries)
18
- * - On-the-fly dequantization for similarity calculations
19
- */
20
- // ============================================================================
21
- // Performance & Security Constants
22
- // ============================================================================
23
- /** @inline Maximum allowed vector dimension to prevent DoS via large allocations */
24
- export const MAX_VECTOR_DIMENSION = 4096;
25
- /** @inline Maximum number of vectors in a store */
26
- const MAX_STORE_SIZE = 10_000_000;
27
- /** @inline Maximum k-means iterations to prevent CPU exhaustion */
28
- const MAX_KMEANS_ITERATIONS = 500;
29
- /** @inline Maximum training vectors for product quantization */
30
- const MAX_TRAINING_VECTORS = 1_000_000;
31
- /** @inline Maximum batch size for optimal cache utilization */
32
- export const MAX_BATCH_SIZE = 10000;
33
- /** @inline Default cache size for embedding storage */
34
- export const DEFAULT_CACHE_SIZE = 10000;
35
- /** @inline Pre-computed inverse of 255 for 8-bit dequantization */
36
- const INV_255 = 1 / 255;
37
- /** @inline Pre-computed inverse of 15 for 4-bit dequantization */
38
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- pre-computed constant reserved for 4-bit dequantization path
39
- const INV_15 = 1 / 15;
40
- /** @inline Small epsilon for numerical stability */
41
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- pre-computed constant reserved for numerical stability checks
42
- const EPSILON = 1e-10;
43
- // ============================================================================
44
- // Input Validation Helpers
45
- // ============================================================================
46
- /**
47
- * Validate Float32Array input
48
- */
49
- function validateFloat32Array(arr, name) {
50
- if (arr === null || arr === undefined) {
51
- throw new Error(`${name} cannot be null or undefined`);
52
- }
53
- if (!(arr instanceof Float32Array)) {
54
- throw new Error(`${name} must be a Float32Array`);
55
- }
56
- }
57
- /**
58
- * Validate dimension is within safe limits
59
- */
60
- function validateDimension(dimension, name = 'dimension') {
61
- if (!Number.isFinite(dimension) || dimension < 0) {
62
- throw new Error(`${name} must be a non-negative finite number`);
63
- }
64
- if (dimension > MAX_VECTOR_DIMENSION) {
65
- throw new Error(`${name} exceeds maximum allowed size of ${MAX_VECTOR_DIMENSION}`);
66
- }
67
- }
68
- /**
69
- * Safely parse JSON with validation
70
- */
71
- function safeJSONParse(json, validator) {
72
- let parsed;
73
- try {
74
- parsed = JSON.parse(json);
75
- }
76
- catch (e) {
77
- throw new Error('Invalid JSON format');
78
- }
79
- if (!validator(parsed)) {
80
- throw new Error('JSON structure does not match expected format');
81
- }
82
- return parsed;
83
- }
84
- // ============================================================================
85
- // Scalar Quantization Functions
86
- // ============================================================================
87
- /**
88
- * Quantize a vector to 8-bit values (4x memory reduction)
89
- *
90
- * Formula: quantized = round((value - min) / (max - min) * 255)
91
- *
92
- * @param vector - Input vector as Float32Array
93
- * @returns Object containing quantized data and min/max for dequantization
94
- */
95
- export function quantize8bit(vector) {
96
- // Input validation
97
- validateFloat32Array(vector, 'Input vector');
98
- validateDimension(vector.length, 'Vector dimension');
99
- if (vector.length === 0) {
100
- return {
101
- data: new Uint8Array(0),
102
- min: 0,
103
- max: 0,
104
- dimension: 0,
105
- type: '8bit',
106
- };
107
- }
108
- // Find min and max values
109
- let min = vector[0];
110
- let max = vector[0];
111
- for (let i = 1; i < vector.length; i++) {
112
- if (vector[i] < min)
113
- min = vector[i];
114
- if (vector[i] > max)
115
- max = vector[i];
116
- }
117
- // Handle edge case where all values are the same
118
- const range = max - min;
119
- const scale = range === 0 ? 0 : 255 / range;
120
- // Quantize
121
- const quantized = new Uint8Array(vector.length);
122
- for (let i = 0; i < vector.length; i++) {
123
- quantized[i] = Math.round((vector[i] - min) * scale);
124
- }
125
- return {
126
- data: quantized,
127
- min,
128
- max,
129
- dimension: vector.length,
130
- type: '8bit',
131
- };
132
- }
133
- /**
134
- * Quantize a vector to 4-bit values (8x memory reduction)
135
- *
136
- * Formula: quantized = round((value - min) / (max - min) * 15)
137
- * Two 4-bit values are packed into each byte.
138
- *
139
- * @param vector - Input vector as Float32Array
140
- * @returns Object containing quantized data (packed) and min/max for dequantization
141
- */
142
- export function quantize4bit(vector) {
143
- // Input validation
144
- validateFloat32Array(vector, 'Input vector');
145
- validateDimension(vector.length, 'Vector dimension');
146
- if (vector.length === 0) {
147
- return {
148
- data: new Uint8Array(0),
149
- min: 0,
150
- max: 0,
151
- dimension: 0,
152
- type: '4bit',
153
- };
154
- }
155
- // Find min and max values
156
- let min = vector[0];
157
- let max = vector[0];
158
- for (let i = 1; i < vector.length; i++) {
159
- if (vector[i] < min)
160
- min = vector[i];
161
- if (vector[i] > max)
162
- max = vector[i];
163
- }
164
- // Handle edge case where all values are the same
165
- const range = max - min;
166
- const scale = range === 0 ? 0 : 15 / range;
167
- // Quantize and pack two values per byte
168
- const packedLength = Math.ceil(vector.length / 2);
169
- const quantized = new Uint8Array(packedLength);
170
- for (let i = 0; i < vector.length; i += 2) {
171
- const high = Math.round((vector[i] - min) * scale) & 0x0f;
172
- const low = i + 1 < vector.length
173
- ? Math.round((vector[i + 1] - min) * scale) & 0x0f
174
- : 0;
175
- quantized[i >> 1] = (high << 4) | low;
176
- }
177
- return {
178
- data: quantized,
179
- min,
180
- max,
181
- dimension: vector.length,
182
- type: '4bit',
183
- };
184
- }
185
- /**
186
- * Dequantize an 8-bit vector back to Float32
187
- *
188
- * @param quantized - Quantized data as Uint8Array
189
- * @param min - Minimum value from original quantization
190
- * @param max - Maximum value from original quantization
191
- * @returns Reconstructed Float32Array
192
- */
193
- export function dequantize8bit(quantized, min, max) {
194
- if (quantized.length === 0) {
195
- return new Float32Array(0);
196
- }
197
- const range = max - min;
198
- // @inline Use pre-computed constant when possible, fallback to computed scale
199
- const scale = range === 0 ? 0 : range * INV_255;
200
- const len = quantized.length | 0; // Force integer
201
- const result = new Float32Array(len);
202
- // @inline 4x loop unrolling for better ILP
203
- const loopEnd = (len - (len & 3)) | 0;
204
- for (let i = 0; i < loopEnd; i = (i + 4) | 0) {
205
- result[i] = quantized[i] * scale + min;
206
- result[i + 1] = quantized[i + 1] * scale + min;
207
- result[i + 2] = quantized[i + 2] * scale + min;
208
- result[i + 3] = quantized[i + 3] * scale + min;
209
- }
210
- // Handle remainder
211
- for (let i = loopEnd; i < len; i++) {
212
- result[i] = quantized[i] * scale + min;
213
- }
214
- return result;
215
- }
216
- /**
217
- * Dequantize a 4-bit packed vector back to Float32
218
- *
219
- * @param quantized - Packed quantized data as Uint8Array
220
- * @param min - Minimum value from original quantization
221
- * @param max - Maximum value from original quantization
222
- * @param originalLength - Original vector length (needed due to packing)
223
- * @returns Reconstructed Float32Array
224
- */
225
- export function dequantize4bit(quantized, min, max, originalLength) {
226
- if (quantized.length === 0) {
227
- return new Float32Array(0);
228
- }
229
- // Validate min/max are valid numbers
230
- if (!Number.isFinite(min) || !Number.isFinite(max)) {
231
- throw new Error('min and max must be finite numbers');
232
- }
233
- const range = max - min;
234
- const scale = range === 0 ? 0 : range / 15;
235
- // Calculate output length with bounds checking
236
- const maxPossibleLength = quantized.length * 2;
237
- const length = originalLength ?? maxPossibleLength;
238
- // Security check: originalLength should not exceed what the data can provide
239
- if (length > maxPossibleLength) {
240
- throw new Error(`originalLength (${length}) exceeds maximum possible from data (${maxPossibleLength})`);
241
- }
242
- validateDimension(length, 'Output length');
243
- const result = new Float32Array(length);
244
- for (let i = 0; i < length; i++) {
245
- const byteIdx = i >> 1;
246
- // Bounds check
247
- if (byteIdx >= quantized.length) {
248
- break;
249
- }
250
- const isHigh = (i & 1) === 0;
251
- const nibble = isHigh
252
- ? (quantized[byteIdx] >> 4) & 0x0f
253
- : quantized[byteIdx] & 0x0f;
254
- result[i] = nibble * scale + min;
255
- }
256
- return result;
257
- }
258
- /**
259
- * Calculate quantization error statistics
260
- *
261
- * @param original - Original vector
262
- * @param reconstructed - Reconstructed vector after quantization/dequantization
263
- * @returns Statistics about the quantization error
264
- */
265
- export function calculateQuantizationError(original, reconstructed) {
266
- if (original.length !== reconstructed.length) {
267
- throw new Error('Vector lengths must match');
268
- }
269
- if (original.length === 0) {
270
- return { meanError: 0, maxError: 0, mse: 0 };
271
- }
272
- let sumError = 0;
273
- let sumSquaredError = 0;
274
- let maxError = 0;
275
- for (let i = 0; i < original.length; i++) {
276
- const error = Math.abs(original[i] - reconstructed[i]);
277
- sumError += error;
278
- sumSquaredError += error * error;
279
- if (error > maxError)
280
- maxError = error;
281
- }
282
- return {
283
- meanError: sumError / original.length,
284
- maxError,
285
- mse: sumSquaredError / original.length,
286
- };
287
- }
288
- /**
289
- * Get quantization statistics for a vector
290
- *
291
- * @param vector - Original vector
292
- * @param type - Quantization type ('8bit' or '4bit')
293
- * @returns Quantization statistics including error metrics
294
- */
295
- export function getQuantizationStats(vector, type) {
296
- const quantized = type === '8bit' ? quantize8bit(vector) : quantize4bit(vector);
297
- const reconstructed = type === '8bit'
298
- ? dequantize8bit(quantized.data, quantized.min, quantized.max)
299
- : dequantize4bit(quantized.data, quantized.min, quantized.max, quantized.dimension);
300
- const errors = calculateQuantizationError(vector, reconstructed);
301
- // Calculate compression ratio
302
- // Original: vector.length * 4 bytes (Float32)
303
- // 8-bit: vector.length bytes
304
- // 4-bit: ceil(vector.length / 2) bytes
305
- const originalBytes = vector.length * 4;
306
- const compressedBytes = type === '8bit' ? quantized.data.length : Math.ceil(vector.length / 2);
307
- const compressionRatio = originalBytes / compressedBytes;
308
- return {
309
- min: quantized.min,
310
- max: quantized.max,
311
- meanError: errors.meanError,
312
- maxError: errors.maxError,
313
- compressionRatio,
314
- };
315
- }
316
- // ============================================================================
317
- // Product Quantization
318
- // ============================================================================
319
- /**
320
- * Simple seeded random number generator (LCG)
321
- */
322
- class SeededRandom {
323
- seed;
324
- constructor(seed) {
325
- this.seed = seed;
326
- }
327
- next() {
328
- this.seed = (this.seed * 1103515245 + 12345) & 0x7fffffff;
329
- return this.seed / 0x7fffffff;
330
- }
331
- nextInt(max) {
332
- return Math.floor(this.next() * max);
333
- }
334
- }
335
- /**
336
- * Product Quantizer for high compression ratios
337
- *
338
- * Divides vectors into subspaces and learns centroids for each subspace.
339
- * Vectors are encoded as indices into the centroid codebooks.
340
- */
341
- export class ProductQuantizer {
342
- config;
343
- subspaceDim;
344
- codebooks = null;
345
- trained = false;
346
- rng;
347
- constructor(config) {
348
- // Validate configuration
349
- validateDimension(config.dimension, 'Dimension');
350
- if (config.dimension % config.numSubspaces !== 0) {
351
- throw new Error(`Dimension (${config.dimension}) must be divisible by numSubspaces (${config.numSubspaces})`);
352
- }
353
- if (config.numCentroids > 256) {
354
- throw new Error('numCentroids must be <= 256 for uint8 encoding');
355
- }
356
- if (config.numCentroids < 2) {
357
- throw new Error('numCentroids must be >= 2');
358
- }
359
- if (config.numSubspaces < 1 || config.numSubspaces > 256) {
360
- throw new Error('numSubspaces must be between 1 and 256');
361
- }
362
- // Limit max iterations to prevent CPU exhaustion
363
- const maxIterations = Math.min(config.maxIterations ?? 50, MAX_KMEANS_ITERATIONS);
364
- this.config = {
365
- dimension: config.dimension,
366
- numSubspaces: config.numSubspaces,
367
- numCentroids: config.numCentroids,
368
- maxIterations: maxIterations,
369
- convergenceThreshold: config.convergenceThreshold ?? 1e-4,
370
- seed: config.seed ?? Date.now(),
371
- };
372
- this.subspaceDim = this.config.dimension / this.config.numSubspaces;
373
- this.rng = new SeededRandom(this.config.seed);
374
- }
375
- /**
376
- * Train the codebooks using k-means clustering
377
- *
378
- * @param vectors - Training vectors (should be representative of the data)
379
- */
380
- async train(vectors) {
381
- if (vectors.length === 0) {
382
- throw new Error('Training requires at least one vector');
383
- }
384
- // Limit training vectors to prevent memory exhaustion
385
- if (vectors.length > MAX_TRAINING_VECTORS) {
386
- throw new Error(`Training vectors exceed maximum of ${MAX_TRAINING_VECTORS}`);
387
- }
388
- if (vectors.length < this.config.numCentroids) {
389
- throw new Error(`Need at least ${this.config.numCentroids} vectors to train ${this.config.numCentroids} centroids`);
390
- }
391
- // Validate vector dimensions
392
- for (const vec of vectors) {
393
- validateFloat32Array(vec, 'Training vector');
394
- if (vec.length !== this.config.dimension) {
395
- throw new Error(`Vector dimension (${vec.length}) does not match config (${this.config.dimension})`);
396
- }
397
- }
398
- this.codebooks = [];
399
- // Train each subspace independently
400
- for (let s = 0; s < this.config.numSubspaces; s++) {
401
- const startDim = s * this.subspaceDim;
402
- // Extract subvectors for this subspace
403
- const subvectors = vectors.map((v) => v.slice(startDim, startDim + this.subspaceDim));
404
- // Run k-means to find centroids
405
- const centroids = await this.kMeans(subvectors);
406
- this.codebooks.push(centroids);
407
- }
408
- this.trained = true;
409
- }
410
- /**
411
- * K-means clustering with k-means++ initialization
412
- */
413
- async kMeans(subvectors) {
414
- const n = subvectors.length;
415
- const k = this.config.numCentroids;
416
- // K-means++ initialization
417
- const centroids = this.kMeansPlusPlus(subvectors, k);
418
- const assignments = new Uint32Array(n);
419
- let prevInertia = Infinity;
420
- for (let iter = 0; iter < this.config.maxIterations; iter++) {
421
- // Assign each vector to nearest centroid
422
- let inertia = 0;
423
- for (let i = 0; i < n; i++) {
424
- let minDist = Infinity;
425
- let minIdx = 0;
426
- for (let c = 0; c < k; c++) {
427
- const dist = this.squaredL2Distance(subvectors[i], centroids[c]);
428
- if (dist < minDist) {
429
- minDist = dist;
430
- minIdx = c;
431
- }
432
- }
433
- assignments[i] = minIdx;
434
- inertia += minDist;
435
- }
436
- // Check convergence
437
- if (Math.abs(prevInertia - inertia) < this.config.convergenceThreshold) {
438
- break;
439
- }
440
- prevInertia = inertia;
441
- // Update centroids
442
- const counts = new Uint32Array(k);
443
- const sums = Array.from({ length: k }, () => new Float32Array(this.subspaceDim));
444
- for (let i = 0; i < n; i++) {
445
- const cluster = assignments[i];
446
- counts[cluster]++;
447
- for (let d = 0; d < this.subspaceDim; d++) {
448
- sums[cluster][d] += subvectors[i][d];
449
- }
450
- }
451
- for (let c = 0; c < k; c++) {
452
- if (counts[c] > 0) {
453
- for (let d = 0; d < this.subspaceDim; d++) {
454
- centroids[c][d] = sums[c][d] / counts[c];
455
- }
456
- }
457
- }
458
- // Yield to event loop periodically
459
- if (iter % 10 === 0) {
460
- await new Promise((resolve) => setTimeout(resolve, 0));
461
- }
462
- }
463
- return centroids;
464
- }
465
- /**
466
- * K-means++ initialization for better centroid selection
467
- */
468
- kMeansPlusPlus(vectors, k) {
469
- const n = vectors.length;
470
- const centroids = [];
471
- // Choose first centroid randomly
472
- const firstIdx = this.rng.nextInt(n);
473
- centroids.push(new Float32Array(vectors[firstIdx]));
474
- // Choose remaining centroids with probability proportional to distance squared
475
- for (let i = 1; i < k; i++) {
476
- const distances = new Float32Array(n);
477
- let sumDistances = 0;
478
- for (let j = 0; j < n; j++) {
479
- let minDist = Infinity;
480
- for (const centroid of centroids) {
481
- const dist = this.squaredL2Distance(vectors[j], centroid);
482
- minDist = Math.min(minDist, dist);
483
- }
484
- distances[j] = minDist;
485
- sumDistances += minDist;
486
- }
487
- // Sample next centroid
488
- let r = this.rng.next() * sumDistances;
489
- for (let j = 0; j < n; j++) {
490
- r -= distances[j];
491
- if (r <= 0) {
492
- centroids.push(new Float32Array(vectors[j]));
493
- break;
494
- }
495
- }
496
- // Fallback if we didn't select (numerical issues)
497
- if (centroids.length === i) {
498
- centroids.push(new Float32Array(vectors[this.rng.nextInt(n)]));
499
- }
500
- }
501
- return centroids;
502
- }
503
- /**
504
- * Encode a vector using the trained codebooks
505
- *
506
- * @param vector - Vector to encode
507
- * @returns Encoded vector with centroid codes and norm
508
- */
509
- encode(vector) {
510
- if (!this.trained || !this.codebooks) {
511
- throw new Error('ProductQuantizer must be trained before encoding');
512
- }
513
- if (vector.length !== this.config.dimension) {
514
- throw new Error(`Vector dimension (${vector.length}) does not match config (${this.config.dimension})`);
515
- }
516
- const codes = new Uint8Array(this.config.numSubspaces);
517
- // Calculate norm for potential normalization
518
- let norm = 0;
519
- for (let i = 0; i < vector.length; i++) {
520
- norm += vector[i] * vector[i];
521
- }
522
- norm = Math.sqrt(norm);
523
- // Encode each subspace
524
- for (let s = 0; s < this.config.numSubspaces; s++) {
525
- const startDim = s * this.subspaceDim;
526
- const subvector = vector.slice(startDim, startDim + this.subspaceDim);
527
- // Find nearest centroid
528
- let minDist = Infinity;
529
- let minIdx = 0;
530
- for (let c = 0; c < this.config.numCentroids; c++) {
531
- const dist = this.squaredL2Distance(subvector, this.codebooks[s][c]);
532
- if (dist < minDist) {
533
- minDist = dist;
534
- minIdx = c;
535
- }
536
- }
537
- codes[s] = minIdx;
538
- }
539
- return { codes, norm };
540
- }
541
- /**
542
- * Decode an encoded vector (approximate reconstruction)
543
- *
544
- * @param encoded - Encoded vector
545
- * @returns Reconstructed Float32Array
546
- */
547
- decode(encoded) {
548
- if (!this.codebooks) {
549
- throw new Error('ProductQuantizer must be trained before decoding');
550
- }
551
- const vector = new Float32Array(this.config.dimension);
552
- for (let s = 0; s < this.config.numSubspaces; s++) {
553
- const code = encoded.codes[s];
554
- const centroid = this.codebooks[s][code];
555
- const startDim = s * this.subspaceDim;
556
- for (let d = 0; d < this.subspaceDim; d++) {
557
- vector[startDim + d] = centroid[d];
558
- }
559
- }
560
- return vector;
561
- }
562
- /**
563
- * Compute asymmetric distance between a query and encoded vector
564
- * Query is in full precision, database vector is encoded
565
- *
566
- * @param query - Full precision query vector
567
- * @param encoded - Encoded database vector
568
- * @returns Squared L2 distance
569
- */
570
- asymmetricDistance(query, encoded) {
571
- if (!this.codebooks) {
572
- throw new Error('ProductQuantizer must be trained');
573
- }
574
- let distance = 0;
575
- for (let s = 0; s < this.config.numSubspaces; s++) {
576
- const startDim = s * this.subspaceDim;
577
- const querySubvector = query.slice(startDim, startDim + this.subspaceDim);
578
- const centroid = this.codebooks[s][encoded.codes[s]];
579
- distance += this.squaredL2Distance(querySubvector, centroid);
580
- }
581
- return distance;
582
- }
583
- /**
584
- * Precompute distance tables for efficient batch search
585
- * Tables[s][c] = squared distance from query subvector s to centroid c
586
- *
587
- * @param query - Query vector
588
- * @returns Distance lookup tables for each subspace
589
- */
590
- precomputeDistanceTables(query) {
591
- if (!this.codebooks) {
592
- throw new Error('ProductQuantizer must be trained');
593
- }
594
- const tables = [];
595
- for (let s = 0; s < this.config.numSubspaces; s++) {
596
- const table = new Float32Array(this.config.numCentroids);
597
- const startDim = s * this.subspaceDim;
598
- const querySubvector = query.slice(startDim, startDim + this.subspaceDim);
599
- for (let c = 0; c < this.config.numCentroids; c++) {
600
- table[c] = this.squaredL2Distance(querySubvector, this.codebooks[s][c]);
601
- }
602
- tables.push(table);
603
- }
604
- return tables;
605
- }
606
- /**
607
- * Compute distance using precomputed tables (very fast)
608
- *
609
- * @param tables - Precomputed distance tables from precomputeDistanceTables()
610
- * @param encoded - Encoded vector
611
- * @returns Squared L2 distance
612
- */
613
- distanceFromTables(tables, encoded) {
614
- let distance = 0;
615
- for (let s = 0; s < this.config.numSubspaces; s++) {
616
- distance += tables[s][encoded.codes[s]];
617
- }
618
- return distance;
619
- }
620
- /**
621
- * Get compression ratio
622
- */
623
- getCompressionRatio() {
624
- // Original: dimension * 4 bytes (Float32)
625
- // Encoded: numSubspaces * 1 byte (Uint8) + 4 bytes (norm)
626
- const originalBytes = this.config.dimension * 4;
627
- const encodedBytes = this.config.numSubspaces + 4;
628
- return originalBytes / encodedBytes;
629
- }
630
- /**
631
- * Get quantizer statistics
632
- */
633
- getStats() {
634
- const codebookSize = this.codebooks
635
- ? this.config.numSubspaces *
636
- this.config.numCentroids *
637
- this.subspaceDim *
638
- 4
639
- : 0;
640
- return {
641
- trained: this.trained,
642
- dimension: this.config.dimension,
643
- numSubspaces: this.config.numSubspaces,
644
- subspaceDim: this.subspaceDim,
645
- numCentroids: this.config.numCentroids,
646
- compressionRatio: this.getCompressionRatio(),
647
- codebookSizeBytes: codebookSize,
648
- };
649
- }
650
- /**
651
- * Export codebooks for persistence
652
- */
653
- exportCodebooks() {
654
- if (!this.codebooks) {
655
- throw new Error('No codebooks to export');
656
- }
657
- return JSON.stringify({
658
- config: this.config,
659
- codebooks: this.codebooks.map((subspace) => subspace.map((centroid) => Array.from(centroid))),
660
- });
661
- }
662
- /**
663
- * Import codebooks from persisted data
664
- * Includes validation to prevent prototype pollution and type confusion
665
- */
666
- importCodebooks(json) {
667
- // Type guard for imported data
668
- function isValidCodebookData(obj) {
669
- if (typeof obj !== 'object' || obj === null)
670
- return false;
671
- const data = obj;
672
- // Validate config
673
- if (typeof data.config !== 'object' || data.config === null)
674
- return false;
675
- const config = data.config;
676
- if (typeof config.dimension !== 'number' || !Number.isFinite(config.dimension))
677
- return false;
678
- if (typeof config.numSubspaces !== 'number' || !Number.isFinite(config.numSubspaces))
679
- return false;
680
- if (typeof config.numCentroids !== 'number' || !Number.isFinite(config.numCentroids))
681
- return false;
682
- // Validate codebooks is array of arrays
683
- if (!Array.isArray(data.codebooks))
684
- return false;
685
- for (const subspace of data.codebooks) {
686
- if (!Array.isArray(subspace))
687
- return false;
688
- for (const centroid of subspace) {
689
- if (!Array.isArray(centroid))
690
- return false;
691
- for (const val of centroid) {
692
- if (typeof val !== 'number')
693
- return false;
694
- }
695
- }
696
- }
697
- return true;
698
- }
699
- const data = safeJSONParse(json, isValidCodebookData);
700
- // Validate imported config
701
- validateDimension(data.config.dimension, 'Imported dimension');
702
- if (data.config.numCentroids > 256 || data.config.numCentroids < 2) {
703
- throw new Error('Invalid numCentroids in imported data');
704
- }
705
- if (data.config.numSubspaces < 1 || data.config.numSubspaces > 256) {
706
- throw new Error('Invalid numSubspaces in imported data');
707
- }
708
- if (data.config.dimension % data.config.numSubspaces !== 0) {
709
- throw new Error('Dimension must be divisible by numSubspaces');
710
- }
711
- this.config = {
712
- ...data.config,
713
- maxIterations: Math.min(data.config.maxIterations ?? 50, MAX_KMEANS_ITERATIONS),
714
- convergenceThreshold: data.config.convergenceThreshold ?? 1e-4,
715
- seed: data.config.seed ?? Date.now(),
716
- };
717
- this.subspaceDim = this.config.dimension / this.config.numSubspaces;
718
- this.codebooks = data.codebooks.map((subspace) => subspace.map((centroid) => new Float32Array(centroid)));
719
- this.trained = true;
720
- }
721
- /**
722
- * Check if the quantizer is trained
723
- */
724
- isTrained() {
725
- return this.trained;
726
- }
727
- /**
728
- * Squared L2 distance utility
729
- */
730
- squaredL2Distance(a, b) {
731
- let sum = 0;
732
- for (let i = 0; i < a.length; i++) {
733
- const diff = a[i] - b[i];
734
- sum += diff * diff;
735
- }
736
- return sum;
737
- }
738
- }
739
- /**
740
- * QuantizedVectorStore - Memory-efficient vector storage
741
- *
742
- * Wraps vector collections with quantized storage while providing
743
- * full-precision query support through asymmetric distance computation.
744
- */
745
- export class QuantizedVectorStore {
746
- config;
747
- vectors = new Map();
748
- productQuantizer = null;
749
- constructor(config) {
750
- this.config = {
751
- dimension: config.dimension,
752
- quantizationType: config.quantizationType,
753
- productQuantizerConfig: config.productQuantizerConfig ?? {
754
- numSubspaces: 8,
755
- numCentroids: 256,
756
- },
757
- metric: config.metric ?? 'cosine',
758
- };
759
- if (this.config.quantizationType === 'product') {
760
- this.productQuantizer = new ProductQuantizer({
761
- dimension: this.config.dimension,
762
- ...this.config.productQuantizerConfig,
763
- });
764
- }
765
- }
766
- /**
767
- * Train the product quantizer (required for 'product' quantization type)
768
- *
769
- * @param vectors - Training vectors
770
- */
771
- async train(vectors) {
772
- if (this.config.quantizationType !== 'product') {
773
- throw new Error('Training only required for product quantization');
774
- }
775
- if (!this.productQuantizer) {
776
- throw new Error('ProductQuantizer not initialized');
777
- }
778
- await this.productQuantizer.train(vectors);
779
- }
780
- /**
781
- * Check if the store is ready for insertions
782
- */
783
- isReady() {
784
- if (this.config.quantizationType === 'product') {
785
- return this.productQuantizer?.isTrained() ?? false;
786
- }
787
- return true;
788
- }
789
- /**
790
- * Insert a vector into the store
791
- *
792
- * @param id - Unique identifier
793
- * @param vector - Vector to store
794
- * @param metadata - Optional metadata
795
- */
796
- insert(id, vector, metadata) {
797
- // Validate inputs
798
- validateFloat32Array(vector, 'Vector');
799
- if (vector.length !== this.config.dimension) {
800
- throw new Error(`Vector dimension (${vector.length}) does not match store dimension (${this.config.dimension})`);
801
- }
802
- // Check store size limit
803
- if (this.vectors.size >= MAX_STORE_SIZE) {
804
- throw new Error(`Store has reached maximum capacity of ${MAX_STORE_SIZE} vectors`);
805
- }
806
- let quantized;
807
- switch (this.config.quantizationType) {
808
- case 'scalar8bit':
809
- quantized = quantize8bit(vector);
810
- break;
811
- case 'scalar4bit':
812
- quantized = quantize4bit(vector);
813
- break;
814
- case 'product':
815
- if (!this.productQuantizer?.isTrained()) {
816
- throw new Error('ProductQuantizer must be trained before inserting vectors');
817
- }
818
- quantized = this.productQuantizer.encode(vector);
819
- break;
820
- }
821
- this.vectors.set(id, { id, quantized, metadata });
822
- }
823
- /**
824
- * Insert multiple vectors in batch
825
- *
826
- * @param items - Array of {id, vector, metadata}
827
- */
828
- insertBatch(items) {
829
- for (const item of items) {
830
- this.insert(item.id, item.vector, item.metadata);
831
- }
832
- }
833
- /**
834
- * Search for nearest neighbors
835
- * Uses asymmetric distance computation: query in full precision,
836
- * database vectors in quantized form.
837
- *
838
- * @param query - Query vector (full precision)
839
- * @param k - Number of results to return
840
- * @param threshold - Optional similarity threshold
841
- * @returns Sorted search results (most similar first)
842
- */
843
- search(query, k, threshold) {
844
- if (query.length !== this.config.dimension) {
845
- throw new Error(`Query dimension (${query.length}) does not match store dimension (${this.config.dimension})`);
846
- }
847
- if (this.vectors.size === 0) {
848
- return [];
849
- }
850
- // Normalize query for cosine similarity
851
- const normalizedQuery = this.config.metric === 'cosine' ? this.normalize(query) : query;
852
- // Precompute distance tables for product quantization
853
- let distanceTables = null;
854
- if (this.config.quantizationType === 'product' &&
855
- this.productQuantizer?.isTrained()) {
856
- distanceTables = this.productQuantizer.precomputeDistanceTables(normalizedQuery);
857
- }
858
- // Calculate distances to all vectors
859
- const results = [];
860
- for (const stored of this.vectors.values()) {
861
- const distance = this.computeAsymmetricDistance(normalizedQuery, stored.quantized, distanceTables);
862
- results.push({ id: stored.id, distance, metadata: stored.metadata });
863
- }
864
- // Sort by distance (ascending for L2, we'll convert to similarity later)
865
- results.sort((a, b) => a.distance - b.distance);
866
- // Convert to search results with similarity scores
867
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- reserved for future distance normalization
868
- const maxDistance = Math.max(...results.map((r) => r.distance), 1e-10);
869
- const searchResults = [];
870
- for (let i = 0; i < Math.min(k, results.length); i++) {
871
- const r = results[i];
872
- // Convert distance to similarity
873
- let similarity;
874
- if (this.config.metric === 'cosine' || this.config.metric === 'ip') {
875
- // For cosine/IP, we stored squared distance but actually want similarity
876
- // Similarity = 1 - (distance / 2) for normalized vectors with L2
877
- similarity = Math.max(0, 1 - Math.sqrt(r.distance) / 2);
878
- }
879
- else {
880
- // For L2, use inverse distance normalization
881
- similarity = 1 / (1 + r.distance);
882
- }
883
- if (threshold !== undefined && similarity < threshold) {
884
- continue;
885
- }
886
- searchResults.push({
887
- id: r.id,
888
- distance: r.distance,
889
- similarity,
890
- metadata: r.metadata,
891
- });
892
- }
893
- return searchResults;
894
- }
895
- /**
896
- * Remove a vector by ID
897
- *
898
- * @param id - Vector ID to remove
899
- * @returns true if removed, false if not found
900
- */
901
- remove(id) {
902
- return this.vectors.delete(id);
903
- }
904
- /**
905
- * Get a dequantized vector by ID
906
- *
907
- * @param id - Vector ID
908
- * @returns Reconstructed vector or null if not found
909
- */
910
- getVector(id) {
911
- const stored = this.vectors.get(id);
912
- if (!stored) {
913
- return null;
914
- }
915
- return this.dequantizeStored(stored.quantized);
916
- }
917
- /**
918
- * Get store statistics
919
- */
920
- getStats() {
921
- let bytesPerVector;
922
- let codebookBytes = 0;
923
- switch (this.config.quantizationType) {
924
- case 'scalar8bit':
925
- bytesPerVector = this.config.dimension + 8 + 4; // data + min/max + dimension
926
- break;
927
- case 'scalar4bit':
928
- bytesPerVector = Math.ceil(this.config.dimension / 2) + 8 + 4;
929
- break;
930
- case 'product': {
931
- const pqStats = this.productQuantizer?.getStats();
932
- bytesPerVector = (pqStats?.numSubspaces ?? 8) + 4; // codes + norm
933
- codebookBytes = pqStats?.codebookSizeBytes ?? 0;
934
- break;
935
- }
936
- default:
937
- bytesPerVector = this.config.dimension * 4;
938
- }
939
- const originalBytesPerVector = this.config.dimension * 4;
940
- const compressionRatio = originalBytesPerVector / bytesPerVector;
941
- return {
942
- count: this.vectors.size,
943
- dimension: this.config.dimension,
944
- quantizationType: this.config.quantizationType,
945
- metric: this.config.metric,
946
- compressionRatio,
947
- memoryUsageBytes: this.vectors.size * bytesPerVector + codebookBytes,
948
- productQuantizerStats: this.productQuantizer?.getStats(),
949
- };
950
- }
951
- /**
952
- * Clear all vectors
953
- */
954
- clear() {
955
- this.vectors.clear();
956
- }
957
- /**
958
- * Export store to JSON (for persistence)
959
- */
960
- export() {
961
- const data = {
962
- config: this.config,
963
- vectors: [],
964
- };
965
- for (const stored of this.vectors.values()) {
966
- const exportedQuantized = this.config.quantizationType === 'product'
967
- ? {
968
- codes: Array.from(stored.quantized.codes),
969
- norm: stored.quantized.norm,
970
- }
971
- : {
972
- data: Array.from(stored.quantized.data),
973
- min: stored.quantized.min,
974
- max: stored.quantized.max,
975
- dimension: stored.quantized.dimension,
976
- type: stored.quantized.type,
977
- };
978
- data.vectors.push({
979
- id: stored.id,
980
- quantized: exportedQuantized,
981
- metadata: stored.metadata,
982
- });
983
- }
984
- if (this.productQuantizer?.isTrained()) {
985
- data.codebooks = this.productQuantizer.exportCodebooks();
986
- }
987
- return JSON.stringify(data);
988
- }
989
- /**
990
- * Import store from JSON
991
- */
992
- import(json) {
993
- const data = JSON.parse(json);
994
- this.config = data.config;
995
- this.vectors.clear();
996
- if (data.codebooks && this.config.quantizationType === 'product') {
997
- this.productQuantizer = new ProductQuantizer({
998
- dimension: this.config.dimension,
999
- ...this.config.productQuantizerConfig,
1000
- });
1001
- this.productQuantizer.importCodebooks(data.codebooks);
1002
- }
1003
- for (const stored of data.vectors) {
1004
- const quantized = this.config.quantizationType === 'product'
1005
- ? {
1006
- codes: new Uint8Array(stored.quantized.codes),
1007
- norm: stored.quantized.norm,
1008
- }
1009
- : {
1010
- data: new Uint8Array(stored.quantized.data),
1011
- min: stored.quantized.min,
1012
- max: stored.quantized.max,
1013
- dimension: stored.quantized.dimension,
1014
- type: stored.quantized.type,
1015
- };
1016
- this.vectors.set(stored.id, {
1017
- id: stored.id,
1018
- quantized: quantized,
1019
- metadata: stored.metadata,
1020
- });
1021
- }
1022
- }
1023
- /**
1024
- * Compute asymmetric distance (query full precision, database quantized)
1025
- */
1026
- computeAsymmetricDistance(query, quantized, distanceTables) {
1027
- switch (this.config.quantizationType) {
1028
- case 'scalar8bit':
1029
- case 'scalar4bit': {
1030
- const q = quantized;
1031
- const dequantized = q.type === '8bit'
1032
- ? dequantize8bit(q.data, q.min, q.max)
1033
- : dequantize4bit(q.data, q.min, q.max, q.dimension);
1034
- // Normalize for cosine
1035
- const normalizedDeq = this.config.metric === 'cosine' ? this.normalize(dequantized) : dequantized;
1036
- return this.squaredL2Distance(query, normalizedDeq);
1037
- }
1038
- case 'product': {
1039
- if (distanceTables && this.productQuantizer) {
1040
- return this.productQuantizer.distanceFromTables(distanceTables, quantized);
1041
- }
1042
- if (this.productQuantizer) {
1043
- return this.productQuantizer.asymmetricDistance(query, quantized);
1044
- }
1045
- throw new Error('ProductQuantizer not initialized');
1046
- }
1047
- }
1048
- }
1049
- /**
1050
- * Dequantize a stored vector
1051
- */
1052
- dequantizeStored(quantized) {
1053
- if (this.config.quantizationType === 'product') {
1054
- if (!this.productQuantizer) {
1055
- throw new Error('ProductQuantizer not initialized');
1056
- }
1057
- return this.productQuantizer.decode(quantized);
1058
- }
1059
- const q = quantized;
1060
- return q.type === '8bit'
1061
- ? dequantize8bit(q.data, q.min, q.max)
1062
- : dequantize4bit(q.data, q.min, q.max, q.dimension);
1063
- }
1064
- /**
1065
- * Normalize a vector to unit length
1066
- */
1067
- normalize(vector) {
1068
- let norm = 0;
1069
- for (let i = 0; i < vector.length; i++) {
1070
- norm += vector[i] * vector[i];
1071
- }
1072
- norm = Math.sqrt(norm);
1073
- if (norm === 0) {
1074
- return vector;
1075
- }
1076
- const result = new Float32Array(vector.length);
1077
- for (let i = 0; i < vector.length; i++) {
1078
- result[i] = vector[i] / norm;
1079
- }
1080
- return result;
1081
- }
1082
- /**
1083
- * Squared L2 distance
1084
- */
1085
- squaredL2Distance(a, b) {
1086
- let sum = 0;
1087
- for (let i = 0; i < a.length; i++) {
1088
- const diff = a[i] - b[i];
1089
- sum += diff * diff;
1090
- }
1091
- return sum;
1092
- }
1093
- }
1094
- // ============================================================================
1095
- // Factory Functions
1096
- // ============================================================================
1097
- /**
1098
- * Create an 8-bit scalar quantized vector store (4x compression)
1099
- */
1100
- export function createScalar8BitStore(dimension, metric = 'cosine') {
1101
- return new QuantizedVectorStore({
1102
- dimension,
1103
- quantizationType: 'scalar8bit',
1104
- metric,
1105
- });
1106
- }
1107
- /**
1108
- * Create a 4-bit scalar quantized vector store (8x compression)
1109
- */
1110
- export function createScalar4BitStore(dimension, metric = 'cosine') {
1111
- return new QuantizedVectorStore({
1112
- dimension,
1113
- quantizationType: 'scalar4bit',
1114
- metric,
1115
- });
1116
- }
1117
- /**
1118
- * Create a product quantized vector store (configurable compression)
1119
- *
1120
- * @param dimension - Vector dimension
1121
- * @param numSubspaces - Number of subspaces (8, 16, 32, 64 typical)
1122
- * @param numCentroids - Number of centroids per subspace (256 max for uint8)
1123
- * @param metric - Distance metric
1124
- */
1125
- export function createProductQuantizedStore(dimension, numSubspaces = 8, numCentroids = 256, metric = 'cosine') {
1126
- return new QuantizedVectorStore({
1127
- dimension,
1128
- quantizationType: 'product',
1129
- productQuantizerConfig: {
1130
- numSubspaces,
1131
- numCentroids,
1132
- },
1133
- metric,
1134
- });
1135
- }
1136
- //# sourceMappingURL=vector-quantization.js.map