agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/dist/src/cli/commands/init.js +3 -3
- package/dist/src/cli/commands/init.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/agentdb-cli.ts +78 -0
- package/src/cli/commands/init.ts +3 -3
- 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,233 +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
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
// ============================================================================
|
|
26
|
-
// Product Quantization
|
|
27
|
-
// ============================================================================
|
|
28
|
-
export { ProductQuantization, createPQ8, createPQ16, createPQ32 } from './ProductQuantization';
|
|
29
|
-
// ============================================================================
|
|
30
|
-
// HNSW Indexing
|
|
31
|
-
// ============================================================================
|
|
32
|
-
export { HNSWIndex, createHNSW, createFastHNSW, createAccurateHNSW } from './HNSWIndex';
|
|
33
|
-
// ============================================================================
|
|
34
|
-
// Advanced Features
|
|
35
|
-
// ============================================================================
|
|
36
|
-
export { GraphNeuralNetwork, MaximalMarginalRelevance, TensorCompression, BatchProcessor } from './AdvancedFeatures';
|
|
37
|
-
// ============================================================================
|
|
38
|
-
// Feature Detection
|
|
39
|
-
// ============================================================================
|
|
40
|
-
/**
|
|
41
|
-
* Detect available browser features
|
|
42
|
-
*/
|
|
43
|
-
export function detectFeatures() {
|
|
44
|
-
return {
|
|
45
|
-
indexedDB: 'indexedDB' in globalThis,
|
|
46
|
-
broadcastChannel: 'BroadcastChannel' in globalThis,
|
|
47
|
-
webWorkers: typeof Worker !== 'undefined',
|
|
48
|
-
wasmSIMD: detectWasmSIMD(),
|
|
49
|
-
sharedArrayBuffer: typeof SharedArrayBuffer !== 'undefined'
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Detect WASM SIMD support
|
|
54
|
-
*/
|
|
55
|
-
function detectWasmSIMD() {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
try {
|
|
58
|
-
// WASM SIMD detection via feature test
|
|
59
|
-
const simdTest = new Uint8Array([
|
|
60
|
-
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00,
|
|
61
|
-
0x01, 0x05, 0x01, 0x60, 0x00, 0x01, 0x7b, 0x03,
|
|
62
|
-
0x02, 0x01, 0x00, 0x0a, 0x0a, 0x01, 0x08, 0x00,
|
|
63
|
-
0xfd, 0x0c, 0xfd, 0x0c, 0xfd, 0x54, 0x0b
|
|
64
|
-
]);
|
|
65
|
-
const module = yield WebAssembly.instantiate(simdTest);
|
|
66
|
-
return module instanceof WebAssembly.Instance;
|
|
67
|
-
}
|
|
68
|
-
catch (_a) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
// ============================================================================
|
|
74
|
-
// Configuration Presets
|
|
75
|
-
// ============================================================================
|
|
76
|
-
/**
|
|
77
|
-
* Recommended configuration for small datasets (<1K vectors)
|
|
78
|
-
*/
|
|
79
|
-
export const SMALL_DATASET_CONFIG = {
|
|
80
|
-
pq: { enabled: false },
|
|
81
|
-
hnsw: { enabled: false },
|
|
82
|
-
gnn: { enabled: true, numHeads: 2 },
|
|
83
|
-
mmr: { enabled: true, lambda: 0.7 },
|
|
84
|
-
svd: { enabled: false }
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Recommended configuration for medium datasets (1K-10K vectors)
|
|
88
|
-
*/
|
|
89
|
-
export const MEDIUM_DATASET_CONFIG = {
|
|
90
|
-
pq: { enabled: true, subvectors: 8 },
|
|
91
|
-
hnsw: { enabled: true, M: 16 },
|
|
92
|
-
gnn: { enabled: true, numHeads: 4 },
|
|
93
|
-
mmr: { enabled: true, lambda: 0.7 },
|
|
94
|
-
svd: { enabled: false }
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Recommended configuration for large datasets (10K-100K vectors)
|
|
98
|
-
*/
|
|
99
|
-
export const LARGE_DATASET_CONFIG = {
|
|
100
|
-
pq: { enabled: true, subvectors: 16 },
|
|
101
|
-
hnsw: { enabled: true, M: 32 },
|
|
102
|
-
gnn: { enabled: true, numHeads: 4 },
|
|
103
|
-
mmr: { enabled: true, lambda: 0.7 },
|
|
104
|
-
svd: { enabled: true, targetDim: 128 }
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Memory-optimized configuration (minimal memory usage)
|
|
108
|
-
*/
|
|
109
|
-
export const MEMORY_OPTIMIZED_CONFIG = {
|
|
110
|
-
pq: { enabled: true, subvectors: 32 }, // 16x compression
|
|
111
|
-
hnsw: { enabled: true, M: 8 }, // Fewer connections
|
|
112
|
-
gnn: { enabled: false },
|
|
113
|
-
mmr: { enabled: false },
|
|
114
|
-
svd: { enabled: true, targetDim: 64 } // Aggressive dimension reduction
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Speed-optimized configuration (fastest search)
|
|
118
|
-
*/
|
|
119
|
-
export const SPEED_OPTIMIZED_CONFIG = {
|
|
120
|
-
pq: { enabled: false }, // No compression overhead
|
|
121
|
-
hnsw: { enabled: true, M: 32, efSearch: 100 }, // Maximum HNSW quality
|
|
122
|
-
gnn: { enabled: false },
|
|
123
|
-
mmr: { enabled: false },
|
|
124
|
-
svd: { enabled: false }
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* Quality-optimized configuration (best result quality)
|
|
128
|
-
*/
|
|
129
|
-
export const QUALITY_OPTIMIZED_CONFIG = {
|
|
130
|
-
pq: { enabled: false }, // No compression
|
|
131
|
-
hnsw: { enabled: true, M: 48, efConstruction: 400 }, // Highest quality
|
|
132
|
-
gnn: { enabled: true, numHeads: 8 }, // More attention heads
|
|
133
|
-
mmr: { enabled: true, lambda: 0.8 }, // More diversity
|
|
134
|
-
svd: { enabled: false } // No dimension loss
|
|
135
|
-
};
|
|
136
|
-
// ============================================================================
|
|
137
|
-
// Version Information
|
|
138
|
-
// ============================================================================
|
|
139
|
-
export const VERSION = {
|
|
140
|
-
major: 2,
|
|
141
|
-
minor: 0,
|
|
142
|
-
patch: 0,
|
|
143
|
-
prerelease: 'alpha.2',
|
|
144
|
-
features: 'advanced',
|
|
145
|
-
full: '2.0.0-alpha.2+advanced'
|
|
146
|
-
};
|
|
147
|
-
// ============================================================================
|
|
148
|
-
// Utility Functions
|
|
149
|
-
// ============================================================================
|
|
150
|
-
/**
|
|
151
|
-
* Estimate memory usage for configuration
|
|
152
|
-
*/
|
|
153
|
-
export function estimateMemoryUsage(numVectors, dimension, config) {
|
|
154
|
-
var _a, _b, _c;
|
|
155
|
-
let vectorBytes = numVectors * dimension * 4; // Float32Array
|
|
156
|
-
// Apply PQ compression
|
|
157
|
-
if ((_a = config.pq) === null || _a === void 0 ? void 0 : _a.enabled) {
|
|
158
|
-
const subvectors = config.pq.subvectors || 8;
|
|
159
|
-
vectorBytes = numVectors * (subvectors + 4); // codes + norm
|
|
160
|
-
}
|
|
161
|
-
// Apply SVD compression
|
|
162
|
-
if ((_b = config.svd) === null || _b === void 0 ? void 0 : _b.enabled) {
|
|
163
|
-
const targetDim = config.svd.targetDim || dimension / 2;
|
|
164
|
-
vectorBytes = numVectors * targetDim * 4;
|
|
165
|
-
}
|
|
166
|
-
// HNSW index overhead
|
|
167
|
-
let indexBytes = 0;
|
|
168
|
-
if ((_c = config.hnsw) === null || _c === void 0 ? void 0 : _c.enabled) {
|
|
169
|
-
const M = config.hnsw.M || 16;
|
|
170
|
-
const avgConnections = M * 1.5; // Estimate
|
|
171
|
-
indexBytes = numVectors * avgConnections * 4; // Connection IDs
|
|
172
|
-
}
|
|
173
|
-
const total = vectorBytes + indexBytes;
|
|
174
|
-
return {
|
|
175
|
-
vectors: vectorBytes,
|
|
176
|
-
index: indexBytes,
|
|
177
|
-
total,
|
|
178
|
-
totalMB: total / (1024 * 1024)
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Recommend configuration based on dataset size
|
|
183
|
-
*/
|
|
184
|
-
export function recommendConfig(numVectors, dimension) {
|
|
185
|
-
if (numVectors < 1000) {
|
|
186
|
-
return {
|
|
187
|
-
name: 'SMALL_DATASET',
|
|
188
|
-
config: SMALL_DATASET_CONFIG,
|
|
189
|
-
reason: 'Small dataset, linear search is fast enough'
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
else if (numVectors < 10000) {
|
|
193
|
-
return {
|
|
194
|
-
name: 'MEDIUM_DATASET',
|
|
195
|
-
config: MEDIUM_DATASET_CONFIG,
|
|
196
|
-
reason: 'Medium dataset, HNSW + PQ8 recommended'
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
return {
|
|
201
|
-
name: 'LARGE_DATASET',
|
|
202
|
-
config: LARGE_DATASET_CONFIG,
|
|
203
|
-
reason: 'Large dataset, aggressive compression + HNSW recommended'
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Benchmark search performance
|
|
209
|
-
*/
|
|
210
|
-
export function benchmarkSearch(searchFn_1) {
|
|
211
|
-
return __awaiter(this, arguments, void 0, function* (searchFn, numQueries = 100, k = 10, dimension = 384) {
|
|
212
|
-
const times = [];
|
|
213
|
-
for (let i = 0; i < numQueries; i++) {
|
|
214
|
-
const query = new Float32Array(dimension);
|
|
215
|
-
for (let d = 0; d < dimension; d++) {
|
|
216
|
-
query[d] = Math.random() - 0.5;
|
|
217
|
-
}
|
|
218
|
-
const start = performance.now();
|
|
219
|
-
searchFn(query, k);
|
|
220
|
-
const end = performance.now();
|
|
221
|
-
times.push(end - start);
|
|
222
|
-
}
|
|
223
|
-
times.sort((a, b) => a - b);
|
|
224
|
-
return {
|
|
225
|
-
avgTimeMs: times.reduce((a, b) => a + b, 0) / times.length,
|
|
226
|
-
minTimeMs: times[0],
|
|
227
|
-
maxTimeMs: times[times.length - 1],
|
|
228
|
-
p50Ms: times[Math.floor(times.length * 0.5)],
|
|
229
|
-
p95Ms: times[Math.floor(times.length * 0.95)],
|
|
230
|
-
p99Ms: times[Math.floor(times.length * 0.99)]
|
|
231
|
-
};
|
|
232
|
-
});
|
|
233
|
-
}
|
package/dist/browser/index.d.ts
DELETED
|
@@ -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;AAgCD;;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"}
|
package/dist/browser/index.js
DELETED
|
@@ -1,225 +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
|
-
// ============================================================================
|
|
17
|
-
// Product Quantization
|
|
18
|
-
// ============================================================================
|
|
19
|
-
export { ProductQuantization, createPQ8, createPQ16, createPQ32 } from './ProductQuantization';
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// HNSW Indexing
|
|
22
|
-
// ============================================================================
|
|
23
|
-
export { HNSWIndex, createHNSW, createFastHNSW, createAccurateHNSW } from './HNSWIndex';
|
|
24
|
-
// ============================================================================
|
|
25
|
-
// Advanced Features
|
|
26
|
-
// ============================================================================
|
|
27
|
-
export { GraphNeuralNetwork, MaximalMarginalRelevance, TensorCompression, BatchProcessor } from './AdvancedFeatures';
|
|
28
|
-
// ============================================================================
|
|
29
|
-
// Feature Detection
|
|
30
|
-
// ============================================================================
|
|
31
|
-
/**
|
|
32
|
-
* Detect available browser features
|
|
33
|
-
*/
|
|
34
|
-
export function detectFeatures() {
|
|
35
|
-
return {
|
|
36
|
-
indexedDB: 'indexedDB' in globalThis,
|
|
37
|
-
broadcastChannel: 'BroadcastChannel' in globalThis,
|
|
38
|
-
webWorkers: typeof globalThis.Worker !== 'undefined',
|
|
39
|
-
wasmSIMD: detectWasmSIMD(),
|
|
40
|
-
sharedArrayBuffer: typeof SharedArrayBuffer !== 'undefined'
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Detect WASM SIMD support
|
|
45
|
-
*/
|
|
46
|
-
async function detectWasmSIMD() {
|
|
47
|
-
try {
|
|
48
|
-
// Check if WebAssembly is available (browser context)
|
|
49
|
-
if (typeof globalThis.WebAssembly === 'undefined') {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
// WASM SIMD detection via feature test
|
|
53
|
-
const simdTest = new Uint8Array([
|
|
54
|
-
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00,
|
|
55
|
-
0x01, 0x05, 0x01, 0x60, 0x00, 0x01, 0x7b, 0x03,
|
|
56
|
-
0x02, 0x01, 0x00, 0x0a, 0x0a, 0x01, 0x08, 0x00,
|
|
57
|
-
0xfd, 0x0c, 0xfd, 0x0c, 0xfd, 0x54, 0x0b
|
|
58
|
-
]);
|
|
59
|
-
const WA = globalThis.WebAssembly;
|
|
60
|
-
const module = await WA.instantiate(simdTest);
|
|
61
|
-
return module instanceof WA.Instance;
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
// ============================================================================
|
|
68
|
-
// Configuration Presets
|
|
69
|
-
// ============================================================================
|
|
70
|
-
/**
|
|
71
|
-
* Recommended configuration for small datasets (<1K vectors)
|
|
72
|
-
*/
|
|
73
|
-
export const SMALL_DATASET_CONFIG = {
|
|
74
|
-
pq: { enabled: false },
|
|
75
|
-
hnsw: { enabled: false },
|
|
76
|
-
gnn: { enabled: true, numHeads: 2 },
|
|
77
|
-
mmr: { enabled: true, lambda: 0.7 },
|
|
78
|
-
svd: { enabled: false }
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Recommended configuration for medium datasets (1K-10K vectors)
|
|
82
|
-
*/
|
|
83
|
-
export const MEDIUM_DATASET_CONFIG = {
|
|
84
|
-
pq: { enabled: true, subvectors: 8 },
|
|
85
|
-
hnsw: { enabled: true, M: 16 },
|
|
86
|
-
gnn: { enabled: true, numHeads: 4 },
|
|
87
|
-
mmr: { enabled: true, lambda: 0.7 },
|
|
88
|
-
svd: { enabled: false }
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* Recommended configuration for large datasets (10K-100K vectors)
|
|
92
|
-
*/
|
|
93
|
-
export const LARGE_DATASET_CONFIG = {
|
|
94
|
-
pq: { enabled: true, subvectors: 16 },
|
|
95
|
-
hnsw: { enabled: true, M: 32 },
|
|
96
|
-
gnn: { enabled: true, numHeads: 4 },
|
|
97
|
-
mmr: { enabled: true, lambda: 0.7 },
|
|
98
|
-
svd: { enabled: true, targetDim: 128 }
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Memory-optimized configuration (minimal memory usage)
|
|
102
|
-
*/
|
|
103
|
-
export const MEMORY_OPTIMIZED_CONFIG = {
|
|
104
|
-
pq: { enabled: true, subvectors: 32 }, // 16x compression
|
|
105
|
-
hnsw: { enabled: true, M: 8 }, // Fewer connections
|
|
106
|
-
gnn: { enabled: false },
|
|
107
|
-
mmr: { enabled: false },
|
|
108
|
-
svd: { enabled: true, targetDim: 64 } // Aggressive dimension reduction
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Speed-optimized configuration (fastest search)
|
|
112
|
-
*/
|
|
113
|
-
export const SPEED_OPTIMIZED_CONFIG = {
|
|
114
|
-
pq: { enabled: false }, // No compression overhead
|
|
115
|
-
hnsw: { enabled: true, M: 32, efSearch: 100 }, // Maximum HNSW quality
|
|
116
|
-
gnn: { enabled: false },
|
|
117
|
-
mmr: { enabled: false },
|
|
118
|
-
svd: { enabled: false }
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* Quality-optimized configuration (best result quality)
|
|
122
|
-
*/
|
|
123
|
-
export const QUALITY_OPTIMIZED_CONFIG = {
|
|
124
|
-
pq: { enabled: false }, // No compression
|
|
125
|
-
hnsw: { enabled: true, M: 48, efConstruction: 400 }, // Highest quality
|
|
126
|
-
gnn: { enabled: true, numHeads: 8 }, // More attention heads
|
|
127
|
-
mmr: { enabled: true, lambda: 0.8 }, // More diversity
|
|
128
|
-
svd: { enabled: false } // No dimension loss
|
|
129
|
-
};
|
|
130
|
-
// ============================================================================
|
|
131
|
-
// Version Information
|
|
132
|
-
// ============================================================================
|
|
133
|
-
export const VERSION = {
|
|
134
|
-
major: 2,
|
|
135
|
-
minor: 0,
|
|
136
|
-
patch: 0,
|
|
137
|
-
prerelease: 'alpha.2',
|
|
138
|
-
features: 'advanced',
|
|
139
|
-
full: '2.0.0-alpha.2+advanced'
|
|
140
|
-
};
|
|
141
|
-
// ============================================================================
|
|
142
|
-
// Utility Functions
|
|
143
|
-
// ============================================================================
|
|
144
|
-
/**
|
|
145
|
-
* Estimate memory usage for configuration
|
|
146
|
-
*/
|
|
147
|
-
export function estimateMemoryUsage(numVectors, dimension, config) {
|
|
148
|
-
let vectorBytes = numVectors * dimension * 4; // Float32Array
|
|
149
|
-
// Apply PQ compression
|
|
150
|
-
if (config.pq?.enabled) {
|
|
151
|
-
const subvectors = config.pq.subvectors || 8;
|
|
152
|
-
vectorBytes = numVectors * (subvectors + 4); // codes + norm
|
|
153
|
-
}
|
|
154
|
-
// Apply SVD compression
|
|
155
|
-
if (config.svd?.enabled) {
|
|
156
|
-
const targetDim = config.svd.targetDim || dimension / 2;
|
|
157
|
-
vectorBytes = numVectors * targetDim * 4;
|
|
158
|
-
}
|
|
159
|
-
// HNSW index overhead
|
|
160
|
-
let indexBytes = 0;
|
|
161
|
-
if (config.hnsw?.enabled) {
|
|
162
|
-
const M = config.hnsw.M || 16;
|
|
163
|
-
const avgConnections = M * 1.5; // Estimate
|
|
164
|
-
indexBytes = numVectors * avgConnections * 4; // Connection IDs
|
|
165
|
-
}
|
|
166
|
-
const total = vectorBytes + indexBytes;
|
|
167
|
-
return {
|
|
168
|
-
vectors: vectorBytes,
|
|
169
|
-
index: indexBytes,
|
|
170
|
-
total,
|
|
171
|
-
totalMB: total / (1024 * 1024)
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Recommend configuration based on dataset size
|
|
176
|
-
*/
|
|
177
|
-
export function recommendConfig(numVectors, dimension) {
|
|
178
|
-
if (numVectors < 1000) {
|
|
179
|
-
return {
|
|
180
|
-
name: 'SMALL_DATASET',
|
|
181
|
-
config: SMALL_DATASET_CONFIG,
|
|
182
|
-
reason: 'Small dataset, linear search is fast enough'
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
else if (numVectors < 10000) {
|
|
186
|
-
return {
|
|
187
|
-
name: 'MEDIUM_DATASET',
|
|
188
|
-
config: MEDIUM_DATASET_CONFIG,
|
|
189
|
-
reason: 'Medium dataset, HNSW + PQ8 recommended'
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
return {
|
|
194
|
-
name: 'LARGE_DATASET',
|
|
195
|
-
config: LARGE_DATASET_CONFIG,
|
|
196
|
-
reason: 'Large dataset, aggressive compression + HNSW recommended'
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Benchmark search performance
|
|
202
|
-
*/
|
|
203
|
-
export async function benchmarkSearch(searchFn, numQueries = 100, k = 10, dimension = 384) {
|
|
204
|
-
const times = [];
|
|
205
|
-
for (let i = 0; i < numQueries; i++) {
|
|
206
|
-
const query = new Float32Array(dimension);
|
|
207
|
-
for (let d = 0; d < dimension; d++) {
|
|
208
|
-
query[d] = Math.random() - 0.5;
|
|
209
|
-
}
|
|
210
|
-
const start = performance.now();
|
|
211
|
-
searchFn(query, k);
|
|
212
|
-
const end = performance.now();
|
|
213
|
-
times.push(end - start);
|
|
214
|
-
}
|
|
215
|
-
times.sort((a, b) => a - b);
|
|
216
|
-
return {
|
|
217
|
-
avgTimeMs: times.reduce((a, b) => a + b, 0) / times.length,
|
|
218
|
-
minTimeMs: times[0],
|
|
219
|
-
maxTimeMs: times[times.length - 1],
|
|
220
|
-
p50Ms: times[Math.floor(times.length * 0.5)],
|
|
221
|
-
p95Ms: times[Math.floor(times.length * 0.95)],
|
|
222
|
-
p99Ms: times[Math.floor(times.length * 0.99)]
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
|