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
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
let betterSqlite3 = null;
|
|
9
|
+
/**
|
|
10
|
+
* Try to load better-sqlite3 (optional dependency)
|
|
11
|
+
*/
|
|
12
|
+
async function loadBetterSqlite3() {
|
|
13
|
+
if (betterSqlite3)
|
|
14
|
+
return betterSqlite3;
|
|
15
|
+
try {
|
|
16
|
+
betterSqlite3 = (await import('better-sqlite3')).default;
|
|
17
|
+
console.log('✅ Using better-sqlite3 for tests (no memory limit)');
|
|
18
|
+
return betterSqlite3;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.warn('⚠️ better-sqlite3 not available, falling back to sql.js (64MB memory limit)');
|
|
22
|
+
console.warn(' Install with: npm install --save-dev better-sqlite3');
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Wrap better-sqlite3 to add sql.js-compatible save() method
|
|
28
|
+
*/
|
|
29
|
+
function wrapBetterSqlite3(db) {
|
|
30
|
+
// Add sql.js-compatible save() method (no-op for better-sqlite3)
|
|
31
|
+
if (!db.save) {
|
|
32
|
+
db.save = function () {
|
|
33
|
+
// better-sqlite3 auto-saves, so this is a no-op
|
|
34
|
+
return;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return db;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create database for testing - prefers better-sqlite3, falls back to sql.js
|
|
41
|
+
*/
|
|
42
|
+
export async function createTestDatabase(filename, options) {
|
|
43
|
+
const BetterSqlite3 = await loadBetterSqlite3();
|
|
44
|
+
if (BetterSqlite3) {
|
|
45
|
+
// Use better-sqlite3 (native, no memory limit)
|
|
46
|
+
const db = new BetterSqlite3(filename, options);
|
|
47
|
+
return wrapBetterSqlite3(db);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Fall back to sql.js (WASM, 64MB limit)
|
|
51
|
+
const { createDatabase } = await import('./db-fallback.js');
|
|
52
|
+
return createDatabase(filename, options);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=db-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-test.js","sourceRoot":"","sources":["../../src/db-test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,IAAI,aAAa,GAAQ,IAAI,CAAC;AAE9B;;GAEG;AACH,KAAK,UAAU,iBAAiB;IAC9B,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,IAAI,CAAC;QACH,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,EAAO;IAChC,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACb,EAAE,CAAC,IAAI,GAAG;YACR,gDAAgD;YAChD,OAAO;QACT,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,OAAa;IACtE,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEhD,IAAI,aAAa,EAAE,CAAC;QAClB,+CAA+C;QAC/C,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5D,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Database Layer for AgentDB v2
|
|
3
|
+
*
|
|
4
|
+
* Architecture:
|
|
5
|
+
* - PRIMARY: RuVector GraphDatabase (@ruvector/graph-node) for new databases
|
|
6
|
+
* - FALLBACK: SQLite (sql.js) for legacy databases
|
|
7
|
+
*
|
|
8
|
+
* Detection Logic:
|
|
9
|
+
* 1. Check if database file exists
|
|
10
|
+
* 2. If exists, check file signature to determine type
|
|
11
|
+
* 3. If new database or .graph extension → use GraphDatabase
|
|
12
|
+
* 4. If .db extension and SQLite signature → use SQLite (legacy mode)
|
|
13
|
+
*
|
|
14
|
+
* Migration:
|
|
15
|
+
* - Provides migration tool to convert SQLite → GraphDatabase
|
|
16
|
+
* - Maintains backward compatibility with existing databases
|
|
17
|
+
*/
|
|
18
|
+
import { GraphDatabaseAdapter } from './backends/graph/GraphDatabaseAdapter.js';
|
|
19
|
+
export type DatabaseMode = 'graph' | 'sqlite-legacy';
|
|
20
|
+
export interface UnifiedDatabaseConfig {
|
|
21
|
+
path: string;
|
|
22
|
+
dimensions?: number;
|
|
23
|
+
forceMode?: DatabaseMode;
|
|
24
|
+
autoMigrate?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Unified Database - Smart detection and mode selection
|
|
28
|
+
*/
|
|
29
|
+
export declare class UnifiedDatabase {
|
|
30
|
+
private mode;
|
|
31
|
+
private graphDb?;
|
|
32
|
+
private sqliteDb?;
|
|
33
|
+
private config;
|
|
34
|
+
constructor(config: UnifiedDatabaseConfig);
|
|
35
|
+
/**
|
|
36
|
+
* Initialize database with automatic mode detection
|
|
37
|
+
*/
|
|
38
|
+
initialize(embedder: any): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Initialize the selected database mode
|
|
41
|
+
*/
|
|
42
|
+
private initializeMode;
|
|
43
|
+
/**
|
|
44
|
+
* Check if file is a SQLite database
|
|
45
|
+
*/
|
|
46
|
+
private isSQLiteDatabase;
|
|
47
|
+
/**
|
|
48
|
+
* Migrate SQLite database to RuVector GraphDatabase
|
|
49
|
+
*/
|
|
50
|
+
private migrateSQLiteToGraph;
|
|
51
|
+
/**
|
|
52
|
+
* Get the active database mode
|
|
53
|
+
*/
|
|
54
|
+
getMode(): DatabaseMode;
|
|
55
|
+
/**
|
|
56
|
+
* Get the graph database (if in graph mode)
|
|
57
|
+
*/
|
|
58
|
+
getGraphDatabase(): GraphDatabaseAdapter | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Get the SQLite database (if in legacy mode)
|
|
61
|
+
*/
|
|
62
|
+
getSQLiteDatabase(): any | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Execute a query (auto-routes to correct database)
|
|
65
|
+
*/
|
|
66
|
+
query(queryOrCypher: string): Promise<any>;
|
|
67
|
+
/**
|
|
68
|
+
* Close database
|
|
69
|
+
*/
|
|
70
|
+
close(): void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create unified database (smart mode detection)
|
|
74
|
+
*/
|
|
75
|
+
export declare function createUnifiedDatabase(path: string, embedder: any, options?: Partial<UnifiedDatabaseConfig>): Promise<UnifiedDatabase>;
|
|
76
|
+
//# sourceMappingURL=db-unified.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-unified.d.ts","sourceRoot":"","sources":["../../src/db-unified.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,oBAAoB,EAA4B,MAAM,0CAA0C,CAAC;AAK1G,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,EAAE,qBAAqB;IAKzC;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D9C;;OAEG;YACW,cAAc;IA+B5B;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;YACW,oBAAoB;IAoGlC;;OAEG;IACH,OAAO,IAAI,YAAY;IAIvB;;OAEG;IACH,gBAAgB,IAAI,oBAAoB,GAAG,SAAS;IAIpD;;OAEG;IACH,iBAAiB,IAAI,GAAG,GAAG,SAAS;IAIpC;;OAEG;IACG,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhD;;OAEG;IACH,KAAK,IAAI,IAAI;CAQd;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,CAY1B"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Database Layer for AgentDB v2
|
|
3
|
+
*
|
|
4
|
+
* Architecture:
|
|
5
|
+
* - PRIMARY: RuVector GraphDatabase (@ruvector/graph-node) for new databases
|
|
6
|
+
* - FALLBACK: SQLite (sql.js) for legacy databases
|
|
7
|
+
*
|
|
8
|
+
* Detection Logic:
|
|
9
|
+
* 1. Check if database file exists
|
|
10
|
+
* 2. If exists, check file signature to determine type
|
|
11
|
+
* 3. If new database or .graph extension → use GraphDatabase
|
|
12
|
+
* 4. If .db extension and SQLite signature → use SQLite (legacy mode)
|
|
13
|
+
*
|
|
14
|
+
* Migration:
|
|
15
|
+
* - Provides migration tool to convert SQLite → GraphDatabase
|
|
16
|
+
* - Maintains backward compatibility with existing databases
|
|
17
|
+
*/
|
|
18
|
+
import { GraphDatabaseAdapter } from './backends/graph/GraphDatabaseAdapter.js';
|
|
19
|
+
import * as fs from 'fs';
|
|
20
|
+
import * as path from 'path';
|
|
21
|
+
/**
|
|
22
|
+
* Unified Database - Smart detection and mode selection
|
|
23
|
+
*/
|
|
24
|
+
export class UnifiedDatabase {
|
|
25
|
+
mode;
|
|
26
|
+
graphDb;
|
|
27
|
+
sqliteDb;
|
|
28
|
+
config;
|
|
29
|
+
constructor(config) {
|
|
30
|
+
this.config = config;
|
|
31
|
+
this.mode = 'graph'; // Default to graph mode
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Initialize database with automatic mode detection
|
|
35
|
+
*/
|
|
36
|
+
async initialize(embedder) {
|
|
37
|
+
const dbPath = this.config.path;
|
|
38
|
+
// Check if user forced a specific mode
|
|
39
|
+
if (this.config.forceMode) {
|
|
40
|
+
this.mode = this.config.forceMode;
|
|
41
|
+
await this.initializeMode(embedder);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Auto-detect based on file extension and content
|
|
45
|
+
if (fs.existsSync(dbPath)) {
|
|
46
|
+
const ext = path.extname(dbPath);
|
|
47
|
+
// .graph extension = always use graph mode
|
|
48
|
+
if (ext === '.graph') {
|
|
49
|
+
this.mode = 'graph';
|
|
50
|
+
console.log('🔍 Detected .graph extension → Using RuVector GraphDatabase');
|
|
51
|
+
}
|
|
52
|
+
// .db extension = check if it's SQLite
|
|
53
|
+
else if (ext === '.db') {
|
|
54
|
+
const isLegacySQLite = await this.isSQLiteDatabase(dbPath);
|
|
55
|
+
if (isLegacySQLite) {
|
|
56
|
+
this.mode = 'sqlite-legacy';
|
|
57
|
+
console.log('🔍 Detected legacy SQLite database');
|
|
58
|
+
// Offer migration if autoMigrate is enabled
|
|
59
|
+
if (this.config.autoMigrate) {
|
|
60
|
+
console.log('🔄 Auto-migration enabled, will migrate to GraphDatabase...');
|
|
61
|
+
await this.migrateSQLiteToGraph(dbPath, embedder);
|
|
62
|
+
this.mode = 'graph';
|
|
63
|
+
// Migration already initialized graphDb, skip initializeMode
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.log('ℹ️ Running in legacy SQLite mode');
|
|
68
|
+
console.log('💡 To migrate to RuVector Graph: set autoMigrate: true');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Not SQLite, use graph mode
|
|
73
|
+
this.mode = 'graph';
|
|
74
|
+
console.log('🔍 Using RuVector GraphDatabase');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Unknown extension, default to graph
|
|
79
|
+
this.mode = 'graph';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// New database - use graph mode (recommended)
|
|
84
|
+
this.mode = 'graph';
|
|
85
|
+
console.log('✨ Creating new RuVector GraphDatabase');
|
|
86
|
+
// Suggest .graph extension if not using it
|
|
87
|
+
if (!dbPath.endsWith('.graph') && !dbPath.endsWith('.db')) {
|
|
88
|
+
console.log('💡 Tip: Use .graph extension for clarity (e.g., agentdb.graph)');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
await this.initializeMode(embedder);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Initialize the selected database mode
|
|
95
|
+
*/
|
|
96
|
+
async initializeMode(embedder) {
|
|
97
|
+
if (this.mode === 'graph') {
|
|
98
|
+
// Use RuVector GraphDatabase
|
|
99
|
+
const config = {
|
|
100
|
+
storagePath: this.config.path,
|
|
101
|
+
dimensions: this.config.dimensions || 384,
|
|
102
|
+
distanceMetric: 'Cosine'
|
|
103
|
+
};
|
|
104
|
+
this.graphDb = new GraphDatabaseAdapter(config, embedder);
|
|
105
|
+
await this.graphDb.initialize();
|
|
106
|
+
console.log('✅ RuVector GraphDatabase ready (Primary Mode)');
|
|
107
|
+
console.log(' - Cypher queries enabled');
|
|
108
|
+
console.log(' - Hypergraph support active');
|
|
109
|
+
console.log(' - ACID transactions available');
|
|
110
|
+
console.log(' - 131K+ ops/sec batch inserts');
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// Use legacy SQLite — db-fallback prefers native better-sqlite3 when
|
|
114
|
+
// loadable and falls back to sql.js (WASM) otherwise (ruflo #2235 A).
|
|
115
|
+
const { createDatabase, getDatabaseInfo } = await import('./db-fallback.js');
|
|
116
|
+
this.sqliteDb = await createDatabase(this.config.path);
|
|
117
|
+
const info = getDatabaseInfo();
|
|
118
|
+
console.log(`⚠️ Using legacy SQLite mode (${info.implementation})`);
|
|
119
|
+
console.log(' - Limited to SQL queries');
|
|
120
|
+
console.log(' - No hypergraph support');
|
|
121
|
+
console.log(' - Consider migration to GraphDatabase');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Check if file is a SQLite database
|
|
126
|
+
*/
|
|
127
|
+
async isSQLiteDatabase(filePath) {
|
|
128
|
+
try {
|
|
129
|
+
const buffer = fs.readFileSync(filePath);
|
|
130
|
+
// SQLite databases start with "SQLite format 3\0"
|
|
131
|
+
const signature = buffer.slice(0, 16).toString();
|
|
132
|
+
return signature.startsWith('SQLite format 3');
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Migrate SQLite database to RuVector GraphDatabase
|
|
140
|
+
*/
|
|
141
|
+
async migrateSQLiteToGraph(sqlitePath, embedder) {
|
|
142
|
+
console.log('🔄 Starting migration from SQLite to RuVector Graph...');
|
|
143
|
+
const startTime = Date.now();
|
|
144
|
+
// Load SQLite database using ESM import
|
|
145
|
+
const { createDatabase } = await import('./db-fallback.js');
|
|
146
|
+
const sqliteDb = await createDatabase(sqlitePath);
|
|
147
|
+
// Create new GraphDatabase
|
|
148
|
+
const graphPath = sqlitePath.replace(/\.db$/, '.graph');
|
|
149
|
+
const graphConfig = {
|
|
150
|
+
storagePath: graphPath,
|
|
151
|
+
dimensions: this.config.dimensions || 384,
|
|
152
|
+
distanceMetric: 'Cosine'
|
|
153
|
+
};
|
|
154
|
+
const graphDb = new GraphDatabaseAdapter(graphConfig, embedder);
|
|
155
|
+
await graphDb.initialize();
|
|
156
|
+
// Migrate episodes
|
|
157
|
+
console.log(' 📦 Migrating episodes...');
|
|
158
|
+
const episodes = sqliteDb.prepare('SELECT * FROM episodes').all();
|
|
159
|
+
for (const ep of episodes) {
|
|
160
|
+
// Generate embedding for episode
|
|
161
|
+
const text = `${ep.task} ${ep.input || ''} ${ep.output || ''}`;
|
|
162
|
+
const embedding = await embedder.embed(text);
|
|
163
|
+
await graphDb.storeEpisode({
|
|
164
|
+
id: `ep-${ep.id}`,
|
|
165
|
+
sessionId: ep.session_id,
|
|
166
|
+
task: ep.task,
|
|
167
|
+
reward: ep.reward,
|
|
168
|
+
success: ep.success === 1,
|
|
169
|
+
input: ep.input,
|
|
170
|
+
output: ep.output,
|
|
171
|
+
critique: ep.critique,
|
|
172
|
+
createdAt: ep.created_at,
|
|
173
|
+
tokensUsed: ep.tokens_used,
|
|
174
|
+
latencyMs: ep.latency_ms
|
|
175
|
+
}, embedding);
|
|
176
|
+
}
|
|
177
|
+
console.log(` ✅ Migrated ${episodes.length} episodes`);
|
|
178
|
+
// Migrate skills
|
|
179
|
+
console.log(' 📦 Migrating skills...');
|
|
180
|
+
const skills = sqliteDb.prepare('SELECT * FROM skills').all();
|
|
181
|
+
for (const skill of skills) {
|
|
182
|
+
const text = `${skill.name} ${skill.description} ${skill.code}`;
|
|
183
|
+
const embedding = await embedder.embed(text);
|
|
184
|
+
await graphDb.storeSkill({
|
|
185
|
+
id: `skill-${skill.id}`,
|
|
186
|
+
name: skill.name,
|
|
187
|
+
description: skill.description,
|
|
188
|
+
code: skill.code,
|
|
189
|
+
usageCount: skill.usage_count,
|
|
190
|
+
avgReward: skill.avg_reward,
|
|
191
|
+
createdAt: skill.created_at,
|
|
192
|
+
updatedAt: skill.updated_at,
|
|
193
|
+
tags: skill.tags
|
|
194
|
+
}, embedding);
|
|
195
|
+
}
|
|
196
|
+
console.log(` ✅ Migrated ${skills.length} skills`);
|
|
197
|
+
// Migrate causal edges
|
|
198
|
+
console.log(' 📦 Migrating causal relationships...');
|
|
199
|
+
const edges = sqliteDb.prepare('SELECT * FROM causal_edges').all();
|
|
200
|
+
for (const edge of edges) {
|
|
201
|
+
const text = edge.mechanism;
|
|
202
|
+
const embedding = await embedder.embed(text);
|
|
203
|
+
await graphDb.createCausalEdge({
|
|
204
|
+
from: `ep-${edge.from_memory_id}`,
|
|
205
|
+
to: `ep-${edge.to_memory_id}`,
|
|
206
|
+
mechanism: edge.mechanism,
|
|
207
|
+
uplift: edge.uplift,
|
|
208
|
+
confidence: edge.confidence,
|
|
209
|
+
sampleSize: edge.sample_size
|
|
210
|
+
}, embedding);
|
|
211
|
+
}
|
|
212
|
+
console.log(` ✅ Migrated ${edges.length} causal edges`);
|
|
213
|
+
const duration = ((Date.now() - startTime) / 1000).toFixed(2);
|
|
214
|
+
console.log(`\n🎉 Migration complete in ${duration}s!`);
|
|
215
|
+
console.log(` Old SQLite: ${sqlitePath}`);
|
|
216
|
+
console.log(` New Graph: ${graphPath}`);
|
|
217
|
+
console.log(`\n💡 Backup your SQLite file and update path to use .graph`);
|
|
218
|
+
// Close SQLite
|
|
219
|
+
sqliteDb.close();
|
|
220
|
+
// Update config to use new graph database
|
|
221
|
+
this.config.path = graphPath;
|
|
222
|
+
this.graphDb = graphDb;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get the active database mode
|
|
226
|
+
*/
|
|
227
|
+
getMode() {
|
|
228
|
+
return this.mode;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get the graph database (if in graph mode)
|
|
232
|
+
*/
|
|
233
|
+
getGraphDatabase() {
|
|
234
|
+
return this.graphDb;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get the SQLite database (if in legacy mode)
|
|
238
|
+
*/
|
|
239
|
+
getSQLiteDatabase() {
|
|
240
|
+
return this.sqliteDb;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Execute a query (auto-routes to correct database)
|
|
244
|
+
*/
|
|
245
|
+
async query(queryOrCypher) {
|
|
246
|
+
if (this.mode === 'graph') {
|
|
247
|
+
// Execute Cypher query
|
|
248
|
+
return await this.graphDb.query(queryOrCypher);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// Execute SQL query
|
|
252
|
+
return this.sqliteDb.prepare(queryOrCypher).all();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Close database
|
|
257
|
+
*/
|
|
258
|
+
close() {
|
|
259
|
+
if (this.graphDb) {
|
|
260
|
+
this.graphDb.close();
|
|
261
|
+
}
|
|
262
|
+
if (this.sqliteDb) {
|
|
263
|
+
this.sqliteDb.close();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Create unified database (smart mode detection)
|
|
269
|
+
*/
|
|
270
|
+
export async function createUnifiedDatabase(path, embedder, options) {
|
|
271
|
+
const config = {
|
|
272
|
+
path,
|
|
273
|
+
dimensions: options?.dimensions || 384,
|
|
274
|
+
forceMode: options?.forceMode,
|
|
275
|
+
autoMigrate: options?.autoMigrate ?? false // Default: manual migration
|
|
276
|
+
};
|
|
277
|
+
const db = new UnifiedDatabase(config);
|
|
278
|
+
await db.initialize(embedder);
|
|
279
|
+
return db;
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=db-unified.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-unified.js","sourceRoot":"","sources":["../../src/db-unified.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical identity for an embedding space.
|
|
3
|
+
*
|
|
4
|
+
* The hash is intentionally independent of object insertion order. It is safe
|
|
5
|
+
* to persist in RVF metadata, cache keys, experiment manifests, and receipts.
|
|
6
|
+
*/
|
|
7
|
+
export type EmbeddingRole = 'query' | 'passage';
|
|
8
|
+
export type EmbeddingRolePolicy = {
|
|
9
|
+
kind: 'symmetric';
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'asymmetric';
|
|
12
|
+
prefixPolicy: string;
|
|
13
|
+
prefixPolicyVersion: string;
|
|
14
|
+
queryTemplate: string;
|
|
15
|
+
passageTemplate: string;
|
|
16
|
+
};
|
|
17
|
+
export type EmbeddingProvenanceType = 'user_claim' | 'agent_output' | 'system_observation' | 'tool_result' | 'unknown';
|
|
18
|
+
export interface MemoryProvenance {
|
|
19
|
+
type: EmbeddingProvenanceType;
|
|
20
|
+
sourceId?: string;
|
|
21
|
+
runId?: string;
|
|
22
|
+
receiptId?: string;
|
|
23
|
+
createdAt?: string;
|
|
24
|
+
trust?: 'unverified' | 'verified' | 'signed';
|
|
25
|
+
signature?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface EmbeddingSpaceIdentityInput {
|
|
28
|
+
modelId: string;
|
|
29
|
+
modelArtifactHash: string;
|
|
30
|
+
tokenizerHash: string;
|
|
31
|
+
promptTemplateHash: string;
|
|
32
|
+
poolingStrategy: string;
|
|
33
|
+
truncationLength: number;
|
|
34
|
+
outputDimension: number;
|
|
35
|
+
outputDtype: string;
|
|
36
|
+
normalization: string;
|
|
37
|
+
runtimeRevision: string;
|
|
38
|
+
distanceMetric: string;
|
|
39
|
+
rolePolicy: EmbeddingRolePolicy;
|
|
40
|
+
}
|
|
41
|
+
export interface EmbeddingSpaceIdentity extends EmbeddingSpaceIdentityInput {
|
|
42
|
+
schema: 'agentdb.embedding-space.v1';
|
|
43
|
+
hashAlgorithm: 'sha256';
|
|
44
|
+
hash: string;
|
|
45
|
+
}
|
|
46
|
+
export type EmbeddingCompatibilityOperation = 'cache-reuse' | 'corpus-mutation' | 'vector-read';
|
|
47
|
+
export declare class EmbeddingSpaceMismatchError extends Error {
|
|
48
|
+
readonly expectedHash: string;
|
|
49
|
+
readonly actualHash: string;
|
|
50
|
+
readonly operation: EmbeddingCompatibilityOperation;
|
|
51
|
+
readonly code = "AGENTDB_EMBEDDING_SPACE_MISMATCH";
|
|
52
|
+
constructor(expectedHash: string, actualHash: string, operation: EmbeddingCompatibilityOperation);
|
|
53
|
+
}
|
|
54
|
+
export declare function createEmbeddingSpaceIdentity(input: EmbeddingSpaceIdentityInput): EmbeddingSpaceIdentity;
|
|
55
|
+
export declare function embeddingSpacesEqual(left: Pick<EmbeddingSpaceIdentity, 'hash'>, right: Pick<EmbeddingSpaceIdentity, 'hash'>): boolean;
|
|
56
|
+
export declare function assertEmbeddingSpaceCompatible(expected: Pick<EmbeddingSpaceIdentity, 'hash'>, actual: Pick<EmbeddingSpaceIdentity, 'hash'>, operation: EmbeddingCompatibilityOperation): void;
|
|
57
|
+
export declare function applyRoleTemplate(template: string, text: string): string;
|
|
58
|
+
//# sourceMappingURL=EmbeddingSpaceIdentity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingSpaceIdentity.d.ts","sourceRoot":"","sources":["../../../src/embedding/EmbeddingSpaceIdentity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,MAAM,uBAAuB,GAC/B,YAAY,GACZ,cAAc,GACd,oBAAoB,GACpB,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,2BAA2B;IACzE,MAAM,EAAE,4BAA4B,CAAC;IACrC,aAAa,EAAE,QAAQ,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,+BAA+B,GACvC,aAAa,GACb,iBAAiB,GACjB,aAAa,CAAC;AAElB,qBAAa,2BAA4B,SAAQ,KAAK;IAIlD,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,SAAS,EAAE,+BAA+B;IALrD,QAAQ,CAAC,IAAI,sCAAsC;gBAGxC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,+BAA+B;CAOtD;AA8ED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAoBxB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAC1C,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAC1C,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAC9C,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAC5C,SAAS,EAAE,+BAA+B,GACzC,IAAI,CAIN;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKxE"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical identity for an embedding space.
|
|
3
|
+
*
|
|
4
|
+
* The hash is intentionally independent of object insertion order. It is safe
|
|
5
|
+
* to persist in RVF metadata, cache keys, experiment manifests, and receipts.
|
|
6
|
+
*/
|
|
7
|
+
export class EmbeddingSpaceMismatchError extends Error {
|
|
8
|
+
expectedHash;
|
|
9
|
+
actualHash;
|
|
10
|
+
operation;
|
|
11
|
+
code = 'AGENTDB_EMBEDDING_SPACE_MISMATCH';
|
|
12
|
+
constructor(expectedHash, actualHash, operation) {
|
|
13
|
+
super(`Embedding space mismatch for ${operation}: expected ${expectedHash}, received ${actualHash}`);
|
|
14
|
+
this.expectedHash = expectedHash;
|
|
15
|
+
this.actualHash = actualHash;
|
|
16
|
+
this.operation = operation;
|
|
17
|
+
this.name = 'EmbeddingSpaceMismatchError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function canonicalize(value) {
|
|
21
|
+
if (value === null || typeof value !== 'object') {
|
|
22
|
+
return JSON.stringify(value);
|
|
23
|
+
}
|
|
24
|
+
if (Array.isArray(value)) {
|
|
25
|
+
return `[${value.map(canonicalize).join(',')}]`;
|
|
26
|
+
}
|
|
27
|
+
const record = value;
|
|
28
|
+
return `{${Object.keys(record)
|
|
29
|
+
.sort()
|
|
30
|
+
.map(key => `${JSON.stringify(key)}:${canonicalize(record[key])}`)
|
|
31
|
+
.join(',')}}`;
|
|
32
|
+
}
|
|
33
|
+
// Small, dependency-free SHA-256 keeps identity creation synchronous in Node,
|
|
34
|
+
// browsers, WASM hosts, and edge runtimes.
|
|
35
|
+
function sha256(input) {
|
|
36
|
+
const bytes = new TextEncoder().encode(input);
|
|
37
|
+
const bitLength = bytes.length * 8;
|
|
38
|
+
const paddedLength = (((bytes.length + 9 + 63) >> 6) << 6);
|
|
39
|
+
const padded = new Uint8Array(paddedLength);
|
|
40
|
+
padded.set(bytes);
|
|
41
|
+
padded[bytes.length] = 0x80;
|
|
42
|
+
const view = new DataView(padded.buffer);
|
|
43
|
+
view.setUint32(paddedLength - 4, bitLength >>> 0, false);
|
|
44
|
+
view.setUint32(paddedLength - 8, Math.floor(bitLength / 0x100000000), false);
|
|
45
|
+
const constants = new Uint32Array([
|
|
46
|
+
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
|
|
47
|
+
0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
|
|
48
|
+
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
|
|
49
|
+
0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
50
|
+
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
|
|
51
|
+
0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
|
|
52
|
+
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
|
|
53
|
+
0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
54
|
+
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
|
|
55
|
+
0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
56
|
+
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
|
|
57
|
+
]);
|
|
58
|
+
const state = new Uint32Array([
|
|
59
|
+
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
|
|
60
|
+
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
|
|
61
|
+
]);
|
|
62
|
+
const words = new Uint32Array(64);
|
|
63
|
+
const rotate = (value, bits) => (value >>> bits) | (value << (32 - bits));
|
|
64
|
+
for (let offset = 0; offset < padded.length; offset += 64) {
|
|
65
|
+
for (let i = 0; i < 16; i++)
|
|
66
|
+
words[i] = view.getUint32(offset + i * 4, false);
|
|
67
|
+
for (let i = 16; i < 64; i++) {
|
|
68
|
+
const a = words[i - 15];
|
|
69
|
+
const b = words[i - 2];
|
|
70
|
+
const s0 = rotate(a, 7) ^ rotate(a, 18) ^ (a >>> 3);
|
|
71
|
+
const s1 = rotate(b, 17) ^ rotate(b, 19) ^ (b >>> 10);
|
|
72
|
+
words[i] = (words[i - 16] + s0 + words[i - 7] + s1) >>> 0;
|
|
73
|
+
}
|
|
74
|
+
let [a, b, c, d, e, f, g, h] = state;
|
|
75
|
+
for (let i = 0; i < 64; i++) {
|
|
76
|
+
const s1 = rotate(e, 6) ^ rotate(e, 11) ^ rotate(e, 25);
|
|
77
|
+
const choose = (e & f) ^ (~e & g);
|
|
78
|
+
const t1 = (h + s1 + choose + constants[i] + words[i]) >>> 0;
|
|
79
|
+
const s0 = rotate(a, 2) ^ rotate(a, 13) ^ rotate(a, 22);
|
|
80
|
+
const majority = (a & b) ^ (a & c) ^ (b & c);
|
|
81
|
+
const t2 = (s0 + majority) >>> 0;
|
|
82
|
+
h = g;
|
|
83
|
+
g = f;
|
|
84
|
+
f = e;
|
|
85
|
+
e = (d + t1) >>> 0;
|
|
86
|
+
d = c;
|
|
87
|
+
c = b;
|
|
88
|
+
b = a;
|
|
89
|
+
a = (t1 + t2) >>> 0;
|
|
90
|
+
}
|
|
91
|
+
state[0] = (state[0] + a) >>> 0;
|
|
92
|
+
state[1] = (state[1] + b) >>> 0;
|
|
93
|
+
state[2] = (state[2] + c) >>> 0;
|
|
94
|
+
state[3] = (state[3] + d) >>> 0;
|
|
95
|
+
state[4] = (state[4] + e) >>> 0;
|
|
96
|
+
state[5] = (state[5] + f) >>> 0;
|
|
97
|
+
state[6] = (state[6] + g) >>> 0;
|
|
98
|
+
state[7] = (state[7] + h) >>> 0;
|
|
99
|
+
}
|
|
100
|
+
return Array.from(state, word => word.toString(16).padStart(8, '0')).join('');
|
|
101
|
+
}
|
|
102
|
+
export function createEmbeddingSpaceIdentity(input) {
|
|
103
|
+
if (!input.modelArtifactHash || !input.tokenizerHash || !input.promptTemplateHash) {
|
|
104
|
+
throw new Error('Embedding space identity requires immutable model, tokenizer, and prompt hashes');
|
|
105
|
+
}
|
|
106
|
+
if (!Number.isInteger(input.truncationLength) || input.truncationLength <= 0) {
|
|
107
|
+
throw new Error('Embedding truncationLength must be a positive integer');
|
|
108
|
+
}
|
|
109
|
+
if (!Number.isInteger(input.outputDimension) || input.outputDimension <= 0) {
|
|
110
|
+
throw new Error('Embedding outputDimension must be a positive integer');
|
|
111
|
+
}
|
|
112
|
+
const payload = {
|
|
113
|
+
schema: 'agentdb.embedding-space.v1',
|
|
114
|
+
...input,
|
|
115
|
+
rolePolicy: Object.freeze({ ...input.rolePolicy })
|
|
116
|
+
};
|
|
117
|
+
return Object.freeze({
|
|
118
|
+
...payload,
|
|
119
|
+
hashAlgorithm: 'sha256',
|
|
120
|
+
hash: sha256(canonicalize(payload))
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export function embeddingSpacesEqual(left, right) {
|
|
124
|
+
return left.hash === right.hash;
|
|
125
|
+
}
|
|
126
|
+
export function assertEmbeddingSpaceCompatible(expected, actual, operation) {
|
|
127
|
+
if (operation !== 'vector-read' && !embeddingSpacesEqual(expected, actual)) {
|
|
128
|
+
throw new EmbeddingSpaceMismatchError(expected.hash, actual.hash, operation);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function applyRoleTemplate(template, text) {
|
|
132
|
+
if (!template.includes('{text}')) {
|
|
133
|
+
throw new Error('Embedding role template must contain {text}');
|
|
134
|
+
}
|
|
135
|
+
return template.replaceAll('{text}', text);
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=EmbeddingSpaceIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingSpaceIdentity.js","sourceRoot":"","sources":["../../../src/embedding/EmbeddingSpaceIdentity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { EmbeddingSpaceMismatchError, applyRoleTemplate, assertEmbeddingSpaceCompatible, createEmbeddingSpaceIdentity, embeddingSpacesEqual } from './EmbeddingSpaceIdentity.js';
|
|
2
|
+
export type { EmbeddingCompatibilityOperation, EmbeddingProvenanceType, EmbeddingRole, EmbeddingRolePolicy, EmbeddingSpaceIdentity, EmbeddingSpaceIdentityInput, MemoryProvenance } from './EmbeddingSpaceIdentity.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embedding/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,8BAA8B,EAC9B,4BAA4B,EAC5B,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,+BAA+B,EAC/B,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,6BAA6B,CAAC"}
|