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.
- package/dist/agentdb.min.js +4 -4
- package/dist/simulation/cli.js +0 -0
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +78 -0
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/agentdb-cli.ts +78 -0
- package/dist/agentdb-advanced.js +0 -2110
- package/dist/agentdb-advanced.min.js +0 -1
- package/dist/backends/GraphBackend.d.ts +0 -196
- package/dist/backends/GraphBackend.d.ts.map +0 -1
- package/dist/backends/GraphBackend.js +0 -33
- package/dist/backends/GraphBackend.js.map +0 -1
- package/dist/backends/LearningBackend.d.ts +0 -148
- package/dist/backends/LearningBackend.d.ts.map +0 -1
- package/dist/backends/LearningBackend.js +0 -27
- package/dist/backends/LearningBackend.js.map +0 -1
- package/dist/backends/VectorBackend.d.ts +0 -119
- package/dist/backends/VectorBackend.d.ts.map +0 -1
- package/dist/backends/VectorBackend.js +0 -14
- package/dist/backends/VectorBackend.js.map +0 -1
- package/dist/backends/detector.d.ts +0 -81
- package/dist/backends/detector.d.ts.map +0 -1
- package/dist/backends/detector.js +0 -192
- package/dist/backends/detector.js.map +0 -1
- package/dist/backends/factory.d.ts +0 -50
- package/dist/backends/factory.d.ts.map +0 -1
- package/dist/backends/factory.js +0 -161
- package/dist/backends/factory.js.map +0 -1
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
- package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
- package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
- package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
- package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
- package/dist/backends/hnswlib/index.d.ts +0 -7
- package/dist/backends/hnswlib/index.d.ts.map +0 -1
- package/dist/backends/hnswlib/index.js +0 -7
- package/dist/backends/hnswlib/index.js.map +0 -1
- package/dist/backends/index.d.ts +0 -14
- package/dist/backends/index.d.ts.map +0 -1
- package/dist/backends/index.js +0 -13
- package/dist/backends/index.js.map +0 -1
- package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
- package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
- package/dist/backends/ruvector/RuVectorBackend.js +0 -198
- package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
- package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
- package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
- package/dist/backends/ruvector/RuVectorLearning.js +0 -177
- package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
- package/dist/backends/ruvector/index.d.ts +0 -9
- package/dist/backends/ruvector/index.d.ts.map +0 -1
- package/dist/backends/ruvector/index.js +0 -8
- package/dist/backends/ruvector/index.js.map +0 -1
- package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
- package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
- package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
- package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
- package/dist/browser/AdvancedFeatures.d.ts +0 -144
- package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
- package/dist/browser/AdvancedFeatures.js +0 -430
- package/dist/browser/AdvancedFeatures.js.map +0 -1
- package/dist/browser/HNSWIndex.d.ts +0 -117
- package/dist/browser/HNSWIndex.d.ts.map +0 -1
- package/dist/browser/HNSWIndex.js +0 -402
- package/dist/browser/HNSWIndex.js.map +0 -1
- package/dist/browser/ProductQuantization.d.ts +0 -107
- package/dist/browser/ProductQuantization.d.ts.map +0 -1
- package/dist/browser/ProductQuantization.js +0 -337
- package/dist/browser/ProductQuantization.js.map +0 -1
- package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
- package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
- package/dist/browser/browser/AdvancedFeatures.js +0 -427
- package/dist/browser/browser/HNSWIndex.d.ts +0 -117
- package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
- package/dist/browser/browser/HNSWIndex.js +0 -402
- package/dist/browser/browser/ProductQuantization.d.ts +0 -107
- package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
- package/dist/browser/browser/ProductQuantization.js +0 -348
- package/dist/browser/browser/index.d.ts +0 -223
- package/dist/browser/browser/index.d.ts.map +0 -1
- package/dist/browser/browser/index.js +0 -233
- package/dist/browser/index.d.ts +0 -223
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -225
- package/dist/browser/index.js.map +0 -1
- package/dist/cli/agentdb-cli.d.ts +0 -154
- package/dist/cli/agentdb-cli.d.ts.map +0 -1
- package/dist/cli/agentdb-cli.js +0 -2273
- package/dist/cli/agentdb-cli.js.map +0 -1
- package/dist/cli/agentdb.db +0 -0
- package/dist/cli/commands/init.d.ts +0 -12
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -115
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/install-embeddings.d.ts +0 -10
- package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
- package/dist/cli/commands/install-embeddings.js +0 -68
- package/dist/cli/commands/install-embeddings.js.map +0 -1
- package/dist/cli/commands/migrate.d.ts +0 -15
- package/dist/cli/commands/migrate.d.ts.map +0 -1
- package/dist/cli/commands/migrate.js +0 -425
- package/dist/cli/commands/migrate.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -10
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -129
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
- package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
- package/dist/controllers/CausalMemoryGraph.js +0 -323
- package/dist/controllers/CausalMemoryGraph.js.map +0 -1
- package/dist/controllers/CausalRecall.d.ts +0 -139
- package/dist/controllers/CausalRecall.d.ts.map +0 -1
- package/dist/controllers/CausalRecall.js +0 -356
- package/dist/controllers/CausalRecall.js.map +0 -1
- package/dist/controllers/ContextSynthesizer.d.ts +0 -65
- package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
- package/dist/controllers/ContextSynthesizer.js +0 -208
- package/dist/controllers/ContextSynthesizer.js.map +0 -1
- package/dist/controllers/EmbeddingService.d.ts +0 -37
- package/dist/controllers/EmbeddingService.d.ts.map +0 -1
- package/dist/controllers/EmbeddingService.js +0 -136
- package/dist/controllers/EmbeddingService.js.map +0 -1
- package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
- package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
- package/dist/controllers/EnhancedEmbeddingService.js +0 -119
- package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
- package/dist/controllers/ExplainableRecall.d.ts +0 -163
- package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
- package/dist/controllers/ExplainableRecall.js +0 -485
- package/dist/controllers/ExplainableRecall.js.map +0 -1
- package/dist/controllers/HNSWIndex.d.ts +0 -128
- package/dist/controllers/HNSWIndex.d.ts.map +0 -1
- package/dist/controllers/HNSWIndex.js +0 -361
- package/dist/controllers/HNSWIndex.js.map +0 -1
- package/dist/controllers/LearningSystem.d.ts +0 -195
- package/dist/controllers/LearningSystem.d.ts.map +0 -1
- package/dist/controllers/LearningSystem.js +0 -929
- package/dist/controllers/LearningSystem.js.map +0 -1
- package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
- package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
- package/dist/controllers/MMRDiversityRanker.js +0 -130
- package/dist/controllers/MMRDiversityRanker.js.map +0 -1
- package/dist/controllers/MetadataFilter.d.ts +0 -70
- package/dist/controllers/MetadataFilter.d.ts.map +0 -1
- package/dist/controllers/MetadataFilter.js +0 -243
- package/dist/controllers/MetadataFilter.js.map +0 -1
- package/dist/controllers/NightlyLearner.d.ts +0 -114
- package/dist/controllers/NightlyLearner.d.ts.map +0 -1
- package/dist/controllers/NightlyLearner.js +0 -394
- package/dist/controllers/NightlyLearner.js.map +0 -1
- package/dist/controllers/QUICClient.d.ts +0 -109
- package/dist/controllers/QUICClient.d.ts.map +0 -1
- package/dist/controllers/QUICClient.js +0 -299
- package/dist/controllers/QUICClient.js.map +0 -1
- package/dist/controllers/QUICServer.d.ts +0 -121
- package/dist/controllers/QUICServer.d.ts.map +0 -1
- package/dist/controllers/QUICServer.js +0 -383
- package/dist/controllers/QUICServer.js.map +0 -1
- package/dist/controllers/ReasoningBank.d.ts +0 -196
- package/dist/controllers/ReasoningBank.d.ts.map +0 -1
- package/dist/controllers/ReasoningBank.js +0 -494
- package/dist/controllers/ReasoningBank.js.map +0 -1
- package/dist/controllers/ReflexionMemory.d.ts +0 -125
- package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
- package/dist/controllers/ReflexionMemory.js +0 -521
- package/dist/controllers/ReflexionMemory.js.map +0 -1
- package/dist/controllers/SkillLibrary.d.ts +0 -149
- package/dist/controllers/SkillLibrary.d.ts.map +0 -1
- package/dist/controllers/SkillLibrary.js +0 -547
- package/dist/controllers/SkillLibrary.js.map +0 -1
- package/dist/controllers/SyncCoordinator.d.ts +0 -120
- package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
- package/dist/controllers/SyncCoordinator.js +0 -441
- package/dist/controllers/SyncCoordinator.js.map +0 -1
- package/dist/controllers/WASMVectorSearch.d.ts +0 -89
- package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
- package/dist/controllers/WASMVectorSearch.js +0 -234
- package/dist/controllers/WASMVectorSearch.js.map +0 -1
- package/dist/controllers/frontier-index.d.ts +0 -14
- package/dist/controllers/frontier-index.d.ts.map +0 -1
- package/dist/controllers/frontier-index.js +0 -10
- package/dist/controllers/frontier-index.js.map +0 -1
- package/dist/controllers/index.d.ts +0 -30
- package/dist/controllers/index.d.ts.map +0 -1
- package/dist/controllers/index.js +0 -18
- package/dist/controllers/index.js.map +0 -1
- package/dist/db-fallback.d.ts +0 -26
- package/dist/db-fallback.d.ts.map +0 -1
- package/dist/db-fallback.js +0 -264
- package/dist/db-fallback.js.map +0 -1
- package/dist/db-test.d.ts +0 -13
- package/dist/db-test.d.ts.map +0 -1
- package/dist/db-test.js +0 -55
- package/dist/db-test.js.map +0 -1
- package/dist/db-unified.d.ts +0 -76
- package/dist/db-unified.d.ts.map +0 -1
- package/dist/db-unified.js +0 -278
- package/dist/db-unified.js.map +0 -1
- package/dist/examples/quic-sync-example.d.ts +0 -9
- package/dist/examples/quic-sync-example.d.ts.map +0 -1
- package/dist/examples/quic-sync-example.js +0 -169
- package/dist/examples/quic-sync-example.js.map +0 -1
- package/dist/examples/wasm-vector-usage.d.ts +0 -12
- package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
- package/dist/examples/wasm-vector-usage.js +0 -190
- package/dist/examples/wasm-vector-usage.js.map +0 -1
- package/dist/index.d.ts +0 -28
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -35
- package/dist/index.js.map +0 -1
- package/dist/malp/core/ccc.d.ts +0 -99
- package/dist/malp/core/ccc.d.ts.map +0 -1
- package/dist/malp/core/ccc.js +0 -181
- package/dist/malp/core/ccc.js.map +0 -1
- package/dist/malp/core/index.d.ts +0 -9
- package/dist/malp/core/index.d.ts.map +0 -1
- package/dist/malp/core/index.js +0 -9
- package/dist/malp/core/index.js.map +0 -1
- package/dist/malp/core/linalg.d.ts +0 -101
- package/dist/malp/core/linalg.d.ts.map +0 -1
- package/dist/malp/core/linalg.js +0 -278
- package/dist/malp/core/linalg.js.map +0 -1
- package/dist/malp/core/optimizer.d.ts +0 -68
- package/dist/malp/core/optimizer.d.ts.map +0 -1
- package/dist/malp/core/optimizer.js +0 -160
- package/dist/malp/core/optimizer.js.map +0 -1
- package/dist/malp/index.d.ts +0 -33
- package/dist/malp/index.d.ts.map +0 -1
- package/dist/malp/index.js +0 -37
- package/dist/malp/index.js.map +0 -1
- package/dist/malp/metrics/agreement.d.ts +0 -106
- package/dist/malp/metrics/agreement.d.ts.map +0 -1
- package/dist/malp/metrics/agreement.js +0 -199
- package/dist/malp/metrics/agreement.js.map +0 -1
- package/dist/malp/metrics/comparison.d.ts +0 -93
- package/dist/malp/metrics/comparison.d.ts.map +0 -1
- package/dist/malp/metrics/comparison.js +0 -256
- package/dist/malp/metrics/comparison.js.map +0 -1
- package/dist/malp/metrics/index.d.ts +0 -8
- package/dist/malp/metrics/index.d.ts.map +0 -1
- package/dist/malp/metrics/index.js +0 -8
- package/dist/malp/metrics/index.js.map +0 -1
- package/dist/malp/metrics/performance.d.ts +0 -61
- package/dist/malp/metrics/performance.d.ts.map +0 -1
- package/dist/malp/metrics/performance.js +0 -190
- package/dist/malp/metrics/performance.js.map +0 -1
- package/dist/malp/models/index.d.ts +0 -7
- package/dist/malp/models/index.d.ts.map +0 -1
- package/dist/malp/models/index.js +0 -7
- package/dist/malp/models/index.js.map +0 -1
- package/dist/malp/models/malp.d.ts +0 -116
- package/dist/malp/models/malp.d.ts.map +0 -1
- package/dist/malp/models/malp.js +0 -206
- package/dist/malp/models/malp.js.map +0 -1
- package/dist/malp/models/regressor.d.ts +0 -80
- package/dist/malp/models/regressor.d.ts.map +0 -1
- package/dist/malp/models/regressor.js +0 -229
- package/dist/malp/models/regressor.js.map +0 -1
- package/dist/malp/reasoningbank_validator.d.ts +0 -187
- package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
- package/dist/malp/reasoningbank_validator.js +0 -246
- package/dist/malp/reasoningbank_validator.js.map +0 -1
- package/dist/malp/wasm_bindings.d.ts +0 -344
- package/dist/malp/wasm_bindings.d.ts.map +0 -1
- package/dist/malp/wasm_bindings.js +0 -9
- package/dist/malp/wasm_bindings.js.map +0 -1
- package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
- package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
- package/dist/mcp/agentdb-mcp-server.js +0 -2116
- package/dist/mcp/agentdb-mcp-server.js.map +0 -1
- package/dist/mcp/learning-tools-handlers.d.ts +0 -16
- package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
- package/dist/mcp/learning-tools-handlers.js +0 -105
- package/dist/mcp/learning-tools-handlers.js.map +0 -1
- package/dist/optimizations/BatchOperations.d.ts +0 -109
- package/dist/optimizations/BatchOperations.d.ts.map +0 -1
- package/dist/optimizations/BatchOperations.js +0 -407
- package/dist/optimizations/BatchOperations.js.map +0 -1
- package/dist/optimizations/QueryOptimizer.d.ts +0 -83
- package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
- package/dist/optimizations/QueryOptimizer.js +0 -228
- package/dist/optimizations/QueryOptimizer.js.map +0 -1
- package/dist/optimizations/ToolCache.d.ts +0 -137
- package/dist/optimizations/ToolCache.d.ts.map +0 -1
- package/dist/optimizations/ToolCache.js +0 -281
- package/dist/optimizations/ToolCache.js.map +0 -1
- package/dist/optimizations/index.d.ts +0 -10
- package/dist/optimizations/index.d.ts.map +0 -1
- package/dist/optimizations/index.js +0 -8
- package/dist/optimizations/index.js.map +0 -1
- package/dist/security/input-validation.d.ts +0 -109
- package/dist/security/input-validation.d.ts.map +0 -1
- package/dist/security/input-validation.js +0 -398
- package/dist/security/input-validation.js.map +0 -1
- package/dist/security/limits.d.ts +0 -150
- package/dist/security/limits.d.ts.map +0 -1
- package/dist/security/limits.js +0 -288
- package/dist/security/limits.js.map +0 -1
- package/dist/security/path-security.d.ts +0 -100
- package/dist/security/path-security.d.ts.map +0 -1
- package/dist/security/path-security.js +0 -337
- package/dist/security/path-security.js.map +0 -1
- package/dist/security/validation.d.ts +0 -95
- package/dist/security/validation.d.ts.map +0 -1
- package/dist/security/validation.js +0 -315
- package/dist/security/validation.js.map +0 -1
- package/dist/types/quic.d.ts +0 -518
- package/dist/types/quic.d.ts.map +0 -1
- package/dist/types/quic.js +0 -272
- 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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAsBH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAqB;IAC3B,QAAQ,GAAsB,IAAI,CAAC;IACnC,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,MAAgB;QAC1B,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;YACzC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,IAAI;SAC1D,CAAC;QAEF,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,uCAAuC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAuB;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACvE,MAAM,SAAS,GAAmB,EAAE,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,aAAa,oBAAoB,IAAI,CAAC,MAAM,CAAC,YAAY,oBAAoB,CAAC,CAAC;QAExH,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;YAClC,MAAM,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;YAEvC,qBAAqB;YACrB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAE/D,cAAc;YACd,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7E,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAEhC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,aAAa,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG;YACd,YAAY;YACZ,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,SAAS;SACV,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,MAAM,CAAC,OAAuB,EAAE,CAAS;QACrD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,WAAW,GAAG,QAAQ,CAAC;QAE3B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAC5D,qCAAqC;YACrC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,OAAO,GAAG,QAAQ,CAAC;gBACvB,IAAI,MAAM,GAAG,CAAC,CAAC;gBAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;wBACnB,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,GAAG,CAAC,CAAC;oBACb,CAAC;gBACH,CAAC;gBAED,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBACxB,OAAO,IAAI,OAAO,CAAC;YACrB,CAAC;YAED,oBAAoB;YACpB,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBACvE,MAAM;YACR,CAAC;YACD,WAAW,GAAG,OAAO,CAAC;YAEtB,mBAAmB;YACnB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7B,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAuB,EAAE,CAAS;QACvD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9B,MAAM,SAAS,GAAmB,EAAE,CAAC;QAErC,iCAAiC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,0CAA0C;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,OAAO,GAAG,QAAQ,CAAC;gBACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACxD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACpC,CAAC;gBACD,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;gBACvB,YAAY,IAAI,OAAO,CAAC;YAC1B,CAAC;YAED,kEAAkE;YAClE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACX,SAAS,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAoB;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAEhD,wCAAwC;QACxC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvB,wBAAwB;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;YAElE,wBAAwB;YACxB,IAAI,OAAO,GAAG,QAAQ,CAAC;YACvB,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACvD,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;oBACnB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,GAAG,CAAC,CAAC;gBACb,CAAC;YACH,CAAC;YAED,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,UAA4B;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,KAAmB,EAAE,UAA4B;QAClE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;YAClC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;YAEtE,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAuB;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,0CAA0C;QAC1C,8DAA8D;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;QACtD,OAAO,aAAa,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;gBACxC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;gBAC1C,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;gBACxC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG;YACd,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;YACxC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC1C,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;YACxC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;SAC7E,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,CAAe,EAAE,CAAe;QACtD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,QAAQ;QAMN,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,eAAe;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ;YAChC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;YAChH,CAAC,CAAC,CAAC,CAAC;QAEN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB;YAChB,eAAe;YACf,YAAY;SACb,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,mBAAmB,CAAC;QAC7B,SAAS;QACT,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,IAAI,mBAAmB,CAAC;QAC7B,SAAS;QACT,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,IAAI,mBAAmB,CAAC;QAC7B,SAAS;QACT,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,GAAG;QACjB,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -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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"}
|