agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.2

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 (317) hide show
  1. package/dist/agentdb.min.js +4 -4
  2. package/dist/simulation/cli.js +0 -0
  3. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  4. package/dist/src/cli/agentdb-cli.js +78 -0
  5. package/dist/src/cli/agentdb-cli.js.map +1 -1
  6. package/dist/src/cli/commands/init.js +3 -3
  7. package/dist/src/cli/commands/init.js.map +1 -1
  8. package/package.json +3 -3
  9. package/src/cli/agentdb-cli.ts +78 -0
  10. package/src/cli/commands/init.ts +3 -3
  11. package/dist/agentdb-advanced.js +0 -2110
  12. package/dist/agentdb-advanced.min.js +0 -1
  13. package/dist/backends/GraphBackend.d.ts +0 -196
  14. package/dist/backends/GraphBackend.d.ts.map +0 -1
  15. package/dist/backends/GraphBackend.js +0 -33
  16. package/dist/backends/GraphBackend.js.map +0 -1
  17. package/dist/backends/LearningBackend.d.ts +0 -148
  18. package/dist/backends/LearningBackend.d.ts.map +0 -1
  19. package/dist/backends/LearningBackend.js +0 -27
  20. package/dist/backends/LearningBackend.js.map +0 -1
  21. package/dist/backends/VectorBackend.d.ts +0 -119
  22. package/dist/backends/VectorBackend.d.ts.map +0 -1
  23. package/dist/backends/VectorBackend.js +0 -14
  24. package/dist/backends/VectorBackend.js.map +0 -1
  25. package/dist/backends/detector.d.ts +0 -81
  26. package/dist/backends/detector.d.ts.map +0 -1
  27. package/dist/backends/detector.js +0 -192
  28. package/dist/backends/detector.js.map +0 -1
  29. package/dist/backends/factory.d.ts +0 -50
  30. package/dist/backends/factory.d.ts.map +0 -1
  31. package/dist/backends/factory.js +0 -161
  32. package/dist/backends/factory.js.map +0 -1
  33. package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
  34. package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
  35. package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
  36. package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
  37. package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
  38. package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
  39. package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
  40. package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
  41. package/dist/backends/hnswlib/index.d.ts +0 -7
  42. package/dist/backends/hnswlib/index.d.ts.map +0 -1
  43. package/dist/backends/hnswlib/index.js +0 -7
  44. package/dist/backends/hnswlib/index.js.map +0 -1
  45. package/dist/backends/index.d.ts +0 -14
  46. package/dist/backends/index.d.ts.map +0 -1
  47. package/dist/backends/index.js +0 -13
  48. package/dist/backends/index.js.map +0 -1
  49. package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
  50. package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
  51. package/dist/backends/ruvector/RuVectorBackend.js +0 -198
  52. package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
  53. package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
  54. package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
  55. package/dist/backends/ruvector/RuVectorLearning.js +0 -177
  56. package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
  57. package/dist/backends/ruvector/index.d.ts +0 -9
  58. package/dist/backends/ruvector/index.d.ts.map +0 -1
  59. package/dist/backends/ruvector/index.js +0 -8
  60. package/dist/backends/ruvector/index.js.map +0 -1
  61. package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
  62. package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
  63. package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
  64. package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
  65. package/dist/browser/AdvancedFeatures.d.ts +0 -144
  66. package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
  67. package/dist/browser/AdvancedFeatures.js +0 -430
  68. package/dist/browser/AdvancedFeatures.js.map +0 -1
  69. package/dist/browser/HNSWIndex.d.ts +0 -117
  70. package/dist/browser/HNSWIndex.d.ts.map +0 -1
  71. package/dist/browser/HNSWIndex.js +0 -402
  72. package/dist/browser/HNSWIndex.js.map +0 -1
  73. package/dist/browser/ProductQuantization.d.ts +0 -107
  74. package/dist/browser/ProductQuantization.d.ts.map +0 -1
  75. package/dist/browser/ProductQuantization.js +0 -337
  76. package/dist/browser/ProductQuantization.js.map +0 -1
  77. package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
  78. package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
  79. package/dist/browser/browser/AdvancedFeatures.js +0 -427
  80. package/dist/browser/browser/HNSWIndex.d.ts +0 -117
  81. package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
  82. package/dist/browser/browser/HNSWIndex.js +0 -402
  83. package/dist/browser/browser/ProductQuantization.d.ts +0 -107
  84. package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
  85. package/dist/browser/browser/ProductQuantization.js +0 -348
  86. package/dist/browser/browser/index.d.ts +0 -223
  87. package/dist/browser/browser/index.d.ts.map +0 -1
  88. package/dist/browser/browser/index.js +0 -233
  89. package/dist/browser/index.d.ts +0 -223
  90. package/dist/browser/index.d.ts.map +0 -1
  91. package/dist/browser/index.js +0 -225
  92. package/dist/browser/index.js.map +0 -1
  93. package/dist/cli/agentdb-cli.d.ts +0 -154
  94. package/dist/cli/agentdb-cli.d.ts.map +0 -1
  95. package/dist/cli/agentdb-cli.js +0 -2273
  96. package/dist/cli/agentdb-cli.js.map +0 -1
  97. package/dist/cli/agentdb.db +0 -0
  98. package/dist/cli/commands/init.d.ts +0 -12
  99. package/dist/cli/commands/init.d.ts.map +0 -1
  100. package/dist/cli/commands/init.js +0 -115
  101. package/dist/cli/commands/init.js.map +0 -1
  102. package/dist/cli/commands/install-embeddings.d.ts +0 -10
  103. package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
  104. package/dist/cli/commands/install-embeddings.js +0 -68
  105. package/dist/cli/commands/install-embeddings.js.map +0 -1
  106. package/dist/cli/commands/migrate.d.ts +0 -15
  107. package/dist/cli/commands/migrate.d.ts.map +0 -1
  108. package/dist/cli/commands/migrate.js +0 -425
  109. package/dist/cli/commands/migrate.js.map +0 -1
  110. package/dist/cli/commands/status.d.ts +0 -10
  111. package/dist/cli/commands/status.d.ts.map +0 -1
  112. package/dist/cli/commands/status.js +0 -129
  113. package/dist/cli/commands/status.js.map +0 -1
  114. package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
  115. package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
  116. package/dist/controllers/CausalMemoryGraph.js +0 -323
  117. package/dist/controllers/CausalMemoryGraph.js.map +0 -1
  118. package/dist/controllers/CausalRecall.d.ts +0 -139
  119. package/dist/controllers/CausalRecall.d.ts.map +0 -1
  120. package/dist/controllers/CausalRecall.js +0 -356
  121. package/dist/controllers/CausalRecall.js.map +0 -1
  122. package/dist/controllers/ContextSynthesizer.d.ts +0 -65
  123. package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
  124. package/dist/controllers/ContextSynthesizer.js +0 -208
  125. package/dist/controllers/ContextSynthesizer.js.map +0 -1
  126. package/dist/controllers/EmbeddingService.d.ts +0 -37
  127. package/dist/controllers/EmbeddingService.d.ts.map +0 -1
  128. package/dist/controllers/EmbeddingService.js +0 -136
  129. package/dist/controllers/EmbeddingService.js.map +0 -1
  130. package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
  131. package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
  132. package/dist/controllers/EnhancedEmbeddingService.js +0 -119
  133. package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
  134. package/dist/controllers/ExplainableRecall.d.ts +0 -163
  135. package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
  136. package/dist/controllers/ExplainableRecall.js +0 -485
  137. package/dist/controllers/ExplainableRecall.js.map +0 -1
  138. package/dist/controllers/HNSWIndex.d.ts +0 -128
  139. package/dist/controllers/HNSWIndex.d.ts.map +0 -1
  140. package/dist/controllers/HNSWIndex.js +0 -361
  141. package/dist/controllers/HNSWIndex.js.map +0 -1
  142. package/dist/controllers/LearningSystem.d.ts +0 -195
  143. package/dist/controllers/LearningSystem.d.ts.map +0 -1
  144. package/dist/controllers/LearningSystem.js +0 -929
  145. package/dist/controllers/LearningSystem.js.map +0 -1
  146. package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
  147. package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
  148. package/dist/controllers/MMRDiversityRanker.js +0 -130
  149. package/dist/controllers/MMRDiversityRanker.js.map +0 -1
  150. package/dist/controllers/MetadataFilter.d.ts +0 -70
  151. package/dist/controllers/MetadataFilter.d.ts.map +0 -1
  152. package/dist/controllers/MetadataFilter.js +0 -243
  153. package/dist/controllers/MetadataFilter.js.map +0 -1
  154. package/dist/controllers/NightlyLearner.d.ts +0 -114
  155. package/dist/controllers/NightlyLearner.d.ts.map +0 -1
  156. package/dist/controllers/NightlyLearner.js +0 -394
  157. package/dist/controllers/NightlyLearner.js.map +0 -1
  158. package/dist/controllers/QUICClient.d.ts +0 -109
  159. package/dist/controllers/QUICClient.d.ts.map +0 -1
  160. package/dist/controllers/QUICClient.js +0 -299
  161. package/dist/controllers/QUICClient.js.map +0 -1
  162. package/dist/controllers/QUICServer.d.ts +0 -121
  163. package/dist/controllers/QUICServer.d.ts.map +0 -1
  164. package/dist/controllers/QUICServer.js +0 -383
  165. package/dist/controllers/QUICServer.js.map +0 -1
  166. package/dist/controllers/ReasoningBank.d.ts +0 -196
  167. package/dist/controllers/ReasoningBank.d.ts.map +0 -1
  168. package/dist/controllers/ReasoningBank.js +0 -494
  169. package/dist/controllers/ReasoningBank.js.map +0 -1
  170. package/dist/controllers/ReflexionMemory.d.ts +0 -125
  171. package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
  172. package/dist/controllers/ReflexionMemory.js +0 -521
  173. package/dist/controllers/ReflexionMemory.js.map +0 -1
  174. package/dist/controllers/SkillLibrary.d.ts +0 -149
  175. package/dist/controllers/SkillLibrary.d.ts.map +0 -1
  176. package/dist/controllers/SkillLibrary.js +0 -547
  177. package/dist/controllers/SkillLibrary.js.map +0 -1
  178. package/dist/controllers/SyncCoordinator.d.ts +0 -120
  179. package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
  180. package/dist/controllers/SyncCoordinator.js +0 -441
  181. package/dist/controllers/SyncCoordinator.js.map +0 -1
  182. package/dist/controllers/WASMVectorSearch.d.ts +0 -89
  183. package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
  184. package/dist/controllers/WASMVectorSearch.js +0 -234
  185. package/dist/controllers/WASMVectorSearch.js.map +0 -1
  186. package/dist/controllers/frontier-index.d.ts +0 -14
  187. package/dist/controllers/frontier-index.d.ts.map +0 -1
  188. package/dist/controllers/frontier-index.js +0 -10
  189. package/dist/controllers/frontier-index.js.map +0 -1
  190. package/dist/controllers/index.d.ts +0 -30
  191. package/dist/controllers/index.d.ts.map +0 -1
  192. package/dist/controllers/index.js +0 -18
  193. package/dist/controllers/index.js.map +0 -1
  194. package/dist/db-fallback.d.ts +0 -26
  195. package/dist/db-fallback.d.ts.map +0 -1
  196. package/dist/db-fallback.js +0 -264
  197. package/dist/db-fallback.js.map +0 -1
  198. package/dist/db-test.d.ts +0 -13
  199. package/dist/db-test.d.ts.map +0 -1
  200. package/dist/db-test.js +0 -55
  201. package/dist/db-test.js.map +0 -1
  202. package/dist/db-unified.d.ts +0 -76
  203. package/dist/db-unified.d.ts.map +0 -1
  204. package/dist/db-unified.js +0 -278
  205. package/dist/db-unified.js.map +0 -1
  206. package/dist/examples/quic-sync-example.d.ts +0 -9
  207. package/dist/examples/quic-sync-example.d.ts.map +0 -1
  208. package/dist/examples/quic-sync-example.js +0 -169
  209. package/dist/examples/quic-sync-example.js.map +0 -1
  210. package/dist/examples/wasm-vector-usage.d.ts +0 -12
  211. package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
  212. package/dist/examples/wasm-vector-usage.js +0 -190
  213. package/dist/examples/wasm-vector-usage.js.map +0 -1
  214. package/dist/index.d.ts +0 -28
  215. package/dist/index.d.ts.map +0 -1
  216. package/dist/index.js +0 -35
  217. package/dist/index.js.map +0 -1
  218. package/dist/malp/core/ccc.d.ts +0 -99
  219. package/dist/malp/core/ccc.d.ts.map +0 -1
  220. package/dist/malp/core/ccc.js +0 -181
  221. package/dist/malp/core/ccc.js.map +0 -1
  222. package/dist/malp/core/index.d.ts +0 -9
  223. package/dist/malp/core/index.d.ts.map +0 -1
  224. package/dist/malp/core/index.js +0 -9
  225. package/dist/malp/core/index.js.map +0 -1
  226. package/dist/malp/core/linalg.d.ts +0 -101
  227. package/dist/malp/core/linalg.d.ts.map +0 -1
  228. package/dist/malp/core/linalg.js +0 -278
  229. package/dist/malp/core/linalg.js.map +0 -1
  230. package/dist/malp/core/optimizer.d.ts +0 -68
  231. package/dist/malp/core/optimizer.d.ts.map +0 -1
  232. package/dist/malp/core/optimizer.js +0 -160
  233. package/dist/malp/core/optimizer.js.map +0 -1
  234. package/dist/malp/index.d.ts +0 -33
  235. package/dist/malp/index.d.ts.map +0 -1
  236. package/dist/malp/index.js +0 -37
  237. package/dist/malp/index.js.map +0 -1
  238. package/dist/malp/metrics/agreement.d.ts +0 -106
  239. package/dist/malp/metrics/agreement.d.ts.map +0 -1
  240. package/dist/malp/metrics/agreement.js +0 -199
  241. package/dist/malp/metrics/agreement.js.map +0 -1
  242. package/dist/malp/metrics/comparison.d.ts +0 -93
  243. package/dist/malp/metrics/comparison.d.ts.map +0 -1
  244. package/dist/malp/metrics/comparison.js +0 -256
  245. package/dist/malp/metrics/comparison.js.map +0 -1
  246. package/dist/malp/metrics/index.d.ts +0 -8
  247. package/dist/malp/metrics/index.d.ts.map +0 -1
  248. package/dist/malp/metrics/index.js +0 -8
  249. package/dist/malp/metrics/index.js.map +0 -1
  250. package/dist/malp/metrics/performance.d.ts +0 -61
  251. package/dist/malp/metrics/performance.d.ts.map +0 -1
  252. package/dist/malp/metrics/performance.js +0 -190
  253. package/dist/malp/metrics/performance.js.map +0 -1
  254. package/dist/malp/models/index.d.ts +0 -7
  255. package/dist/malp/models/index.d.ts.map +0 -1
  256. package/dist/malp/models/index.js +0 -7
  257. package/dist/malp/models/index.js.map +0 -1
  258. package/dist/malp/models/malp.d.ts +0 -116
  259. package/dist/malp/models/malp.d.ts.map +0 -1
  260. package/dist/malp/models/malp.js +0 -206
  261. package/dist/malp/models/malp.js.map +0 -1
  262. package/dist/malp/models/regressor.d.ts +0 -80
  263. package/dist/malp/models/regressor.d.ts.map +0 -1
  264. package/dist/malp/models/regressor.js +0 -229
  265. package/dist/malp/models/regressor.js.map +0 -1
  266. package/dist/malp/reasoningbank_validator.d.ts +0 -187
  267. package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
  268. package/dist/malp/reasoningbank_validator.js +0 -246
  269. package/dist/malp/reasoningbank_validator.js.map +0 -1
  270. package/dist/malp/wasm_bindings.d.ts +0 -344
  271. package/dist/malp/wasm_bindings.d.ts.map +0 -1
  272. package/dist/malp/wasm_bindings.js +0 -9
  273. package/dist/malp/wasm_bindings.js.map +0 -1
  274. package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
  275. package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
  276. package/dist/mcp/agentdb-mcp-server.js +0 -2116
  277. package/dist/mcp/agentdb-mcp-server.js.map +0 -1
  278. package/dist/mcp/learning-tools-handlers.d.ts +0 -16
  279. package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
  280. package/dist/mcp/learning-tools-handlers.js +0 -105
  281. package/dist/mcp/learning-tools-handlers.js.map +0 -1
  282. package/dist/optimizations/BatchOperations.d.ts +0 -109
  283. package/dist/optimizations/BatchOperations.d.ts.map +0 -1
  284. package/dist/optimizations/BatchOperations.js +0 -407
  285. package/dist/optimizations/BatchOperations.js.map +0 -1
  286. package/dist/optimizations/QueryOptimizer.d.ts +0 -83
  287. package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
  288. package/dist/optimizations/QueryOptimizer.js +0 -228
  289. package/dist/optimizations/QueryOptimizer.js.map +0 -1
  290. package/dist/optimizations/ToolCache.d.ts +0 -137
  291. package/dist/optimizations/ToolCache.d.ts.map +0 -1
  292. package/dist/optimizations/ToolCache.js +0 -281
  293. package/dist/optimizations/ToolCache.js.map +0 -1
  294. package/dist/optimizations/index.d.ts +0 -10
  295. package/dist/optimizations/index.d.ts.map +0 -1
  296. package/dist/optimizations/index.js +0 -8
  297. package/dist/optimizations/index.js.map +0 -1
  298. package/dist/security/input-validation.d.ts +0 -109
  299. package/dist/security/input-validation.d.ts.map +0 -1
  300. package/dist/security/input-validation.js +0 -398
  301. package/dist/security/input-validation.js.map +0 -1
  302. package/dist/security/limits.d.ts +0 -150
  303. package/dist/security/limits.d.ts.map +0 -1
  304. package/dist/security/limits.js +0 -288
  305. package/dist/security/limits.js.map +0 -1
  306. package/dist/security/path-security.d.ts +0 -100
  307. package/dist/security/path-security.d.ts.map +0 -1
  308. package/dist/security/path-security.js +0 -337
  309. package/dist/security/path-security.js.map +0 -1
  310. package/dist/security/validation.d.ts +0 -95
  311. package/dist/security/validation.d.ts.map +0 -1
  312. package/dist/security/validation.js +0 -315
  313. package/dist/security/validation.js.map +0 -1
  314. package/dist/types/quic.d.ts +0 -518
  315. package/dist/types/quic.d.ts.map +0 -1
  316. package/dist/types/quic.js +0 -272
  317. package/dist/types/quic.js.map +0 -1
