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,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"}
|