agentdb 3.0.0-alpha.2 → 3.0.0-alpha.20
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/README.md +208 -2593
- package/dist/src/backends/GraphBackend.d.ts +8 -8
- package/dist/src/backends/GraphBackend.d.ts.map +1 -1
- package/dist/src/backends/GraphBackend.js +15 -16
- package/dist/src/backends/GraphBackend.js.map +1 -1
- package/dist/src/backends/LearningBackend.d.ts +2 -2
- package/dist/src/backends/LearningBackend.d.ts.map +1 -1
- package/dist/src/backends/LearningBackend.js +10 -11
- package/dist/src/backends/LearningBackend.js.map +1 -1
- package/dist/src/backends/VectorBackend.d.ts +10 -0
- package/dist/src/backends/VectorBackend.d.ts.map +1 -1
- package/dist/src/backends/detector.d.ts +3 -25
- package/dist/src/backends/detector.d.ts.map +1 -1
- package/dist/src/backends/detector.js +15 -119
- package/dist/src/backends/detector.js.map +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +55 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.js +133 -7
- package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +2 -2
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.js +12 -21
- package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
- package/dist/src/backends/index.d.ts +3 -25
- package/dist/src/backends/index.d.ts.map +1 -1
- package/dist/src/backends/index.js +1 -23
- package/dist/src/backends/index.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts +4 -4
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.js +2 -2
- package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.js +5 -10
- package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
- package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +1 -1
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js +45 -2
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +1 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +26 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.js +93 -31
- package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -1
- package/dist/src/benchmark/BenchmarkSuite.d.ts.map +1 -1
- package/dist/src/benchmark/BenchmarkSuite.js +0 -2
- package/dist/src/benchmark/BenchmarkSuite.js.map +1 -1
- package/dist/src/benchmarks/wasm-vector-benchmark.d.ts +10 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.js +196 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.js.map +1 -0
- package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -1
- package/dist/src/browser/AdvancedFeatures.js +10 -3
- package/dist/src/browser/AdvancedFeatures.js.map +1 -1
- package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
- package/dist/src/browser/AttentionBrowser.js +13 -5
- package/dist/src/browser/AttentionBrowser.js.map +1 -1
- package/dist/src/browser/HNSWIndex.d.ts +1 -31
- package/dist/src/browser/HNSWIndex.d.ts.map +1 -1
- package/dist/src/browser/HNSWIndex.js +18 -136
- package/dist/src/browser/HNSWIndex.js.map +1 -1
- package/dist/src/browser/ProductQuantization.d.ts.map +1 -1
- package/dist/src/browser/ProductQuantization.js +1 -0
- package/dist/src/browser/ProductQuantization.js.map +1 -1
- package/dist/src/browser/index.d.ts +3 -3
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +1 -2
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/cli/agentdb-cli.d.ts +2 -3
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +142 -96
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/dist/src/cli/commands/attention.js +15 -5
- package/dist/src/cli/commands/attention.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts +0 -2
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +6 -111
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/hyperbolic.d.ts.map +1 -1
- package/dist/src/cli/commands/hyperbolic.js +15 -3
- package/dist/src/cli/commands/hyperbolic.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +1 -2
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +7 -30
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/install-embeddings.d.ts +1 -1
- package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
- package/dist/src/cli/commands/install-embeddings.js +17 -11
- package/dist/src/cli/commands/install-embeddings.js.map +1 -1
- package/dist/src/cli/commands/learn.d.ts.map +1 -1
- package/dist/src/cli/commands/learn.js +12 -6
- package/dist/src/cli/commands/learn.js.map +1 -1
- package/dist/src/cli/commands/migrate.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate.js +31 -10
- package/dist/src/cli/commands/migrate.js.map +1 -1
- package/dist/src/cli/commands/route.d.ts.map +1 -1
- package/dist/src/cli/commands/route.js +6 -1
- package/dist/src/cli/commands/route.js.map +1 -1
- package/dist/src/cli/commands/simulate-report.js +14 -2
- package/dist/src/cli/commands/simulate-report.js.map +1 -1
- package/dist/src/cli/commands/simulate-wizard.js.map +1 -1
- package/dist/src/cli/commands/simulate.d.ts +7 -0
- package/dist/src/cli/commands/simulate.d.ts.map +1 -0
- package/dist/src/cli/commands/simulate.js +100 -0
- package/dist/src/cli/commands/simulate.js.map +1 -0
- package/dist/src/cli/commands/status.js +1 -5
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/lib/attention-config.d.ts +2 -2
- package/dist/src/cli/lib/attention-config.d.ts.map +1 -1
- package/dist/src/cli/lib/attention-config.js +1 -2
- package/dist/src/cli/lib/attention-config.js.map +1 -1
- package/dist/src/cli/lib/config-manager.d.ts +110 -0
- package/dist/src/cli/lib/config-manager.d.ts.map +1 -0
- package/dist/src/cli/lib/config-manager.js +512 -0
- package/dist/src/cli/lib/config-manager.js.map +1 -0
- package/dist/src/cli/lib/config-validator.d.ts +1 -1
- package/dist/src/cli/lib/config-validator.d.ts.map +1 -1
- package/dist/src/cli/lib/health-monitor.d.ts +149 -0
- package/dist/src/cli/lib/health-monitor.d.ts.map +1 -0
- package/dist/src/cli/lib/health-monitor.js +380 -0
- package/dist/src/cli/lib/health-monitor.js.map +1 -0
- package/dist/src/cli/lib/history-tracker.d.ts +103 -0
- package/dist/src/cli/lib/history-tracker.d.ts.map +1 -0
- package/dist/src/cli/lib/history-tracker.js +352 -0
- package/dist/src/cli/lib/history-tracker.js.map +1 -0
- package/dist/src/cli/lib/report-store.d.ts.map +1 -1
- package/dist/src/cli/lib/report-store.js +3 -5
- package/dist/src/cli/lib/report-store.js.map +1 -1
- package/dist/src/cli/lib/simulation-registry.d.ts +1 -1
- package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-registry.js +0 -1
- package/dist/src/cli/lib/simulation-registry.js.map +1 -1
- package/dist/src/cli/lib/simulation-runner.d.ts +1 -1
- package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-runner.js +1 -4
- package/dist/src/cli/lib/simulation-runner.js.map +1 -1
- package/dist/src/compatibility/DeprecationWarnings.d.ts.map +1 -1
- package/dist/src/compatibility/V1toV2Adapter.d.ts +2 -2
- package/dist/src/compatibility/V1toV2Adapter.d.ts.map +1 -1
- package/dist/src/compatibility/V1toV2Adapter.js +1 -14
- package/dist/src/compatibility/V1toV2Adapter.js.map +1 -1
- package/dist/src/compatibility/VersionDetector.d.ts +1 -1
- package/dist/src/compatibility/VersionDetector.d.ts.map +1 -1
- package/dist/src/compatibility/VersionDetector.js +3 -3
- package/dist/src/compatibility/VersionDetector.js.map +1 -1
- package/dist/src/compatibility/index.d.ts +3 -0
- package/dist/src/compatibility/index.d.ts.map +1 -1
- package/dist/src/compatibility/index.js +11 -0
- package/dist/src/compatibility/index.js.map +1 -1
- package/dist/src/controllers/AttentionService.d.ts +98 -122
- package/dist/src/controllers/AttentionService.d.ts.map +1 -1
- package/dist/src/controllers/AttentionService.js +463 -238
- package/dist/src/controllers/AttentionService.js.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.d.ts +4 -4
- package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.js +7 -8
- package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
- package/dist/src/controllers/CausalRecall.d.ts +3 -2
- package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
- package/dist/src/controllers/CausalRecall.js +21 -10
- package/dist/src/controllers/CausalRecall.js.map +1 -1
- package/dist/src/controllers/ContextSynthesizer.d.ts +1 -1
- package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.d.ts +29 -0
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.js +149 -34
- package/dist/src/controllers/EmbeddingService.js.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.js +14 -7
- package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
- package/dist/src/controllers/ExplainableRecall.d.ts +5 -4
- package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
- package/dist/src/controllers/ExplainableRecall.js +12 -20
- package/dist/src/controllers/ExplainableRecall.js.map +1 -1
- package/dist/src/controllers/HNSWIndex.d.ts +5 -4
- package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
- package/dist/src/controllers/HNSWIndex.js +6 -9
- package/dist/src/controllers/HNSWIndex.js.map +1 -1
- package/dist/src/controllers/LearningSystem.d.ts +10 -105
- package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
- package/dist/src/controllers/LearningSystem.js +28 -39
- package/dist/src/controllers/LearningSystem.js.map +1 -1
- package/dist/src/controllers/MMRDiversityRanker.d.ts +1 -1
- package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -1
- package/dist/src/controllers/MemoryController.d.ts +15 -2
- package/dist/src/controllers/MemoryController.d.ts.map +1 -1
- package/dist/src/controllers/MemoryController.js +33 -3
- package/dist/src/controllers/MemoryController.js.map +1 -1
- package/dist/src/controllers/MetadataFilter.d.ts +3 -3
- package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
- package/dist/src/controllers/MetadataFilter.js +6 -9
- package/dist/src/controllers/MetadataFilter.js.map +1 -1
- package/dist/src/controllers/MincutService.d.ts +92 -0
- package/dist/src/controllers/MincutService.d.ts.map +1 -0
- package/dist/src/controllers/MincutService.js +336 -0
- package/dist/src/controllers/MincutService.js.map +1 -0
- package/dist/src/controllers/NightlyLearner.d.ts +3 -4
- package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
- package/dist/src/controllers/NightlyLearner.js +17 -22
- package/dist/src/controllers/NightlyLearner.js.map +1 -1
- package/dist/src/controllers/QUICClient.d.ts +7 -10
- package/dist/src/controllers/QUICClient.d.ts.map +1 -1
- package/dist/src/controllers/QUICClient.js +3 -3
- package/dist/src/controllers/QUICClient.js.map +1 -1
- package/dist/src/controllers/QUICServer.d.ts +4 -4
- package/dist/src/controllers/QUICServer.d.ts.map +1 -1
- package/dist/src/controllers/QUICServer.js +14 -22
- package/dist/src/controllers/QUICServer.js.map +1 -1
- package/dist/src/controllers/ReasoningBank.d.ts +2 -9
- package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
- package/dist/src/controllers/ReasoningBank.js +39 -35
- package/dist/src/controllers/ReasoningBank.js.map +1 -1
- package/dist/src/controllers/ReflexionMemory.d.ts +51 -1
- package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
- package/dist/src/controllers/ReflexionMemory.js +307 -33
- package/dist/src/controllers/ReflexionMemory.js.map +1 -1
- package/dist/src/controllers/SkillLibrary.d.ts +5 -11
- package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
- package/dist/src/controllers/SkillLibrary.js +39 -48
- package/dist/src/controllers/SkillLibrary.js.map +1 -1
- package/dist/src/controllers/SparsificationService.d.ts +151 -0
- package/dist/src/controllers/SparsificationService.d.ts.map +1 -0
- package/dist/src/controllers/SparsificationService.js +375 -0
- package/dist/src/controllers/SparsificationService.js.map +1 -0
- package/dist/src/controllers/SyncCoordinator.d.ts +3 -2
- package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
- package/dist/src/controllers/SyncCoordinator.js +2 -2
- package/dist/src/controllers/SyncCoordinator.js.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.d.ts +7 -6
- package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.js +2 -4
- package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
- package/dist/src/controllers/attention/AttentionCache.d.ts +38 -0
- package/dist/src/controllers/attention/AttentionCache.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionCache.js +80 -0
- package/dist/src/controllers/attention/AttentionCache.js.map +1 -0
- package/dist/src/controllers/attention/AttentionConfig.d.ts +127 -0
- package/dist/src/controllers/attention/AttentionConfig.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionConfig.js +124 -0
- package/dist/src/controllers/attention/AttentionConfig.js.map +1 -0
- package/dist/src/controllers/attention/AttentionCore.d.ts +89 -0
- package/dist/src/controllers/attention/AttentionCore.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionCore.js +289 -0
- package/dist/src/controllers/attention/AttentionCore.js.map +1 -0
- package/dist/src/controllers/attention/AttentionHelpers.d.ts +55 -0
- package/dist/src/controllers/attention/AttentionHelpers.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionHelpers.js +148 -0
- package/dist/src/controllers/attention/AttentionHelpers.js.map +1 -0
- package/dist/src/controllers/attention/AttentionMetrics.d.ts +55 -0
- package/dist/src/controllers/attention/AttentionMetrics.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionMetrics.js +72 -0
- package/dist/src/controllers/attention/AttentionMetrics.js.map +1 -0
- package/dist/src/controllers/attention/AttentionWASM.d.ts +98 -0
- package/dist/src/controllers/attention/AttentionWASM.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionWASM.js +147 -0
- package/dist/src/controllers/attention/AttentionWASM.js.map +1 -0
- package/dist/src/controllers/attention/CrossAttentionController.d.ts +1 -1
- package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +1 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +1 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +1 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.js +5 -8
- package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +1 -1
- package/dist/src/controllers/attention/SelfAttentionController.d.ts +1 -1
- package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +1 -1
- package/dist/src/controllers/attention/index.d.ts +9 -0
- package/dist/src/controllers/attention/index.d.ts.map +1 -1
- package/dist/src/controllers/attention/index.js +8 -0
- package/dist/src/controllers/attention/index.js.map +1 -1
- package/dist/src/controllers/frontier-index.d.ts +14 -0
- package/dist/src/controllers/frontier-index.d.ts.map +1 -0
- package/dist/src/controllers/frontier-index.js +10 -0
- package/dist/src/controllers/frontier-index.js.map +1 -0
- package/dist/src/controllers/index.d.ts +7 -1
- package/dist/src/controllers/index.d.ts.map +1 -1
- package/dist/src/controllers/index.js +5 -1
- package/dist/src/controllers/index.js.map +1 -1
- package/dist/src/controllers/prerequisites.d.ts +76 -0
- package/dist/src/controllers/prerequisites.d.ts.map +1 -0
- package/dist/src/controllers/prerequisites.js +235 -0
- package/dist/src/controllers/prerequisites.js.map +1 -0
- package/dist/src/core/AgentDB.d.ts +11 -36
- package/dist/src/core/AgentDB.d.ts.map +1 -1
- package/dist/src/core/AgentDB.js +31 -89
- package/dist/src/core/AgentDB.js.map +1 -1
- package/dist/src/core/QueryCache.d.ts +1 -1
- package/dist/src/core/QueryCache.d.ts.map +1 -1
- package/dist/src/core/QueryCache.js +2 -6
- package/dist/src/core/QueryCache.js.map +1 -1
- package/dist/src/db-fallback.d.ts +40 -3
- package/dist/src/db-fallback.d.ts.map +1 -1
- package/dist/src/db-fallback.js +308 -84
- package/dist/src/db-fallback.js.map +1 -1
- package/dist/src/db-test.d.ts +13 -0
- package/dist/src/db-test.d.ts.map +1 -0
- package/dist/src/db-test.js +55 -0
- package/dist/src/db-test.js.map +1 -0
- package/dist/src/db-unified.d.ts +76 -0
- package/dist/src/db-unified.d.ts.map +1 -0
- package/dist/src/db-unified.js +281 -0
- package/dist/src/db-unified.js.map +1 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts +58 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts.map +1 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.js +137 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.js.map +1 -0
- package/dist/src/embedding/index.d.ts +3 -0
- package/dist/src/embedding/index.d.ts.map +1 -0
- package/dist/src/embedding/index.js +2 -0
- package/dist/src/embedding/index.js.map +1 -0
- package/dist/src/examples/quic-sync-example.d.ts +9 -0
- package/dist/src/examples/quic-sync-example.d.ts.map +1 -0
- package/dist/src/examples/quic-sync-example.js +169 -0
- package/dist/src/examples/quic-sync-example.js.map +1 -0
- package/dist/src/examples/wasm-vector-usage.d.ts +12 -0
- package/dist/src/examples/wasm-vector-usage.d.ts.map +1 -0
- package/dist/src/examples/wasm-vector-usage.js +190 -0
- package/dist/src/examples/wasm-vector-usage.js.map +1 -0
- package/dist/src/governance/MetaHarnessGateway.d.ts +55 -0
- package/dist/src/governance/MetaHarnessGateway.d.ts.map +1 -0
- package/dist/src/governance/MetaHarnessGateway.js +65 -0
- package/dist/src/governance/MetaHarnessGateway.js.map +1 -0
- package/dist/src/governance/RvfExperimentBranch.d.ts +65 -0
- package/dist/src/governance/RvfExperimentBranch.d.ts.map +1 -0
- package/dist/src/governance/RvfExperimentBranch.js +115 -0
- package/dist/src/governance/RvfExperimentBranch.js.map +1 -0
- package/dist/src/index.d.ts +7 -25
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/agentdb-mcp-server.js +162 -159
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
- package/dist/src/mcp/learning-tools-handlers.d.ts +16 -0
- package/dist/src/mcp/learning-tools-handlers.d.ts.map +1 -0
- package/dist/src/mcp/learning-tools-handlers.js +105 -0
- package/dist/src/mcp/learning-tools-handlers.js.map +1 -0
- package/dist/src/model/ModelCacheLoader.d.ts +24 -0
- package/dist/src/model/ModelCacheLoader.d.ts.map +1 -0
- package/dist/src/model/ModelCacheLoader.js +123 -0
- package/dist/src/model/ModelCacheLoader.js.map +1 -0
- package/dist/src/observability/integration.d.ts +3 -3
- package/dist/src/observability/integration.d.ts.map +1 -1
- package/dist/src/observability/integration.js +2 -0
- package/dist/src/observability/integration.js.map +1 -1
- package/dist/src/observability/telemetry.d.ts +3 -3
- package/dist/src/observability/telemetry.d.ts.map +1 -1
- package/dist/src/observability/telemetry.js +3 -5
- package/dist/src/observability/telemetry.js.map +1 -1
- package/dist/src/optimizations/BatchOperations.d.ts +6 -6
- package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
- package/dist/src/optimizations/BatchOperations.js +6 -5
- package/dist/src/optimizations/BatchOperations.js.map +1 -1
- package/dist/src/optimizations/Quantization.d.ts +330 -0
- package/dist/src/optimizations/Quantization.d.ts.map +1 -0
- package/dist/src/optimizations/Quantization.js +793 -0
- package/dist/src/optimizations/Quantization.js.map +1 -0
- package/dist/src/optimizations/QueryOptimizer.d.ts +4 -4
- package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -1
- package/dist/src/optimizations/QueryOptimizer.js +1 -3
- package/dist/src/optimizations/QueryOptimizer.js.map +1 -1
- package/dist/src/optimizations/ToolCache.d.ts +4 -4
- package/dist/src/optimizations/ToolCache.d.ts.map +1 -1
- package/dist/src/optimizations/ToolCache.js.map +1 -1
- package/dist/src/quantization/vector-quantization.d.ts.map +1 -1
- package/dist/src/quantization/vector-quantization.js +1 -5
- package/dist/src/quantization/vector-quantization.js.map +1 -1
- package/dist/src/schemas/inline.d.ts +3 -0
- package/dist/src/schemas/inline.d.ts.map +1 -0
- package/dist/src/schemas/inline.js +10 -0
- package/dist/src/schemas/inline.js.map +1 -0
- package/dist/src/search/HybridSearch.d.ts +6 -6
- package/dist/src/search/HybridSearch.d.ts.map +1 -1
- package/dist/src/search/HybridSearch.js.map +1 -1
- package/dist/src/security/input-validation.d.ts +34 -12
- package/dist/src/security/input-validation.d.ts.map +1 -1
- package/dist/src/security/input-validation.js +46 -1
- package/dist/src/security/input-validation.js.map +1 -1
- package/dist/src/security/limits.d.ts +150 -0
- package/dist/src/security/limits.d.ts.map +1 -0
- package/dist/src/security/limits.js +288 -0
- package/dist/src/security/limits.js.map +1 -0
- package/dist/src/security/mcp-policy.d.ts +13 -0
- package/dist/src/security/mcp-policy.d.ts.map +1 -0
- package/dist/src/security/mcp-policy.js +66 -0
- package/dist/src/security/mcp-policy.js.map +1 -0
- package/dist/src/security/path-security.d.ts +100 -0
- package/dist/src/security/path-security.d.ts.map +1 -0
- package/dist/src/security/path-security.js +339 -0
- package/dist/src/security/path-security.js.map +1 -0
- package/dist/src/security/validation.d.ts +95 -0
- package/dist/src/security/validation.d.ts.map +1 -0
- package/dist/src/security/validation.js +315 -0
- package/dist/src/security/validation.js.map +1 -0
- package/dist/src/services/AttentionService.d.ts.map +1 -1
- package/dist/src/services/AttentionService.js +2 -4
- package/dist/src/services/AttentionService.js.map +1 -1
- package/dist/src/services/LLMRouter.d.ts +2 -2
- package/dist/src/services/LLMRouter.d.ts.map +1 -1
- package/dist/src/services/LLMRouter.js +3 -9
- package/dist/src/services/LLMRouter.js.map +1 -1
- package/dist/src/services/audit-logger.service.d.ts +168 -0
- package/dist/src/services/audit-logger.service.d.ts.map +1 -0
- package/dist/src/services/audit-logger.service.js +331 -0
- package/dist/src/services/audit-logger.service.js.map +1 -0
- package/dist/src/services/enhanced-embeddings.d.ts +271 -0
- package/dist/src/services/enhanced-embeddings.d.ts.map +1 -0
- package/dist/src/services/enhanced-embeddings.js +1035 -0
- package/dist/src/services/enhanced-embeddings.js.map +1 -0
- package/dist/src/services/federated-learning.d.ts +172 -0
- package/dist/src/services/federated-learning.d.ts.map +1 -0
- package/dist/src/services/federated-learning.js +342 -0
- package/dist/src/services/federated-learning.js.map +1 -0
- package/dist/src/simd/simd-vector-ops.d.ts.map +1 -1
- package/dist/src/simd/simd-vector-ops.js +0 -2
- package/dist/src/simd/simd-vector-ops.js.map +1 -1
- package/dist/src/types/attention.d.ts +249 -0
- package/dist/src/types/attention.d.ts.map +1 -0
- package/dist/src/types/attention.js +43 -0
- package/dist/src/types/attention.js.map +1 -0
- package/dist/src/types/database.types.d.ts +11 -11
- package/dist/src/types/database.types.d.ts.map +1 -1
- package/dist/src/types/database.types.js +2 -4
- package/dist/src/types/database.types.js.map +1 -1
- package/dist/src/types/graph.d.ts +29 -0
- package/dist/src/types/graph.d.ts.map +1 -0
- package/dist/src/types/graph.js +8 -0
- package/dist/src/types/graph.js.map +1 -0
- package/dist/src/types/quic.d.ts +518 -0
- package/dist/src/types/quic.d.ts.map +1 -0
- package/dist/src/types/quic.js +272 -0
- package/dist/src/types/quic.js.map +1 -0
- package/dist/src/utils/attention-metrics.d.ts +76 -0
- package/dist/src/utils/attention-metrics.d.ts.map +1 -0
- package/dist/src/utils/attention-metrics.js +178 -0
- package/dist/src/utils/attention-metrics.js.map +1 -0
- package/dist/src/wasm-loader.d.ts +0 -1
- package/dist/src/wasm-loader.d.ts.map +1 -1
- package/dist/src/wasm-loader.js +0 -2
- package/dist/src/wasm-loader.js.map +1 -1
- package/dist/src/wrappers/agentdb-fast.d.ts +5 -4
- package/dist/src/wrappers/agentdb-fast.d.ts.map +1 -1
- package/dist/src/wrappers/agentdb-fast.js +6 -13
- package/dist/src/wrappers/agentdb-fast.js.map +1 -1
- package/dist/src/wrappers/attention-fallbacks.d.ts +0 -8
- package/dist/src/wrappers/attention-fallbacks.d.ts.map +1 -1
- package/dist/src/wrappers/attention-fallbacks.js +3 -6
- package/dist/src/wrappers/attention-fallbacks.js.map +1 -1
- package/dist/src/wrappers/attention-native.d.ts +111 -0
- package/dist/src/wrappers/attention-native.d.ts.map +1 -0
- package/dist/src/wrappers/attention-native.js +273 -0
- package/dist/src/wrappers/attention-native.js.map +1 -0
- package/dist/src/wrappers/embedding-service.d.ts +4 -4
- package/dist/src/wrappers/embedding-service.d.ts.map +1 -1
- package/dist/src/wrappers/embedding-service.js +2 -8
- package/dist/src/wrappers/embedding-service.js.map +1 -1
- package/dist/src/wrappers/gnn-wrapper.d.ts.map +1 -1
- package/dist/src/wrappers/gnn-wrapper.js +3 -7
- package/dist/src/wrappers/gnn-wrapper.js.map +1 -1
- package/package.json +87 -18
- package/scripts/postinstall.cjs +13 -144
- package/dist/src/cli/tests/agentdb-cli.test.d.ts +0 -8
- package/dist/src/cli/tests/agentdb-cli.test.d.ts.map +0 -1
- package/dist/src/cli/tests/agentdb-cli.test.js +0 -50
- package/dist/src/cli/tests/agentdb-cli.test.js.map +0 -1
- package/dist/src/cli/tests/attention-cli.test.d.ts +0 -5
- package/dist/src/cli/tests/attention-cli.test.d.ts.map +0 -1
- package/dist/src/cli/tests/attention-cli.test.js +0 -257
- package/dist/src/cli/tests/attention-cli.test.js.map +0 -1
- package/dist/src/coordination/MultiDatabaseCoordinator.d.ts +0 -348
- package/dist/src/coordination/MultiDatabaseCoordinator.d.ts.map +0 -1
- package/dist/src/coordination/MultiDatabaseCoordinator.js +0 -803
- package/dist/src/coordination/MultiDatabaseCoordinator.js.map +0 -1
- package/dist/src/coordination/index.d.ts +0 -10
- package/dist/src/coordination/index.d.ts.map +0 -1
- package/dist/src/coordination/index.js +0 -10
- package/dist/src/coordination/index.js.map +0 -1
- package/dist/src/tests/attention-service.test.d.ts +0 -7
- package/dist/src/tests/attention-service.test.d.ts.map +0 -1
- package/dist/src/tests/attention-service.test.js +0 -401
- package/dist/src/tests/attention-service.test.js.map +0 -1
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts +0 -7
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts.map +0 -1
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js +0 -283
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js.map +0 -1
- package/dist/src/tests/query-cache.test.d.ts +0 -7
- package/dist/src/tests/query-cache.test.d.ts.map +0 -1
- package/dist/src/tests/query-cache.test.js +0 -343
- package/dist/src/tests/query-cache.test.js.map +0 -1
- package/dist/src/tests/ruvector-integration.test.d.ts +0 -14
- package/dist/src/tests/ruvector-integration.test.d.ts.map +0 -1
- package/dist/src/tests/ruvector-integration.test.js +0 -1156
- package/dist/src/tests/ruvector-integration.test.js.map +0 -1
- package/dist/src/tests/unit/auth/crypto.utils.test.d.ts +0 -6
- package/dist/src/tests/unit/auth/crypto.utils.test.d.ts.map +0 -1
- package/dist/src/tests/unit/auth/crypto.utils.test.js +0 -310
- package/dist/src/tests/unit/auth/crypto.utils.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts +0 -5
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js +0 -207
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts +0 -5
- package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/migration-utils.test.js +0 -264
- package/dist/src/tests/unit/compatibility/migration-utils.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts +0 -7
- package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/v1-adapter.test.js +0 -228
- package/dist/src/tests/unit/compatibility/v1-adapter.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/version-detector.test.d.ts +0 -10
- package/dist/src/tests/unit/compatibility/version-detector.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/version-detector.test.js +0 -162
- package/dist/src/tests/unit/compatibility/version-detector.test.js.map +0 -1
- package/dist/src/tests/vector-quantization.test.d.ts +0 -5
- package/dist/src/tests/vector-quantization.test.d.ts.map +0 -1
- package/dist/src/tests/vector-quantization.test.js +0 -338
- package/dist/src/tests/vector-quantization.test.js.map +0 -1
- package/dist/src/tests/wasm-vector-search.test.d.ts +0 -7
- package/dist/src/tests/wasm-vector-search.test.d.ts.map +0 -1
- package/dist/src/tests/wasm-vector-search.test.js +0 -193
- package/dist/src/tests/wasm-vector-search.test.js.map +0 -1
- package/dist/src/utils/crypto.utils.d.ts +0 -122
- package/dist/src/utils/crypto.utils.d.ts.map +0 -1
- package/dist/src/utils/crypto.utils.js +0 -296
- package/dist/src/utils/crypto.utils.js.map +0 -1
package/dist/src/db-fallback.js
CHANGED
|
@@ -1,40 +1,234 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Database System
|
|
3
|
-
*
|
|
2
|
+
* Database System backed by SQLite.
|
|
3
|
+
*
|
|
4
|
+
* Resolution order (ruflo #2235 A):
|
|
5
|
+
* 1. **better-sqlite3** if the optional peer is loadable — native, faster,
|
|
6
|
+
* what most callers actually want when they install the native module.
|
|
7
|
+
* 2. **sql.js** (WASM) — pure-JS fallback, requires no build tools.
|
|
8
|
+
*
|
|
9
|
+
* Both implementations expose the same `db.prepare(sql).run/get/all(...)`
|
|
10
|
+
* interface (the sql.js wrapper below was designed to mimic better-sqlite3),
|
|
11
|
+
* so callers don't care which one served them.
|
|
4
12
|
*
|
|
5
13
|
* SECURITY: Fixed SQL injection vulnerabilities:
|
|
6
14
|
* - PRAGMA commands validated against whitelist
|
|
7
15
|
* - Removed eval() usage (replaced with async import)
|
|
8
16
|
*/
|
|
9
17
|
import { validatePragmaCommand, ValidationError } from './security/input-validation.js';
|
|
18
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
10
19
|
import * as fs from 'fs';
|
|
11
20
|
import * as path from 'path';
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- cached wrapper class
|
|
13
|
-
let
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- cached impl (better-sqlite3 class or sql.js wrapper class)
|
|
22
|
+
let cachedImpl = null;
|
|
23
|
+
let cachedImplKind = null;
|
|
24
|
+
export class SqlJsConcurrentModificationError extends Error {
|
|
25
|
+
code = 'AGENTDB_SQLJS_CONCURRENT_MODIFICATION';
|
|
26
|
+
constructor(filename) {
|
|
27
|
+
super(`Refusing to overwrite "${filename}" because it changed after this sql.js instance opened. ` +
|
|
28
|
+
'Another process may have written to the database; reopen it before retrying.');
|
|
29
|
+
this.name = 'SqlJsConcurrentModificationError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function fingerprintFile(filename) {
|
|
33
|
+
let fd;
|
|
34
|
+
try {
|
|
35
|
+
fd = fs.openSync(filename, 'r');
|
|
36
|
+
const before = fs.fstatSync(fd);
|
|
37
|
+
const data = fs.readFileSync(fd);
|
|
38
|
+
const after = fs.fstatSync(fd);
|
|
39
|
+
if (before.dev !== after.dev ||
|
|
40
|
+
before.ino !== after.ino ||
|
|
41
|
+
before.size !== after.size ||
|
|
42
|
+
before.mtimeMs !== after.mtimeMs ||
|
|
43
|
+
before.ctimeMs !== after.ctimeMs) {
|
|
44
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
exists: true,
|
|
48
|
+
device: after.dev,
|
|
49
|
+
inode: after.ino,
|
|
50
|
+
mode: after.mode,
|
|
51
|
+
size: after.size,
|
|
52
|
+
mtimeMs: after.mtimeMs,
|
|
53
|
+
ctimeMs: after.ctimeMs,
|
|
54
|
+
sha256: createHash('sha256').update(data).digest('hex'),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error.code === 'ENOENT')
|
|
59
|
+
return { exists: false };
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
if (fd !== undefined)
|
|
64
|
+
fs.closeSync(fd);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function captureDatabaseFileState(filename) {
|
|
68
|
+
return {
|
|
69
|
+
database: fingerprintFile(filename),
|
|
70
|
+
wal: fingerprintFile(`${filename}-wal`),
|
|
71
|
+
shm: fingerprintFile(`${filename}-shm`),
|
|
72
|
+
journal: fingerprintFile(`${filename}-journal`),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function loadSqlJsDatabaseFile(filename) {
|
|
76
|
+
const state = captureDatabaseFileState(filename);
|
|
77
|
+
if ((state.wal.exists && state.wal.size > 0) ||
|
|
78
|
+
(state.journal.exists && state.journal.size > 0)) {
|
|
79
|
+
throw new Error(`Refusing to open "${filename}" with sql.js while an active SQLite WAL or journal exists. ` +
|
|
80
|
+
'Checkpoint/close the other SQLite writer first.');
|
|
81
|
+
}
|
|
82
|
+
if (!state.database.exists)
|
|
83
|
+
return { data: null, state };
|
|
84
|
+
// fingerprintFile hashes the exact bytes read from a stable descriptor.
|
|
85
|
+
// Read once more and verify the digest so the returned bytes and baseline
|
|
86
|
+
// are guaranteed to describe the same database generation.
|
|
87
|
+
const data = fs.readFileSync(filename);
|
|
88
|
+
const digest = createHash('sha256').update(data).digest('hex');
|
|
89
|
+
if (digest !== state.database.sha256) {
|
|
90
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
91
|
+
}
|
|
92
|
+
if (data.length < 16 ||
|
|
93
|
+
data.subarray(0, 16).toString('utf8') !== 'SQLite format 3\u0000') {
|
|
94
|
+
throw new Error(`Refusing to open invalid SQLite database file "${filename}"`);
|
|
95
|
+
}
|
|
96
|
+
return { data: new Uint8Array(data), state };
|
|
97
|
+
}
|
|
98
|
+
function sameDatabaseFileState(left, right) {
|
|
99
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
100
|
+
}
|
|
101
|
+
function fsyncDirectory(directory) {
|
|
102
|
+
let fd;
|
|
103
|
+
try {
|
|
104
|
+
fd = fs.openSync(directory, 'r');
|
|
105
|
+
fs.fsyncSync(fd);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
// Some platforms/filesystems do not permit opening or syncing directories.
|
|
109
|
+
const code = error.code;
|
|
110
|
+
if (code !== 'EINVAL' && code !== 'EPERM' && code !== 'EISDIR')
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
if (fd !== undefined)
|
|
115
|
+
fs.closeSync(fd);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export function persistSqlJsDatabase(filename, data, expectedState) {
|
|
119
|
+
const directory = path.dirname(filename);
|
|
120
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
121
|
+
if (fs.existsSync(filename) && fs.lstatSync(filename).isSymbolicLink()) {
|
|
122
|
+
throw new Error(`Refusing to replace symbolic-link database path "${filename}"`);
|
|
123
|
+
}
|
|
124
|
+
const lockPath = `${filename}.agentdb.lock`;
|
|
125
|
+
let lockFd;
|
|
126
|
+
let tempPath;
|
|
127
|
+
try {
|
|
128
|
+
try {
|
|
129
|
+
lockFd = fs.openSync(lockPath, 'wx', 0o600);
|
|
130
|
+
fs.writeSync(lockFd, `${process.pid}\n`);
|
|
131
|
+
fs.fsyncSync(lockFd);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (error.code === 'EEXIST') {
|
|
135
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
136
|
+
}
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
if (!sameDatabaseFileState(captureDatabaseFileState(filename), expectedState)) {
|
|
140
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
141
|
+
}
|
|
142
|
+
tempPath = path.join(directory, `.${path.basename(filename)}.${process.pid}.${randomUUID()}.tmp`);
|
|
143
|
+
const tempFd = fs.openSync(tempPath, 'wx', 0o600);
|
|
144
|
+
try {
|
|
145
|
+
fs.writeFileSync(tempFd, Buffer.from(data));
|
|
146
|
+
if (expectedState.database.exists && expectedState.database.mode !== undefined) {
|
|
147
|
+
fs.fchmodSync(tempFd, expectedState.database.mode);
|
|
148
|
+
}
|
|
149
|
+
fs.fsyncSync(tempFd);
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
fs.closeSync(tempFd);
|
|
153
|
+
}
|
|
154
|
+
// Recheck after export/write so a non-cooperating SQLite writer cannot be
|
|
155
|
+
// silently overwritten merely because it raced with the temporary write.
|
|
156
|
+
if (!sameDatabaseFileState(captureDatabaseFileState(filename), expectedState)) {
|
|
157
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
158
|
+
}
|
|
159
|
+
fs.renameSync(tempPath, filename);
|
|
160
|
+
tempPath = undefined;
|
|
161
|
+
fsyncDirectory(directory);
|
|
162
|
+
return captureDatabaseFileState(filename);
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
if (tempPath) {
|
|
166
|
+
try {
|
|
167
|
+
fs.unlinkSync(tempPath);
|
|
168
|
+
}
|
|
169
|
+
catch { /* best-effort cleanup */ }
|
|
170
|
+
}
|
|
171
|
+
if (lockFd !== undefined) {
|
|
172
|
+
fs.closeSync(lockFd);
|
|
173
|
+
try {
|
|
174
|
+
fs.unlinkSync(lockPath);
|
|
175
|
+
}
|
|
176
|
+
catch { /* preserve the original error */ }
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
14
180
|
/**
|
|
15
|
-
* Get
|
|
181
|
+
* Get the SQLite database implementation. Prefers native `better-sqlite3`
|
|
182
|
+
* when loadable; falls back to WASM `sql.js` (no build tools required).
|
|
16
183
|
*/
|
|
17
184
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- returns dynamically constructed class
|
|
18
185
|
export async function getDatabaseImplementation() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
186
|
+
if (cachedImpl)
|
|
187
|
+
return cachedImpl;
|
|
188
|
+
// 1. Try native better-sqlite3 (optional peer; same prepare/run API).
|
|
189
|
+
if (!process.env.AGENTDB_FORCE_SQLJS) {
|
|
190
|
+
try {
|
|
191
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- dynamic optional import
|
|
192
|
+
const mod = await import('better-sqlite3');
|
|
193
|
+
const BetterSqlite3 = mod.default ?? mod;
|
|
194
|
+
if (typeof BetterSqlite3 === 'function') {
|
|
195
|
+
// Importing the JS wrapper can succeed even when its native binding is
|
|
196
|
+
// missing or incompatible with the current Node ABI. Probe an actual
|
|
197
|
+
// in-memory connection before selecting it.
|
|
198
|
+
const probe = new BetterSqlite3(':memory:');
|
|
199
|
+
probe.close();
|
|
200
|
+
cachedImpl = BetterSqlite3;
|
|
201
|
+
cachedImplKind = 'better-sqlite3';
|
|
202
|
+
console.error('✅ Using native better-sqlite3');
|
|
203
|
+
return cachedImpl;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
// Not installed or failed to load → fall through to sql.js.
|
|
208
|
+
}
|
|
22
209
|
}
|
|
210
|
+
// 2. Fall back to sql.js (WASM, no build tools).
|
|
23
211
|
try {
|
|
24
|
-
console.
|
|
212
|
+
console.error('✅ Using sql.js (WASM SQLite, no build tools required)');
|
|
25
213
|
// sql.js requires async initialization
|
|
26
214
|
const mod = await import('sql.js');
|
|
27
215
|
const SQL = await mod.default();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return
|
|
216
|
+
cachedImpl = createSqlJsWrapper(SQL);
|
|
217
|
+
cachedImplKind = 'sql.js';
|
|
218
|
+
return cachedImpl;
|
|
31
219
|
}
|
|
32
220
|
catch (error) {
|
|
33
221
|
console.error('❌ Failed to initialize sql.js:', error.message);
|
|
34
|
-
throw new Error('Failed to initialize SQLite.
|
|
35
|
-
'npm install
|
|
222
|
+
throw new Error('Failed to initialize SQLite. Install one of:\n' +
|
|
223
|
+
' npm install better-sqlite3 # native, faster (recommended)\n' +
|
|
224
|
+
' npm install sql.js # pure-JS fallback, no build tools');
|
|
36
225
|
}
|
|
37
226
|
}
|
|
227
|
+
/** Reset the cached implementation (intended for tests). */
|
|
228
|
+
export function _resetDatabaseImplementationForTests() {
|
|
229
|
+
cachedImpl = null;
|
|
230
|
+
cachedImplKind = null;
|
|
231
|
+
}
|
|
38
232
|
/**
|
|
39
233
|
* Create a better-sqlite3 compatible wrapper around sql.js
|
|
40
234
|
* This allows AgentDB to work (with reduced performance) without native compilation
|
|
@@ -45,29 +239,32 @@ function createSqlJsWrapper(SQL) {
|
|
|
45
239
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Database instance
|
|
46
240
|
db;
|
|
47
241
|
filename;
|
|
242
|
+
fileState;
|
|
48
243
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Statement instances
|
|
49
244
|
activeStatements = new Map();
|
|
245
|
+
// Cache wrappers by SQL text so repeated db.prepare(sameSql) returns the
|
|
246
|
+
// same underlying sql.js Statement and doesn't add a new entry to
|
|
247
|
+
// activeStatements. Without this, callers using the
|
|
248
|
+
// db.prepare(sql).run(...)-and-discard pattern (idiomatic in
|
|
249
|
+
// better-sqlite3, where V8 GCs the handle) leak forever under sql.js.
|
|
250
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- prepared-statement wrapper objects
|
|
251
|
+
statementCache = new Map();
|
|
50
252
|
statementCounter = 0;
|
|
51
253
|
intervalId = null;
|
|
52
254
|
constructor(filename, _options) {
|
|
53
255
|
this.filename = filename;
|
|
256
|
+
const loaded = filename === ':memory:' ? null : loadSqlJsDatabaseFile(filename);
|
|
257
|
+
this.fileState = loaded?.state ?? null;
|
|
54
258
|
// In-memory database
|
|
55
259
|
if (filename === ':memory:') {
|
|
56
260
|
this.db = new SQL.Database();
|
|
57
261
|
}
|
|
58
262
|
else {
|
|
59
263
|
// File-based database - use safe fs module (no eval)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const buffer = fs.readFileSync(filename);
|
|
63
|
-
this.db = new SQL.Database(buffer);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this.db = new SQL.Database();
|
|
67
|
-
}
|
|
264
|
+
if (loaded.data) {
|
|
265
|
+
this.db = new SQL.Database(loaded.data);
|
|
68
266
|
}
|
|
69
|
-
|
|
70
|
-
console.warn('⚠️ Could not read database file:', error.message);
|
|
267
|
+
else {
|
|
71
268
|
this.db = new SQL.Database();
|
|
72
269
|
}
|
|
73
270
|
}
|
|
@@ -79,12 +276,28 @@ function createSqlJsWrapper(SQL) {
|
|
|
79
276
|
}, 10000);
|
|
80
277
|
}
|
|
81
278
|
prepare(sql) {
|
|
279
|
+
// Reuse the cached wrapper for an identical SQL string. The cache owns
|
|
280
|
+
// the underlying stmt's lifetime; finalize() is a no-op on a cached
|
|
281
|
+
// wrapper so concurrent callers that all called prepare(sql) keep
|
|
282
|
+
// working. close() drops everything.
|
|
283
|
+
const cached = this.statementCache.get(sql);
|
|
284
|
+
if (cached)
|
|
285
|
+
return cached;
|
|
82
286
|
const stmt = this.db.prepare(sql);
|
|
83
287
|
let isFinalized = false;
|
|
84
288
|
const stmtId = ++this.statementCounter;
|
|
289
|
+
const self = this;
|
|
85
290
|
// Track active statement
|
|
86
291
|
this.activeStatements.set(stmtId, stmt);
|
|
87
|
-
|
|
292
|
+
const evictOnError = () => {
|
|
293
|
+
if (!isFinalized) {
|
|
294
|
+
stmt.free();
|
|
295
|
+
isFinalized = true;
|
|
296
|
+
self.activeStatements.delete(stmtId);
|
|
297
|
+
self.statementCache.delete(sql);
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
const wrapper = {
|
|
88
301
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js bind accepts heterogeneous params
|
|
89
302
|
run: (...params) => {
|
|
90
303
|
if (isFinalized)
|
|
@@ -99,12 +312,7 @@ function createSqlJsWrapper(SQL) {
|
|
|
99
312
|
};
|
|
100
313
|
}
|
|
101
314
|
catch (error) {
|
|
102
|
-
|
|
103
|
-
if (!isFinalized) {
|
|
104
|
-
stmt.free();
|
|
105
|
-
isFinalized = true;
|
|
106
|
-
this.activeStatements.delete(stmtId);
|
|
107
|
-
}
|
|
315
|
+
evictOnError();
|
|
108
316
|
throw error;
|
|
109
317
|
}
|
|
110
318
|
},
|
|
@@ -129,12 +337,7 @@ function createSqlJsWrapper(SQL) {
|
|
|
129
337
|
return result;
|
|
130
338
|
}
|
|
131
339
|
catch (error) {
|
|
132
|
-
|
|
133
|
-
if (!isFinalized) {
|
|
134
|
-
stmt.free();
|
|
135
|
-
isFinalized = true;
|
|
136
|
-
this.activeStatements.delete(stmtId);
|
|
137
|
-
}
|
|
340
|
+
evictOnError();
|
|
138
341
|
throw error;
|
|
139
342
|
}
|
|
140
343
|
},
|
|
@@ -158,23 +361,18 @@ function createSqlJsWrapper(SQL) {
|
|
|
158
361
|
return results;
|
|
159
362
|
}
|
|
160
363
|
catch (error) {
|
|
161
|
-
|
|
162
|
-
if (!isFinalized) {
|
|
163
|
-
stmt.free();
|
|
164
|
-
isFinalized = true;
|
|
165
|
-
this.activeStatements.delete(stmtId);
|
|
166
|
-
}
|
|
364
|
+
evictOnError();
|
|
167
365
|
throw error;
|
|
168
366
|
}
|
|
169
367
|
},
|
|
170
368
|
finalize: () => {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
this.activeStatements.delete(stmtId);
|
|
175
|
-
}
|
|
369
|
+
// No-op while cached: the wrapper is shared and finalize() must not
|
|
370
|
+
// tear out a stmt another caller is about to use. close() handles
|
|
371
|
+
// the real teardown.
|
|
176
372
|
}
|
|
177
373
|
};
|
|
374
|
+
this.statementCache.set(sql, wrapper);
|
|
375
|
+
return wrapper;
|
|
178
376
|
}
|
|
179
377
|
exec(sql) {
|
|
180
378
|
return this.db.exec(sql);
|
|
@@ -183,13 +381,8 @@ function createSqlJsWrapper(SQL) {
|
|
|
183
381
|
// Save to file if needed
|
|
184
382
|
if (this.filename !== ':memory:') {
|
|
185
383
|
try {
|
|
186
|
-
// Create parent directories if they don't exist
|
|
187
|
-
const dir = path.dirname(this.filename);
|
|
188
|
-
if (!fs.existsSync(dir)) {
|
|
189
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
190
|
-
}
|
|
191
384
|
const data = this.db.export();
|
|
192
|
-
|
|
385
|
+
this.fileState = persistSqlJsDatabase(this.filename, data, this.fileState);
|
|
193
386
|
}
|
|
194
387
|
catch (error) {
|
|
195
388
|
console.error('❌ Could not save database to file:', error.message);
|
|
@@ -198,6 +391,13 @@ function createSqlJsWrapper(SQL) {
|
|
|
198
391
|
}
|
|
199
392
|
}
|
|
200
393
|
close() {
|
|
394
|
+
let saveError;
|
|
395
|
+
try {
|
|
396
|
+
this.save();
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
saveError = error;
|
|
400
|
+
}
|
|
201
401
|
// Clear interval timer
|
|
202
402
|
if (this.intervalId) {
|
|
203
403
|
clearInterval(this.intervalId);
|
|
@@ -213,9 +413,10 @@ function createSqlJsWrapper(SQL) {
|
|
|
213
413
|
}
|
|
214
414
|
}
|
|
215
415
|
this.activeStatements.clear();
|
|
216
|
-
|
|
217
|
-
this.save();
|
|
416
|
+
this.statementCache.clear();
|
|
218
417
|
this.db.close();
|
|
418
|
+
if (saveError)
|
|
419
|
+
throw saveError;
|
|
219
420
|
}
|
|
220
421
|
pragma(pragma, _options) {
|
|
221
422
|
try {
|
|
@@ -271,14 +472,36 @@ export async function createDatabase(filename, options) {
|
|
|
271
472
|
export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
272
473
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Statement instances
|
|
273
474
|
const activeStatements = new Map();
|
|
475
|
+
// SQL-text cache; see SqlJsDatabase.statementCache for rationale.
|
|
476
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- prepared-statement wrapper objects
|
|
477
|
+
const statementCache = new Map();
|
|
274
478
|
let statementCounter = 0;
|
|
479
|
+
const loaded = filename === ':memory:' ? null : loadSqlJsDatabaseFile(filename);
|
|
480
|
+
let fileState = loaded?.state ?? null;
|
|
481
|
+
if (loaded?.data) {
|
|
482
|
+
const rawDigest = createHash('sha256').update(rawDb.export()).digest('hex');
|
|
483
|
+
if (rawDigest !== fileState.database.sha256) {
|
|
484
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
275
487
|
return {
|
|
276
488
|
prepare(sql) {
|
|
489
|
+
const cached = statementCache.get(sql);
|
|
490
|
+
if (cached)
|
|
491
|
+
return cached;
|
|
277
492
|
const stmt = rawDb.prepare(sql);
|
|
278
493
|
let isFinalized = false;
|
|
279
494
|
const stmtId = ++statementCounter;
|
|
280
495
|
activeStatements.set(stmtId, stmt);
|
|
281
|
-
|
|
496
|
+
const evictOnError = () => {
|
|
497
|
+
if (!isFinalized) {
|
|
498
|
+
stmt.free();
|
|
499
|
+
isFinalized = true;
|
|
500
|
+
activeStatements.delete(stmtId);
|
|
501
|
+
statementCache.delete(sql);
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
const wrapper = {
|
|
282
505
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js bind accepts heterogeneous params
|
|
283
506
|
run(...params) {
|
|
284
507
|
if (isFinalized)
|
|
@@ -293,11 +516,7 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
293
516
|
};
|
|
294
517
|
}
|
|
295
518
|
catch (error) {
|
|
296
|
-
|
|
297
|
-
stmt.free();
|
|
298
|
-
isFinalized = true;
|
|
299
|
-
activeStatements.delete(stmtId);
|
|
300
|
-
}
|
|
519
|
+
evictOnError();
|
|
301
520
|
throw error;
|
|
302
521
|
}
|
|
303
522
|
},
|
|
@@ -320,11 +539,7 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
320
539
|
return result;
|
|
321
540
|
}
|
|
322
541
|
catch (error) {
|
|
323
|
-
|
|
324
|
-
stmt.free();
|
|
325
|
-
isFinalized = true;
|
|
326
|
-
activeStatements.delete(stmtId);
|
|
327
|
-
}
|
|
542
|
+
evictOnError();
|
|
328
543
|
throw error;
|
|
329
544
|
}
|
|
330
545
|
},
|
|
@@ -346,37 +561,34 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
346
561
|
return results;
|
|
347
562
|
}
|
|
348
563
|
catch (error) {
|
|
349
|
-
|
|
350
|
-
stmt.free();
|
|
351
|
-
isFinalized = true;
|
|
352
|
-
activeStatements.delete(stmtId);
|
|
353
|
-
}
|
|
564
|
+
evictOnError();
|
|
354
565
|
throw error;
|
|
355
566
|
}
|
|
356
567
|
},
|
|
357
568
|
finalize() {
|
|
358
|
-
|
|
359
|
-
stmt.free();
|
|
360
|
-
isFinalized = true;
|
|
361
|
-
activeStatements.delete(stmtId);
|
|
362
|
-
}
|
|
569
|
+
// No-op while cached; close() handles teardown.
|
|
363
570
|
},
|
|
364
571
|
};
|
|
572
|
+
statementCache.set(sql, wrapper);
|
|
573
|
+
return wrapper;
|
|
365
574
|
},
|
|
366
575
|
exec(sql) {
|
|
367
576
|
return rawDb.exec(sql);
|
|
368
577
|
},
|
|
369
578
|
save() {
|
|
370
579
|
if (filename !== ':memory:') {
|
|
371
|
-
const dir = path.dirname(filename);
|
|
372
|
-
if (!fs.existsSync(dir)) {
|
|
373
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
374
|
-
}
|
|
375
580
|
const data = rawDb.export();
|
|
376
|
-
|
|
581
|
+
fileState = persistSqlJsDatabase(filename, data, fileState);
|
|
377
582
|
}
|
|
378
583
|
},
|
|
379
584
|
close() {
|
|
585
|
+
let saveError;
|
|
586
|
+
try {
|
|
587
|
+
this.save();
|
|
588
|
+
}
|
|
589
|
+
catch (error) {
|
|
590
|
+
saveError = error;
|
|
591
|
+
}
|
|
380
592
|
for (const [, stmt] of activeStatements.entries()) {
|
|
381
593
|
try {
|
|
382
594
|
stmt.free();
|
|
@@ -384,8 +596,10 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
384
596
|
catch { /* already freed */ }
|
|
385
597
|
}
|
|
386
598
|
activeStatements.clear();
|
|
387
|
-
|
|
599
|
+
statementCache.clear();
|
|
388
600
|
rawDb.close();
|
|
601
|
+
if (saveError)
|
|
602
|
+
throw saveError;
|
|
389
603
|
},
|
|
390
604
|
pragma(pragma, _options) {
|
|
391
605
|
try {
|
|
@@ -421,11 +635,21 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
421
635
|
* Get information about current database implementation
|
|
422
636
|
*/
|
|
423
637
|
export function getDatabaseInfo() {
|
|
638
|
+
// Reports the currently-loaded backend; falls back to the sql.js description
|
|
639
|
+
// before getDatabaseImplementation() has run.
|
|
640
|
+
if (cachedImplKind === 'better-sqlite3') {
|
|
641
|
+
return {
|
|
642
|
+
implementation: 'better-sqlite3 (native)',
|
|
643
|
+
isNative: true,
|
|
644
|
+
performance: 'high',
|
|
645
|
+
requiresBuildTools: true,
|
|
646
|
+
};
|
|
647
|
+
}
|
|
424
648
|
return {
|
|
425
649
|
implementation: 'sql.js (WASM)',
|
|
426
650
|
isNative: false,
|
|
427
651
|
performance: 'medium',
|
|
428
|
-
requiresBuildTools: false
|
|
652
|
+
requiresBuildTools: false,
|
|
429
653
|
};
|
|
430
654
|
}
|
|
431
655
|
//# sourceMappingURL=db-fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Database Factory - Uses better-sqlite3 when available for testing
|
|
3
|
+
*
|
|
4
|
+
* Integration tests need to create large datasets and run many queries,
|
|
5
|
+
* which can exceed sql.js WASM memory limit (64MB). This factory attempts
|
|
6
|
+
* to use better-sqlite3 for tests, falling back to sql.js if unavailable.
|
|
7
|
+
*/
|
|
8
|
+
import type { Database } from 'better-sqlite3';
|
|
9
|
+
/**
|
|
10
|
+
* Create database for testing - prefers better-sqlite3, falls back to sql.js
|
|
11
|
+
*/
|
|
12
|
+
export declare function createTestDatabase(filename: string, options?: any): Promise<Database>;
|
|
13
|
+
//# sourceMappingURL=db-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-test.d.ts","sourceRoot":"","sources":["../../src/db-test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAmC/C;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAY3F"}
|