@@ -1,348 +0,0 @@
1
- /**
2
- * Product Quantization for Browser
3
- *
4
- * Compresses high-dimensional vectors using product quantization.
5
- * Achieves 4-32x memory reduction with minimal accuracy loss.
6
- *
7
- * Features:
8
- * - PQ8: 8 subvectors, 256 centroids each (4x compression)
9
- * - PQ16: 16 subvectors, 256 centroids each (8x compression)
10
- * - Asymmetric distance computation (ADC)
11
- * - K-means clustering for codebook training
12
- *
13
- * Performance:
14
- * - Memory: Float32 (4 bytes) → uint8 (1 byte) per subvector
15
- * - Speed: ~1.5x slower search vs uncompressed
16
- * - Accuracy: 95-99% recall@10
17
- */
18
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
19
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20
- return new (P || (P = Promise))(function (resolve, reject) {
21
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
22
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24
- step((generator = generator.apply(thisArg, _arguments || [])).next());
25
- });
26
- };
27
- export class ProductQuantization {
28
- constructor(config) {
29
- this.codebook = null;
30
- this.trained = false;
31
- this.config = {
32
- dimension: config.dimension,
33
- numSubvectors: config.numSubvectors,
34
- numCentroids: config.numCentroids,
35
- maxIterations: config.maxIterations || 50,
36
- convergenceThreshold: config.convergenceThreshold || 1e-4
37
- };
38
- // Validate config
39
- if (this.config.dimension % this.config.numSubvectors !== 0) {
40
- throw new Error(`Dimension ${this.config.dimension} must be divisible by numSubvectors ${this.config.numSubvectors}`);
41
- }
42
- }
43
- /**
44
- * Train codebook using k-means on training vectors
45
- */
46
- train(vectors) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (vectors.length === 0) {
49
- throw new Error('Training requires at least one vector');
50
- }
51
- const subvectorDim = this.config.dimension / this.config.numSubvectors;
52
- const centroids = [];
53
- console.log(`[PQ] Training ${this.config.numSubvectors} subvectors with ${this.config.numCentroids} centroids each...`);
54
- // Train each subvector independently
55
- for (let s = 0; s < this.config.numSubvectors; s++) {
56
- const startDim = s * subvectorDim;
57
- const endDim = startDim + subvectorDim;
58
- // Extract subvectors
59
- const subvectors = vectors.map(v => v.slice(startDim, endDim));
60
- // Run k-means
61
- const subCentroids = yield this.kMeans(subvectors, this.config.numCentroids);
62
- centroids.push(...subCentroids);
63
- if ((s + 1) % 4 === 0 || s === this.config.numSubvectors - 1) {
64
- console.log(`[PQ] Trained ${s + 1}/${this.config.numSubvectors} subvectors`);
65
- }
66
- }
67
- this.codebook = {
68
- subvectorDim,
69
- numSubvectors: this.config.numSubvectors,
70
- numCentroids: this.config.numCentroids,
71
- centroids
72
- };
73
- this.trained = true;
74
- console.log('[PQ] Training complete');
75
- });
76
- }
77
- /**
78
- * K-means clustering for centroids
79
- */
80
- kMeans(vectors, k) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const dim = vectors[0].length;
83
- const n = vectors.length;
84
- // Initialize centroids with k-means++
85
- const centroids = this.kMeansPlusPlus(vectors, k);
86
- const assignments = new Uint32Array(n);
87
- let prevInertia = Infinity;
88
- for (let iter = 0; iter < this.config.maxIterations; iter++) {
89
- // Assign vectors to nearest centroid
90
- let inertia = 0;
91
- for (let i = 0; i < n; i++) {
92
- let minDist = Infinity;
93
- let minIdx = 0;
94
- for (let j = 0; j < k; j++) {
95
- const dist = this.squaredDistance(vectors[i], centroids[j]);
96
- if (dist < minDist) {
97
- minDist = dist;
98
- minIdx = j;
99
- }
100
- }
101
- assignments[i] = minIdx;
102
- inertia += minDist;
103
- }
104
- // Check convergence
105
- if (Math.abs(prevInertia - inertia) < this.config.convergenceThreshold) {
106
- break;
107
- }
108
- prevInertia = inertia;
109
- // Update centroids
110
- const counts = new Uint32Array(k);
111
- const sums = Array.from({ length: k }, () => new Float32Array(dim));
112
- for (let i = 0; i < n; i++) {
113
- const cluster = assignments[i];
114
- counts[cluster]++;
115
- for (let d = 0; d < dim; d++) {
116
- sums[cluster][d] += vectors[i][d];
117
- }
118
- }
119
- for (let j = 0; j < k; j++) {
120
- if (counts[j] > 0) {
121
- for (let d = 0; d < dim; d++) {
122
- centroids[j][d] = sums[j][d] / counts[j];
123
- }
124
- }
125
- }
126
- }
127
- return centroids;
128
- });
129
- }
130
- /**
131
- * K-means++ initialization for better centroid selection
132
- */
133
- kMeansPlusPlus(vectors, k) {
134
- const n = vectors.length;
135
- const dim = vectors[0].length;
136
- const centroids = [];
137
- // Choose first centroid randomly
138
- const firstIdx = Math.floor(Math.random() * n);
139
- centroids.push(new Float32Array(vectors[firstIdx]));
140
- // Choose remaining centroids
141
- for (let i = 1; i < k; i++) {
142
- const distances = new Float32Array(n);
143
- let sumDistances = 0;
144
- // Calculate distances to nearest centroid
145
- for (let j = 0; j < n; j++) {
146
- let minDist = Infinity;
147
- for (const centroid of centroids) {
148
- const dist = this.squaredDistance(vectors[j], centroid);
149
- minDist = Math.min(minDist, dist);
150
- }
151
- distances[j] = minDist;
152
- sumDistances += minDist;
153
- }
154
- // Choose next centroid with probability proportional to distance²
155
- let r = Math.random() * sumDistances;
156
- for (let j = 0; j < n; j++) {
157
- r -= distances[j];
158
- if (r <= 0) {
159
- centroids.push(new Float32Array(vectors[j]));
160
- break;
161
- }
162
- }
163
- }
164
- return centroids;
165
- }
166
- /**
167
- * Compress a vector using trained codebook
168
- */
169
- compress(vector) {
170
- if (!this.trained || !this.codebook) {
171
- throw new Error('Codebook must be trained before compression');
172
- }
173
- const codes = new Uint8Array(this.config.numSubvectors);
174
- const subvectorDim = this.codebook.subvectorDim;
175
- // Compute norm for later reconstruction
176
- let norm = 0;
177
- for (let i = 0; i < vector.length; i++) {
178
- norm += vector[i] * vector[i];
179
- }
180
- norm = Math.sqrt(norm);
181
- // Encode each subvector
182
- for (let s = 0; s < this.config.numSubvectors; s++) {
183
- const startDim = s * subvectorDim;
184
- const subvector = vector.slice(startDim, startDim + subvectorDim);
185
- // Find nearest centroid
186
- let minDist = Infinity;
187
- let minIdx = 0;
188
- const centroidOffset = s * this.config.numCentroids;
189
- for (let c = 0; c < this.config.numCentroids; c++) {
190
- const centroid = this.codebook.centroids[centroidOffset + c];
191
- const dist = this.squaredDistance(subvector, centroid);
192
- if (dist < minDist) {
193
- minDist = dist;
194
- minIdx = c;
195
- }
196
- }
197
- codes[s] = minIdx;
198
- }
199
- return { codes, norm };
200
- }
201
- /**
202
- * Decompress a vector (approximate reconstruction)
203
- */
204
- decompress(compressed) {
205
- if (!this.codebook) {
206
- throw new Error('Codebook not available');
207
- }
208
- const vector = new Float32Array(this.config.dimension);
209
- const subvectorDim = this.codebook.subvectorDim;
210
- for (let s = 0; s < this.config.numSubvectors; s++) {
211
- const code = compressed.codes[s];
212
- const centroidOffset = s * this.config.numCentroids;
213
- const centroid = this.codebook.centroids[centroidOffset + code];
214
- const startDim = s * subvectorDim;
215
- for (let d = 0; d < subvectorDim; d++) {
216
- vector[startDim + d] = centroid[d];
217
- }
218
- }
219
- return vector;
220
- }
221
- /**
222
- * Asymmetric Distance Computation (ADC)
223
- * Computes distance from query vector to compressed vector
224
- */
225
- asymmetricDistance(query, compressed) {
226
- if (!this.codebook) {
227
- throw new Error('Codebook not available');
228
- }
229
- let distance = 0;
230
- const subvectorDim = this.codebook.subvectorDim;
231
- for (let s = 0; s < this.config.numSubvectors; s++) {
232
- const code = compressed.codes[s];
233
- const centroidOffset = s * this.config.numCentroids;
234
- const centroid = this.codebook.centroids[centroidOffset + code];
235
- const startDim = s * subvectorDim;
236
- const querySubvector = query.slice(startDim, startDim + subvectorDim);
237
- distance += this.squaredDistance(querySubvector, centroid);
238
- }
239
- return Math.sqrt(distance);
240
- }
241
- /**
242
- * Batch compression for multiple vectors
243
- */
244
- batchCompress(vectors) {
245
- return vectors.map(v => this.compress(v));
246
- }
247
- /**
248
- * Get memory savings
249
- */
250
- getCompressionRatio() {
251
- // Original: dimension * 4 bytes (Float32)
252
- // Compressed: numSubvectors * 1 byte (Uint8) + 4 bytes (norm)
253
- const originalBytes = this.config.dimension * 4;
254
- const compressedBytes = this.config.numSubvectors + 4;
255
- return originalBytes / compressedBytes;
256
- }
257
- /**
258
- * Export codebook for persistence
259
- */
260
- exportCodebook() {
261
- if (!this.codebook) {
262
- throw new Error('No codebook to export');
263
- }
264
- return JSON.stringify({
265
- config: this.config,
266
- codebook: {
267
- subvectorDim: this.codebook.subvectorDim,
268
- numSubvectors: this.codebook.numSubvectors,
269
- numCentroids: this.codebook.numCentroids,
270
- centroids: this.codebook.centroids.map(c => Array.from(c))
271
- }
272
- });
273
- }
274
- /**
275
- * Import codebook
276
- */
277
- importCodebook(json) {
278
- const data = JSON.parse(json);
279
- this.config = data.config;
280
- this.codebook = {
281
- subvectorDim: data.codebook.subvectorDim,
282
- numSubvectors: data.codebook.numSubvectors,
283
- numCentroids: data.codebook.numCentroids,
284
- centroids: data.codebook.centroids.map((c) => new Float32Array(c))
285
- };
286
- this.trained = true;
287
- }
288
- /**
289
- * Utility: Squared Euclidean distance
290
- */
291
- squaredDistance(a, b) {
292
- let sum = 0;
293
- for (let i = 0; i < a.length; i++) {
294
- const diff = a[i] - b[i];
295
- sum += diff * diff;
296
- }
297
- return sum;
298
- }
299
- /**
300
- * Get statistics
301
- */
302
- getStats() {
303
- const compressionRatio = this.getCompressionRatio();
304
- const memoryPerVector = this.config.numSubvectors + 4; // codes + norm
305
- const codebookSize = this.codebook
306
- ? this.config.numSubvectors * this.config.numCentroids * (this.config.dimension / this.config.numSubvectors) * 4
307
- : 0;
308
- return {
309
- trained: this.trained,
310
- compressionRatio,
311
- memoryPerVector,
312
- codebookSize
313
- };
314
- }
315
- }
316
- /**
317
- * Helper function to create PQ8 (8 subvectors, 4x compression)
318
- */
319
- export function createPQ8(dimension) {
320
- return new ProductQuantization({
321
- dimension,
322
- numSubvectors: 8,
323
- numCentroids: 256,
324
- maxIterations: 50
325
- });
326
- }
327
- /**
328
- * Helper function to create PQ16 (16 subvectors, 8x compression)
329
- */
330
- export function createPQ16(dimension) {
331
- return new ProductQuantization({
332
- dimension,
333
- numSubvectors: 16,
334
- numCentroids: 256,
335
- maxIterations: 50
336
- });
337
- }
338
- /**
339
- * Helper function to create PQ32 (32 subvectors, 16x compression)
340
- */
341
- export function createPQ32(dimension) {
342
- return new ProductQuantization({
343
- dimension,
344
- numSubvectors: 32,
345
- numCentroids: 256,
346
- maxIterations: 50
347
- });
348
- }
@@ -1,223 +0,0 @@
1
- /**
2
- * AgentDB Browser Advanced Features
3
- *
4
- * Unified export for all browser-compatible advanced features.
5
- *
6
- * Features:
7
- * - Product Quantization (PQ8/PQ16/PQ32) - 4-32x memory compression
8
- * - HNSW Indexing - 10-20x faster approximate search
9
- * - Graph Neural Networks - Graph attention and message passing
10
- * - MMR Diversity - Maximal marginal relevance ranking
11
- * - Tensor Compression - SVD dimension reduction
12
- * - Batch Operations - Optimized vector processing
13
- *
14
- * Bundle Size: ~35 KB minified (~12 KB gzipped)
15
- */
16
- export { ProductQuantization, createPQ8, createPQ16, createPQ32, type PQConfig, type PQCodebook, type CompressedVector } from './ProductQuantization';
17
- export { HNSWIndex, createHNSW, createFastHNSW, createAccurateHNSW, type HNSWConfig, type HNSWNode, type SearchResult } from './HNSWIndex';
18
- export { GraphNeuralNetwork, MaximalMarginalRelevance, TensorCompression, BatchProcessor, type GNNNode, type GNNEdge, type GNNConfig, type MMRConfig } from './AdvancedFeatures';
19
- /**
20
- * Detect available browser features
21
- */
22
- export declare function detectFeatures(): {
23
- indexedDB: boolean;
24
- broadcastChannel: boolean;
25
- webWorkers: boolean;
26
- wasmSIMD: Promise<boolean>;
27
- sharedArrayBuffer: boolean;
28
- };
29
- /**
30
- * Recommended configuration for small datasets (<1K vectors)
31
- */
32
- export declare const SMALL_DATASET_CONFIG: {
33
- pq: {
34
- enabled: boolean;
35
- };
36
- hnsw: {
37
- enabled: boolean;
38
- };
39
- gnn: {
40
- enabled: boolean;
41
- numHeads: number;
42
- };
43
- mmr: {
44
- enabled: boolean;
45
- lambda: number;
46
- };
47
- svd: {
48
- enabled: boolean;
49
- };
50
- };
51
- /**
52
- * Recommended configuration for medium datasets (1K-10K vectors)
53
- */
54
- export declare const MEDIUM_DATASET_CONFIG: {
55
- pq: {
56
- enabled: boolean;
57
- subvectors: number;
58
- };
59
- hnsw: {
60
- enabled: boolean;
61
- M: number;
62
- };
63
- gnn: {
64
- enabled: boolean;
65
- numHeads: number;
66
- };
67
- mmr: {
68
- enabled: boolean;
69
- lambda: number;
70
- };
71
- svd: {
72
- enabled: boolean;
73
- };
74
- };
75
- /**
76
- * Recommended configuration for large datasets (10K-100K vectors)
77
- */
78
- export declare const LARGE_DATASET_CONFIG: {
79
- pq: {
80
- enabled: boolean;
81
- subvectors: number;
82
- };
83
- hnsw: {
84
- enabled: boolean;
85
- M: number;
86
- };
87
- gnn: {
88
- enabled: boolean;
89
- numHeads: number;
90
- };
91
- mmr: {
92
- enabled: boolean;
93
- lambda: number;
94
- };
95
- svd: {
96
- enabled: boolean;
97
- targetDim: number;
98
- };
99
- };
100
- /**
101
- * Memory-optimized configuration (minimal memory usage)
102
- */
103
- export declare const MEMORY_OPTIMIZED_CONFIG: {
104
- pq: {
105
- enabled: boolean;
106
- subvectors: number;
107
- };
108
- hnsw: {
109
- enabled: boolean;
110
- M: number;
111
- };
112
- gnn: {
113
- enabled: boolean;
114
- };
115
- mmr: {
116
- enabled: boolean;
117
- };
118
- svd: {
119
- enabled: boolean;
120
- targetDim: number;
121
- };
122
- };
123
- /**
124
- * Speed-optimized configuration (fastest search)
125
- */
126
- export declare const SPEED_OPTIMIZED_CONFIG: {
127
- pq: {
128
- enabled: boolean;
129
- };
130
- hnsw: {
131
- enabled: boolean;
132
- M: number;
133
- efSearch: number;
134
- };
135
- gnn: {
136
- enabled: boolean;
137
- };
138
- mmr: {
139
- enabled: boolean;
140
- };
141
- svd: {
142
- enabled: boolean;
143
- };
144
- };
145
- /**
146
- * Quality-optimized configuration (best result quality)
147
- */
148
- export declare const QUALITY_OPTIMIZED_CONFIG: {
149
- pq: {
150
- enabled: boolean;
151
- };
152
- hnsw: {
153
- enabled: boolean;
154
- M: number;
155
- efConstruction: number;
156
- };
157
- gnn: {
158
- enabled: boolean;
159
- numHeads: number;
160
- };
161
- mmr: {
162
- enabled: boolean;
163
- lambda: number;
164
- };
165
- svd: {
166
- enabled: boolean;
167
- };
168
- };
169
- export declare const VERSION: {
170
- major: number;
171
- minor: number;
172
- patch: number;
173
- prerelease: string;
174
- features: string;
175
- full: string;
176
- };
177
- /**
178
- * Estimate memory usage for configuration
179
- */
180
- export declare function estimateMemoryUsage(numVectors: number, dimension: number, config: any): {
181
- vectors: number;
182
- index: number;
183
- total: number;
184
- totalMB: number;
185
- };
186
- /**
187
- * Recommend configuration based on dataset size
188
- */
189
- export declare function recommendConfig(numVectors: number, dimension: number): {
190
- name: string;
191
- config: {
192
- pq: {
193
- enabled: boolean;
194
- };
195
- hnsw: {
196
- enabled: boolean;
197
- };
198
- gnn: {
199
- enabled: boolean;
200
- numHeads: number;
201
- };
202
- mmr: {
203
- enabled: boolean;
204
- lambda: number;
205
- };
206
- svd: {
207
- enabled: boolean;
208
- };
209
- };
210
- reason: string;
211
- };
212
- /**
213
- * Benchmark search performance
214
- */
215
- export declare function benchmarkSearch(searchFn: (query: Float32Array, k: number) => any[], numQueries?: number, k?: number, dimension?: number): Promise<{
216
- avgTimeMs: number;
217
- minTimeMs: number;
218
- maxTimeMs: number;
219
- p50Ms: number;
220
- p95Ms: number;
221
- p99Ms: number;
222
- }>;
223
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAM5B;;GAEG;AACH,wBAAgB,cAAc;;;;;;EAQ7B;AA0BD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAMhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;CAMjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;CAMhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;CAMnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;CAMlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;CAMpC,CAAC;AAMF,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAMF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,GACV;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CA+BA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;EAoBpE;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,EACnD,UAAU,GAAE,MAAY,EACxB,CAAC,GAAE,MAAW,EACd,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CA0BD"}