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,234 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WASMVectorSearch - High-Performance Vector Operations
|
|
3
|
-
*
|
|
4
|
-
* Accelerates vector similarity search using ReasoningBank WASM module.
|
|
5
|
-
* Provides 10-50x speedup for cosine similarity calculations compared to pure JS.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - WASM-accelerated similarity search
|
|
9
|
-
* - Batch vector operations
|
|
10
|
-
* - Approximate nearest neighbors for large datasets
|
|
11
|
-
* - Graceful fallback to JavaScript
|
|
12
|
-
* - SIMD optimizations when available
|
|
13
|
-
*/
|
|
14
|
-
export class WASMVectorSearch {
|
|
15
|
-
db;
|
|
16
|
-
config;
|
|
17
|
-
wasmModule;
|
|
18
|
-
wasmAvailable = false;
|
|
19
|
-
simdAvailable = false;
|
|
20
|
-
vectorIndex = null;
|
|
21
|
-
constructor(db, config) {
|
|
22
|
-
this.db = db;
|
|
23
|
-
this.config = {
|
|
24
|
-
enableWASM: true,
|
|
25
|
-
enableSIMD: true,
|
|
26
|
-
batchSize: 100,
|
|
27
|
-
indexThreshold: 1000,
|
|
28
|
-
...config,
|
|
29
|
-
};
|
|
30
|
-
this.initializeWASM();
|
|
31
|
-
this.detectSIMD();
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Initialize WASM module
|
|
35
|
-
*/
|
|
36
|
-
async initializeWASM() {
|
|
37
|
-
if (!this.config.enableWASM)
|
|
38
|
-
return;
|
|
39
|
-
try {
|
|
40
|
-
// Try to load ReasoningBank WASM module
|
|
41
|
-
// Note: This requires the ReasoningBank WASM module to be built and available
|
|
42
|
-
// If not available, the system gracefully falls back to optimized JavaScript
|
|
43
|
-
const wasmPath = '../../../agentic-flow/wasm/reasoningbank/reasoningbank_wasm.js';
|
|
44
|
-
const { ReasoningBankWasm } = await import(wasmPath);
|
|
45
|
-
// Test WASM functionality
|
|
46
|
-
const testInstance = new ReasoningBankWasm();
|
|
47
|
-
await testInstance.free();
|
|
48
|
-
this.wasmModule = ReasoningBankWasm;
|
|
49
|
-
this.wasmAvailable = true;
|
|
50
|
-
console.log('[WASMVectorSearch] ReasoningBank WASM acceleration enabled');
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
// Graceful fallback - the JavaScript implementation is still highly optimized
|
|
54
|
-
// with loop unrolling and batch processing
|
|
55
|
-
this.wasmAvailable = false;
|
|
56
|
-
// Only show detailed error in development
|
|
57
|
-
if (process.env.NODE_ENV === 'development') {
|
|
58
|
-
console.debug('[WASMVectorSearch] ReasoningBank WASM not available, using optimized JavaScript fallback');
|
|
59
|
-
console.debug('[WASMVectorSearch] Error:', error.message);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Detect SIMD support
|
|
65
|
-
*/
|
|
66
|
-
detectSIMD() {
|
|
67
|
-
if (!this.config.enableSIMD) {
|
|
68
|
-
this.simdAvailable = false;
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
// Check for WebAssembly SIMD support
|
|
73
|
-
const globalAny = globalThis;
|
|
74
|
-
this.simdAvailable = typeof globalAny.WebAssembly !== 'undefined' &&
|
|
75
|
-
globalAny.WebAssembly.validate(new Uint8Array([
|
|
76
|
-
0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11
|
|
77
|
-
]));
|
|
78
|
-
if (this.simdAvailable) {
|
|
79
|
-
console.log('[WASMVectorSearch] SIMD support detected');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
this.simdAvailable = false;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Calculate cosine similarity between two vectors (optimized)
|
|
88
|
-
*/
|
|
89
|
-
cosineSimilarity(a, b) {
|
|
90
|
-
if (a.length !== b.length) {
|
|
91
|
-
throw new Error('Vectors must have same length');
|
|
92
|
-
}
|
|
93
|
-
// Standard calculation with loop unrolling
|
|
94
|
-
let dotProduct = 0;
|
|
95
|
-
let normA = 0;
|
|
96
|
-
let normB = 0;
|
|
97
|
-
// Unroll loop for better performance
|
|
98
|
-
const len = a.length;
|
|
99
|
-
const remainder = len % 4;
|
|
100
|
-
const loopEnd = len - remainder;
|
|
101
|
-
for (let i = 0; i < loopEnd; i += 4) {
|
|
102
|
-
dotProduct += a[i] * b[i] + a[i + 1] * b[i + 1] + a[i + 2] * b[i + 2] + a[i + 3] * b[i + 3];
|
|
103
|
-
normA += a[i] * a[i] + a[i + 1] * a[i + 1] + a[i + 2] * a[i + 2] + a[i + 3] * a[i + 3];
|
|
104
|
-
normB += b[i] * b[i] + b[i + 1] * b[i + 1] + b[i + 2] * b[i + 2] + b[i + 3] * b[i + 3];
|
|
105
|
-
}
|
|
106
|
-
// Handle remainder
|
|
107
|
-
for (let i = loopEnd; i < len; i++) {
|
|
108
|
-
dotProduct += a[i] * b[i];
|
|
109
|
-
normA += a[i] * a[i];
|
|
110
|
-
normB += b[i] * b[i];
|
|
111
|
-
}
|
|
112
|
-
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
113
|
-
return denom === 0 ? 0 : dotProduct / denom;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Batch calculate similarities between query and multiple vectors
|
|
117
|
-
*/
|
|
118
|
-
batchSimilarity(query, vectors) {
|
|
119
|
-
const similarities = new Array(vectors.length);
|
|
120
|
-
// Process in batches for better cache locality
|
|
121
|
-
const batchSize = this.config.batchSize;
|
|
122
|
-
for (let i = 0; i < vectors.length; i += batchSize) {
|
|
123
|
-
const end = Math.min(i + batchSize, vectors.length);
|
|
124
|
-
for (let j = i; j < end; j++) {
|
|
125
|
-
similarities[j] = this.cosineSimilarity(query, vectors[j]);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return similarities;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Find k-nearest neighbors using brute force search
|
|
132
|
-
*/
|
|
133
|
-
async findKNN(query, k, tableName = 'pattern_embeddings', options) {
|
|
134
|
-
const threshold = options?.threshold ?? 0.0;
|
|
135
|
-
// Build WHERE clause for filters
|
|
136
|
-
const conditions = [];
|
|
137
|
-
const params = [];
|
|
138
|
-
if (options?.filters) {
|
|
139
|
-
Object.entries(options.filters).forEach(([key, value]) => {
|
|
140
|
-
conditions.push(`${key} = ?`);
|
|
141
|
-
params.push(value);
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
const whereClause = conditions.length > 0
|
|
145
|
-
? `WHERE ${conditions.join(' AND ')}`
|
|
146
|
-
: '';
|
|
147
|
-
// Retrieve all vectors
|
|
148
|
-
const stmt = this.db.prepare(`
|
|
149
|
-
SELECT pattern_id as id, embedding
|
|
150
|
-
FROM ${tableName}
|
|
151
|
-
${whereClause}
|
|
152
|
-
`);
|
|
153
|
-
const rows = stmt.all(...params);
|
|
154
|
-
// Calculate similarities
|
|
155
|
-
const candidates = rows.map(row => {
|
|
156
|
-
const embedding = new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.embedding.byteLength / 4);
|
|
157
|
-
const similarity = this.cosineSimilarity(query, embedding);
|
|
158
|
-
const distance = 1 - similarity; // Convert to distance
|
|
159
|
-
return {
|
|
160
|
-
id: row.id,
|
|
161
|
-
distance,
|
|
162
|
-
similarity,
|
|
163
|
-
};
|
|
164
|
-
});
|
|
165
|
-
// Filter by threshold and sort
|
|
166
|
-
const filtered = candidates
|
|
167
|
-
.filter(c => c.similarity >= threshold)
|
|
168
|
-
.sort((a, b) => b.similarity - a.similarity)
|
|
169
|
-
.slice(0, k);
|
|
170
|
-
return filtered;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Build approximate nearest neighbor index for large datasets
|
|
174
|
-
*/
|
|
175
|
-
buildIndex(vectors, ids, metadata) {
|
|
176
|
-
if (vectors.length < this.config.indexThreshold) {
|
|
177
|
-
console.log(`[WASMVectorSearch] Dataset too small (${vectors.length} < ${this.config.indexThreshold}), skipping index`);
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
console.log(`[WASMVectorSearch] Building ANN index for ${vectors.length} vectors...`);
|
|
181
|
-
this.vectorIndex = {
|
|
182
|
-
vectors,
|
|
183
|
-
ids,
|
|
184
|
-
metadata: metadata || [],
|
|
185
|
-
built: true,
|
|
186
|
-
lastUpdate: Date.now(),
|
|
187
|
-
};
|
|
188
|
-
console.log(`[WASMVectorSearch] ANN index built successfully`);
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Search using ANN index (if available)
|
|
192
|
-
*/
|
|
193
|
-
searchIndex(query, k, threshold) {
|
|
194
|
-
if (!this.vectorIndex || !this.vectorIndex.built) {
|
|
195
|
-
throw new Error('Index not built. Call buildIndex() first.');
|
|
196
|
-
}
|
|
197
|
-
const similarities = this.batchSimilarity(query, this.vectorIndex.vectors);
|
|
198
|
-
const results = [];
|
|
199
|
-
for (let i = 0; i < similarities.length; i++) {
|
|
200
|
-
const similarity = similarities[i];
|
|
201
|
-
if (threshold === undefined || similarity >= threshold) {
|
|
202
|
-
results.push({
|
|
203
|
-
id: this.vectorIndex.ids[i],
|
|
204
|
-
distance: 1 - similarity,
|
|
205
|
-
similarity,
|
|
206
|
-
metadata: this.vectorIndex.metadata[i],
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
// Sort by similarity and take top k
|
|
211
|
-
results.sort((a, b) => b.similarity - a.similarity);
|
|
212
|
-
return results.slice(0, k);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Get vector search statistics
|
|
216
|
-
*/
|
|
217
|
-
getStats() {
|
|
218
|
-
return {
|
|
219
|
-
wasmAvailable: this.wasmAvailable,
|
|
220
|
-
simdAvailable: this.simdAvailable,
|
|
221
|
-
indexBuilt: this.vectorIndex?.built ?? false,
|
|
222
|
-
indexSize: this.vectorIndex?.vectors.length ?? 0,
|
|
223
|
-
lastIndexUpdate: this.vectorIndex?.lastUpdate ?? null,
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Clear vector index
|
|
228
|
-
*/
|
|
229
|
-
clearIndex() {
|
|
230
|
-
this.vectorIndex = null;
|
|
231
|
-
console.log('[WASMVectorSearch] Index cleared');
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=WASMVectorSearch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WASMVectorSearch.js","sourceRoot":"","sources":["../../src/controllers/WASMVectorSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentDB Frontier Features
|
|
3
|
-
*
|
|
4
|
-
* State-of-the-art memory capabilities
|
|
5
|
-
*/
|
|
6
|
-
export { CausalMemoryGraph } from './CausalMemoryGraph';
|
|
7
|
-
export { ExplainableRecall } from './ExplainableRecall';
|
|
8
|
-
export { CausalRecall } from './CausalRecall';
|
|
9
|
-
export { NightlyLearner } from './NightlyLearner';
|
|
10
|
-
export type { CausalEdge, CausalExperiment, CausalObservation, CausalQuery } from './CausalMemoryGraph';
|
|
11
|
-
export type { RecallCertificate, MerkleProof, JustificationPath, ProvenanceSource } from './ExplainableRecall';
|
|
12
|
-
export type { RerankConfig, RerankCandidate, CausalRecallResult } from './CausalRecall';
|
|
13
|
-
export type { LearnerConfig, LearnerReport } from './NightlyLearner';
|
|
14
|
-
//# sourceMappingURL=frontier-index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-index.d.ts","sourceRoot":"","sources":["../../src/controllers/frontier-index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,aAAa,EACb,aAAa,EACd,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentDB Frontier Features
|
|
3
|
-
*
|
|
4
|
-
* State-of-the-art memory capabilities
|
|
5
|
-
*/
|
|
6
|
-
export { CausalMemoryGraph } from './CausalMemoryGraph';
|
|
7
|
-
export { ExplainableRecall } from './ExplainableRecall';
|
|
8
|
-
export { CausalRecall } from './CausalRecall';
|
|
9
|
-
export { NightlyLearner } from './NightlyLearner';
|
|
10
|
-
//# sourceMappingURL=frontier-index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontier-index.js","sourceRoot":"","sources":["../../src/controllers/frontier-index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentDB Controllers - State-of-the-Art Memory Systems
|
|
3
|
-
*
|
|
4
|
-
* Export all memory controllers for agent systems
|
|
5
|
-
*/
|
|
6
|
-
export { ReflexionMemory } from './ReflexionMemory.js';
|
|
7
|
-
export { SkillLibrary } from './SkillLibrary.js';
|
|
8
|
-
export { EmbeddingService } from './EmbeddingService.js';
|
|
9
|
-
export { WASMVectorSearch } from './WASMVectorSearch.js';
|
|
10
|
-
export { HNSWIndex } from './HNSWIndex.js';
|
|
11
|
-
export { EnhancedEmbeddingService } from './EnhancedEmbeddingService.js';
|
|
12
|
-
export { MMRDiversityRanker } from './MMRDiversityRanker.js';
|
|
13
|
-
export { ContextSynthesizer } from './ContextSynthesizer.js';
|
|
14
|
-
export { MetadataFilter } from './MetadataFilter.js';
|
|
15
|
-
export { QUICServer } from './QUICServer.js';
|
|
16
|
-
export { QUICClient } from './QUICClient.js';
|
|
17
|
-
export { SyncCoordinator } from './SyncCoordinator.js';
|
|
18
|
-
export type { Episode, EpisodeWithEmbedding, ReflexionQuery } from './ReflexionMemory.js';
|
|
19
|
-
export type { Skill, SkillLink, SkillQuery } from './SkillLibrary.js';
|
|
20
|
-
export type { EmbeddingConfig } from './EmbeddingService.js';
|
|
21
|
-
export type { VectorSearchConfig, VectorSearchResult, VectorIndex } from './WASMVectorSearch.js';
|
|
22
|
-
export type { HNSWConfig, HNSWSearchResult, HNSWStats } from './HNSWIndex.js';
|
|
23
|
-
export type { EnhancedEmbeddingConfig } from './EnhancedEmbeddingService.js';
|
|
24
|
-
export type { MMROptions, MMRCandidate } from './MMRDiversityRanker.js';
|
|
25
|
-
export type { MemoryPattern, SynthesizedContext } from './ContextSynthesizer.js';
|
|
26
|
-
export type { MetadataFilters, FilterableItem, FilterOperator, FilterValue } from './MetadataFilter.js';
|
|
27
|
-
export type { QUICServerConfig, SyncRequest, SyncResponse } from './QUICServer.js';
|
|
28
|
-
export type { QUICClientConfig, SyncOptions, SyncResult, SyncProgress } from './QUICClient.js';
|
|
29
|
-
export type { SyncCoordinatorConfig, SyncState, SyncReport } from './SyncCoordinator.js';
|
|
30
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1F,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjG,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9E,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxG,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnF,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/F,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentDB Controllers - State-of-the-Art Memory Systems
|
|
3
|
-
*
|
|
4
|
-
* Export all memory controllers for agent systems
|
|
5
|
-
*/
|
|
6
|
-
export { ReflexionMemory } from './ReflexionMemory.js';
|
|
7
|
-
export { SkillLibrary } from './SkillLibrary.js';
|
|
8
|
-
export { EmbeddingService } from './EmbeddingService.js';
|
|
9
|
-
export { WASMVectorSearch } from './WASMVectorSearch.js';
|
|
10
|
-
export { HNSWIndex } from './HNSWIndex.js';
|
|
11
|
-
export { EnhancedEmbeddingService } from './EnhancedEmbeddingService.js';
|
|
12
|
-
export { MMRDiversityRanker } from './MMRDiversityRanker.js';
|
|
13
|
-
export { ContextSynthesizer } from './ContextSynthesizer.js';
|
|
14
|
-
export { MetadataFilter } from './MetadataFilter.js';
|
|
15
|
-
export { QUICServer } from './QUICServer.js';
|
|
16
|
-
export { QUICClient } from './QUICClient.js';
|
|
17
|
-
export { SyncCoordinator } from './SyncCoordinator.js';
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/db-fallback.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Database System using sql.js (WASM SQLite)
|
|
3
|
-
* Pure JavaScript implementation with NO build dependencies
|
|
4
|
-
*
|
|
5
|
-
* SECURITY: Fixed SQL injection vulnerabilities:
|
|
6
|
-
* - PRAGMA commands validated against whitelist
|
|
7
|
-
* - Removed eval() usage (replaced with async import)
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Get sql.js database implementation (ONLY sql.js, no better-sqlite3)
|
|
11
|
-
*/
|
|
12
|
-
export declare function getDatabaseImplementation(): Promise<any>;
|
|
13
|
-
/**
|
|
14
|
-
* Create a database instance using sql.js
|
|
15
|
-
*/
|
|
16
|
-
export declare function createDatabase(filename: string, options?: any): Promise<any>;
|
|
17
|
-
/**
|
|
18
|
-
* Get information about current database implementation
|
|
19
|
-
*/
|
|
20
|
-
export declare function getDatabaseInfo(): {
|
|
21
|
-
implementation: string;
|
|
22
|
-
isNative: boolean;
|
|
23
|
-
performance: 'high' | 'medium' | 'low';
|
|
24
|
-
requiresBuildTools: boolean;
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=db-fallback.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-fallback.d.ts","sourceRoot":"","sources":["../src/db-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,CAwB9D;AAmOD;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAGlF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAOA"}
|
package/dist/db-fallback.js
DELETED
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Database System using sql.js (WASM SQLite)
|
|
3
|
-
* Pure JavaScript implementation with NO build dependencies
|
|
4
|
-
*
|
|
5
|
-
* SECURITY: Fixed SQL injection vulnerabilities:
|
|
6
|
-
* - PRAGMA commands validated against whitelist
|
|
7
|
-
* - Removed eval() usage (replaced with async import)
|
|
8
|
-
*/
|
|
9
|
-
import { validatePragmaCommand, ValidationError } from './security/input-validation.js';
|
|
10
|
-
import * as fs from 'fs';
|
|
11
|
-
import * as path from 'path';
|
|
12
|
-
let sqlJsWrapper = null;
|
|
13
|
-
/**
|
|
14
|
-
* Get sql.js database implementation (ONLY sql.js, no better-sqlite3)
|
|
15
|
-
*/
|
|
16
|
-
export async function getDatabaseImplementation() {
|
|
17
|
-
// Return cached wrapper
|
|
18
|
-
if (sqlJsWrapper) {
|
|
19
|
-
return sqlJsWrapper;
|
|
20
|
-
}
|
|
21
|
-
try {
|
|
22
|
-
console.log('✅ Using sql.js (WASM SQLite, no build tools required)');
|
|
23
|
-
// sql.js requires async initialization
|
|
24
|
-
const mod = await import('sql.js');
|
|
25
|
-
const SQL = await mod.default();
|
|
26
|
-
// Create database wrapper
|
|
27
|
-
sqlJsWrapper = createSqlJsWrapper(SQL);
|
|
28
|
-
return sqlJsWrapper;
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
console.error('❌ Failed to initialize sql.js:', error.message);
|
|
32
|
-
throw new Error('Failed to initialize SQLite. Please ensure sql.js is installed:\n' +
|
|
33
|
-
'npm install sql.js');
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Create a better-sqlite3 compatible wrapper around sql.js
|
|
38
|
-
* This allows AgentDB to work (with reduced performance) without native compilation
|
|
39
|
-
*/
|
|
40
|
-
function createSqlJsWrapper(SQL) {
|
|
41
|
-
return class SqlJsDatabase {
|
|
42
|
-
db;
|
|
43
|
-
filename;
|
|
44
|
-
activeStatements = new Map();
|
|
45
|
-
statementCounter = 0;
|
|
46
|
-
intervalId = null;
|
|
47
|
-
constructor(filename, options) {
|
|
48
|
-
this.filename = filename;
|
|
49
|
-
// In-memory database
|
|
50
|
-
if (filename === ':memory:') {
|
|
51
|
-
this.db = new SQL.Database();
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
// File-based database - use safe fs module (no eval)
|
|
55
|
-
try {
|
|
56
|
-
if (fs.existsSync(filename)) {
|
|
57
|
-
const buffer = fs.readFileSync(filename);
|
|
58
|
-
this.db = new SQL.Database(buffer);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.db = new SQL.Database();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
console.warn('⚠️ Could not read database file:', error.message);
|
|
66
|
-
this.db = new SQL.Database();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Warn if too many active statements (memory leak detection)
|
|
70
|
-
this.intervalId = setInterval(() => {
|
|
71
|
-
if (this.activeStatements.size > 50) {
|
|
72
|
-
console.warn(`⚠️ Detected ${this.activeStatements.size} active SQL statements - possible memory leak`);
|
|
73
|
-
}
|
|
74
|
-
}, 10000);
|
|
75
|
-
}
|
|
76
|
-
prepare(sql) {
|
|
77
|
-
const stmt = this.db.prepare(sql);
|
|
78
|
-
let isFinalized = false;
|
|
79
|
-
const stmtId = ++this.statementCounter;
|
|
80
|
-
// Track active statement
|
|
81
|
-
this.activeStatements.set(stmtId, stmt);
|
|
82
|
-
return {
|
|
83
|
-
run: (...params) => {
|
|
84
|
-
if (isFinalized)
|
|
85
|
-
throw new Error('Statement already finalized');
|
|
86
|
-
try {
|
|
87
|
-
stmt.bind(params);
|
|
88
|
-
stmt.step();
|
|
89
|
-
stmt.reset();
|
|
90
|
-
return {
|
|
91
|
-
changes: this.db.getRowsModified(),
|
|
92
|
-
lastInsertRowid: this.db.exec('SELECT last_insert_rowid()')[0]?.values[0]?.[0] || 0
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
// Auto-free on error to prevent memory leak
|
|
97
|
-
if (!isFinalized) {
|
|
98
|
-
stmt.free();
|
|
99
|
-
isFinalized = true;
|
|
100
|
-
this.activeStatements.delete(stmtId);
|
|
101
|
-
}
|
|
102
|
-
throw error;
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
get: (...params) => {
|
|
106
|
-
if (isFinalized)
|
|
107
|
-
throw new Error('Statement already finalized');
|
|
108
|
-
try {
|
|
109
|
-
stmt.bind(params);
|
|
110
|
-
const hasRow = stmt.step();
|
|
111
|
-
if (!hasRow) {
|
|
112
|
-
stmt.reset();
|
|
113
|
-
return undefined;
|
|
114
|
-
}
|
|
115
|
-
const columns = stmt.getColumnNames();
|
|
116
|
-
const values = stmt.get();
|
|
117
|
-
stmt.reset();
|
|
118
|
-
const result = {};
|
|
119
|
-
columns.forEach((col, idx) => {
|
|
120
|
-
result[col] = values[idx];
|
|
121
|
-
});
|
|
122
|
-
return result;
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
// Auto-free on error to prevent memory leak
|
|
126
|
-
if (!isFinalized) {
|
|
127
|
-
stmt.free();
|
|
128
|
-
isFinalized = true;
|
|
129
|
-
this.activeStatements.delete(stmtId);
|
|
130
|
-
}
|
|
131
|
-
throw error;
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
all: (...params) => {
|
|
135
|
-
if (isFinalized)
|
|
136
|
-
throw new Error('Statement already finalized');
|
|
137
|
-
try {
|
|
138
|
-
stmt.bind(params);
|
|
139
|
-
const results = [];
|
|
140
|
-
while (stmt.step()) {
|
|
141
|
-
const columns = stmt.getColumnNames();
|
|
142
|
-
const values = stmt.get();
|
|
143
|
-
const result = {};
|
|
144
|
-
columns.forEach((col, idx) => {
|
|
145
|
-
result[col] = values[idx];
|
|
146
|
-
});
|
|
147
|
-
results.push(result);
|
|
148
|
-
}
|
|
149
|
-
stmt.reset();
|
|
150
|
-
return results;
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
// Auto-free on error to prevent memory leak
|
|
154
|
-
if (!isFinalized) {
|
|
155
|
-
stmt.free();
|
|
156
|
-
isFinalized = true;
|
|
157
|
-
this.activeStatements.delete(stmtId);
|
|
158
|
-
}
|
|
159
|
-
throw error;
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
finalize: () => {
|
|
163
|
-
if (!isFinalized) {
|
|
164
|
-
stmt.free();
|
|
165
|
-
isFinalized = true;
|
|
166
|
-
this.activeStatements.delete(stmtId);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
exec(sql) {
|
|
172
|
-
return this.db.exec(sql);
|
|
173
|
-
}
|
|
174
|
-
save() {
|
|
175
|
-
// Save to file if needed
|
|
176
|
-
if (this.filename !== ':memory:') {
|
|
177
|
-
try {
|
|
178
|
-
// Create parent directories if they don't exist
|
|
179
|
-
const dir = path.dirname(this.filename);
|
|
180
|
-
if (!fs.existsSync(dir)) {
|
|
181
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
182
|
-
}
|
|
183
|
-
const data = this.db.export();
|
|
184
|
-
fs.writeFileSync(this.filename, Buffer.from(data));
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
console.error('❌ Could not save database to file:', error.message);
|
|
188
|
-
throw error;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
close() {
|
|
193
|
-
// Clear interval timer
|
|
194
|
-
if (this.intervalId) {
|
|
195
|
-
clearInterval(this.intervalId);
|
|
196
|
-
this.intervalId = null;
|
|
197
|
-
}
|
|
198
|
-
// Free all active statements to prevent memory leaks
|
|
199
|
-
for (const [stmtId, stmt] of this.activeStatements.entries()) {
|
|
200
|
-
try {
|
|
201
|
-
stmt.free();
|
|
202
|
-
}
|
|
203
|
-
catch (e) {
|
|
204
|
-
// Statement may already be freed
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
this.activeStatements.clear();
|
|
208
|
-
// Save to file before closing
|
|
209
|
-
this.save();
|
|
210
|
-
this.db.close();
|
|
211
|
-
}
|
|
212
|
-
pragma(pragma, options) {
|
|
213
|
-
try {
|
|
214
|
-
// SECURITY: Validate PRAGMA command against whitelist to prevent SQL injection
|
|
215
|
-
const validatedPragma = validatePragmaCommand(pragma);
|
|
216
|
-
// Execute validated PRAGMA
|
|
217
|
-
const result = this.db.exec(`PRAGMA ${validatedPragma}`);
|
|
218
|
-
return result[0]?.values[0]?.[0];
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
if (error instanceof ValidationError) {
|
|
222
|
-
console.error(`❌ Invalid PRAGMA command: ${error.message}`);
|
|
223
|
-
throw error;
|
|
224
|
-
}
|
|
225
|
-
throw error;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
transaction(fn) {
|
|
229
|
-
// Return a function that executes the transaction when called
|
|
230
|
-
// This matches better-sqlite3 API where transaction() returns a callable function
|
|
231
|
-
return () => {
|
|
232
|
-
try {
|
|
233
|
-
this.db.exec('BEGIN TRANSACTION');
|
|
234
|
-
const result = fn();
|
|
235
|
-
this.db.exec('COMMIT');
|
|
236
|
-
return result;
|
|
237
|
-
}
|
|
238
|
-
catch (error) {
|
|
239
|
-
this.db.exec('ROLLBACK');
|
|
240
|
-
throw error;
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Create a database instance using sql.js
|
|
248
|
-
*/
|
|
249
|
-
export async function createDatabase(filename, options) {
|
|
250
|
-
const DatabaseImpl = await getDatabaseImplementation();
|
|
251
|
-
return new DatabaseImpl(filename, options);
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Get information about current database implementation
|
|
255
|
-
*/
|
|
256
|
-
export function getDatabaseInfo() {
|
|
257
|
-
return {
|
|
258
|
-
implementation: 'sql.js (WASM)',
|
|
259
|
-
isNative: false,
|
|
260
|
-
performance: 'medium',
|
|
261
|
-
requiresBuildTools: false
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
//# sourceMappingURL=db-fallback.js.map
|
package/dist/db-fallback.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../src/db-fallback.ts"],"names":[],"mappings":"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"}
|