agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.1

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 (314) 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/package.json +3 -3
  7. package/src/cli/agentdb-cli.ts +78 -0
  8. package/dist/agentdb-advanced.js +0 -2110
  9. package/dist/agentdb-advanced.min.js +0 -1
  10. package/dist/backends/GraphBackend.d.ts +0 -196
  11. package/dist/backends/GraphBackend.d.ts.map +0 -1
  12. package/dist/backends/GraphBackend.js +0 -33
  13. package/dist/backends/GraphBackend.js.map +0 -1
  14. package/dist/backends/LearningBackend.d.ts +0 -148
  15. package/dist/backends/LearningBackend.d.ts.map +0 -1
  16. package/dist/backends/LearningBackend.js +0 -27
  17. package/dist/backends/LearningBackend.js.map +0 -1
  18. package/dist/backends/VectorBackend.d.ts +0 -119
  19. package/dist/backends/VectorBackend.d.ts.map +0 -1
  20. package/dist/backends/VectorBackend.js +0 -14
  21. package/dist/backends/VectorBackend.js.map +0 -1
  22. package/dist/backends/detector.d.ts +0 -81
  23. package/dist/backends/detector.d.ts.map +0 -1
  24. package/dist/backends/detector.js +0 -192
  25. package/dist/backends/detector.js.map +0 -1
  26. package/dist/backends/factory.d.ts +0 -50
  27. package/dist/backends/factory.d.ts.map +0 -1
  28. package/dist/backends/factory.js +0 -161
  29. package/dist/backends/factory.js.map +0 -1
  30. package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
  31. package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
  32. package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
  33. package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
  34. package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
  35. package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
  36. package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
  37. package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
  38. package/dist/backends/hnswlib/index.d.ts +0 -7
  39. package/dist/backends/hnswlib/index.d.ts.map +0 -1
  40. package/dist/backends/hnswlib/index.js +0 -7
  41. package/dist/backends/hnswlib/index.js.map +0 -1
  42. package/dist/backends/index.d.ts +0 -14
  43. package/dist/backends/index.d.ts.map +0 -1
  44. package/dist/backends/index.js +0 -13
  45. package/dist/backends/index.js.map +0 -1
  46. package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
  47. package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
  48. package/dist/backends/ruvector/RuVectorBackend.js +0 -198
  49. package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
  50. package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
  51. package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
  52. package/dist/backends/ruvector/RuVectorLearning.js +0 -177
  53. package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
  54. package/dist/backends/ruvector/index.d.ts +0 -9
  55. package/dist/backends/ruvector/index.d.ts.map +0 -1
  56. package/dist/backends/ruvector/index.js +0 -8
  57. package/dist/backends/ruvector/index.js.map +0 -1
  58. package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
  59. package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
  60. package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
  61. package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
  62. package/dist/browser/AdvancedFeatures.d.ts +0 -144
  63. package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
  64. package/dist/browser/AdvancedFeatures.js +0 -430
  65. package/dist/browser/AdvancedFeatures.js.map +0 -1
  66. package/dist/browser/HNSWIndex.d.ts +0 -117
  67. package/dist/browser/HNSWIndex.d.ts.map +0 -1
  68. package/dist/browser/HNSWIndex.js +0 -402
  69. package/dist/browser/HNSWIndex.js.map +0 -1
  70. package/dist/browser/ProductQuantization.d.ts +0 -107
  71. package/dist/browser/ProductQuantization.d.ts.map +0 -1
  72. package/dist/browser/ProductQuantization.js +0 -337
  73. package/dist/browser/ProductQuantization.js.map +0 -1
  74. package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
  75. package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
  76. package/dist/browser/browser/AdvancedFeatures.js +0 -427
  77. package/dist/browser/browser/HNSWIndex.d.ts +0 -117
  78. package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
  79. package/dist/browser/browser/HNSWIndex.js +0 -402
  80. package/dist/browser/browser/ProductQuantization.d.ts +0 -107
  81. package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
  82. package/dist/browser/browser/ProductQuantization.js +0 -348
  83. package/dist/browser/browser/index.d.ts +0 -223
  84. package/dist/browser/browser/index.d.ts.map +0 -1
  85. package/dist/browser/browser/index.js +0 -233
  86. package/dist/browser/index.d.ts +0 -223
  87. package/dist/browser/index.d.ts.map +0 -1
  88. package/dist/browser/index.js +0 -225
  89. package/dist/browser/index.js.map +0 -1
  90. package/dist/cli/agentdb-cli.d.ts +0 -154
  91. package/dist/cli/agentdb-cli.d.ts.map +0 -1
  92. package/dist/cli/agentdb-cli.js +0 -2273
  93. package/dist/cli/agentdb-cli.js.map +0 -1
  94. package/dist/cli/agentdb.db +0 -0
  95. package/dist/cli/commands/init.d.ts +0 -12
  96. package/dist/cli/commands/init.d.ts.map +0 -1
  97. package/dist/cli/commands/init.js +0 -115
  98. package/dist/cli/commands/init.js.map +0 -1
  99. package/dist/cli/commands/install-embeddings.d.ts +0 -10
  100. package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
  101. package/dist/cli/commands/install-embeddings.js +0 -68
  102. package/dist/cli/commands/install-embeddings.js.map +0 -1
  103. package/dist/cli/commands/migrate.d.ts +0 -15
  104. package/dist/cli/commands/migrate.d.ts.map +0 -1
  105. package/dist/cli/commands/migrate.js +0 -425
  106. package/dist/cli/commands/migrate.js.map +0 -1
  107. package/dist/cli/commands/status.d.ts +0 -10
  108. package/dist/cli/commands/status.d.ts.map +0 -1
  109. package/dist/cli/commands/status.js +0 -129
  110. package/dist/cli/commands/status.js.map +0 -1
  111. package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
  112. package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
  113. package/dist/controllers/CausalMemoryGraph.js +0 -323
  114. package/dist/controllers/CausalMemoryGraph.js.map +0 -1
  115. package/dist/controllers/CausalRecall.d.ts +0 -139
  116. package/dist/controllers/CausalRecall.d.ts.map +0 -1
  117. package/dist/controllers/CausalRecall.js +0 -356
  118. package/dist/controllers/CausalRecall.js.map +0 -1
  119. package/dist/controllers/ContextSynthesizer.d.ts +0 -65
  120. package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
  121. package/dist/controllers/ContextSynthesizer.js +0 -208
  122. package/dist/controllers/ContextSynthesizer.js.map +0 -1
  123. package/dist/controllers/EmbeddingService.d.ts +0 -37
  124. package/dist/controllers/EmbeddingService.d.ts.map +0 -1
  125. package/dist/controllers/EmbeddingService.js +0 -136
  126. package/dist/controllers/EmbeddingService.js.map +0 -1
  127. package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
  128. package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
  129. package/dist/controllers/EnhancedEmbeddingService.js +0 -119
  130. package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
  131. package/dist/controllers/ExplainableRecall.d.ts +0 -163
  132. package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
  133. package/dist/controllers/ExplainableRecall.js +0 -485
  134. package/dist/controllers/ExplainableRecall.js.map +0 -1
  135. package/dist/controllers/HNSWIndex.d.ts +0 -128
  136. package/dist/controllers/HNSWIndex.d.ts.map +0 -1
  137. package/dist/controllers/HNSWIndex.js +0 -361
  138. package/dist/controllers/HNSWIndex.js.map +0 -1
  139. package/dist/controllers/LearningSystem.d.ts +0 -195
  140. package/dist/controllers/LearningSystem.d.ts.map +0 -1
  141. package/dist/controllers/LearningSystem.js +0 -929
  142. package/dist/controllers/LearningSystem.js.map +0 -1
  143. package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
  144. package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
  145. package/dist/controllers/MMRDiversityRanker.js +0 -130
  146. package/dist/controllers/MMRDiversityRanker.js.map +0 -1
  147. package/dist/controllers/MetadataFilter.d.ts +0 -70
  148. package/dist/controllers/MetadataFilter.d.ts.map +0 -1
  149. package/dist/controllers/MetadataFilter.js +0 -243
  150. package/dist/controllers/MetadataFilter.js.map +0 -1
  151. package/dist/controllers/NightlyLearner.d.ts +0 -114
  152. package/dist/controllers/NightlyLearner.d.ts.map +0 -1
  153. package/dist/controllers/NightlyLearner.js +0 -394
  154. package/dist/controllers/NightlyLearner.js.map +0 -1
  155. package/dist/controllers/QUICClient.d.ts +0 -109
  156. package/dist/controllers/QUICClient.d.ts.map +0 -1
  157. package/dist/controllers/QUICClient.js +0 -299
  158. package/dist/controllers/QUICClient.js.map +0 -1
  159. package/dist/controllers/QUICServer.d.ts +0 -121
  160. package/dist/controllers/QUICServer.d.ts.map +0 -1
  161. package/dist/controllers/QUICServer.js +0 -383
  162. package/dist/controllers/QUICServer.js.map +0 -1
  163. package/dist/controllers/ReasoningBank.d.ts +0 -196
  164. package/dist/controllers/ReasoningBank.d.ts.map +0 -1
  165. package/dist/controllers/ReasoningBank.js +0 -494
  166. package/dist/controllers/ReasoningBank.js.map +0 -1
  167. package/dist/controllers/ReflexionMemory.d.ts +0 -125
  168. package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
  169. package/dist/controllers/ReflexionMemory.js +0 -521
  170. package/dist/controllers/ReflexionMemory.js.map +0 -1
  171. package/dist/controllers/SkillLibrary.d.ts +0 -149
  172. package/dist/controllers/SkillLibrary.d.ts.map +0 -1
  173. package/dist/controllers/SkillLibrary.js +0 -547
  174. package/dist/controllers/SkillLibrary.js.map +0 -1
  175. package/dist/controllers/SyncCoordinator.d.ts +0 -120
  176. package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
  177. package/dist/controllers/SyncCoordinator.js +0 -441
  178. package/dist/controllers/SyncCoordinator.js.map +0 -1
  179. package/dist/controllers/WASMVectorSearch.d.ts +0 -89
  180. package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
  181. package/dist/controllers/WASMVectorSearch.js +0 -234
  182. package/dist/controllers/WASMVectorSearch.js.map +0 -1
  183. package/dist/controllers/frontier-index.d.ts +0 -14
  184. package/dist/controllers/frontier-index.d.ts.map +0 -1
  185. package/dist/controllers/frontier-index.js +0 -10
  186. package/dist/controllers/frontier-index.js.map +0 -1
  187. package/dist/controllers/index.d.ts +0 -30
  188. package/dist/controllers/index.d.ts.map +0 -1
  189. package/dist/controllers/index.js +0 -18
  190. package/dist/controllers/index.js.map +0 -1
  191. package/dist/db-fallback.d.ts +0 -26
  192. package/dist/db-fallback.d.ts.map +0 -1
  193. package/dist/db-fallback.js +0 -264
  194. package/dist/db-fallback.js.map +0 -1
  195. package/dist/db-test.d.ts +0 -13
  196. package/dist/db-test.d.ts.map +0 -1
  197. package/dist/db-test.js +0 -55
  198. package/dist/db-test.js.map +0 -1
  199. package/dist/db-unified.d.ts +0 -76
  200. package/dist/db-unified.d.ts.map +0 -1
  201. package/dist/db-unified.js +0 -278
  202. package/dist/db-unified.js.map +0 -1
  203. package/dist/examples/quic-sync-example.d.ts +0 -9
  204. package/dist/examples/quic-sync-example.d.ts.map +0 -1
  205. package/dist/examples/quic-sync-example.js +0 -169
  206. package/dist/examples/quic-sync-example.js.map +0 -1
  207. package/dist/examples/wasm-vector-usage.d.ts +0 -12
  208. package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
  209. package/dist/examples/wasm-vector-usage.js +0 -190
  210. package/dist/examples/wasm-vector-usage.js.map +0 -1
  211. package/dist/index.d.ts +0 -28
  212. package/dist/index.d.ts.map +0 -1
  213. package/dist/index.js +0 -35
  214. package/dist/index.js.map +0 -1
  215. package/dist/malp/core/ccc.d.ts +0 -99
  216. package/dist/malp/core/ccc.d.ts.map +0 -1
  217. package/dist/malp/core/ccc.js +0 -181
  218. package/dist/malp/core/ccc.js.map +0 -1
  219. package/dist/malp/core/index.d.ts +0 -9
  220. package/dist/malp/core/index.d.ts.map +0 -1
  221. package/dist/malp/core/index.js +0 -9
  222. package/dist/malp/core/index.js.map +0 -1
  223. package/dist/malp/core/linalg.d.ts +0 -101
  224. package/dist/malp/core/linalg.d.ts.map +0 -1
  225. package/dist/malp/core/linalg.js +0 -278
  226. package/dist/malp/core/linalg.js.map +0 -1
  227. package/dist/malp/core/optimizer.d.ts +0 -68
  228. package/dist/malp/core/optimizer.d.ts.map +0 -1
  229. package/dist/malp/core/optimizer.js +0 -160
  230. package/dist/malp/core/optimizer.js.map +0 -1
  231. package/dist/malp/index.d.ts +0 -33
  232. package/dist/malp/index.d.ts.map +0 -1
  233. package/dist/malp/index.js +0 -37
  234. package/dist/malp/index.js.map +0 -1
  235. package/dist/malp/metrics/agreement.d.ts +0 -106
  236. package/dist/malp/metrics/agreement.d.ts.map +0 -1
  237. package/dist/malp/metrics/agreement.js +0 -199
  238. package/dist/malp/metrics/agreement.js.map +0 -1
  239. package/dist/malp/metrics/comparison.d.ts +0 -93
  240. package/dist/malp/metrics/comparison.d.ts.map +0 -1
  241. package/dist/malp/metrics/comparison.js +0 -256
  242. package/dist/malp/metrics/comparison.js.map +0 -1
  243. package/dist/malp/metrics/index.d.ts +0 -8
  244. package/dist/malp/metrics/index.d.ts.map +0 -1
  245. package/dist/malp/metrics/index.js +0 -8
  246. package/dist/malp/metrics/index.js.map +0 -1
  247. package/dist/malp/metrics/performance.d.ts +0 -61
  248. package/dist/malp/metrics/performance.d.ts.map +0 -1
  249. package/dist/malp/metrics/performance.js +0 -190
  250. package/dist/malp/metrics/performance.js.map +0 -1
  251. package/dist/malp/models/index.d.ts +0 -7
  252. package/dist/malp/models/index.d.ts.map +0 -1
  253. package/dist/malp/models/index.js +0 -7
  254. package/dist/malp/models/index.js.map +0 -1
  255. package/dist/malp/models/malp.d.ts +0 -116
  256. package/dist/malp/models/malp.d.ts.map +0 -1
  257. package/dist/malp/models/malp.js +0 -206
  258. package/dist/malp/models/malp.js.map +0 -1
  259. package/dist/malp/models/regressor.d.ts +0 -80
  260. package/dist/malp/models/regressor.d.ts.map +0 -1
  261. package/dist/malp/models/regressor.js +0 -229
  262. package/dist/malp/models/regressor.js.map +0 -1
  263. package/dist/malp/reasoningbank_validator.d.ts +0 -187
  264. package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
  265. package/dist/malp/reasoningbank_validator.js +0 -246
  266. package/dist/malp/reasoningbank_validator.js.map +0 -1
  267. package/dist/malp/wasm_bindings.d.ts +0 -344
  268. package/dist/malp/wasm_bindings.d.ts.map +0 -1
  269. package/dist/malp/wasm_bindings.js +0 -9
  270. package/dist/malp/wasm_bindings.js.map +0 -1
  271. package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
  272. package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
  273. package/dist/mcp/agentdb-mcp-server.js +0 -2116
  274. package/dist/mcp/agentdb-mcp-server.js.map +0 -1
  275. package/dist/mcp/learning-tools-handlers.d.ts +0 -16
  276. package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
  277. package/dist/mcp/learning-tools-handlers.js +0 -105
  278. package/dist/mcp/learning-tools-handlers.js.map +0 -1
  279. package/dist/optimizations/BatchOperations.d.ts +0 -109
  280. package/dist/optimizations/BatchOperations.d.ts.map +0 -1
  281. package/dist/optimizations/BatchOperations.js +0 -407
  282. package/dist/optimizations/BatchOperations.js.map +0 -1
  283. package/dist/optimizations/QueryOptimizer.d.ts +0 -83
  284. package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
  285. package/dist/optimizations/QueryOptimizer.js +0 -228
  286. package/dist/optimizations/QueryOptimizer.js.map +0 -1
  287. package/dist/optimizations/ToolCache.d.ts +0 -137
  288. package/dist/optimizations/ToolCache.d.ts.map +0 -1
  289. package/dist/optimizations/ToolCache.js +0 -281
  290. package/dist/optimizations/ToolCache.js.map +0 -1
  291. package/dist/optimizations/index.d.ts +0 -10
  292. package/dist/optimizations/index.d.ts.map +0 -1
  293. package/dist/optimizations/index.js +0 -8
  294. package/dist/optimizations/index.js.map +0 -1
  295. package/dist/security/input-validation.d.ts +0 -109
  296. package/dist/security/input-validation.d.ts.map +0 -1
  297. package/dist/security/input-validation.js +0 -398
  298. package/dist/security/input-validation.js.map +0 -1
  299. package/dist/security/limits.d.ts +0 -150
  300. package/dist/security/limits.d.ts.map +0 -1
  301. package/dist/security/limits.js +0 -288
  302. package/dist/security/limits.js.map +0 -1
  303. package/dist/security/path-security.d.ts +0 -100
  304. package/dist/security/path-security.d.ts.map +0 -1
  305. package/dist/security/path-security.js +0 -337
  306. package/dist/security/path-security.js.map +0 -1
  307. package/dist/security/validation.d.ts +0 -95
  308. package/dist/security/validation.d.ts.map +0 -1
  309. package/dist/security/validation.js +0 -315
  310. package/dist/security/validation.js.map +0 -1
  311. package/dist/types/quic.d.ts +0 -518
  312. package/dist/types/quic.d.ts.map +0 -1
  313. package/dist/types/quic.js +0 -272
  314. 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"}