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,984 @@
1
+ /**
2
+ * AgentDB Benchmark Suite
3
+ *
4
+ * Comprehensive benchmarking framework for measuring:
5
+ * - Vector insert performance (batch and single)
6
+ * - Vector search latency (p50, p95, p99)
7
+ * - Memory consumption
8
+ * - Concurrent read/write performance
9
+ * - Quantization performance comparison
10
+ *
11
+ * Usage:
12
+ * import { BenchmarkSuite, runBenchmarks } from './benchmark/BenchmarkSuite';
13
+ *
14
+ * const suite = new BenchmarkSuite();
15
+ * const report = await suite.runAll();
16
+ * console.log(JSON.stringify(report, null, 2));
17
+ *
18
+ * CLI integration:
19
+ * npx tsx packages/agentdb/src/benchmark/BenchmarkSuite.ts
20
+ */
21
+ import { createBackend, detectBackends } from '../backends/factory.js';
22
+ import { QuantizedVectorStore, } from '../quantization/index.js';
23
+ // ============================================================================
24
+ // Benchmark Base Class
25
+ // ============================================================================
26
+ /**
27
+ * Abstract base class for benchmarks
28
+ */
29
+ export class Benchmark {
30
+ /**
31
+ * Generate a random normalized vector
32
+ */
33
+ generateRandomVector(dimension) {
34
+ const vector = new Float32Array(dimension);
35
+ let norm = 0;
36
+ for (let i = 0; i < dimension; i++) {
37
+ vector[i] = Math.random() * 2 - 1;
38
+ norm += vector[i] * vector[i];
39
+ }
40
+ norm = Math.sqrt(norm);
41
+ if (norm > 0) {
42
+ for (let i = 0; i < dimension; i++) {
43
+ vector[i] /= norm;
44
+ }
45
+ }
46
+ return vector;
47
+ }
48
+ /**
49
+ * Generate multiple random vectors
50
+ */
51
+ generateRandomVectors(count, dimension) {
52
+ const vectors = [];
53
+ for (let i = 0; i < count; i++) {
54
+ vectors.push(this.generateRandomVector(dimension));
55
+ }
56
+ return vectors;
57
+ }
58
+ /**
59
+ * Calculate latency statistics from measurements
60
+ */
61
+ calculateLatencyStats(measurements) {
62
+ if (measurements.length === 0) {
63
+ return { p50: 0, p95: 0, p99: 0, mean: 0, max: 0, min: 0 };
64
+ }
65
+ const sorted = [...measurements].sort((a, b) => a - b);
66
+ const n = sorted.length;
67
+ const percentile = (p) => {
68
+ const index = Math.ceil((p / 100) * n) - 1;
69
+ return sorted[Math.max(0, Math.min(index, n - 1))];
70
+ };
71
+ const sum = sorted.reduce((a, b) => a + b, 0);
72
+ return {
73
+ p50: percentile(50),
74
+ p95: percentile(95),
75
+ p99: percentile(99),
76
+ mean: sum / n,
77
+ max: sorted[n - 1],
78
+ min: sorted[0],
79
+ };
80
+ }
81
+ /**
82
+ * Get current memory usage in MB
83
+ */
84
+ getMemoryUsageMB() {
85
+ if (typeof process !== 'undefined' && process.memoryUsage) {
86
+ return process.memoryUsage().heapUsed / (1024 * 1024);
87
+ }
88
+ return 0;
89
+ }
90
+ /**
91
+ * Force garbage collection if available
92
+ */
93
+ forceGC() {
94
+ if (typeof global !== 'undefined' && global.gc) {
95
+ global.gc();
96
+ }
97
+ }
98
+ }
99
+ // ============================================================================
100
+ // Built-in Benchmarks
101
+ // ============================================================================
102
+ /**
103
+ * Vector Insert Benchmark
104
+ *
105
+ * Tests batch insert performance at different scales:
106
+ * - 1K vectors (warm cache scenarios)
107
+ * - 10K vectors (typical use case)
108
+ * - 100K vectors (stress test)
109
+ */
110
+ export class VectorInsertBenchmark extends Benchmark {
111
+ name = 'VectorInsert';
112
+ description = 'Batch insert performance at different scales';
113
+ backend;
114
+ config;
115
+ vectors1K = [];
116
+ vectors10K = [];
117
+ vectors100K = [];
118
+ constructor(config = {}) {
119
+ super();
120
+ this.config = {
121
+ vectorDimension: config.vectorDimension ?? 384,
122
+ warmupIterations: config.warmupIterations ?? 100,
123
+ insertCounts: config.insertCounts ?? [1000, 10000, 100000],
124
+ searchQueries: config.searchQueries ?? 1000,
125
+ searchK: config.searchK ?? 10,
126
+ concurrencyLevels: config.concurrencyLevels ?? [1, 4, 8, 16],
127
+ runMemoryTests: config.runMemoryTests ?? true,
128
+ runQuantizationTests: config.runQuantizationTests ?? true,
129
+ };
130
+ }
131
+ async setup() {
132
+ // Create backend
133
+ this.backend = await createBackend('auto', {
134
+ dimensions: this.config.vectorDimension,
135
+ metric: 'cosine',
136
+ maxElements: 150000,
137
+ });
138
+ // Pre-generate vectors to exclude generation time from measurements
139
+ console.log(' Generating test vectors...');
140
+ if (this.config.insertCounts.includes(1000)) {
141
+ this.vectors1K = this.generateRandomVectors(1000, this.config.vectorDimension);
142
+ }
143
+ if (this.config.insertCounts.includes(10000)) {
144
+ this.vectors10K = this.generateRandomVectors(10000, this.config.vectorDimension);
145
+ }
146
+ if (this.config.insertCounts.includes(100000)) {
147
+ this.vectors100K = this.generateRandomVectors(100000, this.config.vectorDimension);
148
+ }
149
+ }
150
+ async run() {
151
+ const results = [];
152
+ const latencies = [];
153
+ // Test each vector count
154
+ for (const count of this.config.insertCounts) {
155
+ const vectors = count === 1000 ? this.vectors1K :
156
+ count === 10000 ? this.vectors10K :
157
+ this.vectors100K;
158
+ if (vectors.length === 0)
159
+ continue;
160
+ // Warmup
161
+ for (let i = 0; i < Math.min(this.config.warmupIterations, 10); i++) {
162
+ this.backend.insert(`warmup-${i}`, vectors[i % vectors.length]);
163
+ }
164
+ this.forceGC();
165
+ const memBefore = this.getMemoryUsageMB();
166
+ const start = performance.now();
167
+ // Batch insert with individual timing
168
+ const batchItems = vectors.map((embedding, idx) => ({
169
+ id: `vec-${count}-${idx}`,
170
+ embedding,
171
+ }));
172
+ // Measure individual insert latencies for a sample
173
+ const sampleSize = Math.min(100, count);
174
+ for (let i = 0; i < sampleSize; i++) {
175
+ const insertStart = performance.now();
176
+ this.backend.insert(`latency-${count}-${i}`, vectors[i]);
177
+ latencies.push(performance.now() - insertStart);
178
+ }
179
+ // Batch the rest
180
+ if (count > sampleSize) {
181
+ this.backend.insertBatch(batchItems.slice(sampleSize));
182
+ }
183
+ const duration = performance.now() - start;
184
+ const memAfter = this.getMemoryUsageMB();
185
+ results.push({
186
+ count,
187
+ duration,
188
+ opsPerSec: (count / duration) * 1000,
189
+ });
190
+ console.log(` ${count.toLocaleString()} vectors: ${duration.toFixed(2)}ms ` +
191
+ `(${((count / duration) * 1000).toFixed(0)} ops/sec, ` +
192
+ `+${(memAfter - memBefore).toFixed(1)}MB)`);
193
+ }
194
+ // Calculate aggregate statistics
195
+ const totalOps = results.reduce((sum, r) => sum + r.count, 0);
196
+ const totalDuration = results.reduce((sum, r) => sum + r.duration, 0);
197
+ const avgOpsPerSec = results.length > 0
198
+ ? results.reduce((sum, r) => sum + r.opsPerSec, 0) / results.length
199
+ : 0;
200
+ return {
201
+ name: this.name,
202
+ opsPerSecond: avgOpsPerSec,
203
+ latencyMs: this.calculateLatencyStats(latencies),
204
+ memoryMB: this.getMemoryUsageMB(),
205
+ duration: totalDuration,
206
+ operations: totalOps,
207
+ metadata: {
208
+ breakdown: results,
209
+ vectorDimension: this.config.vectorDimension,
210
+ },
211
+ };
212
+ }
213
+ async teardown() {
214
+ this.backend?.close();
215
+ this.vectors1K = [];
216
+ this.vectors10K = [];
217
+ this.vectors100K = [];
218
+ this.forceGC();
219
+ }
220
+ }
221
+ /**
222
+ * Vector Search Benchmark
223
+ *
224
+ * Tests k-NN search latency with percentile measurements
225
+ */
226
+ export class VectorSearchBenchmark extends Benchmark {
227
+ name = 'VectorSearch';
228
+ description = 'k-NN search latency (p50, p95, p99)';
229
+ backend;
230
+ config;
231
+ queryVectors = [];
232
+ constructor(config = {}) {
233
+ super();
234
+ this.config = {
235
+ vectorDimension: config.vectorDimension ?? 384,
236
+ warmupIterations: config.warmupIterations ?? 100,
237
+ insertCounts: config.insertCounts ?? [1000, 10000, 100000],
238
+ searchQueries: config.searchQueries ?? 1000,
239
+ searchK: config.searchK ?? 10,
240
+ concurrencyLevels: config.concurrencyLevels ?? [1, 4, 8, 16],
241
+ runMemoryTests: config.runMemoryTests ?? true,
242
+ runQuantizationTests: config.runQuantizationTests ?? true,
243
+ };
244
+ }
245
+ async setup() {
246
+ this.backend = await createBackend('auto', {
247
+ dimensions: this.config.vectorDimension,
248
+ metric: 'cosine',
249
+ maxElements: 50000,
250
+ });
251
+ // Build index with 10K vectors
252
+ console.log(' Building search index with 10K vectors...');
253
+ const indexVectors = this.generateRandomVectors(10000, this.config.vectorDimension);
254
+ this.backend.insertBatch(indexVectors.map((embedding, idx) => ({
255
+ id: `idx-${idx}`,
256
+ embedding,
257
+ })));
258
+ // Generate query vectors
259
+ this.queryVectors = this.generateRandomVectors(this.config.searchQueries, this.config.vectorDimension);
260
+ }
261
+ async run() {
262
+ const latencies = [];
263
+ // Warmup
264
+ for (let i = 0; i < this.config.warmupIterations; i++) {
265
+ this.backend.search(this.queryVectors[i % this.queryVectors.length], this.config.searchK);
266
+ }
267
+ this.forceGC();
268
+ const memBefore = this.getMemoryUsageMB();
269
+ const start = performance.now();
270
+ // Run search queries and measure latency
271
+ for (const query of this.queryVectors) {
272
+ const queryStart = performance.now();
273
+ this.backend.search(query, this.config.searchK);
274
+ latencies.push(performance.now() - queryStart);
275
+ }
276
+ const duration = performance.now() - start;
277
+ const memAfter = this.getMemoryUsageMB();
278
+ const stats = this.calculateLatencyStats(latencies);
279
+ console.log(` ${this.queryVectors.length.toLocaleString()} queries: ` +
280
+ `p50=${stats.p50.toFixed(3)}ms, p95=${stats.p95.toFixed(3)}ms, p99=${stats.p99.toFixed(3)}ms`);
281
+ return {
282
+ name: this.name,
283
+ opsPerSecond: (this.queryVectors.length / duration) * 1000,
284
+ latencyMs: stats,
285
+ memoryMB: memAfter - memBefore,
286
+ duration,
287
+ operations: this.queryVectors.length,
288
+ metadata: {
289
+ indexSize: 10000,
290
+ k: this.config.searchK,
291
+ vectorDimension: this.config.vectorDimension,
292
+ },
293
+ };
294
+ }
295
+ async teardown() {
296
+ this.backend?.close();
297
+ this.queryVectors = [];
298
+ this.forceGC();
299
+ }
300
+ }
301
+ /**
302
+ * Memory Usage Benchmark
303
+ *
304
+ * Tracks memory consumption at different scales
305
+ */
306
+ export class MemoryUsageBenchmark extends Benchmark {
307
+ name = 'MemoryUsage';
308
+ description = 'Memory consumption tracking';
309
+ backend;
310
+ config;
311
+ constructor(config = {}) {
312
+ super();
313
+ this.config = {
314
+ vectorDimension: config.vectorDimension ?? 384,
315
+ warmupIterations: config.warmupIterations ?? 100,
316
+ insertCounts: config.insertCounts ?? [1000, 10000, 100000],
317
+ searchQueries: config.searchQueries ?? 1000,
318
+ searchK: config.searchK ?? 10,
319
+ concurrencyLevels: config.concurrencyLevels ?? [1, 4, 8, 16],
320
+ runMemoryTests: config.runMemoryTests ?? true,
321
+ runQuantizationTests: config.runQuantizationTests ?? true,
322
+ };
323
+ }
324
+ async setup() {
325
+ this.forceGC();
326
+ }
327
+ async run() {
328
+ const memoryReadings = [];
329
+ const latencies = [];
330
+ // Test memory at different scales
331
+ const testCounts = [1000, 5000, 10000, 25000, 50000];
332
+ for (const count of testCounts) {
333
+ this.forceGC();
334
+ const memBefore = this.getMemoryUsageMB();
335
+ // Create fresh backend for each test
336
+ const backend = await createBackend('auto', {
337
+ dimensions: this.config.vectorDimension,
338
+ metric: 'cosine',
339
+ maxElements: count + 1000,
340
+ });
341
+ const vectors = this.generateRandomVectors(count, this.config.vectorDimension);
342
+ const start = performance.now();
343
+ backend.insertBatch(vectors.map((embedding, idx) => ({
344
+ id: `mem-${count}-${idx}`,
345
+ embedding,
346
+ })));
347
+ latencies.push(performance.now() - start);
348
+ this.forceGC();
349
+ const memAfter = this.getMemoryUsageMB();
350
+ const memUsed = memAfter - memBefore;
351
+ const bytesPerVector = (memUsed * 1024 * 1024) / count;
352
+ memoryReadings.push({
353
+ vectors: count,
354
+ memoryMB: memUsed,
355
+ bytesPerVector,
356
+ });
357
+ console.log(` ${count.toLocaleString()} vectors: ${memUsed.toFixed(2)}MB ` +
358
+ `(${bytesPerVector.toFixed(0)} bytes/vector)`);
359
+ backend.close();
360
+ }
361
+ const peakMemory = Math.max(...memoryReadings.map(r => r.memoryMB));
362
+ const avgBytesPerVector = memoryReadings.reduce((sum, r) => sum + r.bytesPerVector, 0) /
363
+ memoryReadings.length;
364
+ return {
365
+ name: this.name,
366
+ opsPerSecond: 0, // Not applicable for memory test
367
+ latencyMs: this.calculateLatencyStats(latencies),
368
+ memoryMB: peakMemory,
369
+ duration: latencies.reduce((a, b) => a + b, 0),
370
+ operations: testCounts.reduce((a, b) => a + b, 0),
371
+ metadata: {
372
+ readings: memoryReadings,
373
+ avgBytesPerVector,
374
+ theoreticalBytesPerVector: this.config.vectorDimension * 4, // Float32
375
+ vectorDimension: this.config.vectorDimension,
376
+ },
377
+ };
378
+ }
379
+ async teardown() {
380
+ this.forceGC();
381
+ }
382
+ }
383
+ /**
384
+ * Concurrency Benchmark
385
+ *
386
+ * Tests concurrent read/write performance
387
+ */
388
+ export class ConcurrencyBenchmark extends Benchmark {
389
+ name = 'Concurrency';
390
+ description = 'Concurrent read/write performance';
391
+ backend;
392
+ config;
393
+ constructor(config = {}) {
394
+ super();
395
+ this.config = {
396
+ vectorDimension: config.vectorDimension ?? 384,
397
+ warmupIterations: config.warmupIterations ?? 100,
398
+ insertCounts: config.insertCounts ?? [1000, 10000, 100000],
399
+ searchQueries: config.searchQueries ?? 1000,
400
+ searchK: config.searchK ?? 10,
401
+ concurrencyLevels: config.concurrencyLevels ?? [1, 4, 8, 16],
402
+ runMemoryTests: config.runMemoryTests ?? true,
403
+ runQuantizationTests: config.runQuantizationTests ?? true,
404
+ };
405
+ }
406
+ async setup() {
407
+ this.backend = await createBackend('auto', {
408
+ dimensions: this.config.vectorDimension,
409
+ metric: 'cosine',
410
+ maxElements: 20000,
411
+ });
412
+ // Pre-populate with vectors for read tests
413
+ console.log(' Pre-populating index for concurrency tests...');
414
+ const vectors = this.generateRandomVectors(5000, this.config.vectorDimension);
415
+ this.backend.insertBatch(vectors.map((embedding, idx) => ({
416
+ id: `pre-${idx}`,
417
+ embedding,
418
+ })));
419
+ }
420
+ async run() {
421
+ const results = [];
422
+ const allLatencies = [];
423
+ for (const concurrency of this.config.concurrencyLevels) {
424
+ const opsPerLevel = 500;
425
+ const latencies = [];
426
+ this.forceGC();
427
+ const start = performance.now();
428
+ // Run concurrent operations
429
+ const workers = [];
430
+ for (let w = 0; w < concurrency; w++) {
431
+ workers.push((async () => {
432
+ const opsPerWorker = Math.floor(opsPerLevel / concurrency);
433
+ for (let i = 0; i < opsPerWorker; i++) {
434
+ const opStart = performance.now();
435
+ // Mix of reads (70%) and writes (30%)
436
+ if (Math.random() < 0.7) {
437
+ // Read
438
+ const query = this.generateRandomVector(this.config.vectorDimension);
439
+ this.backend.search(query, this.config.searchK);
440
+ }
441
+ else {
442
+ // Write
443
+ const vec = this.generateRandomVector(this.config.vectorDimension);
444
+ this.backend.insert(`conc-${w}-${i}`, vec);
445
+ }
446
+ latencies.push(performance.now() - opStart);
447
+ }
448
+ })());
449
+ }
450
+ await Promise.all(workers);
451
+ const duration = performance.now() - start;
452
+ const opsPerSec = (latencies.length / duration) * 1000;
453
+ const avgLatency = latencies.reduce((a, b) => a + b, 0) / latencies.length;
454
+ results.push({
455
+ concurrency,
456
+ opsPerSec,
457
+ avgLatencyMs: avgLatency,
458
+ });
459
+ allLatencies.push(...latencies);
460
+ console.log(` Concurrency ${concurrency}: ${opsPerSec.toFixed(0)} ops/sec, ` +
461
+ `avg latency ${avgLatency.toFixed(3)}ms`);
462
+ }
463
+ // Find optimal concurrency
464
+ const bestResult = results.reduce((best, r) => (r.opsPerSec > best.opsPerSec ? r : best), results[0]);
465
+ return {
466
+ name: this.name,
467
+ opsPerSecond: bestResult.opsPerSec,
468
+ latencyMs: this.calculateLatencyStats(allLatencies),
469
+ memoryMB: this.getMemoryUsageMB(),
470
+ duration: results.reduce((sum, r) => sum + (r.opsPerSec > 0 ? 500 / (r.opsPerSec / 1000) : 0), 0),
471
+ operations: results.length * 500,
472
+ metadata: {
473
+ breakdown: results,
474
+ optimalConcurrency: bestResult.concurrency,
475
+ readWriteRatio: '70/30',
476
+ },
477
+ };
478
+ }
479
+ async teardown() {
480
+ this.backend?.close();
481
+ this.forceGC();
482
+ }
483
+ }
484
+ /**
485
+ * Quantization Benchmark
486
+ *
487
+ * Compares quantized vs unquantized performance
488
+ */
489
+ export class QuantizationBenchmark extends Benchmark {
490
+ name = 'Quantization';
491
+ description = 'Quantized vs unquantized performance comparison';
492
+ config;
493
+ constructor(config = {}) {
494
+ super();
495
+ this.config = {
496
+ vectorDimension: config.vectorDimension ?? 384,
497
+ warmupIterations: config.warmupIterations ?? 100,
498
+ insertCounts: config.insertCounts ?? [1000, 10000, 100000],
499
+ searchQueries: config.searchQueries ?? 1000,
500
+ searchK: config.searchK ?? 10,
501
+ concurrencyLevels: config.concurrencyLevels ?? [1, 4, 8, 16],
502
+ runMemoryTests: config.runMemoryTests ?? true,
503
+ runQuantizationTests: config.runQuantizationTests ?? true,
504
+ };
505
+ }
506
+ async setup() {
507
+ this.forceGC();
508
+ }
509
+ async run() {
510
+ const vectorCount = 10000;
511
+ const vectors = this.generateRandomVectors(vectorCount, this.config.vectorDimension);
512
+ const queries = this.generateRandomVectors(100, this.config.vectorDimension);
513
+ const results = [];
514
+ // Test 8-bit quantization
515
+ console.log(' Testing 8-bit scalar quantization...');
516
+ {
517
+ this.forceGC();
518
+ const memBefore = this.getMemoryUsageMB();
519
+ const store = new QuantizedVectorStore({
520
+ dimension: this.config.vectorDimension,
521
+ quantizationType: 'scalar8bit',
522
+ metric: 'cosine',
523
+ });
524
+ const insertStart = performance.now();
525
+ for (let i = 0; i < vectors.length; i++) {
526
+ store.insert(`q8-${i}`, vectors[i]);
527
+ }
528
+ const insertTime = performance.now() - insertStart;
529
+ const searchStart = performance.now();
530
+ for (const query of queries) {
531
+ store.search(query, 10);
532
+ }
533
+ const searchTime = performance.now() - searchStart;
534
+ this.forceGC();
535
+ const memAfter = this.getMemoryUsageMB();
536
+ results.push({
537
+ type: '8-bit',
538
+ insertTime,
539
+ searchTime,
540
+ memoryMB: memAfter - memBefore,
541
+ compressionRatio: 4,
542
+ });
543
+ console.log(` 8-bit: insert=${insertTime.toFixed(0)}ms, search=${searchTime.toFixed(0)}ms, ` +
544
+ `memory=${(memAfter - memBefore).toFixed(1)}MB (4x compression)`);
545
+ }
546
+ // Test 4-bit quantization
547
+ console.log(' Testing 4-bit scalar quantization...');
548
+ {
549
+ this.forceGC();
550
+ const memBefore = this.getMemoryUsageMB();
551
+ const store = new QuantizedVectorStore({
552
+ dimension: this.config.vectorDimension,
553
+ quantizationType: 'scalar4bit',
554
+ metric: 'cosine',
555
+ });
556
+ const insertStart = performance.now();
557
+ for (let i = 0; i < vectors.length; i++) {
558
+ store.insert(`q4-${i}`, vectors[i]);
559
+ }
560
+ const insertTime = performance.now() - insertStart;
561
+ const searchStart = performance.now();
562
+ for (const query of queries) {
563
+ store.search(query, 10);
564
+ }
565
+ const searchTime = performance.now() - searchStart;
566
+ this.forceGC();
567
+ const memAfter = this.getMemoryUsageMB();
568
+ results.push({
569
+ type: '4-bit',
570
+ insertTime,
571
+ searchTime,
572
+ memoryMB: memAfter - memBefore,
573
+ compressionRatio: 8,
574
+ });
575
+ console.log(` 4-bit: insert=${insertTime.toFixed(0)}ms, search=${searchTime.toFixed(0)}ms, ` +
576
+ `memory=${(memAfter - memBefore).toFixed(1)}MB (8x compression)`);
577
+ }
578
+ // Test unquantized (baseline)
579
+ console.log(' Testing unquantized baseline...');
580
+ {
581
+ this.forceGC();
582
+ const memBefore = this.getMemoryUsageMB();
583
+ const backend = await createBackend('auto', {
584
+ dimensions: this.config.vectorDimension,
585
+ metric: 'cosine',
586
+ maxElements: vectorCount + 1000,
587
+ });
588
+ const insertStart = performance.now();
589
+ backend.insertBatch(vectors.map((embedding, idx) => ({
590
+ id: `full-${idx}`,
591
+ embedding,
592
+ })));
593
+ const insertTime = performance.now() - insertStart;
594
+ const searchStart = performance.now();
595
+ for (const query of queries) {
596
+ backend.search(query, 10);
597
+ }
598
+ const searchTime = performance.now() - searchStart;
599
+ this.forceGC();
600
+ const memAfter = this.getMemoryUsageMB();
601
+ results.push({
602
+ type: 'unquantized',
603
+ insertTime,
604
+ searchTime,
605
+ memoryMB: memAfter - memBefore,
606
+ compressionRatio: 1,
607
+ });
608
+ console.log(` Unquantized: insert=${insertTime.toFixed(0)}ms, search=${searchTime.toFixed(0)}ms, ` +
609
+ `memory=${(memAfter - memBefore).toFixed(1)}MB (1x compression)`);
610
+ backend.close();
611
+ }
612
+ // Calculate latencies from search times
613
+ const allLatencies = results.map(r => r.searchTime / queries.length);
614
+ return {
615
+ name: this.name,
616
+ opsPerSecond: (vectorCount / results.reduce((sum, r) => sum + r.insertTime, 0)) * 1000,
617
+ latencyMs: this.calculateLatencyStats(allLatencies),
618
+ memoryMB: Math.max(...results.map(r => r.memoryMB)),
619
+ duration: results.reduce((sum, r) => sum + r.insertTime + r.searchTime, 0),
620
+ operations: vectorCount * 3 + queries.length * 3,
621
+ metadata: {
622
+ breakdown: results,
623
+ vectorCount,
624
+ queryCount: queries.length,
625
+ vectorDimension: this.config.vectorDimension,
626
+ },
627
+ };
628
+ }
629
+ async teardown() {
630
+ this.forceGC();
631
+ }
632
+ }
633
+ // ============================================================================
634
+ // Benchmark Suite
635
+ // ============================================================================
636
+ /**
637
+ * BenchmarkSuite - Orchestrates benchmark execution and reporting
638
+ */
639
+ export class BenchmarkSuite {
640
+ benchmarks = new Map();
641
+ config;
642
+ constructor(config = {}) {
643
+ this.config = {
644
+ vectorDimension: config.vectorDimension ?? 384,
645
+ warmupIterations: config.warmupIterations ?? 100,
646
+ insertCounts: config.insertCounts ?? [1000, 10000, 100000],
647
+ searchQueries: config.searchQueries ?? 1000,
648
+ searchK: config.searchK ?? 10,
649
+ concurrencyLevels: config.concurrencyLevels ?? [1, 4, 8, 16],
650
+ runMemoryTests: config.runMemoryTests ?? true,
651
+ runQuantizationTests: config.runQuantizationTests ?? true,
652
+ };
653
+ // Register default benchmarks
654
+ this.register(new VectorInsertBenchmark(this.config));
655
+ this.register(new VectorSearchBenchmark(this.config));
656
+ if (this.config.runMemoryTests) {
657
+ this.register(new MemoryUsageBenchmark(this.config));
658
+ }
659
+ this.register(new ConcurrencyBenchmark(this.config));
660
+ if (this.config.runQuantizationTests) {
661
+ this.register(new QuantizationBenchmark(this.config));
662
+ }
663
+ }
664
+ /**
665
+ * Register a benchmark to the suite
666
+ */
667
+ register(benchmark) {
668
+ this.benchmarks.set(benchmark.name, benchmark);
669
+ }
670
+ /**
671
+ * Unregister a benchmark from the suite
672
+ */
673
+ unregister(name) {
674
+ return this.benchmarks.delete(name);
675
+ }
676
+ /**
677
+ * Get list of registered benchmark names
678
+ */
679
+ listBenchmarks() {
680
+ return Array.from(this.benchmarks.keys());
681
+ }
682
+ /**
683
+ * Run all registered benchmarks
684
+ */
685
+ async runAll() {
686
+ const startTime = performance.now();
687
+ const results = [];
688
+ let peakMemory = 0;
689
+ let passed = 0;
690
+ // Detect backend
691
+ const detection = await detectBackends();
692
+ const backendName = detection.available;
693
+ const isNative = detection.ruvector.native;
694
+ console.log('='.repeat(70));
695
+ console.log('AgentDB Benchmark Suite');
696
+ console.log('='.repeat(70));
697
+ console.log(`Backend: ${backendName}${isNative ? ' (native)' : ' (WASM)'}`);
698
+ console.log(`Dimension: ${this.config.vectorDimension}`);
699
+ console.log('='.repeat(70));
700
+ console.log('');
701
+ for (const [name, benchmark] of this.benchmarks) {
702
+ console.log(`Running: ${name}`);
703
+ console.log(` ${benchmark.description}`);
704
+ try {
705
+ await benchmark.setup();
706
+ const result = await benchmark.run();
707
+ await benchmark.teardown();
708
+ results.push(result);
709
+ peakMemory = Math.max(peakMemory, result.memoryMB);
710
+ passed++;
711
+ console.log(` Completed: ${result.opsPerSecond.toFixed(0)} ops/sec\n`);
712
+ }
713
+ catch (error) {
714
+ console.error(` Error: ${error.message}\n`);
715
+ results.push({
716
+ name,
717
+ opsPerSecond: 0,
718
+ latencyMs: { p50: 0, p95: 0, p99: 0, mean: 0, max: 0, min: 0 },
719
+ memoryMB: 0,
720
+ duration: 0,
721
+ operations: 0,
722
+ metadata: { error: error.message },
723
+ });
724
+ }
725
+ }
726
+ const totalDuration = performance.now() - startTime;
727
+ console.log('='.repeat(70));
728
+ console.log('Summary');
729
+ console.log('='.repeat(70));
730
+ console.log(`Total Duration: ${(totalDuration / 1000).toFixed(2)}s`);
731
+ console.log(`Benchmarks: ${passed}/${this.benchmarks.size} passed`);
732
+ console.log(`Peak Memory: ${peakMemory.toFixed(1)}MB`);
733
+ console.log('='.repeat(70));
734
+ return {
735
+ timestamp: new Date().toISOString(),
736
+ platform: {
737
+ os: typeof process !== 'undefined' ? process.platform : 'unknown',
738
+ arch: typeof process !== 'undefined' ? process.arch : 'unknown',
739
+ nodeVersion: typeof process !== 'undefined' ? process.version : 'unknown',
740
+ },
741
+ backend: {
742
+ name: backendName,
743
+ isNative,
744
+ },
745
+ config: {
746
+ vectorDimension: this.config.vectorDimension,
747
+ warmupIterations: this.config.warmupIterations,
748
+ },
749
+ results,
750
+ summary: {
751
+ totalDuration,
752
+ benchmarksRun: this.benchmarks.size,
753
+ benchmarksPassed: passed,
754
+ peakMemoryMB: peakMemory,
755
+ },
756
+ };
757
+ }
758
+ /**
759
+ * Run a specific benchmark by name
760
+ */
761
+ async runByName(name) {
762
+ const benchmark = this.benchmarks.get(name);
763
+ if (!benchmark) {
764
+ throw new Error(`Benchmark not found: ${name}`);
765
+ }
766
+ console.log(`Running: ${name}`);
767
+ console.log(` ${benchmark.description}`);
768
+ await benchmark.setup();
769
+ const result = await benchmark.run();
770
+ await benchmark.teardown();
771
+ console.log(` Completed: ${result.opsPerSecond.toFixed(0)} ops/sec\n`);
772
+ return result;
773
+ }
774
+ /**
775
+ * Compare two benchmark reports
776
+ */
777
+ compare(baseline, current) {
778
+ const comparisons = [];
779
+ const summary = { improved: 0, regressed: 0, unchanged: 0, new: 0, removed: 0 };
780
+ // Create maps for easier lookup
781
+ const baselineMap = new Map(baseline.results.map(r => [r.name, r]));
782
+ const currentMap = new Map(current.results.map(r => [r.name, r]));
783
+ // Get all unique benchmark names
784
+ const allNames = new Set([...baselineMap.keys(), ...currentMap.keys()]);
785
+ for (const name of allNames) {
786
+ const baseResult = baselineMap.get(name) ?? null;
787
+ const currResult = currentMap.get(name) ?? null;
788
+ let status;
789
+ let opsPerSecondChange = null;
790
+ let p99LatencyChange = null;
791
+ let memoryChange = null;
792
+ if (!baseResult) {
793
+ status = 'new';
794
+ summary.new++;
795
+ }
796
+ else if (!currResult) {
797
+ status = 'removed';
798
+ summary.removed++;
799
+ }
800
+ else {
801
+ // Calculate changes
802
+ opsPerSecondChange = baseResult.opsPerSecond > 0
803
+ ? ((currResult.opsPerSecond - baseResult.opsPerSecond) / baseResult.opsPerSecond) * 100
804
+ : null;
805
+ p99LatencyChange = baseResult.latencyMs.p99 > 0
806
+ ? ((currResult.latencyMs.p99 - baseResult.latencyMs.p99) / baseResult.latencyMs.p99) * 100
807
+ : null;
808
+ memoryChange = baseResult.memoryMB > 0
809
+ ? ((currResult.memoryMB - baseResult.memoryMB) / baseResult.memoryMB) * 100
810
+ : null;
811
+ // Determine status based on changes
812
+ const opsImproved = opsPerSecondChange !== null && opsPerSecondChange > 5;
813
+ const opsRegressed = opsPerSecondChange !== null && opsPerSecondChange < -5;
814
+ const latencyImproved = p99LatencyChange !== null && p99LatencyChange < -5;
815
+ const latencyRegressed = p99LatencyChange !== null && p99LatencyChange > 5;
816
+ if (opsImproved || latencyImproved) {
817
+ status = 'improved';
818
+ summary.improved++;
819
+ }
820
+ else if (opsRegressed || latencyRegressed) {
821
+ status = 'regressed';
822
+ summary.regressed++;
823
+ }
824
+ else {
825
+ status = 'unchanged';
826
+ summary.unchanged++;
827
+ }
828
+ }
829
+ comparisons.push({
830
+ name,
831
+ baseline: baseResult,
832
+ current: currResult,
833
+ opsPerSecondChange,
834
+ p99LatencyChange,
835
+ memoryChange,
836
+ status,
837
+ });
838
+ }
839
+ return {
840
+ baselineTimestamp: baseline.timestamp,
841
+ currentTimestamp: current.timestamp,
842
+ comparisons,
843
+ summary,
844
+ };
845
+ }
846
+ }
847
+ // ============================================================================
848
+ // CLI Integration
849
+ // ============================================================================
850
+ /**
851
+ * Run benchmarks and return results as JSON
852
+ *
853
+ * @param config - Benchmark configuration
854
+ * @returns Promise<BenchmarkReport>
855
+ */
856
+ export async function runBenchmarks(config = {}) {
857
+ const suite = new BenchmarkSuite(config);
858
+ return suite.runAll();
859
+ }
860
+ /**
861
+ * Run benchmarks with a specific subset
862
+ *
863
+ * @param names - Names of benchmarks to run
864
+ * @param config - Benchmark configuration
865
+ * @returns Promise<BenchmarkResult[]>
866
+ */
867
+ export async function runSelectedBenchmarks(names, config = {}) {
868
+ const suite = new BenchmarkSuite(config);
869
+ const results = [];
870
+ for (const name of names) {
871
+ try {
872
+ const result = await suite.runByName(name);
873
+ results.push(result);
874
+ }
875
+ catch (error) {
876
+ console.error(`Failed to run ${name}: ${error.message}`);
877
+ }
878
+ }
879
+ return results;
880
+ }
881
+ /**
882
+ * Format benchmark report as markdown
883
+ */
884
+ export function formatReportAsMarkdown(report) {
885
+ const lines = [
886
+ '# AgentDB Benchmark Report',
887
+ '',
888
+ `**Date:** ${report.timestamp}`,
889
+ `**Platform:** ${report.platform.os} ${report.platform.arch} (Node ${report.platform.nodeVersion})`,
890
+ `**Backend:** ${report.backend.name}${report.backend.isNative ? ' (native)' : ''}`,
891
+ `**Vector Dimension:** ${report.config.vectorDimension}`,
892
+ '',
893
+ '## Results',
894
+ '',
895
+ '| Benchmark | Ops/sec | p50 (ms) | p95 (ms) | p99 (ms) | Memory (MB) |',
896
+ '|-----------|---------|----------|----------|----------|-------------|',
897
+ ];
898
+ for (const result of report.results) {
899
+ lines.push(`| ${result.name} | ${result.opsPerSecond.toFixed(0)} | ` +
900
+ `${result.latencyMs.p50.toFixed(3)} | ${result.latencyMs.p95.toFixed(3)} | ` +
901
+ `${result.latencyMs.p99.toFixed(3)} | ${result.memoryMB.toFixed(1)} |`);
902
+ }
903
+ lines.push('');
904
+ lines.push('## Summary');
905
+ lines.push('');
906
+ lines.push(`- **Total Duration:** ${(report.summary.totalDuration / 1000).toFixed(2)}s`);
907
+ lines.push(`- **Benchmarks Passed:** ${report.summary.benchmarksPassed}/${report.summary.benchmarksRun}`);
908
+ lines.push(`- **Peak Memory:** ${report.summary.peakMemoryMB.toFixed(1)}MB`);
909
+ return lines.join('\n');
910
+ }
911
+ /**
912
+ * Format comparison report as markdown
913
+ */
914
+ export function formatComparisonAsMarkdown(comparison) {
915
+ const lines = [
916
+ '# Benchmark Comparison Report',
917
+ '',
918
+ `**Baseline:** ${comparison.baselineTimestamp}`,
919
+ `**Current:** ${comparison.currentTimestamp}`,
920
+ '',
921
+ '## Changes',
922
+ '',
923
+ '| Benchmark | Status | Ops/sec Change | p99 Latency Change | Memory Change |',
924
+ '|-----------|--------|----------------|-------------------|---------------|',
925
+ ];
926
+ for (const comp of comparison.comparisons) {
927
+ const opsChange = comp.opsPerSecondChange !== null
928
+ ? `${comp.opsPerSecondChange > 0 ? '+' : ''}${comp.opsPerSecondChange.toFixed(1)}%`
929
+ : 'N/A';
930
+ const latChange = comp.p99LatencyChange !== null
931
+ ? `${comp.p99LatencyChange > 0 ? '+' : ''}${comp.p99LatencyChange.toFixed(1)}%`
932
+ : 'N/A';
933
+ const memChange = comp.memoryChange !== null
934
+ ? `${comp.memoryChange > 0 ? '+' : ''}${comp.memoryChange.toFixed(1)}%`
935
+ : 'N/A';
936
+ const statusEmoji = comp.status === 'improved' ? 'improved' :
937
+ comp.status === 'regressed' ? 'regressed' :
938
+ comp.status === 'new' ? 'new' :
939
+ comp.status === 'removed' ? 'removed' : 'unchanged';
940
+ lines.push(`| ${comp.name} | ${statusEmoji} | ${opsChange} | ${latChange} | ${memChange} |`);
941
+ }
942
+ lines.push('');
943
+ lines.push('## Summary');
944
+ lines.push('');
945
+ lines.push(`- **Improved:** ${comparison.summary.improved}`);
946
+ lines.push(`- **Regressed:** ${comparison.summary.regressed}`);
947
+ lines.push(`- **Unchanged:** ${comparison.summary.unchanged}`);
948
+ lines.push(`- **New:** ${comparison.summary.new}`);
949
+ lines.push(`- **Removed:** ${comparison.summary.removed}`);
950
+ return lines.join('\n');
951
+ }
952
+ // ============================================================================
953
+ // CLI Entry Point
954
+ // ============================================================================
955
+ // Run if executed directly
956
+ if (typeof process !== 'undefined' && process.argv[1]?.includes('BenchmarkSuite')) {
957
+ const args = process.argv.slice(2);
958
+ const jsonOutput = args.includes('--json');
959
+ const markdownOutput = args.includes('--markdown');
960
+ // Parse config from command line
961
+ const config = {};
962
+ const dimArg = args.find(a => a.startsWith('--dim='));
963
+ if (dimArg) {
964
+ config.vectorDimension = parseInt(dimArg.split('=')[1], 10);
965
+ }
966
+ const countArg = args.find(a => a.startsWith('--counts='));
967
+ if (countArg) {
968
+ config.insertCounts = countArg.split('=')[1].split(',').map(n => parseInt(n, 10));
969
+ }
970
+ runBenchmarks(config)
971
+ .then(report => {
972
+ if (jsonOutput) {
973
+ console.log(JSON.stringify(report, null, 2));
974
+ }
975
+ else if (markdownOutput) {
976
+ console.log(formatReportAsMarkdown(report));
977
+ }
978
+ })
979
+ .catch(error => {
980
+ console.error('Benchmark failed:', error);
981
+ process.exit(1);
982
+ });
983
+ }
984
+ //# sourceMappingURL=BenchmarkSuite.js.map