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,712 @@
1
+ /**
2
+ * HybridSearch - Combined Vector + Keyword Search for AgentDB
3
+ *
4
+ * Features:
5
+ * - BM25 keyword search with inverted index
6
+ * - Vector similarity search integration
7
+ * - Reciprocal Rank Fusion (RRF) for result combination
8
+ * - Linear and max fusion methods
9
+ * - Configurable weights and fusion strategies
10
+ * - Metadata filtering support
11
+ *
12
+ * @module search/HybridSearch
13
+ */
14
+ // ============================================================================
15
+ // Stopwords
16
+ // ============================================================================
17
+ /**
18
+ * Common English stopwords to filter out during tokenization
19
+ */
20
+ const STOPWORDS = new Set([
21
+ 'a', 'an', 'the', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
22
+ 'of', 'with', 'by', 'from', 'as', 'is', 'was', 'are', 'were', 'been',
23
+ 'be', 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
24
+ 'should', 'may', 'might', 'must', 'shall', 'can', 'need', 'dare', 'ought',
25
+ 'used', 'it', 'its', 'this', 'that', 'these', 'those', 'i', 'you', 'he',
26
+ 'she', 'we', 'they', 'me', 'him', 'her', 'us', 'them', 'my', 'your',
27
+ 'his', 'our', 'their', 'mine', 'yours', 'hers', 'ours', 'theirs',
28
+ 'what', 'which', 'who', 'whom', 'when', 'where', 'why', 'how',
29
+ 'all', 'each', 'every', 'both', 'few', 'more', 'most', 'other', 'some',
30
+ 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too',
31
+ 'very', 'just', 'also', 'now', 'here', 'there', 'then', 'once',
32
+ 'if', 'else', 'because', 'although', 'though', 'while', 'unless',
33
+ 'until', 'after', 'before', 'since', 'during', 'about', 'into',
34
+ 'through', 'between', 'under', 'over', 'above', 'below', 'up', 'down',
35
+ 'out', 'off', 'again', 'further', 'any', 'even', 'still',
36
+ ]);
37
+ // ============================================================================
38
+ // KeywordIndex Class - BM25 Inverted Index
39
+ // ============================================================================
40
+ /**
41
+ * KeywordIndex - Inverted index with BM25 scoring for text search
42
+ *
43
+ * Implements the BM25 ranking function for document retrieval:
44
+ * score(D,Q) = SUM(IDF(qi) * (f(qi,D) * (k1 + 1)) / (f(qi,D) + k1 * (1 - b + b * |D|/avgdl)))
45
+ *
46
+ * Where:
47
+ * - IDF(qi) = log((N - n(qi) + 0.5) / (n(qi) + 0.5) + 1)
48
+ * - f(qi,D) = term frequency of qi in document D
49
+ * - |D| = document length
50
+ * - avgdl = average document length
51
+ * - k1, b = tuning parameters
52
+ */
53
+ export class KeywordIndex {
54
+ /** Inverted index: term -> posting list */
55
+ invertedIndex = new Map();
56
+ /** Document store: id -> document entry */
57
+ documents = new Map();
58
+ /** Total number of documents */
59
+ documentCount = 0;
60
+ /** Sum of all document lengths (for average calculation) */
61
+ totalDocumentLength = 0;
62
+ /** BM25 configuration */
63
+ config;
64
+ /** Custom stopwords (merged with defaults) */
65
+ stopwords;
66
+ constructor(config, customStopwords) {
67
+ this.config = {
68
+ k1: 1.2,
69
+ b: 0.75,
70
+ ...config,
71
+ };
72
+ this.stopwords = new Set([...STOPWORDS]);
73
+ if (customStopwords) {
74
+ customStopwords.forEach((word) => this.stopwords.add(word.toLowerCase()));
75
+ }
76
+ }
77
+ /**
78
+ * Tokenize text into terms
79
+ * - Lowercases text
80
+ * - Splits on non-alphanumeric characters
81
+ * - Removes stopwords
82
+ * - Filters short tokens (< 2 chars)
83
+ */
84
+ tokenize(text) {
85
+ if (!text || typeof text !== 'string') {
86
+ return [];
87
+ }
88
+ return text
89
+ .toLowerCase()
90
+ .split(/[^a-z0-9]+/)
91
+ .filter((token) => token.length >= 2 && !this.stopwords.has(token));
92
+ }
93
+ /**
94
+ * Calculate term frequencies for a list of tokens
95
+ */
96
+ calculateTermFrequencies(tokens) {
97
+ const frequencies = new Map();
98
+ for (const token of tokens) {
99
+ frequencies.set(token, (frequencies.get(token) || 0) + 1);
100
+ }
101
+ return frequencies;
102
+ }
103
+ /**
104
+ * Add a document to the index
105
+ *
106
+ * @param id - Unique document identifier
107
+ * @param text - Document text content
108
+ * @param metadata - Optional metadata to associate with the document
109
+ */
110
+ add(id, text, metadata) {
111
+ // Remove existing document if present (update case)
112
+ if (this.documents.has(id)) {
113
+ this.remove(id);
114
+ }
115
+ const tokens = this.tokenize(text);
116
+ const termFrequencies = this.calculateTermFrequencies(tokens);
117
+ // Create document entry
118
+ const docEntry = {
119
+ id,
120
+ termFrequencies,
121
+ length: tokens.length,
122
+ metadata,
123
+ };
124
+ this.documents.set(id, docEntry);
125
+ this.documentCount++;
126
+ this.totalDocumentLength += tokens.length;
127
+ // Update inverted index
128
+ for (const term of termFrequencies.keys()) {
129
+ let termEntry = this.invertedIndex.get(term);
130
+ if (!termEntry) {
131
+ termEntry = {
132
+ documentFrequency: 0,
133
+ postings: new Set(),
134
+ };
135
+ this.invertedIndex.set(term, termEntry);
136
+ }
137
+ if (!termEntry.postings.has(id)) {
138
+ termEntry.documentFrequency++;
139
+ termEntry.postings.add(id);
140
+ }
141
+ }
142
+ }
143
+ /**
144
+ * Remove a document from the index
145
+ *
146
+ * @param id - Document ID to remove
147
+ * @returns true if document was removed, false if not found
148
+ */
149
+ remove(id) {
150
+ const docEntry = this.documents.get(id);
151
+ if (!docEntry) {
152
+ return false;
153
+ }
154
+ // Update inverted index
155
+ for (const term of docEntry.termFrequencies.keys()) {
156
+ const termEntry = this.invertedIndex.get(term);
157
+ if (termEntry) {
158
+ termEntry.postings.delete(id);
159
+ termEntry.documentFrequency--;
160
+ // Remove term if no documents contain it
161
+ if (termEntry.documentFrequency === 0) {
162
+ this.invertedIndex.delete(term);
163
+ }
164
+ }
165
+ }
166
+ // Update statistics
167
+ this.totalDocumentLength -= docEntry.length;
168
+ this.documentCount--;
169
+ // Remove document
170
+ this.documents.delete(id);
171
+ return true;
172
+ }
173
+ /**
174
+ * Calculate IDF (Inverse Document Frequency) for a term
175
+ * Using BM25 IDF formula: log((N - n(q) + 0.5) / (n(q) + 0.5) + 1)
176
+ */
177
+ calculateIDF(documentFrequency) {
178
+ const N = this.documentCount;
179
+ const n = documentFrequency;
180
+ // BM25 IDF with smoothing
181
+ return Math.log((N - n + 0.5) / (n + 0.5) + 1);
182
+ }
183
+ /**
184
+ * Calculate BM25 score for a document given query terms
185
+ */
186
+ calculateBM25Score(docEntry, queryTerms) {
187
+ const { k1, b } = this.config;
188
+ const avgdl = this.totalDocumentLength / Math.max(this.documentCount, 1);
189
+ const docLength = docEntry.length;
190
+ let score = 0;
191
+ for (const term of queryTerms) {
192
+ const termEntry = this.invertedIndex.get(term);
193
+ if (!termEntry)
194
+ continue;
195
+ const tf = docEntry.termFrequencies.get(term) || 0;
196
+ if (tf === 0)
197
+ continue;
198
+ const idf = this.calculateIDF(termEntry.documentFrequency);
199
+ // BM25 scoring formula
200
+ const numerator = tf * (k1 + 1);
201
+ const denominator = tf + k1 * (1 - b + b * (docLength / avgdl));
202
+ const termScore = idf * (numerator / denominator);
203
+ score += termScore;
204
+ }
205
+ return score;
206
+ }
207
+ /**
208
+ * Search the index for documents matching the query
209
+ *
210
+ * @param query - Search query text
211
+ * @param limit - Maximum number of results
212
+ * @param filter - Optional metadata filter
213
+ * @returns Array of search results sorted by score (descending)
214
+ */
215
+ search(query, limit, filter) {
216
+ const queryTerms = this.tokenize(query);
217
+ if (queryTerms.length === 0) {
218
+ return [];
219
+ }
220
+ // Find candidate documents (union of postings lists)
221
+ const candidateIds = new Set();
222
+ for (const term of queryTerms) {
223
+ const termEntry = this.invertedIndex.get(term);
224
+ if (termEntry) {
225
+ for (const docId of termEntry.postings) {
226
+ candidateIds.add(docId);
227
+ }
228
+ }
229
+ }
230
+ // Score candidates
231
+ const results = [];
232
+ for (const docId of candidateIds) {
233
+ const docEntry = this.documents.get(docId);
234
+ if (!docEntry)
235
+ continue;
236
+ // Apply metadata filter
237
+ if (filter && !this.matchesFilter(docEntry.metadata, filter)) {
238
+ continue;
239
+ }
240
+ const score = this.calculateBM25Score(docEntry, queryTerms);
241
+ results.push({
242
+ id: docId,
243
+ score,
244
+ metadata: docEntry.metadata,
245
+ });
246
+ }
247
+ // Sort by score (descending) and limit
248
+ results.sort((a, b) => b.score - a.score);
249
+ return results.slice(0, limit);
250
+ }
251
+ /**
252
+ * Check if document metadata matches the filter criteria
253
+ */
254
+ matchesFilter(metadata, filter) {
255
+ if (!metadata)
256
+ return false;
257
+ for (const [key, value] of Object.entries(filter)) {
258
+ if (metadata[key] !== value) {
259
+ return false;
260
+ }
261
+ }
262
+ return true;
263
+ }
264
+ /**
265
+ * Get index statistics
266
+ */
267
+ getStats() {
268
+ return {
269
+ documentCount: this.documentCount,
270
+ termCount: this.invertedIndex.size,
271
+ avgDocumentLength: this.documentCount > 0
272
+ ? this.totalDocumentLength / this.documentCount
273
+ : 0,
274
+ k1: this.config.k1,
275
+ b: this.config.b,
276
+ };
277
+ }
278
+ /**
279
+ * Update BM25 parameters
280
+ */
281
+ setConfig(config) {
282
+ this.config = { ...this.config, ...config };
283
+ }
284
+ /**
285
+ * Clear the entire index
286
+ */
287
+ clear() {
288
+ this.invertedIndex.clear();
289
+ this.documents.clear();
290
+ this.documentCount = 0;
291
+ this.totalDocumentLength = 0;
292
+ }
293
+ /**
294
+ * Check if a document exists in the index
295
+ */
296
+ has(id) {
297
+ return this.documents.has(id);
298
+ }
299
+ /**
300
+ * Get document count
301
+ */
302
+ size() {
303
+ return this.documentCount;
304
+ }
305
+ /**
306
+ * Add stopwords dynamically
307
+ */
308
+ addStopwords(words) {
309
+ words.forEach((word) => this.stopwords.add(word.toLowerCase()));
310
+ }
311
+ /**
312
+ * Remove stopwords dynamically
313
+ */
314
+ removeStopwords(words) {
315
+ words.forEach((word) => this.stopwords.delete(word.toLowerCase()));
316
+ }
317
+ /**
318
+ * Get all indexed terms (for debugging/analysis)
319
+ */
320
+ getTerms() {
321
+ return Array.from(this.invertedIndex.keys());
322
+ }
323
+ /**
324
+ * Get document frequency for a term
325
+ */
326
+ getDocumentFrequency(term) {
327
+ const termEntry = this.invertedIndex.get(term.toLowerCase());
328
+ return termEntry?.documentFrequency || 0;
329
+ }
330
+ }
331
+ // ============================================================================
332
+ // HybridSearch Class
333
+ // ============================================================================
334
+ /**
335
+ * HybridSearch - Combines vector similarity and keyword search
336
+ *
337
+ * Supports multiple fusion strategies:
338
+ * - RRF (Reciprocal Rank Fusion): Robust rank-based fusion
339
+ * - Linear: Weighted score combination
340
+ * - Max: Take maximum score from either source
341
+ *
342
+ * Usage:
343
+ * ```typescript
344
+ * const hybrid = new HybridSearch(vectorBackend, keywordIndex);
345
+ *
346
+ * // Combined search
347
+ * const results = await hybrid.search(
348
+ * { text: "machine learning", vector: embedding },
349
+ * { limit: 10, vectorWeight: 0.7, keywordWeight: 0.3 }
350
+ * );
351
+ *
352
+ * // Vector-only search
353
+ * const vectorResults = await hybrid.search(
354
+ * { vector: embedding },
355
+ * { limit: 10 }
356
+ * );
357
+ *
358
+ * // Keyword-only search
359
+ * const keywordResults = await hybrid.search(
360
+ * { text: "neural networks" },
361
+ * { limit: 10 }
362
+ * );
363
+ * ```
364
+ */
365
+ export class HybridSearch {
366
+ vectorBackend;
367
+ keywordIndex;
368
+ constructor(vectorBackend, keywordIndex) {
369
+ this.vectorBackend = vectorBackend;
370
+ this.keywordIndex = keywordIndex;
371
+ }
372
+ /**
373
+ * Perform hybrid search combining vector and keyword results
374
+ *
375
+ * @param query - Query object containing text and/or vector
376
+ * @param options - Search options including weights and fusion method
377
+ * @returns Combined search results
378
+ */
379
+ async search(query, options) {
380
+ const { limit, vectorWeight = 0.7, keywordWeight = 0.3, filter, fusionMethod = 'rrf', rrfK = 60, threshold, efSearch, } = options;
381
+ // Validate weights
382
+ if (vectorWeight < 0 || keywordWeight < 0) {
383
+ throw new Error('Weights must be non-negative');
384
+ }
385
+ // Normalize weights
386
+ const totalWeight = vectorWeight + keywordWeight;
387
+ const normalizedVectorWeight = vectorWeight / totalWeight;
388
+ const normalizedKeywordWeight = keywordWeight / totalWeight;
389
+ // Collect results from both sources
390
+ let vectorResults = [];
391
+ let keywordResults = [];
392
+ // Perform vector search if vector provided
393
+ if (query.vector) {
394
+ const searchOptions = {
395
+ filter,
396
+ efSearch,
397
+ };
398
+ // Request more results than limit for better fusion
399
+ vectorResults = this.vectorBackend.search(query.vector, Math.min(limit * 3, 1000), searchOptions);
400
+ }
401
+ // Perform keyword search if text provided
402
+ if (query.text) {
403
+ // Request more results than limit for better fusion
404
+ keywordResults = this.keywordIndex.search(query.text, Math.min(limit * 3, 1000), filter);
405
+ }
406
+ // If only one type of search was performed, return those results
407
+ if (!query.vector && query.text) {
408
+ return this.normalizeKeywordResults(keywordResults, limit, threshold);
409
+ }
410
+ if (query.vector && !query.text) {
411
+ return this.normalizeVectorResults(vectorResults, limit, threshold);
412
+ }
413
+ // Combine results using fusion method
414
+ let fusedResults;
415
+ switch (fusionMethod) {
416
+ case 'rrf':
417
+ fusedResults = this.reciprocalRankFusion(vectorResults, keywordResults, normalizedVectorWeight, normalizedKeywordWeight, rrfK);
418
+ break;
419
+ case 'linear':
420
+ fusedResults = this.linearFusion(vectorResults, keywordResults, normalizedVectorWeight, normalizedKeywordWeight);
421
+ break;
422
+ case 'max':
423
+ fusedResults = this.maxFusion(vectorResults, keywordResults);
424
+ break;
425
+ default:
426
+ throw new Error(`Unknown fusion method: ${fusionMethod}`);
427
+ }
428
+ // Apply threshold and limit
429
+ if (threshold !== undefined) {
430
+ fusedResults = fusedResults.filter((r) => r.score >= threshold);
431
+ }
432
+ return fusedResults.slice(0, limit);
433
+ }
434
+ /**
435
+ * Reciprocal Rank Fusion (RRF)
436
+ *
437
+ * Combines results based on their ranks rather than scores.
438
+ * RRF(d) = SUM(1 / (k + rank(d)))
439
+ *
440
+ * This is robust to different score distributions between sources.
441
+ */
442
+ reciprocalRankFusion(vectorResults, keywordResults, vectorWeight, keywordWeight, k) {
443
+ const scoreMap = new Map();
444
+ // Process vector results
445
+ vectorResults.forEach((result, index) => {
446
+ const rank = index + 1;
447
+ const rrfContribution = vectorWeight / (k + rank);
448
+ scoreMap.set(result.id, {
449
+ rrfScore: rrfContribution,
450
+ vectorScore: result.similarity,
451
+ vectorRank: rank,
452
+ metadata: result.metadata,
453
+ });
454
+ });
455
+ // Process keyword results
456
+ keywordResults.forEach((result, index) => {
457
+ const rank = index + 1;
458
+ const rrfContribution = keywordWeight / (k + rank);
459
+ const existing = scoreMap.get(result.id);
460
+ if (existing) {
461
+ existing.rrfScore += rrfContribution;
462
+ existing.keywordScore = result.score;
463
+ existing.keywordRank = rank;
464
+ // Merge metadata if not already present
465
+ if (!existing.metadata && result.metadata) {
466
+ existing.metadata = result.metadata;
467
+ }
468
+ }
469
+ else {
470
+ scoreMap.set(result.id, {
471
+ rrfScore: rrfContribution,
472
+ keywordScore: result.score,
473
+ keywordRank: rank,
474
+ metadata: result.metadata,
475
+ });
476
+ }
477
+ });
478
+ // Convert to results array
479
+ const results = [];
480
+ for (const [id, data] of scoreMap) {
481
+ const hasVector = data.vectorScore !== undefined;
482
+ const hasKeyword = data.keywordScore !== undefined;
483
+ results.push({
484
+ id,
485
+ score: data.rrfScore,
486
+ vectorScore: data.vectorScore,
487
+ keywordScore: data.keywordScore,
488
+ metadata: data.metadata,
489
+ source: hasVector && hasKeyword ? 'both' : hasVector ? 'vector' : 'keyword',
490
+ });
491
+ }
492
+ // Sort by RRF score (descending)
493
+ results.sort((a, b) => b.score - a.score);
494
+ // Normalize scores to 0-1 range
495
+ if (results.length > 0) {
496
+ const maxScore = results[0].score;
497
+ for (const result of results) {
498
+ result.score = result.score / maxScore;
499
+ }
500
+ }
501
+ return results;
502
+ }
503
+ /**
504
+ * Linear Fusion
505
+ *
506
+ * Combines normalized scores linearly:
507
+ * score(d) = vectorWeight * vectorScore(d) + keywordWeight * keywordScore(d)
508
+ */
509
+ linearFusion(vectorResults, keywordResults, vectorWeight, keywordWeight) {
510
+ // Normalize keyword scores to 0-1
511
+ const maxKeywordScore = keywordResults.length > 0
512
+ ? Math.max(...keywordResults.map((r) => r.score))
513
+ : 1;
514
+ const normalizedKeywordScores = new Map();
515
+ for (const result of keywordResults) {
516
+ normalizedKeywordScores.set(result.id, {
517
+ score: maxKeywordScore > 0 ? result.score / maxKeywordScore : 0,
518
+ metadata: result.metadata,
519
+ });
520
+ }
521
+ // Create vector score map
522
+ const vectorScores = new Map();
523
+ for (const result of vectorResults) {
524
+ vectorScores.set(result.id, {
525
+ score: result.similarity,
526
+ metadata: result.metadata,
527
+ });
528
+ }
529
+ // Combine all unique IDs
530
+ const allIds = new Set([
531
+ ...vectorScores.keys(),
532
+ ...normalizedKeywordScores.keys(),
533
+ ]);
534
+ // Calculate combined scores
535
+ const results = [];
536
+ for (const id of allIds) {
537
+ const vectorData = vectorScores.get(id);
538
+ const keywordData = normalizedKeywordScores.get(id);
539
+ const vScore = vectorData?.score || 0;
540
+ const kScore = keywordData?.score || 0;
541
+ const combinedScore = vectorWeight * vScore + keywordWeight * kScore;
542
+ const hasVector = vectorData !== undefined;
543
+ const hasKeyword = keywordData !== undefined;
544
+ results.push({
545
+ id,
546
+ score: combinedScore,
547
+ vectorScore: vectorData?.score,
548
+ keywordScore: keywordData?.score,
549
+ metadata: vectorData?.metadata || keywordData?.metadata,
550
+ source: hasVector && hasKeyword ? 'both' : hasVector ? 'vector' : 'keyword',
551
+ });
552
+ }
553
+ // Sort by combined score (descending)
554
+ results.sort((a, b) => b.score - a.score);
555
+ return results;
556
+ }
557
+ /**
558
+ * Max Fusion
559
+ *
560
+ * Takes the maximum normalized score from either source.
561
+ * score(d) = max(vectorScore(d), keywordScore(d))
562
+ */
563
+ maxFusion(vectorResults, keywordResults) {
564
+ // Normalize keyword scores to 0-1
565
+ const maxKeywordScore = keywordResults.length > 0
566
+ ? Math.max(...keywordResults.map((r) => r.score))
567
+ : 1;
568
+ const scoreMap = new Map();
569
+ // Process vector results
570
+ for (const result of vectorResults) {
571
+ scoreMap.set(result.id, {
572
+ maxScore: result.similarity,
573
+ vectorScore: result.similarity,
574
+ metadata: result.metadata,
575
+ });
576
+ }
577
+ // Process keyword results
578
+ for (const result of keywordResults) {
579
+ const normalizedScore = maxKeywordScore > 0 ? result.score / maxKeywordScore : 0;
580
+ const existing = scoreMap.get(result.id);
581
+ if (existing) {
582
+ existing.keywordScore = normalizedScore;
583
+ existing.maxScore = Math.max(existing.maxScore, normalizedScore);
584
+ if (!existing.metadata && result.metadata) {
585
+ existing.metadata = result.metadata;
586
+ }
587
+ }
588
+ else {
589
+ scoreMap.set(result.id, {
590
+ maxScore: normalizedScore,
591
+ keywordScore: normalizedScore,
592
+ metadata: result.metadata,
593
+ });
594
+ }
595
+ }
596
+ // Convert to results array
597
+ const results = [];
598
+ for (const [id, data] of scoreMap) {
599
+ const hasVector = data.vectorScore !== undefined;
600
+ const hasKeyword = data.keywordScore !== undefined;
601
+ results.push({
602
+ id,
603
+ score: data.maxScore,
604
+ vectorScore: data.vectorScore,
605
+ keywordScore: data.keywordScore,
606
+ metadata: data.metadata,
607
+ source: hasVector && hasKeyword ? 'both' : hasVector ? 'vector' : 'keyword',
608
+ });
609
+ }
610
+ // Sort by max score (descending)
611
+ results.sort((a, b) => b.score - a.score);
612
+ return results;
613
+ }
614
+ /**
615
+ * Normalize vector-only results to HybridSearchResult format
616
+ */
617
+ normalizeVectorResults(results, limit, threshold) {
618
+ let normalized = results.map((r) => ({
619
+ id: r.id,
620
+ score: r.similarity,
621
+ vectorScore: r.similarity,
622
+ metadata: r.metadata,
623
+ source: 'vector',
624
+ }));
625
+ if (threshold !== undefined) {
626
+ normalized = normalized.filter((r) => r.score >= threshold);
627
+ }
628
+ return normalized.slice(0, limit);
629
+ }
630
+ /**
631
+ * Normalize keyword-only results to HybridSearchResult format
632
+ */
633
+ normalizeKeywordResults(results, limit, threshold) {
634
+ // Normalize scores to 0-1
635
+ const maxScore = results.length > 0
636
+ ? Math.max(...results.map((r) => r.score))
637
+ : 1;
638
+ let normalized = results.map((r) => ({
639
+ id: r.id,
640
+ score: maxScore > 0 ? r.score / maxScore : 0,
641
+ keywordScore: maxScore > 0 ? r.score / maxScore : 0,
642
+ metadata: r.metadata,
643
+ source: 'keyword',
644
+ }));
645
+ if (threshold !== undefined) {
646
+ normalized = normalized.filter((r) => r.score >= threshold);
647
+ }
648
+ return normalized.slice(0, limit);
649
+ }
650
+ /**
651
+ * Add a document to the keyword index
652
+ * (Convenience method - delegates to KeywordIndex)
653
+ */
654
+ addDocument(id, text, metadata) {
655
+ this.keywordIndex.add(id, text, metadata);
656
+ }
657
+ /**
658
+ * Remove a document from the keyword index
659
+ * (Convenience method - delegates to KeywordIndex)
660
+ */
661
+ removeDocument(id) {
662
+ return this.keywordIndex.remove(id);
663
+ }
664
+ /**
665
+ * Get statistics about the hybrid search system
666
+ */
667
+ getStats() {
668
+ const vectorStats = this.vectorBackend.getStats();
669
+ const keywordStats = this.keywordIndex.getStats();
670
+ return {
671
+ vector: {
672
+ count: vectorStats.count,
673
+ dimension: vectorStats.dimension,
674
+ backend: vectorStats.backend,
675
+ },
676
+ keyword: {
677
+ documentCount: keywordStats.documentCount,
678
+ termCount: keywordStats.termCount,
679
+ avgDocumentLength: keywordStats.avgDocumentLength,
680
+ },
681
+ };
682
+ }
683
+ /**
684
+ * Get the underlying vector backend
685
+ */
686
+ getVectorBackend() {
687
+ return this.vectorBackend;
688
+ }
689
+ /**
690
+ * Get the underlying keyword index
691
+ */
692
+ getKeywordIndex() {
693
+ return this.keywordIndex;
694
+ }
695
+ }
696
+ // ============================================================================
697
+ // Factory Functions
698
+ // ============================================================================
699
+ /**
700
+ * Create a new KeywordIndex with default configuration
701
+ */
702
+ export function createKeywordIndex(config, customStopwords) {
703
+ return new KeywordIndex(config, customStopwords);
704
+ }
705
+ /**
706
+ * Create a new HybridSearch instance
707
+ */
708
+ export function createHybridSearch(vectorBackend, keywordIndex) {
709
+ const kwIndex = keywordIndex || new KeywordIndex();
710
+ return new HybridSearch(vectorBackend, kwIndex);
711
+ }
712
+ //# sourceMappingURL=HybridSearch.js.map