agentdb 3.0.0-alpha.10 → 3.0.0-alpha.12

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 (648) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2821 -225
  3. package/dist/src/backends/VectorBackend.d.ts +31 -6
  4. package/dist/src/backends/VectorBackend.d.ts.map +1 -1
  5. package/dist/src/backends/detector.js.map +1 -1
  6. package/dist/src/backends/factory.d.ts +16 -33
  7. package/dist/src/backends/factory.d.ts.map +1 -1
  8. package/dist/src/backends/factory.js +138 -108
  9. package/dist/src/backends/factory.js.map +1 -1
  10. package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
  11. package/dist/src/backends/hnswlib/HNSWLibBackend.js +29 -2
  12. package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
  13. package/dist/src/backends/ruvector/RuVectorBackend.d.ts +198 -45
  14. package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
  15. package/dist/src/backends/ruvector/RuVectorBackend.js +612 -277
  16. package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
  17. package/dist/src/backends/ruvector/RuVectorLearning.d.ts +0 -4
  18. package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
  19. package/dist/src/backends/ruvector/RuVectorLearning.js +0 -6
  20. package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
  21. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts +175 -0
  22. package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts.map +1 -0
  23. package/dist/src/backends/rvf/AdaptiveIndexTuner.js +559 -0
  24. package/dist/src/backends/rvf/AdaptiveIndexTuner.js.map +1 -0
  25. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts +148 -0
  26. package/dist/src/backends/rvf/ContrastiveTrainer.d.ts.map +1 -0
  27. package/dist/src/backends/rvf/ContrastiveTrainer.js +438 -0
  28. package/dist/src/backends/rvf/ContrastiveTrainer.js.map +1 -0
  29. package/dist/src/backends/rvf/FederatedSessionManager.d.ts +211 -0
  30. package/dist/src/backends/rvf/FederatedSessionManager.d.ts.map +1 -0
  31. package/dist/src/backends/rvf/FederatedSessionManager.js +389 -0
  32. package/dist/src/backends/rvf/FederatedSessionManager.js.map +1 -0
  33. package/dist/src/backends/rvf/FilterBuilder.d.ts +136 -0
  34. package/dist/src/backends/rvf/FilterBuilder.d.ts.map +1 -0
  35. package/dist/src/backends/rvf/FilterBuilder.js +157 -0
  36. package/dist/src/backends/rvf/FilterBuilder.js.map +1 -0
  37. package/dist/src/backends/rvf/NativeAccelerator.d.ts +140 -0
  38. package/dist/src/backends/rvf/NativeAccelerator.d.ts.map +1 -0
  39. package/dist/src/backends/rvf/NativeAccelerator.js +630 -0
  40. package/dist/src/backends/rvf/NativeAccelerator.js.map +1 -0
  41. package/dist/src/backends/rvf/RvfBackend.d.ts +194 -0
  42. package/dist/src/backends/rvf/RvfBackend.d.ts.map +1 -0
  43. package/dist/src/backends/rvf/RvfBackend.js +607 -0
  44. package/dist/src/backends/rvf/RvfBackend.js.map +1 -0
  45. package/dist/src/backends/rvf/RvfSolver.d.ts +175 -0
  46. package/dist/src/backends/rvf/RvfSolver.d.ts.map +1 -0
  47. package/dist/src/backends/rvf/RvfSolver.js +176 -0
  48. package/dist/src/backends/rvf/RvfSolver.js.map +1 -0
  49. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts +143 -0
  50. package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +1 -0
  51. package/dist/src/backends/rvf/SelfLearningRvfBackend.js +569 -0
  52. package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +1 -0
  53. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts +128 -0
  54. package/dist/src/backends/rvf/SemanticQueryRouter.d.ts.map +1 -0
  55. package/dist/src/backends/rvf/SemanticQueryRouter.js +415 -0
  56. package/dist/src/backends/rvf/SemanticQueryRouter.js.map +1 -0
  57. package/dist/src/backends/rvf/SimdFallbacks.d.ts +25 -0
  58. package/dist/src/backends/rvf/SimdFallbacks.d.ts.map +1 -0
  59. package/dist/src/backends/rvf/SimdFallbacks.js +287 -0
  60. package/dist/src/backends/rvf/SimdFallbacks.js.map +1 -0
  61. package/dist/src/backends/rvf/SolverBandit.d.ts +100 -0
  62. package/dist/src/backends/rvf/SolverBandit.d.ts.map +1 -0
  63. package/dist/src/backends/rvf/SolverBandit.js +216 -0
  64. package/dist/src/backends/rvf/SolverBandit.js.map +1 -0
  65. package/dist/src/backends/rvf/SonaLearningBackend.d.ts +157 -0
  66. package/dist/src/backends/rvf/SonaLearningBackend.d.ts.map +1 -0
  67. package/dist/src/backends/rvf/SonaLearningBackend.js +283 -0
  68. package/dist/src/backends/rvf/SonaLearningBackend.js.map +1 -0
  69. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +77 -0
  70. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -0
  71. package/dist/src/backends/rvf/SqlJsRvfBackend.js +382 -0
  72. package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -0
  73. package/dist/src/backends/rvf/WasmStoreBridge.d.ts +27 -0
  74. package/dist/src/backends/rvf/WasmStoreBridge.d.ts.map +1 -0
  75. package/dist/src/backends/rvf/WasmStoreBridge.js +87 -0
  76. package/dist/src/backends/rvf/WasmStoreBridge.js.map +1 -0
  77. package/dist/src/backends/rvf/validation.d.ts +20 -0
  78. package/dist/src/backends/rvf/validation.d.ts.map +1 -0
  79. package/dist/src/backends/rvf/validation.js +78 -0
  80. package/dist/src/backends/rvf/validation.js.map +1 -0
  81. package/dist/src/benchmark/BenchmarkSuite.d.ts +318 -0
  82. package/dist/src/benchmark/BenchmarkSuite.d.ts.map +1 -0
  83. package/dist/src/benchmark/BenchmarkSuite.js +984 -0
  84. package/dist/src/benchmark/BenchmarkSuite.js.map +1 -0
  85. package/dist/src/benchmark/index.d.ts +29 -0
  86. package/dist/src/benchmark/index.d.ts.map +1 -0
  87. package/dist/src/benchmark/index.js +39 -0
  88. package/dist/src/benchmark/index.js.map +1 -0
  89. package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
  90. package/dist/src/browser/AttentionBrowser.js +1 -0
  91. package/dist/src/browser/AttentionBrowser.js.map +1 -1
  92. package/dist/src/cli/agentdb-cli.d.ts +13 -0
  93. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  94. package/dist/src/cli/agentdb-cli.js +803 -94
  95. package/dist/src/cli/agentdb-cli.js.map +1 -1
  96. package/dist/src/cli/commands/hyperbolic.d.ts +11 -0
  97. package/dist/src/cli/commands/hyperbolic.d.ts.map +1 -0
  98. package/dist/src/cli/commands/hyperbolic.js +428 -0
  99. package/dist/src/cli/commands/hyperbolic.js.map +1 -0
  100. package/dist/src/cli/commands/learn.d.ts +11 -0
  101. package/dist/src/cli/commands/learn.d.ts.map +1 -0
  102. package/dist/src/cli/commands/learn.js +404 -0
  103. package/dist/src/cli/commands/learn.js.map +1 -0
  104. package/dist/src/cli/commands/migrate.d.ts +15 -0
  105. package/dist/src/cli/commands/migrate.d.ts.map +1 -1
  106. package/dist/src/cli/commands/migrate.js +176 -8
  107. package/dist/src/cli/commands/migrate.js.map +1 -1
  108. package/dist/src/cli/commands/route.d.ts +11 -0
  109. package/dist/src/cli/commands/route.d.ts.map +1 -0
  110. package/dist/src/cli/commands/route.js +414 -0
  111. package/dist/src/cli/commands/route.js.map +1 -0
  112. package/dist/src/cli/commands/rvf.d.ts +21 -0
  113. package/dist/src/cli/commands/rvf.d.ts.map +1 -0
  114. package/dist/src/cli/commands/rvf.js +448 -0
  115. package/dist/src/cli/commands/rvf.js.map +1 -0
  116. package/dist/src/cli/lib/report-store.d.ts +2 -1
  117. package/dist/src/cli/lib/report-store.d.ts.map +1 -1
  118. package/dist/src/cli/lib/report-store.js +85 -65
  119. package/dist/src/cli/lib/report-store.js.map +1 -1
  120. package/dist/src/cli/lib/simulation-runner.d.ts +40 -3
  121. package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
  122. package/dist/src/cli/lib/simulation-runner.js +248 -6
  123. package/dist/src/cli/lib/simulation-runner.js.map +1 -1
  124. package/dist/src/compatibility/DeprecationWarnings.d.ts +54 -0
  125. package/dist/src/compatibility/DeprecationWarnings.d.ts.map +1 -0
  126. package/dist/src/compatibility/DeprecationWarnings.js +131 -0
  127. package/dist/src/compatibility/DeprecationWarnings.js.map +1 -0
  128. package/dist/src/compatibility/MigrationUtilities.d.ts +30 -0
  129. package/dist/src/compatibility/MigrationUtilities.d.ts.map +1 -0
  130. package/dist/src/compatibility/MigrationUtilities.js +184 -0
  131. package/dist/src/compatibility/MigrationUtilities.js.map +1 -0
  132. package/dist/src/compatibility/V1toV2Adapter.d.ts +76 -0
  133. package/dist/src/compatibility/V1toV2Adapter.d.ts.map +1 -0
  134. package/dist/src/compatibility/V1toV2Adapter.js +185 -0
  135. package/dist/src/compatibility/V1toV2Adapter.js.map +1 -0
  136. package/dist/src/compatibility/VersionDetector.d.ts +32 -0
  137. package/dist/src/compatibility/VersionDetector.d.ts.map +1 -0
  138. package/dist/src/compatibility/VersionDetector.js +144 -0
  139. package/dist/src/compatibility/VersionDetector.js.map +1 -0
  140. package/dist/src/compatibility/index.d.ts +14 -0
  141. package/dist/src/compatibility/index.d.ts.map +1 -0
  142. package/dist/src/compatibility/index.js +21 -0
  143. package/dist/src/compatibility/index.js.map +1 -0
  144. package/dist/src/compatibility/types.d.ts +103 -0
  145. package/dist/src/compatibility/types.d.ts.map +1 -0
  146. package/dist/src/compatibility/types.js +5 -0
  147. package/dist/src/compatibility/types.js.map +1 -0
  148. package/dist/src/controllers/AttentionService.d.ts +99 -202
  149. package/dist/src/controllers/AttentionService.d.ts.map +1 -1
  150. package/dist/src/controllers/AttentionService.js +450 -558
  151. package/dist/src/controllers/AttentionService.js.map +1 -1
  152. package/dist/src/controllers/CausalMemoryGraph.d.ts +30 -5
  153. package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
  154. package/dist/src/controllers/CausalMemoryGraph.js +89 -13
  155. package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
  156. package/dist/src/controllers/CausalRecall.d.ts +4 -0
  157. package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
  158. package/dist/src/controllers/CausalRecall.js +19 -2
  159. package/dist/src/controllers/CausalRecall.js.map +1 -1
  160. package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
  161. package/dist/src/controllers/EmbeddingService.js +28 -11
  162. package/dist/src/controllers/EmbeddingService.js.map +1 -1
  163. package/dist/src/controllers/EnhancedEmbeddingService.d.ts +4 -0
  164. package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
  165. package/dist/src/controllers/EnhancedEmbeddingService.js +17 -3
  166. package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
  167. package/dist/src/controllers/ExplainableRecall.d.ts +1 -1
  168. package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
  169. package/dist/src/controllers/ExplainableRecall.js +1 -1
  170. package/dist/src/controllers/ExplainableRecall.js.map +1 -1
  171. package/dist/src/controllers/HNSWIndex.d.ts +20 -2
  172. package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
  173. package/dist/src/controllers/HNSWIndex.js +82 -6
  174. package/dist/src/controllers/HNSWIndex.js.map +1 -1
  175. package/dist/src/controllers/LearningSystem.d.ts +1 -17
  176. package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
  177. package/dist/src/controllers/LearningSystem.js +18 -135
  178. package/dist/src/controllers/LearningSystem.js.map +1 -1
  179. package/dist/src/controllers/MemoryController.d.ts +161 -0
  180. package/dist/src/controllers/MemoryController.d.ts.map +1 -0
  181. package/dist/src/controllers/MemoryController.js +303 -0
  182. package/dist/src/controllers/MemoryController.js.map +1 -0
  183. package/dist/src/controllers/MincutService.d.ts +92 -0
  184. package/dist/src/controllers/MincutService.d.ts.map +1 -0
  185. package/dist/src/controllers/MincutService.js +336 -0
  186. package/dist/src/controllers/MincutService.js.map +1 -0
  187. package/dist/src/controllers/NightlyLearner.d.ts +5 -1
  188. package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
  189. package/dist/src/controllers/NightlyLearner.js +17 -3
  190. package/dist/src/controllers/NightlyLearner.js.map +1 -1
  191. package/dist/src/controllers/QUICClient.d.ts +45 -0
  192. package/dist/src/controllers/QUICClient.d.ts.map +1 -1
  193. package/dist/src/controllers/QUICClient.js +190 -0
  194. package/dist/src/controllers/QUICClient.js.map +1 -1
  195. package/dist/src/controllers/ReasoningBank.d.ts +6 -3
  196. package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
  197. package/dist/src/controllers/ReasoningBank.js +47 -41
  198. package/dist/src/controllers/ReasoningBank.js.map +1 -1
  199. package/dist/src/controllers/ReflexionMemory.d.ts +115 -6
  200. package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
  201. package/dist/src/controllers/ReflexionMemory.js +541 -213
  202. package/dist/src/controllers/ReflexionMemory.js.map +1 -1
  203. package/dist/src/controllers/SkillLibrary.d.ts +27 -3
  204. package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
  205. package/dist/src/controllers/SkillLibrary.js +187 -91
  206. package/dist/src/controllers/SkillLibrary.js.map +1 -1
  207. package/dist/src/controllers/SparsificationService.d.ts +151 -0
  208. package/dist/src/controllers/SparsificationService.d.ts.map +1 -0
  209. package/dist/src/controllers/SparsificationService.js +375 -0
  210. package/dist/src/controllers/SparsificationService.js.map +1 -0
  211. package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
  212. package/dist/src/controllers/SyncCoordinator.js +115 -3
  213. package/dist/src/controllers/SyncCoordinator.js.map +1 -1
  214. package/dist/src/controllers/WASMVectorSearch.d.ts +12 -30
  215. package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
  216. package/dist/src/controllers/WASMVectorSearch.js +146 -93
  217. package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
  218. package/dist/src/controllers/attention/AttentionCache.d.ts +38 -0
  219. package/dist/src/controllers/attention/AttentionCache.d.ts.map +1 -0
  220. package/dist/src/controllers/attention/AttentionCache.js +80 -0
  221. package/dist/src/controllers/attention/AttentionCache.js.map +1 -0
  222. package/dist/src/controllers/attention/AttentionConfig.d.ts +127 -0
  223. package/dist/src/controllers/attention/AttentionConfig.d.ts.map +1 -0
  224. package/dist/src/controllers/attention/AttentionConfig.js +124 -0
  225. package/dist/src/controllers/attention/AttentionConfig.js.map +1 -0
  226. package/dist/src/controllers/attention/AttentionCore.d.ts +89 -0
  227. package/dist/src/controllers/attention/AttentionCore.d.ts.map +1 -0
  228. package/dist/src/controllers/attention/AttentionCore.js +289 -0
  229. package/dist/src/controllers/attention/AttentionCore.js.map +1 -0
  230. package/dist/src/controllers/attention/AttentionHelpers.d.ts +55 -0
  231. package/dist/src/controllers/attention/AttentionHelpers.d.ts.map +1 -0
  232. package/dist/src/controllers/attention/AttentionHelpers.js +148 -0
  233. package/dist/src/controllers/attention/AttentionHelpers.js.map +1 -0
  234. package/dist/src/controllers/attention/AttentionMetrics.d.ts +55 -0
  235. package/dist/src/controllers/attention/AttentionMetrics.d.ts.map +1 -0
  236. package/dist/src/controllers/attention/AttentionMetrics.js +72 -0
  237. package/dist/src/controllers/attention/AttentionMetrics.js.map +1 -0
  238. package/dist/src/controllers/attention/AttentionWASM.d.ts +98 -0
  239. package/dist/src/controllers/attention/AttentionWASM.d.ts.map +1 -0
  240. package/dist/src/controllers/attention/AttentionWASM.js +147 -0
  241. package/dist/src/controllers/attention/AttentionWASM.js.map +1 -0
  242. package/dist/src/controllers/attention/CrossAttentionController.d.ts +141 -0
  243. package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +1 -0
  244. package/dist/src/controllers/attention/CrossAttentionController.js +325 -0
  245. package/dist/src/controllers/attention/CrossAttentionController.js.map +1 -0
  246. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +137 -0
  247. package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +1 -0
  248. package/dist/src/controllers/attention/MultiHeadAttentionController.js +336 -0
  249. package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +1 -0
  250. package/dist/src/controllers/attention/SelfAttentionController.d.ts +117 -0
  251. package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +1 -0
  252. package/dist/src/controllers/attention/SelfAttentionController.js +205 -0
  253. package/dist/src/controllers/attention/SelfAttentionController.js.map +1 -0
  254. package/dist/src/controllers/attention/index.d.ts +24 -0
  255. package/dist/src/controllers/attention/index.d.ts.map +1 -0
  256. package/dist/src/controllers/attention/index.js +20 -0
  257. package/dist/src/controllers/attention/index.js.map +1 -0
  258. package/dist/src/controllers/index.d.ts +14 -27
  259. package/dist/src/controllers/index.d.ts.map +1 -1
  260. package/dist/src/controllers/index.js +10 -18
  261. package/dist/src/controllers/index.js.map +1 -1
  262. package/dist/src/controllers/prerequisites.d.ts +76 -0
  263. package/dist/src/controllers/prerequisites.d.ts.map +1 -0
  264. package/dist/src/controllers/prerequisites.js +235 -0
  265. package/dist/src/controllers/prerequisites.js.map +1 -0
  266. package/dist/src/core/AgentDB.d.ts +27 -19
  267. package/dist/src/core/AgentDB.d.ts.map +1 -1
  268. package/dist/src/core/AgentDB.js +76 -124
  269. package/dist/src/core/AgentDB.js.map +1 -1
  270. package/dist/src/core/QueryCache.d.ts +138 -0
  271. package/dist/src/core/QueryCache.d.ts.map +1 -0
  272. package/dist/src/core/QueryCache.js +309 -0
  273. package/dist/src/core/QueryCache.js.map +1 -0
  274. package/dist/src/db-fallback.d.ts +10 -1
  275. package/dist/src/db-fallback.d.ts.map +1 -1
  276. package/dist/src/db-fallback.js +205 -28
  277. package/dist/src/db-fallback.js.map +1 -1
  278. package/dist/src/examples/quic-sync-example.js +2 -2
  279. package/dist/src/examples/quic-sync-example.js.map +1 -1
  280. package/dist/src/index.d.ts +15 -15
  281. package/dist/src/index.d.ts.map +1 -1
  282. package/dist/src/index.js +39 -11
  283. package/dist/src/index.js.map +1 -1
  284. package/dist/src/mcp/agentdb-mcp-server.js +47 -2
  285. package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
  286. package/dist/src/model/ModelCacheLoader.d.ts +24 -0
  287. package/dist/src/model/ModelCacheLoader.d.ts.map +1 -0
  288. package/dist/src/model/ModelCacheLoader.js +121 -0
  289. package/dist/src/model/ModelCacheLoader.js.map +1 -0
  290. package/dist/src/observability/index.d.ts +8 -0
  291. package/dist/src/observability/index.d.ts.map +1 -0
  292. package/dist/src/observability/index.js +8 -0
  293. package/dist/src/observability/index.js.map +1 -0
  294. package/dist/src/observability/integration.d.ts +32 -0
  295. package/dist/src/observability/integration.d.ts.map +1 -0
  296. package/dist/src/observability/integration.js +159 -0
  297. package/dist/src/observability/integration.js.map +1 -0
  298. package/dist/src/observability/telemetry.d.ts +137 -0
  299. package/dist/src/observability/telemetry.d.ts.map +1 -0
  300. package/dist/src/observability/telemetry.js +416 -0
  301. package/dist/src/observability/telemetry.js.map +1 -0
  302. package/dist/src/optimizations/BatchOperations.d.ts +47 -0
  303. package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
  304. package/dist/src/optimizations/BatchOperations.js +183 -31
  305. package/dist/src/optimizations/BatchOperations.js.map +1 -1
  306. package/dist/src/optimizations/Quantization.d.ts +330 -0
  307. package/dist/src/optimizations/Quantization.d.ts.map +1 -0
  308. package/dist/src/optimizations/Quantization.js +793 -0
  309. package/dist/src/optimizations/Quantization.js.map +1 -0
  310. package/dist/src/optimizations/index.d.ts +1 -3
  311. package/dist/src/optimizations/index.d.ts.map +1 -1
  312. package/dist/src/optimizations/index.js +0 -1
  313. package/dist/src/optimizations/index.js.map +1 -1
  314. package/dist/src/quantization/index.d.ts +7 -0
  315. package/dist/src/quantization/index.d.ts.map +1 -0
  316. package/dist/src/quantization/index.js +15 -0
  317. package/dist/src/quantization/index.js.map +1 -0
  318. package/dist/src/quantization/vector-quantization.d.ts +388 -0
  319. package/dist/src/quantization/vector-quantization.d.ts.map +1 -0
  320. package/dist/src/quantization/vector-quantization.js +1132 -0
  321. package/dist/src/quantization/vector-quantization.js.map +1 -0
  322. package/dist/src/search/HybridSearch.d.ts +311 -0
  323. package/dist/src/search/HybridSearch.d.ts.map +1 -0
  324. package/dist/src/search/HybridSearch.js +712 -0
  325. package/dist/src/search/HybridSearch.js.map +1 -0
  326. package/dist/src/search/index.d.ts +12 -0
  327. package/dist/src/search/index.d.ts.map +1 -0
  328. package/dist/src/search/index.js +16 -0
  329. package/dist/src/search/index.js.map +1 -0
  330. package/dist/src/services/AttentionService.d.ts +303 -0
  331. package/dist/src/services/AttentionService.d.ts.map +1 -0
  332. package/dist/src/services/AttentionService.js +1165 -0
  333. package/dist/src/services/AttentionService.js.map +1 -0
  334. package/dist/src/services/LLMRouter.d.ts +61 -7
  335. package/dist/src/services/LLMRouter.d.ts.map +1 -1
  336. package/dist/src/services/LLMRouter.js +286 -22
  337. package/dist/src/services/LLMRouter.js.map +1 -1
  338. package/dist/src/services/audit-logger.service.d.ts +168 -0
  339. package/dist/src/services/audit-logger.service.d.ts.map +1 -0
  340. package/dist/src/services/audit-logger.service.js +331 -0
  341. package/dist/src/services/audit-logger.service.js.map +1 -0
  342. package/dist/src/services/enhanced-embeddings.d.ts +271 -0
  343. package/dist/src/services/enhanced-embeddings.d.ts.map +1 -0
  344. package/dist/src/services/enhanced-embeddings.js +1035 -0
  345. package/dist/src/services/enhanced-embeddings.js.map +1 -0
  346. package/dist/src/services/federated-learning.d.ts +172 -0
  347. package/dist/src/services/federated-learning.d.ts.map +1 -0
  348. package/dist/src/services/federated-learning.js +342 -0
  349. package/dist/src/services/federated-learning.js.map +1 -0
  350. package/dist/src/simd/index.d.ts +9 -0
  351. package/dist/src/simd/index.d.ts.map +1 -0
  352. package/dist/src/simd/index.js +27 -0
  353. package/dist/src/simd/index.js.map +1 -0
  354. package/dist/src/simd/simd-vector-ops.d.ts +332 -0
  355. package/dist/src/simd/simd-vector-ops.d.ts.map +1 -0
  356. package/dist/src/simd/simd-vector-ops.js +945 -0
  357. package/dist/src/simd/simd-vector-ops.js.map +1 -0
  358. package/dist/src/types/database.types.d.ts +275 -0
  359. package/dist/src/types/database.types.d.ts.map +1 -0
  360. package/dist/src/types/database.types.js +55 -0
  361. package/dist/src/types/database.types.js.map +1 -0
  362. package/dist/src/types/graph.d.ts +29 -0
  363. package/dist/src/types/graph.d.ts.map +1 -0
  364. package/dist/src/types/graph.js +8 -0
  365. package/dist/src/types/graph.js.map +1 -0
  366. package/dist/src/utils/chalk-fallback.d.ts +3 -0
  367. package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
  368. package/dist/src/utils/chalk-fallback.js +20 -0
  369. package/dist/src/utils/chalk-fallback.js.map +1 -0
  370. package/dist/src/utils/similarity.d.ts +11 -0
  371. package/dist/src/utils/similarity.d.ts.map +1 -0
  372. package/dist/src/utils/similarity.js +25 -0
  373. package/dist/src/utils/similarity.js.map +1 -0
  374. package/dist/src/wasm-loader.d.ts +66 -0
  375. package/dist/src/wasm-loader.d.ts.map +1 -0
  376. package/dist/src/wasm-loader.js +76 -0
  377. package/dist/src/wasm-loader.js.map +1 -0
  378. package/dist/src/wrappers/agentdb-fast.d.ts +139 -0
  379. package/dist/src/wrappers/agentdb-fast.d.ts.map +1 -0
  380. package/dist/src/wrappers/agentdb-fast.js +307 -0
  381. package/dist/src/wrappers/agentdb-fast.js.map +1 -0
  382. package/dist/src/wrappers/attention-fallbacks.d.ts +343 -0
  383. package/dist/src/wrappers/attention-fallbacks.d.ts.map +1 -0
  384. package/dist/src/wrappers/attention-fallbacks.js +1484 -0
  385. package/dist/src/wrappers/attention-fallbacks.js.map +1 -0
  386. package/dist/src/wrappers/attention-native.d.ts +111 -0
  387. package/dist/src/wrappers/attention-native.d.ts.map +1 -0
  388. package/dist/src/wrappers/attention-native.js +273 -0
  389. package/dist/src/wrappers/attention-native.js.map +1 -0
  390. package/dist/src/wrappers/embedding-service.d.ts +117 -0
  391. package/dist/src/wrappers/embedding-service.d.ts.map +1 -0
  392. package/dist/src/wrappers/embedding-service.js +370 -0
  393. package/dist/src/wrappers/embedding-service.js.map +1 -0
  394. package/dist/src/wrappers/gnn-wrapper.d.ts +71 -0
  395. package/dist/src/wrappers/gnn-wrapper.d.ts.map +1 -0
  396. package/dist/src/wrappers/gnn-wrapper.js +236 -0
  397. package/dist/src/wrappers/gnn-wrapper.js.map +1 -0
  398. package/dist/src/wrappers/index.d.ts +48 -0
  399. package/dist/src/wrappers/index.d.ts.map +1 -0
  400. package/dist/src/wrappers/index.js +83 -0
  401. package/dist/src/wrappers/index.js.map +1 -0
  402. package/package.json +77 -76
  403. package/scripts/postinstall.cjs +13 -144
  404. package/dist/agentdb.browser.js +0 -1685
  405. package/dist/agentdb.browser.js.map +0 -7
  406. package/dist/agentdb.browser.min.js +0 -3
  407. package/dist/agentdb.browser.min.js.map +0 -7
  408. package/dist/agentdb.wasm-loader.js +0 -207
  409. package/dist/backends/VectorBackend.d.ts +0 -120
  410. package/dist/backends/VectorBackend.js +0 -14
  411. package/dist/backends/VectorBackend.js.map +0 -1
  412. package/dist/optimizations/RVFOptimizer.d.ts +0 -225
  413. package/dist/optimizations/RVFOptimizer.js +0 -541
  414. package/dist/optimizations/RVFOptimizer.js.map +0 -1
  415. package/dist/schemas/frontier-schema.sql +0 -378
  416. package/dist/schemas/schema.sql +0 -382
  417. package/dist/simulation/cli.d.ts +0 -9
  418. package/dist/simulation/cli.d.ts.map +0 -1
  419. package/dist/simulation/cli.js +0 -68
  420. package/dist/simulation/cli.js.map +0 -1
  421. package/dist/simulation/runner.d.ts +0 -21
  422. package/dist/simulation/runner.d.ts.map +0 -1
  423. package/dist/simulation/runner.js +0 -241
  424. package/dist/simulation/runner.js.map +0 -1
  425. package/dist/simulation/scenarios/aidefence-integration.d.ts +0 -24
  426. package/dist/simulation/scenarios/aidefence-integration.d.ts.map +0 -1
  427. package/dist/simulation/scenarios/aidefence-integration.js +0 -124
  428. package/dist/simulation/scenarios/aidefence-integration.js.map +0 -1
  429. package/dist/simulation/scenarios/bmssp-integration.d.ts +0 -23
  430. package/dist/simulation/scenarios/bmssp-integration.d.ts.map +0 -1
  431. package/dist/simulation/scenarios/bmssp-integration.js +0 -104
  432. package/dist/simulation/scenarios/bmssp-integration.js.map +0 -1
  433. package/dist/simulation/scenarios/causal-reasoning.d.ts +0 -16
  434. package/dist/simulation/scenarios/causal-reasoning.d.ts.map +0 -1
  435. package/dist/simulation/scenarios/causal-reasoning.js +0 -108
  436. package/dist/simulation/scenarios/causal-reasoning.js.map +0 -1
  437. package/dist/simulation/scenarios/consciousness-explorer.d.ts +0 -25
  438. package/dist/simulation/scenarios/consciousness-explorer.d.ts.map +0 -1
  439. package/dist/simulation/scenarios/consciousness-explorer.js +0 -108
  440. package/dist/simulation/scenarios/consciousness-explorer.js.map +0 -1
  441. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts +0 -135
  442. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts.map +0 -1
  443. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js +0 -158
  444. package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js.map +0 -1
  445. package/dist/simulation/scenarios/domain-examples/index.d.ts +0 -14
  446. package/dist/simulation/scenarios/domain-examples/index.d.ts.map +0 -1
  447. package/dist/simulation/scenarios/domain-examples/index.js +0 -14
  448. package/dist/simulation/scenarios/domain-examples/index.js.map +0 -1
  449. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts +0 -178
  450. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts.map +0 -1
  451. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js +0 -218
  452. package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js.map +0 -1
  453. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts +0 -122
  454. package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts.map +0 -1
  455. package/dist/simulation/scenarios/domain-examples/medical-imaging.js +0 -129
  456. package/dist/simulation/scenarios/domain-examples/medical-imaging.js.map +0 -1
  457. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts +0 -166
  458. package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts.map +0 -1
  459. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js +0 -161
  460. package/dist/simulation/scenarios/domain-examples/robotics-navigation.js.map +0 -1
  461. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts +0 -151
  462. package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts.map +0 -1
  463. package/dist/simulation/scenarios/domain-examples/scientific-research.js +0 -187
  464. package/dist/simulation/scenarios/domain-examples/scientific-research.js.map +0 -1
  465. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts +0 -102
  466. package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts.map +0 -1
  467. package/dist/simulation/scenarios/domain-examples/trading-systems.js +0 -100
  468. package/dist/simulation/scenarios/domain-examples/trading-systems.js.map +0 -1
  469. package/dist/simulation/scenarios/goalie-integration.d.ts +0 -24
  470. package/dist/simulation/scenarios/goalie-integration.d.ts.map +0 -1
  471. package/dist/simulation/scenarios/goalie-integration.js +0 -121
  472. package/dist/simulation/scenarios/goalie-integration.js.map +0 -1
  473. package/dist/simulation/scenarios/graph-traversal.d.ts +0 -17
  474. package/dist/simulation/scenarios/graph-traversal.d.ts.map +0 -1
  475. package/dist/simulation/scenarios/graph-traversal.js +0 -101
  476. package/dist/simulation/scenarios/graph-traversal.js.map +0 -1
  477. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts +0 -45
  478. package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts.map +0 -1
  479. package/dist/simulation/scenarios/latent-space/attention-analysis.js +0 -435
  480. package/dist/simulation/scenarios/latent-space/attention-analysis.js.map +0 -1
  481. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts +0 -55
  482. package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts.map +0 -1
  483. package/dist/simulation/scenarios/latent-space/clustering-analysis.js +0 -606
  484. package/dist/simulation/scenarios/latent-space/clustering-analysis.js.map +0 -1
  485. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts +0 -74
  486. package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts.map +0 -1
  487. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js +0 -391
  488. package/dist/simulation/scenarios/latent-space/hnsw-exploration.js.map +0 -1
  489. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts +0 -51
  490. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts.map +0 -1
  491. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js +0 -536
  492. package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js.map +0 -1
  493. package/dist/simulation/scenarios/latent-space/index.d.ts +0 -35
  494. package/dist/simulation/scenarios/latent-space/index.d.ts.map +0 -1
  495. package/dist/simulation/scenarios/latent-space/index.js +0 -35
  496. package/dist/simulation/scenarios/latent-space/index.js.map +0 -1
  497. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts +0 -52
  498. package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts.map +0 -1
  499. package/dist/simulation/scenarios/latent-space/neural-augmentation.js +0 -472
  500. package/dist/simulation/scenarios/latent-space/neural-augmentation.js.map +0 -1
  501. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts +0 -53
  502. package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts.map +0 -1
  503. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js +0 -391
  504. package/dist/simulation/scenarios/latent-space/quantum-hybrid.js.map +0 -1
  505. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts +0 -52
  506. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts.map +0 -1
  507. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js +0 -514
  508. package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js.map +0 -1
  509. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts +0 -53
  510. package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts.map +0 -1
  511. package/dist/simulation/scenarios/latent-space/traversal-optimization.js +0 -595
  512. package/dist/simulation/scenarios/latent-space/traversal-optimization.js.map +0 -1
  513. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts +0 -18
  514. package/dist/simulation/scenarios/lean-agentic-swarm.d.ts.map +0 -1
  515. package/dist/simulation/scenarios/lean-agentic-swarm.js +0 -132
  516. package/dist/simulation/scenarios/lean-agentic-swarm.js.map +0 -1
  517. package/dist/simulation/scenarios/multi-agent-swarm.d.ts +0 -17
  518. package/dist/simulation/scenarios/multi-agent-swarm.d.ts.map +0 -1
  519. package/dist/simulation/scenarios/multi-agent-swarm.js +0 -111
  520. package/dist/simulation/scenarios/multi-agent-swarm.js.map +0 -1
  521. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts +0 -23
  522. package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts.map +0 -1
  523. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js +0 -98
  524. package/dist/simulation/scenarios/psycho-symbolic-reasoner.js.map +0 -1
  525. package/dist/simulation/scenarios/reflexion-learning.d.ts +0 -16
  526. package/dist/simulation/scenarios/reflexion-learning.d.ts.map +0 -1
  527. package/dist/simulation/scenarios/reflexion-learning.js +0 -98
  528. package/dist/simulation/scenarios/reflexion-learning.js.map +0 -1
  529. package/dist/simulation/scenarios/research-swarm.d.ts +0 -24
  530. package/dist/simulation/scenarios/research-swarm.d.ts.map +0 -1
  531. package/dist/simulation/scenarios/research-swarm.js +0 -146
  532. package/dist/simulation/scenarios/research-swarm.js.map +0 -1
  533. package/dist/simulation/scenarios/skill-evolution.d.ts +0 -16
  534. package/dist/simulation/scenarios/skill-evolution.d.ts.map +0 -1
  535. package/dist/simulation/scenarios/skill-evolution.js +0 -109
  536. package/dist/simulation/scenarios/skill-evolution.js.map +0 -1
  537. package/dist/simulation/scenarios/stock-market-emergence.d.ts +0 -33
  538. package/dist/simulation/scenarios/stock-market-emergence.d.ts.map +0 -1
  539. package/dist/simulation/scenarios/stock-market-emergence.js +0 -246
  540. package/dist/simulation/scenarios/stock-market-emergence.js.map +0 -1
  541. package/dist/simulation/scenarios/strange-loops.d.ts +0 -18
  542. package/dist/simulation/scenarios/strange-loops.d.ts.map +0 -1
  543. package/dist/simulation/scenarios/strange-loops.js +0 -133
  544. package/dist/simulation/scenarios/strange-loops.js.map +0 -1
  545. package/dist/simulation/scenarios/sublinear-solver.d.ts +0 -22
  546. package/dist/simulation/scenarios/sublinear-solver.d.ts.map +0 -1
  547. package/dist/simulation/scenarios/sublinear-solver.js +0 -82
  548. package/dist/simulation/scenarios/sublinear-solver.js.map +0 -1
  549. package/dist/simulation/scenarios/temporal-lead-solver.d.ts +0 -23
  550. package/dist/simulation/scenarios/temporal-lead-solver.d.ts.map +0 -1
  551. package/dist/simulation/scenarios/temporal-lead-solver.js +0 -90
  552. package/dist/simulation/scenarios/temporal-lead-solver.js.map +0 -1
  553. package/dist/simulation/scenarios/voting-system-consensus.d.ts +0 -27
  554. package/dist/simulation/scenarios/voting-system-consensus.d.ts.map +0 -1
  555. package/dist/simulation/scenarios/voting-system-consensus.js +0 -175
  556. package/dist/simulation/scenarios/voting-system-consensus.js.map +0 -1
  557. package/dist/simulation/types.d.ts +0 -162
  558. package/dist/simulation/types.d.ts.map +0 -1
  559. package/dist/simulation/types.js +0 -5
  560. package/dist/simulation/types.js.map +0 -1
  561. package/dist/simulation/utils/PerformanceOptimizer.d.ts +0 -115
  562. package/dist/simulation/utils/PerformanceOptimizer.d.ts.map +0 -1
  563. package/dist/simulation/utils/PerformanceOptimizer.js +0 -223
  564. package/dist/simulation/utils/PerformanceOptimizer.js.map +0 -1
  565. package/dist/src/backends/index.cjs +0 -6
  566. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts +0 -93
  567. package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts.map +0 -1
  568. package/dist/src/backends/ruvector/GuardedVectorBackend.js +0 -182
  569. package/dist/src/backends/ruvector/GuardedVectorBackend.js.map +0 -1
  570. package/dist/src/consensus/RaftConsensus.d.ts +0 -220
  571. package/dist/src/consensus/RaftConsensus.d.ts.map +0 -1
  572. package/dist/src/consensus/RaftConsensus.js +0 -762
  573. package/dist/src/consensus/RaftConsensus.js.map +0 -1
  574. package/dist/src/controllers/HierarchicalMemory.d.ts +0 -197
  575. package/dist/src/controllers/HierarchicalMemory.d.ts.map +0 -1
  576. package/dist/src/controllers/HierarchicalMemory.js +0 -519
  577. package/dist/src/controllers/HierarchicalMemory.js.map +0 -1
  578. package/dist/src/controllers/MemoryConsolidation.d.ts +0 -142
  579. package/dist/src/controllers/MemoryConsolidation.d.ts.map +0 -1
  580. package/dist/src/controllers/MemoryConsolidation.js +0 -479
  581. package/dist/src/controllers/MemoryConsolidation.js.map +0 -1
  582. package/dist/src/controllers/QUICConnection.d.ts +0 -122
  583. package/dist/src/controllers/QUICConnection.d.ts.map +0 -1
  584. package/dist/src/controllers/QUICConnection.js +0 -329
  585. package/dist/src/controllers/QUICConnection.js.map +0 -1
  586. package/dist/src/controllers/QUICConnectionPool.d.ts +0 -83
  587. package/dist/src/controllers/QUICConnectionPool.d.ts.map +0 -1
  588. package/dist/src/controllers/QUICConnectionPool.js +0 -256
  589. package/dist/src/controllers/QUICConnectionPool.js.map +0 -1
  590. package/dist/src/controllers/QUICStreamManager.d.ts +0 -114
  591. package/dist/src/controllers/QUICStreamManager.d.ts.map +0 -1
  592. package/dist/src/controllers/QUICStreamManager.js +0 -267
  593. package/dist/src/controllers/QUICStreamManager.js.map +0 -1
  594. package/dist/src/controllers/StreamingEmbeddingService.d.ts +0 -82
  595. package/dist/src/controllers/StreamingEmbeddingService.d.ts.map +0 -1
  596. package/dist/src/controllers/StreamingEmbeddingService.js +0 -243
  597. package/dist/src/controllers/StreamingEmbeddingService.js.map +0 -1
  598. package/dist/src/controllers/index.cjs +0 -6
  599. package/dist/src/coordination/MultiDatabaseCoordinator.d.ts +0 -348
  600. package/dist/src/coordination/MultiDatabaseCoordinator.d.ts.map +0 -1
  601. package/dist/src/coordination/MultiDatabaseCoordinator.js +0 -803
  602. package/dist/src/coordination/MultiDatabaseCoordinator.js.map +0 -1
  603. package/dist/src/coordination/index.d.ts +0 -10
  604. package/dist/src/coordination/index.d.ts.map +0 -1
  605. package/dist/src/coordination/index.js +0 -10
  606. package/dist/src/coordination/index.js.map +0 -1
  607. package/dist/src/index.cjs +0 -6
  608. package/dist/src/optimizations/RVFOptimizer.d.ts +0 -226
  609. package/dist/src/optimizations/RVFOptimizer.d.ts.map +0 -1
  610. package/dist/src/optimizations/RVFOptimizer.js +0 -541
  611. package/dist/src/optimizations/RVFOptimizer.js.map +0 -1
  612. package/dist/src/security/AttestationLog.d.ts +0 -70
  613. package/dist/src/security/AttestationLog.d.ts.map +0 -1
  614. package/dist/src/security/AttestationLog.js +0 -174
  615. package/dist/src/security/AttestationLog.js.map +0 -1
  616. package/dist/src/security/MutationGuard.d.ts +0 -83
  617. package/dist/src/security/MutationGuard.d.ts.map +0 -1
  618. package/dist/src/security/MutationGuard.js +0 -364
  619. package/dist/src/security/MutationGuard.js.map +0 -1
  620. package/dist/src/security/index.cjs +0 -6
  621. package/dist/src/security/index.d.ts +0 -15
  622. package/dist/src/security/index.d.ts.map +0 -1
  623. package/dist/src/security/index.js +0 -18
  624. package/dist/src/security/index.js.map +0 -1
  625. package/dist/src/services/GNNService.d.ts +0 -173
  626. package/dist/src/services/GNNService.d.ts.map +0 -1
  627. package/dist/src/services/GNNService.js +0 -639
  628. package/dist/src/services/GNNService.js.map +0 -1
  629. package/dist/src/services/GraphTransformerService.d.ts +0 -80
  630. package/dist/src/services/GraphTransformerService.d.ts.map +0 -1
  631. package/dist/src/services/GraphTransformerService.js +0 -369
  632. package/dist/src/services/GraphTransformerService.js.map +0 -1
  633. package/dist/src/services/SemanticRouter.d.ts +0 -83
  634. package/dist/src/services/SemanticRouter.d.ts.map +0 -1
  635. package/dist/src/services/SemanticRouter.js +0 -160
  636. package/dist/src/services/SemanticRouter.js.map +0 -1
  637. package/dist/src/services/SonaTrajectoryService.d.ts +0 -224
  638. package/dist/src/services/SonaTrajectoryService.d.ts.map +0 -1
  639. package/dist/src/services/SonaTrajectoryService.js +0 -539
  640. package/dist/src/services/SonaTrajectoryService.js.map +0 -1
  641. package/dist/src/utils/LegacyAttentionAdapter.d.ts +0 -93
  642. package/dist/src/utils/LegacyAttentionAdapter.d.ts.map +0 -1
  643. package/dist/src/utils/LegacyAttentionAdapter.js +0 -241
  644. package/dist/src/utils/LegacyAttentionAdapter.js.map +0 -1
  645. package/dist/src/utils/vector-math.d.ts +0 -29
  646. package/dist/src/utils/vector-math.d.ts.map +0 -1
  647. package/dist/src/utils/vector-math.js +0 -66
  648. package/dist/src/utils/vector-math.js.map +0 -1
