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,337 +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
- export class ProductQuantization {
19
- config;
20
- codebook = null;
21
- trained = false;
22
- constructor(config) {
23
- this.config = {
24
- dimension: config.dimension,
25
- numSubvectors: config.numSubvectors,
26
- numCentroids: config.numCentroids,
27
- maxIterations: config.maxIterations || 50,
28
- convergenceThreshold: config.convergenceThreshold || 1e-4
29
- };
30
- // Validate config
31
- if (this.config.dimension % this.config.numSubvectors !== 0) {
32
- throw new Error(`Dimension ${this.config.dimension} must be divisible by numSubvectors ${this.config.numSubvectors}`);
33
- }
34
- }
35
- /**
36
- * Train codebook using k-means on training vectors
37
- */
38
- async train(vectors) {
39
- if (vectors.length === 0) {
40
- throw new Error('Training requires at least one vector');
41
- }
42
- const subvectorDim = this.config.dimension / this.config.numSubvectors;
43
- const centroids = [];
44
- console.log(`[PQ] Training ${this.config.numSubvectors} subvectors with ${this.config.numCentroids} centroids each...`);
45
- // Train each subvector independently
46
- for (let s = 0; s < this.config.numSubvectors; s++) {
47
- const startDim = s * subvectorDim;
48
- const endDim = startDim + subvectorDim;
49
- // Extract subvectors
50
- const subvectors = vectors.map(v => v.slice(startDim, endDim));
51
- // Run k-means
52
- const subCentroids = await this.kMeans(subvectors, this.config.numCentroids);
53
- centroids.push(...subCentroids);
54
- if ((s + 1) % 4 === 0 || s === this.config.numSubvectors - 1) {
55
- console.log(`[PQ] Trained ${s + 1}/${this.config.numSubvectors} subvectors`);
56
- }
57
- }
58
- this.codebook = {
59
- subvectorDim,
60
- numSubvectors: this.config.numSubvectors,
61
- numCentroids: this.config.numCentroids,
62
- centroids
63
- };
64
- this.trained = true;
65
- console.log('[PQ] Training complete');
66
- }
67
- /**
68
- * K-means clustering for centroids
69
- */
70
- async kMeans(vectors, k) {
71
- const dim = vectors[0].length;
72
- const n = vectors.length;
73
- // Initialize centroids with k-means++
74
- const centroids = this.kMeansPlusPlus(vectors, k);
75
- const assignments = new Uint32Array(n);
76
- let prevInertia = Infinity;
77
- for (let iter = 0; iter < this.config.maxIterations; iter++) {
78
- // Assign vectors to nearest centroid
79
- let inertia = 0;
80
- for (let i = 0; i < n; i++) {
81
- let minDist = Infinity;
82
- let minIdx = 0;
83
- for (let j = 0; j < k; j++) {
84
- const dist = this.squaredDistance(vectors[i], centroids[j]);
85
- if (dist < minDist) {
86
- minDist = dist;
87
- minIdx = j;
88
- }
89
- }
90
- assignments[i] = minIdx;
91
- inertia += minDist;
92
- }
93
- // Check convergence
94
- if (Math.abs(prevInertia - inertia) < this.config.convergenceThreshold) {
95
- break;
96
- }
97
- prevInertia = inertia;
98
- // Update centroids
99
- const counts = new Uint32Array(k);
100
- const sums = Array.from({ length: k }, () => new Float32Array(dim));
101
- for (let i = 0; i < n; i++) {
102
- const cluster = assignments[i];
103
- counts[cluster]++;
104
- for (let d = 0; d < dim; d++) {
105
- sums[cluster][d] += vectors[i][d];
106
- }
107
- }
108
- for (let j = 0; j < k; j++) {
109
- if (counts[j] > 0) {
110
- for (let d = 0; d < dim; d++) {
111
- centroids[j][d] = sums[j][d] / counts[j];
112
- }
113
- }
114
- }
115
- }
116
- return centroids;
117
- }
118
- /**
119
- * K-means++ initialization for better centroid selection
120
- */
121
- kMeansPlusPlus(vectors, k) {
122
- const n = vectors.length;
123
- const dim = vectors[0].length;
124
- const centroids = [];
125
- // Choose first centroid randomly
126
- const firstIdx = Math.floor(Math.random() * n);
127
- centroids.push(new Float32Array(vectors[firstIdx]));
128
- // Choose remaining centroids
129
- for (let i = 1; i < k; i++) {
130
- const distances = new Float32Array(n);
131
- let sumDistances = 0;
132
- // Calculate distances to nearest centroid
133
- for (let j = 0; j < n; j++) {
134
- let minDist = Infinity;
135
- for (const centroid of centroids) {
136
- const dist = this.squaredDistance(vectors[j], centroid);
137
- minDist = Math.min(minDist, dist);
138
- }
139
- distances[j] = minDist;
140
- sumDistances += minDist;
141
- }
142
- // Choose next centroid with probability proportional to distance²
143
- let r = Math.random() * sumDistances;
144
- for (let j = 0; j < n; j++) {
145
- r -= distances[j];
146
- if (r <= 0) {
147
- centroids.push(new Float32Array(vectors[j]));
148
- break;
149
- }
150
- }
151
- }
152
- return centroids;
153
- }
154
- /**
155
- * Compress a vector using trained codebook
156
- */
157
- compress(vector) {
158
- if (!this.trained || !this.codebook) {
159
- throw new Error('Codebook must be trained before compression');
160
- }
161
- const codes = new Uint8Array(this.config.numSubvectors);
162
- const subvectorDim = this.codebook.subvectorDim;
163
- // Compute norm for later reconstruction
164
- let norm = 0;
165
- for (let i = 0; i < vector.length; i++) {
166
- norm += vector[i] * vector[i];
167
- }
168
- norm = Math.sqrt(norm);
169
- // Encode each subvector
170
- for (let s = 0; s < this.config.numSubvectors; s++) {
171
- const startDim = s * subvectorDim;
172
- const subvector = vector.slice(startDim, startDim + subvectorDim);
173
- // Find nearest centroid
174
- let minDist = Infinity;
175
- let minIdx = 0;
176
- const centroidOffset = s * this.config.numCentroids;
177
- for (let c = 0; c < this.config.numCentroids; c++) {
178
- const centroid = this.codebook.centroids[centroidOffset + c];
179
- const dist = this.squaredDistance(subvector, centroid);
180
- if (dist < minDist) {
181
- minDist = dist;
182
- minIdx = c;
183
- }
184
- }
185
- codes[s] = minIdx;
186
- }
187
- return { codes, norm };
188
- }
189
- /**
190
- * Decompress a vector (approximate reconstruction)
191
- */
192
- decompress(compressed) {
193
- if (!this.codebook) {
194
- throw new Error('Codebook not available');
195
- }
196
- const vector = new Float32Array(this.config.dimension);
197
- const subvectorDim = this.codebook.subvectorDim;
198
- for (let s = 0; s < this.config.numSubvectors; s++) {
199
- const code = compressed.codes[s];
200
- const centroidOffset = s * this.config.numCentroids;
201
- const centroid = this.codebook.centroids[centroidOffset + code];
202
- const startDim = s * subvectorDim;
203
- for (let d = 0; d < subvectorDim; d++) {
204
- vector[startDim + d] = centroid[d];
205
- }
206
- }
207
- return vector;
208
- }
209
- /**
210
- * Asymmetric Distance Computation (ADC)
211
- * Computes distance from query vector to compressed vector
212
- */
213
- asymmetricDistance(query, compressed) {
214
- if (!this.codebook) {
215
- throw new Error('Codebook not available');
216
- }
217
- let distance = 0;
218
- const subvectorDim = this.codebook.subvectorDim;
219
- for (let s = 0; s < this.config.numSubvectors; s++) {
220
- const code = compressed.codes[s];
221
- const centroidOffset = s * this.config.numCentroids;
222
- const centroid = this.codebook.centroids[centroidOffset + code];
223
- const startDim = s * subvectorDim;
224
- const querySubvector = query.slice(startDim, startDim + subvectorDim);
225
- distance += this.squaredDistance(querySubvector, centroid);
226
- }
227
- return Math.sqrt(distance);
228
- }
229
- /**
230
- * Batch compression for multiple vectors
231
- */
232
- batchCompress(vectors) {
233
- return vectors.map(v => this.compress(v));
234
- }
235
- /**
236
- * Get memory savings
237
- */
238
- getCompressionRatio() {
239
- // Original: dimension * 4 bytes (Float32)
240
- // Compressed: numSubvectors * 1 byte (Uint8) + 4 bytes (norm)
241
- const originalBytes = this.config.dimension * 4;
242
- const compressedBytes = this.config.numSubvectors + 4;
243
- return originalBytes / compressedBytes;
244
- }
245
- /**
246
- * Export codebook for persistence
247
- */
248
- exportCodebook() {
249
- if (!this.codebook) {
250
- throw new Error('No codebook to export');
251
- }
252
- return JSON.stringify({
253
- config: this.config,
254
- codebook: {
255
- subvectorDim: this.codebook.subvectorDim,
256
- numSubvectors: this.codebook.numSubvectors,
257
- numCentroids: this.codebook.numCentroids,
258
- centroids: this.codebook.centroids.map(c => Array.from(c))
259
- }
260
- });
261
- }
262
- /**
263
- * Import codebook
264
- */
265
- importCodebook(json) {
266
- const data = JSON.parse(json);
267
- this.config = data.config;
268
- this.codebook = {
269
- subvectorDim: data.codebook.subvectorDim,
270
- numSubvectors: data.codebook.numSubvectors,
271
- numCentroids: data.codebook.numCentroids,
272
- centroids: data.codebook.centroids.map((c) => new Float32Array(c))
273
- };
274
- this.trained = true;
275
- }
276
- /**
277
- * Utility: Squared Euclidean distance
278
- */
279
- squaredDistance(a, b) {
280
- let sum = 0;
281
- for (let i = 0; i < a.length; i++) {
282
- const diff = a[i] - b[i];
283
- sum += diff * diff;
284
- }
285
- return sum;
286
- }
287
- /**
288
- * Get statistics
289
- */
290
- getStats() {
291
- const compressionRatio = this.getCompressionRatio();
292
- const memoryPerVector = this.config.numSubvectors + 4; // codes + norm
293
- const codebookSize = this.codebook
294
- ? this.config.numSubvectors * this.config.numCentroids * (this.config.dimension / this.config.numSubvectors) * 4
295
- : 0;
296
- return {
297
- trained: this.trained,
298
- compressionRatio,
299
- memoryPerVector,
300
- codebookSize
301
- };
302
- }
303
- }
304
- /**
305
- * Helper function to create PQ8 (8 subvectors, 4x compression)
306
- */
307
- export function createPQ8(dimension) {
308
- return new ProductQuantization({
309
- dimension,
310
- numSubvectors: 8,
311
- numCentroids: 256,
312
- maxIterations: 50
313
- });
314
- }
315
- /**
316
- * Helper function to create PQ16 (16 subvectors, 8x compression)
317
- */
318
- export function createPQ16(dimension) {
319
- return new ProductQuantization({
320
- dimension,
321
- numSubvectors: 16,
322
- numCentroids: 256,
323
- maxIterations: 50
324
- });
325
- }
326
- /**
327
- * Helper function to create PQ32 (32 subvectors, 16x compression)
328
- */
329
- export function createPQ32(dimension) {
330
- return new ProductQuantization({
331
- dimension,
332
- numSubvectors: 32,
333
- numCentroids: 256,
334
- maxIterations: 50
335
- });
336
- }
337
- //# sourceMappingURL=ProductQuantization.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductQuantization.js","sourceRoot":"","sources":["../../src/browser/ProductQuantization.ts"],"names":[],"mappings":"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"}
@@ -1,144 +0,0 @@
1
- /**
2
- * Advanced Features for AgentDB Browser
3
- *
4
- * Includes:
5
- * - GNN (Graph Neural Networks) - Graph attention and message passing
6
- * - MMR (Maximal Marginal Relevance) - Diversity ranking
7
- * - SVD (Singular Value Decomposition) - Tensor compression
8
- * - Batch operations and utilities
9
- */
10
- export interface GNNNode {
11
- id: number;
12
- features: Float32Array;
13
- neighbors: number[];
14
- }
15
- export interface GNNEdge {
16
- from: number;
17
- to: number;
18
- weight: number;
19
- }
20
- export interface GNNConfig {
21
- hiddenDim: number;
22
- numHeads: number;
23
- dropout: number;
24
- learningRate: number;
25
- attentionType: 'gat' | 'gcn' | 'sage';
26
- }
27
- /**
28
- * Graph Neural Network with attention mechanism
29
- */
30
- export declare class GraphNeuralNetwork {
31
- private config;
32
- private nodes;
33
- private edges;
34
- private attentionWeights;
35
- constructor(config?: Partial<GNNConfig>);
36
- /**
37
- * Add node to graph
38
- */
39
- addNode(id: number, features: Float32Array): void;
40
- /**
41
- * Add edge to graph
42
- */
43
- addEdge(from: number, to: number, weight?: number): void;
44
- /**
45
- * Graph Attention Network (GAT) message passing
46
- */
47
- graphAttention(nodeId: number): Float32Array;
48
- /**
49
- * Compute attention score between two nodes
50
- */
51
- private computeAttentionScore;
52
- /**
53
- * Message passing for all nodes
54
- */
55
- messagePass(): Map<number, Float32Array>;
56
- /**
57
- * Update node features after message passing
58
- */
59
- update(newFeatures: Map<number, Float32Array>): void;
60
- /**
61
- * Compute graph embeddings for query enhancement
62
- */
63
- computeGraphEmbedding(nodeId: number, hops?: number): Float32Array;
64
- /**
65
- * Get statistics
66
- */
67
- getStats(): {
68
- numNodes: number;
69
- numEdges: number;
70
- avgDegree: number;
71
- config: GNNConfig;
72
- };
73
- }
74
- export interface MMRConfig {
75
- lambda: number;
76
- metric: 'cosine' | 'euclidean';
77
- }
78
- /**
79
- * Maximal Marginal Relevance for diversity ranking
80
- */
81
- export declare class MaximalMarginalRelevance {
82
- private config;
83
- constructor(config?: Partial<MMRConfig>);
84
- /**
85
- * Rerank results for diversity
86
- * @param query Query vector
87
- * @param candidates Candidate vectors with scores
88
- * @param k Number of results to return
89
- * @returns Reranked indices
90
- */
91
- rerank(query: Float32Array, candidates: Array<{
92
- id: number;
93
- vector: Float32Array;
94
- score: number;
95
- }>, k: number): number[];
96
- /**
97
- * Similarity computation
98
- */
99
- private similarity;
100
- private cosineSimilarity;
101
- private euclideanDistance;
102
- /**
103
- * Set lambda (relevance vs diversity trade-off)
104
- */
105
- setLambda(lambda: number): void;
106
- }
107
- /**
108
- * Simple SVD implementation for dimension reduction
109
- */
110
- export declare class TensorCompression {
111
- /**
112
- * Reduce dimensionality using truncated SVD
113
- * @param vectors Array of vectors to compress
114
- * @param targetDim Target dimension
115
- * @returns Compressed vectors
116
- */
117
- static compress(vectors: Float32Array[], targetDim: number): Float32Array[];
118
- /**
119
- * Compute mean vector
120
- */
121
- private static computeMean;
122
- /**
123
- * Compute covariance matrix
124
- */
125
- private static computeCovariance;
126
- /**
127
- * Power iteration for computing top eigenvectors
128
- */
129
- private static powerIteration;
130
- }
131
- /**
132
- * Efficient batch processing utilities
133
- */
134
- export declare class BatchProcessor {
135
- /**
136
- * Batch cosine similarity computation
137
- */
138
- static batchCosineSimilarity(query: Float32Array, vectors: Float32Array[]): Float32Array;
139
- /**
140
- * Batch vector normalization
141
- */
142
- static batchNormalize(vectors: Float32Array[]): Float32Array[];
143
- }
144
- //# sourceMappingURL=AdvancedFeatures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdvancedFeatures.d.ts","sourceRoot":"","sources":["../../../src/browser/AdvancedFeatures.ts"],"names":[],"mappings":"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"}