@@ -0,0 +1,945 @@
1
+ /**
2
+ * SIMD-Accelerated Vector Operations for AgentDB
3
+ *
4
+ * High-performance vector operations with WebAssembly SIMD acceleration.
5
+ * Provides 2-8x speedup over standard JavaScript implementations through:
6
+ * - 8x loop unrolling with separate accumulators for Instruction-Level Parallelism (ILP)
7
+ * - Pre-allocated buffer pools to minimize GC pressure
8
+ * - SIMD detection and graceful fallback to optimized scalar code
9
+ * - Batch operations for cache-friendly memory access patterns
10
+ *
11
+ * @module simd-vector-ops
12
+ */
13
+ // ============================================================================
14
+ // Performance & Security Constants
15
+ // ============================================================================
16
+ /** @inline Maximum allowed vector dimension to prevent DoS via large allocations */
17
+ export const MAX_VECTOR_DIMENSION = 4096;
18
+ /** @inline Maximum buffer pool size per dimension bucket */
19
+ const MAX_BUFFER_POOL_SIZE = 128;
20
+ /** @inline Maximum batch size for optimal cache utilization */
21
+ export const MAX_BATCH_SIZE = 10000;
22
+ /** @inline Default cache size for embedding storage */
23
+ export const DEFAULT_CACHE_SIZE = 10000;
24
+ /** @inline Small epsilon for numerical stability */
25
+ const EPSILON = 1e-10;
26
+ // ============================================================================
27
+ // Input Validation Helpers
28
+ // ============================================================================
29
+ /**
30
+ * Validate that a value is a valid Float32Array
31
+ */
32
+ function validateFloat32Array(arr, name) {
33
+ if (arr === null || arr === undefined) {
34
+ throw new Error(`${name} cannot be null or undefined`);
35
+ }
36
+ if (!(arr instanceof Float32Array)) {
37
+ throw new Error(`${name} must be a Float32Array`);
38
+ }
39
+ }
40
+ /**
41
+ * Validate vector dimension is within safe limits
42
+ */
43
+ function validateDimension(dimension, name = 'dimension') {
44
+ if (!Number.isFinite(dimension) || dimension < 0) {
45
+ throw new Error(`${name} must be a non-negative finite number`);
46
+ }
47
+ if (dimension > MAX_VECTOR_DIMENSION) {
48
+ throw new Error(`${name} exceeds maximum allowed size of ${MAX_VECTOR_DIMENSION}`);
49
+ }
50
+ }
51
+ /**
52
+ * Check if a number is valid (not NaN, not Infinity)
53
+ */
54
+ function isValidNumber(n) {
55
+ return Number.isFinite(n);
56
+ }
57
+ // ============================================================================
58
+ // SIMD Detection
59
+ // ============================================================================
60
+ /**
61
+ * WebAssembly SIMD feature detection
62
+ *
63
+ * Tests for SIMD support by attempting to validate a minimal WASM module
64
+ * that uses SIMD instructions (v128.const and i8x16.extract_lane_s)
65
+ */
66
+ let _simdSupported = null;
67
+ /**
68
+ * Detect WebAssembly SIMD support
69
+ *
70
+ * This function caches the result after first call for performance.
71
+ * The detection is done by validating a minimal WASM module containing
72
+ * SIMD instructions.
73
+ *
74
+ * @returns true if SIMD is supported, false otherwise
75
+ */
76
+ export function detectSIMDSupport() {
77
+ if (_simdSupported !== null) {
78
+ return _simdSupported;
79
+ }
80
+ try {
81
+ // Minimal WASM module with SIMD instructions:
82
+ // - v128.const: Creates a 128-bit vector constant
83
+ // - i8x16.extract_lane_s: Extracts a signed byte from the vector
84
+ //
85
+ // If the browser/runtime supports SIMD, this module will validate successfully
86
+ const simdTestModule = new Uint8Array([
87
+ 0x00, 0x61, 0x73, 0x6d, // WASM magic number
88
+ 0x01, 0x00, 0x00, 0x00, // Version 1
89
+ 0x01, 0x05, 0x01, 0x60, // Type section: function type () -> i32
90
+ 0x00, 0x01, 0x7f,
91
+ 0x03, 0x02, 0x01, 0x00, // Function section: 1 function of type 0
92
+ 0x0a, 0x16, 0x01, 0x14, // Code section
93
+ 0x00, // No locals
94
+ 0xfd, 0x0c, // v128.const
95
+ 0x00, 0x00, 0x00, 0x00, // Vector constant (16 bytes)
96
+ 0x00, 0x00, 0x00, 0x00,
97
+ 0x00, 0x00, 0x00, 0x00,
98
+ 0x00, 0x00, 0x00, 0x00,
99
+ 0xfd, 0x15, 0x00, // i8x16.extract_lane_s 0
100
+ 0x0b // end
101
+ ]);
102
+ const globalAny = globalThis;
103
+ _simdSupported =
104
+ typeof globalAny.WebAssembly !== 'undefined' &&
105
+ typeof globalAny.WebAssembly.validate === 'function' &&
106
+ globalAny.WebAssembly.validate(simdTestModule);
107
+ }
108
+ catch {
109
+ _simdSupported = false;
110
+ }
111
+ // @inline Ensure we always return boolean (not null)
112
+ return _simdSupported === true;
113
+ }
114
+ /**
115
+ * Alternative SIMD detection using the simpler v128.const check
116
+ * This is the same check used in WASMVectorSearch for consistency
117
+ */
118
+ export function detectSIMDSupportLegacy() {
119
+ try {
120
+ const globalAny = globalThis;
121
+ return (typeof globalAny.WebAssembly !== 'undefined' &&
122
+ globalAny.WebAssembly.validate(new Uint8Array([
123
+ 0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10,
124
+ 10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11,
125
+ ])));
126
+ }
127
+ catch {
128
+ return false;
129
+ }
130
+ }
131
+ // ============================================================================
132
+ // Optimized Scalar Operations (8x Unrolled with ILP)
133
+ // ============================================================================
134
+ /**
135
+ * Calculate cosine similarity with 8x loop unrolling and ILP
136
+ *
137
+ * Uses 8 separate accumulators to maximize instruction-level parallelism.
138
+ * Modern CPUs can execute multiple independent operations in parallel,
139
+ * and separate accumulators prevent data dependencies between iterations.
140
+ *
141
+ * Performance characteristics:
142
+ * - 8x unrolling reduces loop overhead by 87.5%
143
+ * - Separate accumulators enable out-of-order execution
144
+ * - Final reduction combines accumulators efficiently
145
+ *
146
+ * @param a - First vector (Float32Array)
147
+ * @param b - Second vector (Float32Array)
148
+ * @returns Cosine similarity in range [-1, 1]
149
+ * @throws Error if vectors have different lengths
150
+ */
151
+ export function cosineSimilaritySIMD(a, b) {
152
+ // Input validation
153
+ validateFloat32Array(a, 'First vector (a)');
154
+ validateFloat32Array(b, 'Second vector (b)');
155
+ const len = a.length;
156
+ if (len !== b.length) {
157
+ throw new Error(`Vector length mismatch: ${len} vs ${b.length}. Vectors must have same dimension.`);
158
+ }
159
+ validateDimension(len, 'Vector length');
160
+ if (len === 0) {
161
+ return 0;
162
+ }
163
+ // 8 separate accumulators for instruction-level parallelism
164
+ // This allows the CPU to execute up to 8 multiply-accumulate operations
165
+ // in parallel across different execution units
166
+ let dot0 = 0, dot1 = 0, dot2 = 0, dot3 = 0, dot4 = 0, dot5 = 0, dot6 = 0, dot7 = 0;
167
+ let normA0 = 0, normA1 = 0, normA2 = 0, normA3 = 0, normA4 = 0, normA5 = 0, normA6 = 0, normA7 = 0;
168
+ let normB0 = 0, normB1 = 0, normB2 = 0, normB3 = 0, normB4 = 0, normB5 = 0, normB6 = 0, normB7 = 0;
169
+ // Process 8 elements at a time
170
+ const loopEnd = len - (len % 8);
171
+ for (let i = 0; i < loopEnd; i += 8) {
172
+ // Load 8 elements from each vector
173
+ const a0 = a[i], a1 = a[i + 1], a2 = a[i + 2], a3 = a[i + 3];
174
+ const a4 = a[i + 4], a5 = a[i + 5], a6 = a[i + 6], a7 = a[i + 7];
175
+ const b0 = b[i], b1 = b[i + 1], b2 = b[i + 2], b3 = b[i + 3];
176
+ const b4 = b[i + 4], b5 = b[i + 5], b6 = b[i + 6], b7 = b[i + 7];
177
+ // Accumulate dot products (independent operations for ILP)
178
+ dot0 += a0 * b0;
179
+ dot1 += a1 * b1;
180
+ dot2 += a2 * b2;
181
+ dot3 += a3 * b3;
182
+ dot4 += a4 * b4;
183
+ dot5 += a5 * b5;
184
+ dot6 += a6 * b6;
185
+ dot7 += a7 * b7;
186
+ // Accumulate norms for vector a
187
+ normA0 += a0 * a0;
188
+ normA1 += a1 * a1;
189
+ normA2 += a2 * a2;
190
+ normA3 += a3 * a3;
191
+ normA4 += a4 * a4;
192
+ normA5 += a5 * a5;
193
+ normA6 += a6 * a6;
194
+ normA7 += a7 * a7;
195
+ // Accumulate norms for vector b
196
+ normB0 += b0 * b0;
197
+ normB1 += b1 * b1;
198
+ normB2 += b2 * b2;
199
+ normB3 += b3 * b3;
200
+ normB4 += b4 * b4;
201
+ normB5 += b5 * b5;
202
+ normB6 += b6 * b6;
203
+ normB7 += b7 * b7;
204
+ }
205
+ // Handle remaining elements (up to 7)
206
+ let dotRem = 0, normARem = 0, normBRem = 0;
207
+ for (let i = loopEnd; i < len; i++) {
208
+ const ai = a[i], bi = b[i];
209
+ dotRem += ai * bi;
210
+ normARem += ai * ai;
211
+ normBRem += bi * bi;
212
+ }
213
+ // Reduce accumulators (tree reduction for numerical stability)
214
+ const dotProduct = dot0 +
215
+ dot1 +
216
+ dot2 +
217
+ dot3 +
218
+ dot4 +
219
+ dot5 +
220
+ dot6 +
221
+ dot7 +
222
+ dotRem;
223
+ const normA = normA0 +
224
+ normA1 +
225
+ normA2 +
226
+ normA3 +
227
+ normA4 +
228
+ normA5 +
229
+ normA6 +
230
+ normA7 +
231
+ normARem;
232
+ const normB = normB0 +
233
+ normB1 +
234
+ normB2 +
235
+ normB3 +
236
+ normB4 +
237
+ normB5 +
238
+ normB6 +
239
+ normB7 +
240
+ normBRem;
241
+ // @inline Compute final similarity with numerical stability check
242
+ // Combined sqrt(a*b) is faster than sqrt(a)*sqrt(b) and more numerically stable
243
+ const denom = Math.sqrt(normA * normB);
244
+ if (denom < EPSILON || !isValidNumber(denom)) {
245
+ return 0;
246
+ }
247
+ // Clamp to [-1, 1] to handle floating point errors
248
+ const similarity = dotProduct / denom;
249
+ // Guard against NaN/Infinity from floating point issues
250
+ if (!isValidNumber(similarity)) {
251
+ return 0;
252
+ }
253
+ // @inline Branchless clamp is slightly faster than Math.max/min
254
+ return similarity > 1 ? 1 : similarity < -1 ? -1 : similarity;
255
+ }
256
+ /**
257
+ * Calculate Euclidean (L2) distance with 8x loop unrolling
258
+ *
259
+ * Uses the same ILP optimization as cosine similarity.
260
+ *
261
+ * @param a - First vector (Float32Array)
262
+ * @param b - Second vector (Float32Array)
263
+ * @returns Euclidean distance (non-negative)
264
+ * @throws Error if vectors have different lengths
265
+ */
266
+ export function euclideanDistanceSIMD(a, b) {
267
+ // Input validation
268
+ validateFloat32Array(a, 'First vector (a)');
269
+ validateFloat32Array(b, 'Second vector (b)');
270
+ const len = a.length;
271
+ if (len !== b.length) {
272
+ throw new Error(`Vector length mismatch: ${len} vs ${b.length}. Vectors must have same dimension.`);
273
+ }
274
+ validateDimension(len, 'Vector length');
275
+ if (len === 0) {
276
+ return 0;
277
+ }
278
+ // 8 separate accumulators for ILP
279
+ let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
280
+ const loopEnd = len - (len % 8);
281
+ for (let i = 0; i < loopEnd; i += 8) {
282
+ // Compute squared differences
283
+ const d0 = a[i] - b[i];
284
+ const d1 = a[i + 1] - b[i + 1];
285
+ const d2 = a[i + 2] - b[i + 2];
286
+ const d3 = a[i + 3] - b[i + 3];
287
+ const d4 = a[i + 4] - b[i + 4];
288
+ const d5 = a[i + 5] - b[i + 5];
289
+ const d6 = a[i + 6] - b[i + 6];
290
+ const d7 = a[i + 7] - b[i + 7];
291
+ // Accumulate squared distances (independent for ILP)
292
+ sum0 += d0 * d0;
293
+ sum1 += d1 * d1;
294
+ sum2 += d2 * d2;
295
+ sum3 += d3 * d3;
296
+ sum4 += d4 * d4;
297
+ sum5 += d5 * d5;
298
+ sum6 += d6 * d6;
299
+ sum7 += d7 * d7;
300
+ }
301
+ // Handle remainder
302
+ let sumRem = 0;
303
+ for (let i = loopEnd; i < len; i++) {
304
+ const d = a[i] - b[i];
305
+ sumRem += d * d;
306
+ }
307
+ // @inline Pairwise reduction for better numerical stability
308
+ const total = (sum0 + sum1) + (sum2 + sum3) + (sum4 + sum5) + (sum6 + sum7) + sumRem;
309
+ return Math.sqrt(total);
310
+ }
311
+ /**
312
+ * Calculate squared Euclidean distance (faster than euclideanDistanceSIMD)
313
+ *
314
+ * Useful when you only need to compare distances (skip the sqrt).
315
+ *
316
+ * @param a - First vector
317
+ * @param b - Second vector
318
+ * @returns Squared Euclidean distance
319
+ */
320
+ export function euclideanDistanceSquaredSIMD(a, b) {
321
+ // Input validation
322
+ validateFloat32Array(a, 'First vector (a)');
323
+ validateFloat32Array(b, 'Second vector (b)');
324
+ const len = a.length;
325
+ if (len !== b.length) {
326
+ throw new Error(`Vector length mismatch: ${len} vs ${b.length}`);
327
+ }
328
+ validateDimension(len, 'Vector length');
329
+ let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
330
+ const loopEnd = len - (len % 8);
331
+ for (let i = 0; i < loopEnd; i += 8) {
332
+ const d0 = a[i] - b[i];
333
+ const d1 = a[i + 1] - b[i + 1];
334
+ const d2 = a[i + 2] - b[i + 2];
335
+ const d3 = a[i + 3] - b[i + 3];
336
+ const d4 = a[i + 4] - b[i + 4];
337
+ const d5 = a[i + 5] - b[i + 5];
338
+ const d6 = a[i + 6] - b[i + 6];
339
+ const d7 = a[i + 7] - b[i + 7];
340
+ sum0 += d0 * d0;
341
+ sum1 += d1 * d1;
342
+ sum2 += d2 * d2;
343
+ sum3 += d3 * d3;
344
+ sum4 += d4 * d4;
345
+ sum5 += d5 * d5;
346
+ sum6 += d6 * d6;
347
+ sum7 += d7 * d7;
348
+ }
349
+ let sumRem = 0;
350
+ for (let i = loopEnd; i < len; i++) {
351
+ const d = a[i] - b[i];
352
+ sumRem += d * d;
353
+ }
354
+ return sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sumRem;
355
+ }
356
+ /**
357
+ * Calculate dot product with 8x loop unrolling
358
+ *
359
+ * @param a - First vector
360
+ * @param b - Second vector
361
+ * @returns Dot product
362
+ */
363
+ export function dotProductSIMD(a, b) {
364
+ // Input validation
365
+ validateFloat32Array(a, 'First vector (a)');
366
+ validateFloat32Array(b, 'Second vector (b)');
367
+ const len = a.length;
368
+ if (len !== b.length) {
369
+ throw new Error(`Vector length mismatch: ${len} vs ${b.length}`);
370
+ }
371
+ validateDimension(len, 'Vector length');
372
+ let dot0 = 0, dot1 = 0, dot2 = 0, dot3 = 0, dot4 = 0, dot5 = 0, dot6 = 0, dot7 = 0;
373
+ const loopEnd = len - (len % 8);
374
+ for (let i = 0; i < loopEnd; i += 8) {
375
+ dot0 += a[i] * b[i];
376
+ dot1 += a[i + 1] * b[i + 1];
377
+ dot2 += a[i + 2] * b[i + 2];
378
+ dot3 += a[i + 3] * b[i + 3];
379
+ dot4 += a[i + 4] * b[i + 4];
380
+ dot5 += a[i + 5] * b[i + 5];
381
+ dot6 += a[i + 6] * b[i + 6];
382
+ dot7 += a[i + 7] * b[i + 7];
383
+ }
384
+ let dotRem = 0;
385
+ for (let i = loopEnd; i < len; i++) {
386
+ dotRem += a[i] * b[i];
387
+ }
388
+ return dot0 + dot1 + dot2 + dot3 + dot4 + dot5 + dot6 + dot7 + dotRem;
389
+ }
390
+ /**
391
+ * Calculate L2 norm (magnitude) of a vector with 8x unrolling
392
+ *
393
+ * @param v - Input vector
394
+ * @returns L2 norm
395
+ */
396
+ export function l2NormSIMD(v) {
397
+ // Input validation
398
+ validateFloat32Array(v, 'Vector');
399
+ const len = v.length;
400
+ validateDimension(len, 'Vector length');
401
+ let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
402
+ const loopEnd = len - (len % 8);
403
+ for (let i = 0; i < loopEnd; i += 8) {
404
+ const v0 = v[i], v1 = v[i + 1], v2 = v[i + 2], v3 = v[i + 3];
405
+ const v4 = v[i + 4], v5 = v[i + 5], v6 = v[i + 6], v7 = v[i + 7];
406
+ sum0 += v0 * v0;
407
+ sum1 += v1 * v1;
408
+ sum2 += v2 * v2;
409
+ sum3 += v3 * v3;
410
+ sum4 += v4 * v4;
411
+ sum5 += v5 * v5;
412
+ sum6 += v6 * v6;
413
+ sum7 += v7 * v7;
414
+ }
415
+ let sumRem = 0;
416
+ for (let i = loopEnd; i < len; i++) {
417
+ sumRem += v[i] * v[i];
418
+ }
419
+ return Math.sqrt(sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sumRem);
420
+ }
421
+ // ============================================================================
422
+ // Vector Normalization
423
+ // ============================================================================
424
+ /**
425
+ * Normalize a vector to unit length (in-place)
426
+ *
427
+ * @param v - Vector to normalize (modified in-place)
428
+ * @returns The same vector, normalized
429
+ */
430
+ export function normalizeVectorInPlace(v) {
431
+ const norm = l2NormSIMD(v);
432
+ if (norm === 0) {
433
+ return v;
434
+ }
435
+ const invNorm = 1 / norm;
436
+ const len = v.length;
437
+ const loopEnd = len - (len % 8);
438
+ // 8x unrolled normalization
439
+ for (let i = 0; i < loopEnd; i += 8) {
440
+ v[i] *= invNorm;
441
+ v[i + 1] *= invNorm;
442
+ v[i + 2] *= invNorm;
443
+ v[i + 3] *= invNorm;
444
+ v[i + 4] *= invNorm;
445
+ v[i + 5] *= invNorm;
446
+ v[i + 6] *= invNorm;
447
+ v[i + 7] *= invNorm;
448
+ }
449
+ for (let i = loopEnd; i < len; i++) {
450
+ v[i] *= invNorm;
451
+ }
452
+ return v;
453
+ }
454
+ /**
455
+ * Create a normalized copy of a vector
456
+ *
457
+ * @param v - Input vector
458
+ * @returns New normalized vector
459
+ */
460
+ export function normalizeVector(v) {
461
+ const result = new Float32Array(v);
462
+ return normalizeVectorInPlace(result);
463
+ }
464
+ // ============================================================================
465
+ // Batch Operations
466
+ // ============================================================================
467
+ /**
468
+ * Batch cosine similarity calculation with early termination optimization
469
+ *
470
+ * Efficiently computes similarities between a query vector and multiple
471
+ * candidate vectors. Uses cache-friendly memory access patterns.
472
+ *
473
+ * @inline V8 optimization hint - hot path function
474
+ * @param query - Query vector
475
+ * @param vectors - Array of candidate vectors
476
+ * @param options - Optional configuration
477
+ * @returns Array of similarity scores (same order as input vectors)
478
+ */
479
+ export function batchCosineSimilarity(query, vectors, options) {
480
+ // @inline Force integer for loop optimization
481
+ const vectorCount = vectors.length | 0;
482
+ const threshold = options?.threshold ?? -Infinity;
483
+ const topK = options?.topK;
484
+ const earlyTermThreshold = options?.earlyTerminationThreshold ?? 0.9999;
485
+ const results = [];
486
+ // @inline Track perfect matches for early termination
487
+ let perfectMatches = 0;
488
+ const maxPerfectMatches = topK ?? 10;
489
+ // Process all vectors
490
+ for (let i = 0; i < vectorCount; i++) {
491
+ const similarity = cosineSimilaritySIMD(query, vectors[i]);
492
+ if (similarity >= threshold) {
493
+ results.push({
494
+ index: i,
495
+ similarity,
496
+ });
497
+ // @inline Early termination check for perfect matches
498
+ if (similarity >= earlyTermThreshold) {
499
+ perfectMatches++;
500
+ if (topK && perfectMatches >= maxPerfectMatches) {
501
+ break; // Early termination - found enough high-quality matches
502
+ }
503
+ }
504
+ }
505
+ }
506
+ // Sort by similarity (descending)
507
+ results.sort((a, b) => b.similarity - a.similarity);
508
+ // Return top-k if specified
509
+ if (topK !== undefined && topK > 0) {
510
+ return results.slice(0, topK);
511
+ }
512
+ return results;
513
+ }
514
+ /**
515
+ * Batch Euclidean distance calculation with early termination
516
+ *
517
+ * @inline V8 optimization hint - hot path function
518
+ * @param query - Query vector
519
+ * @param vectors - Array of candidate vectors
520
+ * @param options - Optional configuration
521
+ * @returns Array of distance results (same order as input vectors)
522
+ */
523
+ export function batchEuclideanDistance(query, vectors, options) {
524
+ // @inline Force integer for loop optimization
525
+ const vectorCount = vectors.length | 0;
526
+ const maxDist = options?.maxDistance ?? Infinity;
527
+ const useSquared = options?.squared ?? false;
528
+ const topK = options?.topK;
529
+ const earlyTermDist = options?.earlyTerminationDistance ?? 0.0001;
530
+ // @inline Select distance function once outside loop
531
+ const distFn = useSquared ? euclideanDistanceSquaredSIMD : euclideanDistanceSIMD;
532
+ const results = [];
533
+ let nearPerfectMatches = 0;
534
+ const maxNearPerfect = topK ?? 10;
535
+ for (let i = 0; i < vectorCount; i++) {
536
+ const distance = distFn(query, vectors[i]);
537
+ if (distance <= maxDist) {
538
+ results.push({
539
+ index: i,
540
+ similarity: 1 / (1 + distance), // Convert to similarity-like score
541
+ distance,
542
+ });
543
+ // @inline Early termination for near-zero distances
544
+ if (distance <= earlyTermDist) {
545
+ nearPerfectMatches++;
546
+ if (topK && nearPerfectMatches >= maxNearPerfect) {
547
+ break;
548
+ }
549
+ }
550
+ }
551
+ }
552
+ // Sort by distance (ascending)
553
+ results.sort((a, b) => (a.distance ?? 0) - (b.distance ?? 0));
554
+ if (topK !== undefined && topK > 0) {
555
+ return results.slice(0, topK);
556
+ }
557
+ return results;
558
+ }
559
+ // ============================================================================
560
+ // Buffer Pool for Memory Efficiency
561
+ // ============================================================================
562
+ /**
563
+ * Pre-allocated buffer pool to reduce GC pressure
564
+ *
565
+ * Reuses Float32Array buffers for temporary computations,
566
+ * avoiding frequent memory allocations during vector operations.
567
+ */
568
+ class BufferPool {
569
+ pools = new Map();
570
+ maxPoolSize;
571
+ stats = {
572
+ allocations: 0,
573
+ reuses: 0,
574
+ returns: 0,
575
+ };
576
+ constructor(maxPoolSize = 32) {
577
+ // Enforce maximum pool size limit for security
578
+ this.maxPoolSize = Math.min(Math.max(1, maxPoolSize), MAX_BUFFER_POOL_SIZE);
579
+ }
580
+ /**
581
+ * Acquire a buffer of the specified size
582
+ */
583
+ acquire(size) {
584
+ // Validate size to prevent DoS
585
+ if (!Number.isFinite(size) || size < 0 || size > MAX_VECTOR_DIMENSION) {
586
+ throw new Error(`Invalid buffer size: ${size}. Must be between 0 and ${MAX_VECTOR_DIMENSION}`);
587
+ }
588
+ const pool = this.pools.get(size);
589
+ if (pool && pool.length > 0) {
590
+ this.stats.reuses++;
591
+ return pool.pop();
592
+ }
593
+ this.stats.allocations++;
594
+ return new Float32Array(size);
595
+ }
596
+ /**
597
+ * Return a buffer to the pool
598
+ */
599
+ release(buffer) {
600
+ const size = buffer.length;
601
+ let pool = this.pools.get(size);
602
+ if (!pool) {
603
+ pool = [];
604
+ this.pools.set(size, pool);
605
+ }
606
+ if (pool.length < this.maxPoolSize) {
607
+ // Zero the buffer before returning to pool (security)
608
+ buffer.fill(0);
609
+ pool.push(buffer);
610
+ this.stats.returns++;
611
+ }
612
+ // If pool is full, buffer will be garbage collected
613
+ }
614
+ /**
615
+ * Get pool statistics
616
+ */
617
+ getStats() {
618
+ return {
619
+ ...this.stats,
620
+ poolSizes: Array.from(this.pools.keys()),
621
+ };
622
+ }
623
+ /**
624
+ * Clear all pools
625
+ */
626
+ clear() {
627
+ this.pools.clear();
628
+ }
629
+ }
630
+ // ============================================================================
631
+ // SIMDVectorOps Class
632
+ // ============================================================================
633
+ /**
634
+ * SIMD-accelerated vector operations manager
635
+ *
636
+ * Provides a stateful wrapper around vector operations with:
637
+ * - Automatic SIMD detection
638
+ * - Pre-allocated buffer pools
639
+ * - Operation statistics tracking
640
+ * - Configurable behavior
641
+ */
642
+ export class SIMDVectorOps {
643
+ config;
644
+ simdEnabled;
645
+ bufferPool;
646
+ stats;
647
+ constructor(config) {
648
+ this.config = {
649
+ enableSIMD: config?.enableSIMD ?? true,
650
+ bufferPoolSize: config?.bufferPoolSize ?? 32,
651
+ defaultDimension: config?.defaultDimension ?? 384,
652
+ enableLogging: config?.enableLogging ?? false,
653
+ };
654
+ // Detect SIMD support
655
+ this.simdEnabled = this.config.enableSIMD && detectSIMDSupport();
656
+ // Initialize buffer pool
657
+ this.bufferPool = new BufferPool(this.config.bufferPoolSize);
658
+ // Initialize stats
659
+ this.stats = {
660
+ simdEnabled: this.simdEnabled,
661
+ vectorsProcessed: 0,
662
+ operationsCount: 0,
663
+ buffersInPool: 0,
664
+ peakBufferUsage: 0,
665
+ };
666
+ if (this.config.enableLogging) {
667
+ console.log(`[SIMDVectorOps] Initialized with SIMD ${this.simdEnabled ? 'enabled' : 'disabled'}`);
668
+ }
669
+ }
670
+ /**
671
+ * Calculate cosine similarity between two vectors
672
+ */
673
+ cosineSimilarity(a, b) {
674
+ this.stats.operationsCount++;
675
+ this.stats.vectorsProcessed += 2;
676
+ return cosineSimilaritySIMD(a, b);
677
+ }
678
+ /**
679
+ * Calculate Euclidean distance between two vectors
680
+ */
681
+ euclideanDistance(a, b) {
682
+ this.stats.operationsCount++;
683
+ this.stats.vectorsProcessed += 2;
684
+ return euclideanDistanceSIMD(a, b);
685
+ }
686
+ /**
687
+ * Calculate squared Euclidean distance (faster for comparisons)
688
+ */
689
+ euclideanDistanceSquared(a, b) {
690
+ this.stats.operationsCount++;
691
+ this.stats.vectorsProcessed += 2;
692
+ return euclideanDistanceSquaredSIMD(a, b);
693
+ }
694
+ /**
695
+ * Calculate dot product
696
+ */
697
+ dotProduct(a, b) {
698
+ this.stats.operationsCount++;
699
+ this.stats.vectorsProcessed += 2;
700
+ return dotProductSIMD(a, b);
701
+ }
702
+ /**
703
+ * Calculate L2 norm
704
+ */
705
+ l2Norm(v) {
706
+ this.stats.operationsCount++;
707
+ this.stats.vectorsProcessed++;
708
+ return l2NormSIMD(v);
709
+ }
710
+ /**
711
+ * Normalize a vector (creates a copy)
712
+ */
713
+ normalize(v) {
714
+ this.stats.operationsCount++;
715
+ this.stats.vectorsProcessed++;
716
+ return normalizeVector(v);
717
+ }
718
+ /**
719
+ * Normalize a vector in place
720
+ */
721
+ normalizeInPlace(v) {
722
+ this.stats.operationsCount++;
723
+ this.stats.vectorsProcessed++;
724
+ return normalizeVectorInPlace(v);
725
+ }
726
+ /**
727
+ * Batch cosine similarity
728
+ */
729
+ batchCosineSimilarity(query, vectors, options) {
730
+ this.stats.operationsCount++;
731
+ this.stats.vectorsProcessed += 1 + vectors.length;
732
+ return batchCosineSimilarity(query, vectors, options);
733
+ }
734
+ /**
735
+ * Batch Euclidean distance
736
+ */
737
+ batchEuclideanDistance(query, vectors, options) {
738
+ this.stats.operationsCount++;
739
+ this.stats.vectorsProcessed += 1 + vectors.length;
740
+ return batchEuclideanDistance(query, vectors, options);
741
+ }
742
+ /**
743
+ * Acquire a temporary buffer from the pool
744
+ */
745
+ acquireBuffer(size) {
746
+ const bufferSize = size ?? this.config.defaultDimension;
747
+ this.stats.peakBufferUsage = Math.max(this.stats.peakBufferUsage, this.stats.buffersInPool + 1);
748
+ return this.bufferPool.acquire(bufferSize);
749
+ }
750
+ /**
751
+ * Release a buffer back to the pool
752
+ */
753
+ releaseBuffer(buffer) {
754
+ this.bufferPool.release(buffer);
755
+ }
756
+ /**
757
+ * Get operation statistics
758
+ */
759
+ getStats() {
760
+ const poolStats = this.bufferPool.getStats();
761
+ return {
762
+ ...this.stats,
763
+ buffersInPool: poolStats.poolSizes.length,
764
+ };
765
+ }
766
+ /**
767
+ * Reset statistics
768
+ */
769
+ resetStats() {
770
+ this.stats = {
771
+ simdEnabled: this.simdEnabled,
772
+ vectorsProcessed: 0,
773
+ operationsCount: 0,
774
+ buffersInPool: 0,
775
+ peakBufferUsage: 0,
776
+ };
777
+ }
778
+ /**
779
+ * Check if SIMD is enabled
780
+ */
781
+ isSIMDEnabled() {
782
+ return this.simdEnabled;
783
+ }
784
+ /**
785
+ * Clear buffer pools
786
+ */
787
+ clearBufferPool() {
788
+ this.bufferPool.clear();
789
+ }
790
+ }
791
+ // ============================================================================
792
+ // Utility Functions
793
+ // ============================================================================
794
+ /**
795
+ * Create a Float32Array from various input types
796
+ *
797
+ * @param data - Input data (array of numbers, ArrayBuffer, or existing Float32Array)
798
+ * @returns Float32Array
799
+ */
800
+ export function toFloat32Array(data) {
801
+ if (data instanceof Float32Array) {
802
+ return data;
803
+ }
804
+ if (data instanceof ArrayBuffer) {
805
+ return new Float32Array(data);
806
+ }
807
+ return new Float32Array(data);
808
+ }
809
+ /**
810
+ * Create random unit vector for testing
811
+ *
812
+ * @param dimension - Vector dimension
813
+ * @returns Normalized random vector
814
+ */
815
+ export function randomUnitVector(dimension) {
816
+ // Input validation to prevent DoS via large allocations
817
+ if (!Number.isFinite(dimension) || dimension < 0 || !Number.isInteger(dimension)) {
818
+ throw new Error('Dimension must be a non-negative integer');
819
+ }
820
+ validateDimension(dimension, 'Dimension');
821
+ const v = new Float32Array(dimension);
822
+ for (let i = 0; i < dimension; i++) {
823
+ v[i] = Math.random() * 2 - 1;
824
+ }
825
+ return normalizeVector(v);
826
+ }
827
+ /**
828
+ * Vector addition with 8x unrolling
829
+ *
830
+ * @param a - First vector
831
+ * @param b - Second vector
832
+ * @param out - Optional output buffer (creates new if not provided)
833
+ * @returns Result vector (a + b)
834
+ */
835
+ export function vectorAdd(a, b, out) {
836
+ const len = a.length;
837
+ const result = out ?? new Float32Array(len);
838
+ const loopEnd = len - (len % 8);
839
+ for (let i = 0; i < loopEnd; i += 8) {
840
+ result[i] = a[i] + b[i];
841
+ result[i + 1] = a[i + 1] + b[i + 1];
842
+ result[i + 2] = a[i + 2] + b[i + 2];
843
+ result[i + 3] = a[i + 3] + b[i + 3];
844
+ result[i + 4] = a[i + 4] + b[i + 4];
845
+ result[i + 5] = a[i + 5] + b[i + 5];
846
+ result[i + 6] = a[i + 6] + b[i + 6];
847
+ result[i + 7] = a[i + 7] + b[i + 7];
848
+ }
849
+ for (let i = loopEnd; i < len; i++) {
850
+ result[i] = a[i] + b[i];
851
+ }
852
+ return result;
853
+ }
854
+ /**
855
+ * Vector subtraction with 8x unrolling
856
+ *
857
+ * @param a - First vector
858
+ * @param b - Second vector
859
+ * @param out - Optional output buffer
860
+ * @returns Result vector (a - b)
861
+ */
862
+ export function vectorSub(a, b, out) {
863
+ const len = a.length;
864
+ const result = out ?? new Float32Array(len);
865
+ const loopEnd = len - (len % 8);
866
+ for (let i = 0; i < loopEnd; i += 8) {
867
+ result[i] = a[i] - b[i];
868
+ result[i + 1] = a[i + 1] - b[i + 1];
869
+ result[i + 2] = a[i + 2] - b[i + 2];
870
+ result[i + 3] = a[i + 3] - b[i + 3];
871
+ result[i + 4] = a[i + 4] - b[i + 4];
872
+ result[i + 5] = a[i + 5] - b[i + 5];
873
+ result[i + 6] = a[i + 6] - b[i + 6];
874
+ result[i + 7] = a[i + 7] - b[i + 7];
875
+ }
876
+ for (let i = loopEnd; i < len; i++) {
877
+ result[i] = a[i] - b[i];
878
+ }
879
+ return result;
880
+ }
881
+ /**
882
+ * Scalar multiplication with 8x unrolling
883
+ *
884
+ * @param v - Input vector
885
+ * @param scalar - Scalar multiplier
886
+ * @param out - Optional output buffer
887
+ * @returns Result vector (v * scalar)
888
+ */
889
+ export function vectorScale(v, scalar, out) {
890
+ const len = v.length;
891
+ const result = out ?? new Float32Array(len);
892
+ const loopEnd = len - (len % 8);
893
+ for (let i = 0; i < loopEnd; i += 8) {
894
+ result[i] = v[i] * scalar;
895
+ result[i + 1] = v[i + 1] * scalar;
896
+ result[i + 2] = v[i + 2] * scalar;
897
+ result[i + 3] = v[i + 3] * scalar;
898
+ result[i + 4] = v[i + 4] * scalar;
899
+ result[i + 5] = v[i + 5] * scalar;
900
+ result[i + 6] = v[i + 6] * scalar;
901
+ result[i + 7] = v[i + 7] * scalar;
902
+ }
903
+ for (let i = loopEnd; i < len; i++) {
904
+ result[i] = v[i] * scalar;
905
+ }
906
+ return result;
907
+ }
908
+ // ============================================================================
909
+ // Default Export
910
+ // ============================================================================
911
+ /**
912
+ * Default SIMD vector operations instance
913
+ *
914
+ * Pre-configured with sensible defaults. For custom configuration,
915
+ * create a new SIMDVectorOps instance.
916
+ */
917
+ export const defaultSIMDOps = new SIMDVectorOps();
918
+ export default {
919
+ // Core operations
920
+ cosineSimilaritySIMD,
921
+ euclideanDistanceSIMD,
922
+ euclideanDistanceSquaredSIMD,
923
+ dotProductSIMD,
924
+ l2NormSIMD,
925
+ // Normalization
926
+ normalizeVector,
927
+ normalizeVectorInPlace,
928
+ // Batch operations
929
+ batchCosineSimilarity,
930
+ batchEuclideanDistance,
931
+ // Vector math
932
+ vectorAdd,
933
+ vectorSub,
934
+ vectorScale,
935
+ // Utilities
936
+ toFloat32Array,
937
+ randomUnitVector,
938
+ detectSIMDSupport,
939
+ detectSIMDSupportLegacy,
940
+ // Class
941
+ SIMDVectorOps,
942
+ // Default instance
943
+ defaultSIMDOps,
944
+ };
945
+ //# sourceMappingURL=simd-vector-ops.js.map