agentdb 3.0.0-alpha.10 → 3.0.0-alpha.12
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/LICENSE +21 -0
- package/README.md +2821 -225
- package/dist/src/backends/VectorBackend.d.ts +31 -6
- package/dist/src/backends/VectorBackend.d.ts.map +1 -1
- package/dist/src/backends/detector.js.map +1 -1
- package/dist/src/backends/factory.d.ts +16 -33
- package/dist/src/backends/factory.d.ts.map +1 -1
- package/dist/src/backends/factory.js +138 -108
- package/dist/src/backends/factory.js.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.js +29 -2
- package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts +198 -45
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.js +612 -277
- package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts +0 -4
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.js +0 -6
- package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
- package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts +175 -0
- package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts.map +1 -0
- package/dist/src/backends/rvf/AdaptiveIndexTuner.js +559 -0
- package/dist/src/backends/rvf/AdaptiveIndexTuner.js.map +1 -0
- package/dist/src/backends/rvf/ContrastiveTrainer.d.ts +148 -0
- package/dist/src/backends/rvf/ContrastiveTrainer.d.ts.map +1 -0
- package/dist/src/backends/rvf/ContrastiveTrainer.js +438 -0
- package/dist/src/backends/rvf/ContrastiveTrainer.js.map +1 -0
- package/dist/src/backends/rvf/FederatedSessionManager.d.ts +211 -0
- package/dist/src/backends/rvf/FederatedSessionManager.d.ts.map +1 -0
- package/dist/src/backends/rvf/FederatedSessionManager.js +389 -0
- package/dist/src/backends/rvf/FederatedSessionManager.js.map +1 -0
- package/dist/src/backends/rvf/FilterBuilder.d.ts +136 -0
- package/dist/src/backends/rvf/FilterBuilder.d.ts.map +1 -0
- package/dist/src/backends/rvf/FilterBuilder.js +157 -0
- package/dist/src/backends/rvf/FilterBuilder.js.map +1 -0
- package/dist/src/backends/rvf/NativeAccelerator.d.ts +140 -0
- package/dist/src/backends/rvf/NativeAccelerator.d.ts.map +1 -0
- package/dist/src/backends/rvf/NativeAccelerator.js +630 -0
- package/dist/src/backends/rvf/NativeAccelerator.js.map +1 -0
- package/dist/src/backends/rvf/RvfBackend.d.ts +194 -0
- package/dist/src/backends/rvf/RvfBackend.d.ts.map +1 -0
- package/dist/src/backends/rvf/RvfBackend.js +607 -0
- package/dist/src/backends/rvf/RvfBackend.js.map +1 -0
- package/dist/src/backends/rvf/RvfSolver.d.ts +175 -0
- package/dist/src/backends/rvf/RvfSolver.d.ts.map +1 -0
- package/dist/src/backends/rvf/RvfSolver.js +176 -0
- package/dist/src/backends/rvf/RvfSolver.js.map +1 -0
- package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts +143 -0
- package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +1 -0
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js +569 -0
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +1 -0
- package/dist/src/backends/rvf/SemanticQueryRouter.d.ts +128 -0
- package/dist/src/backends/rvf/SemanticQueryRouter.d.ts.map +1 -0
- package/dist/src/backends/rvf/SemanticQueryRouter.js +415 -0
- package/dist/src/backends/rvf/SemanticQueryRouter.js.map +1 -0
- package/dist/src/backends/rvf/SimdFallbacks.d.ts +25 -0
- package/dist/src/backends/rvf/SimdFallbacks.d.ts.map +1 -0
- package/dist/src/backends/rvf/SimdFallbacks.js +287 -0
- package/dist/src/backends/rvf/SimdFallbacks.js.map +1 -0
- package/dist/src/backends/rvf/SolverBandit.d.ts +100 -0
- package/dist/src/backends/rvf/SolverBandit.d.ts.map +1 -0
- package/dist/src/backends/rvf/SolverBandit.js +216 -0
- package/dist/src/backends/rvf/SolverBandit.js.map +1 -0
- package/dist/src/backends/rvf/SonaLearningBackend.d.ts +157 -0
- package/dist/src/backends/rvf/SonaLearningBackend.d.ts.map +1 -0
- package/dist/src/backends/rvf/SonaLearningBackend.js +283 -0
- package/dist/src/backends/rvf/SonaLearningBackend.js.map +1 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +77 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.js +382 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -0
- package/dist/src/backends/rvf/WasmStoreBridge.d.ts +27 -0
- package/dist/src/backends/rvf/WasmStoreBridge.d.ts.map +1 -0
- package/dist/src/backends/rvf/WasmStoreBridge.js +87 -0
- package/dist/src/backends/rvf/WasmStoreBridge.js.map +1 -0
- package/dist/src/backends/rvf/validation.d.ts +20 -0
- package/dist/src/backends/rvf/validation.d.ts.map +1 -0
- package/dist/src/backends/rvf/validation.js +78 -0
- package/dist/src/backends/rvf/validation.js.map +1 -0
- package/dist/src/benchmark/BenchmarkSuite.d.ts +318 -0
- package/dist/src/benchmark/BenchmarkSuite.d.ts.map +1 -0
- package/dist/src/benchmark/BenchmarkSuite.js +984 -0
- package/dist/src/benchmark/BenchmarkSuite.js.map +1 -0
- package/dist/src/benchmark/index.d.ts +29 -0
- package/dist/src/benchmark/index.d.ts.map +1 -0
- package/dist/src/benchmark/index.js +39 -0
- package/dist/src/benchmark/index.js.map +1 -0
- package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
- package/dist/src/browser/AttentionBrowser.js +1 -0
- package/dist/src/browser/AttentionBrowser.js.map +1 -1
- package/dist/src/cli/agentdb-cli.d.ts +13 -0
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +803 -94
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/dist/src/cli/commands/hyperbolic.d.ts +11 -0
- package/dist/src/cli/commands/hyperbolic.d.ts.map +1 -0
- package/dist/src/cli/commands/hyperbolic.js +428 -0
- package/dist/src/cli/commands/hyperbolic.js.map +1 -0
- package/dist/src/cli/commands/learn.d.ts +11 -0
- package/dist/src/cli/commands/learn.d.ts.map +1 -0
- package/dist/src/cli/commands/learn.js +404 -0
- package/dist/src/cli/commands/learn.js.map +1 -0
- package/dist/src/cli/commands/migrate.d.ts +15 -0
- package/dist/src/cli/commands/migrate.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate.js +176 -8
- package/dist/src/cli/commands/migrate.js.map +1 -1
- package/dist/src/cli/commands/route.d.ts +11 -0
- package/dist/src/cli/commands/route.d.ts.map +1 -0
- package/dist/src/cli/commands/route.js +414 -0
- package/dist/src/cli/commands/route.js.map +1 -0
- package/dist/src/cli/commands/rvf.d.ts +21 -0
- package/dist/src/cli/commands/rvf.d.ts.map +1 -0
- package/dist/src/cli/commands/rvf.js +448 -0
- package/dist/src/cli/commands/rvf.js.map +1 -0
- package/dist/src/cli/lib/report-store.d.ts +2 -1
- package/dist/src/cli/lib/report-store.d.ts.map +1 -1
- package/dist/src/cli/lib/report-store.js +85 -65
- package/dist/src/cli/lib/report-store.js.map +1 -1
- package/dist/src/cli/lib/simulation-runner.d.ts +40 -3
- package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-runner.js +248 -6
- package/dist/src/cli/lib/simulation-runner.js.map +1 -1
- package/dist/src/compatibility/DeprecationWarnings.d.ts +54 -0
- package/dist/src/compatibility/DeprecationWarnings.d.ts.map +1 -0
- package/dist/src/compatibility/DeprecationWarnings.js +131 -0
- package/dist/src/compatibility/DeprecationWarnings.js.map +1 -0
- package/dist/src/compatibility/MigrationUtilities.d.ts +30 -0
- package/dist/src/compatibility/MigrationUtilities.d.ts.map +1 -0
- package/dist/src/compatibility/MigrationUtilities.js +184 -0
- package/dist/src/compatibility/MigrationUtilities.js.map +1 -0
- package/dist/src/compatibility/V1toV2Adapter.d.ts +76 -0
- package/dist/src/compatibility/V1toV2Adapter.d.ts.map +1 -0
- package/dist/src/compatibility/V1toV2Adapter.js +185 -0
- package/dist/src/compatibility/V1toV2Adapter.js.map +1 -0
- package/dist/src/compatibility/VersionDetector.d.ts +32 -0
- package/dist/src/compatibility/VersionDetector.d.ts.map +1 -0
- package/dist/src/compatibility/VersionDetector.js +144 -0
- package/dist/src/compatibility/VersionDetector.js.map +1 -0
- package/dist/src/compatibility/index.d.ts +14 -0
- package/dist/src/compatibility/index.d.ts.map +1 -0
- package/dist/src/compatibility/index.js +21 -0
- package/dist/src/compatibility/index.js.map +1 -0
- package/dist/src/compatibility/types.d.ts +103 -0
- package/dist/src/compatibility/types.d.ts.map +1 -0
- package/dist/src/compatibility/types.js +5 -0
- package/dist/src/compatibility/types.js.map +1 -0
- package/dist/src/controllers/AttentionService.d.ts +99 -202
- package/dist/src/controllers/AttentionService.d.ts.map +1 -1
- package/dist/src/controllers/AttentionService.js +450 -558
- package/dist/src/controllers/AttentionService.js.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.d.ts +30 -5
- package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.js +89 -13
- package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
- package/dist/src/controllers/CausalRecall.d.ts +4 -0
- package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
- package/dist/src/controllers/CausalRecall.js +19 -2
- package/dist/src/controllers/CausalRecall.js.map +1 -1
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.js +28 -11
- package/dist/src/controllers/EmbeddingService.js.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts +4 -0
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.js +17 -3
- package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
- package/dist/src/controllers/ExplainableRecall.d.ts +1 -1
- package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
- package/dist/src/controllers/ExplainableRecall.js +1 -1
- package/dist/src/controllers/ExplainableRecall.js.map +1 -1
- package/dist/src/controllers/HNSWIndex.d.ts +20 -2
- package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
- package/dist/src/controllers/HNSWIndex.js +82 -6
- package/dist/src/controllers/HNSWIndex.js.map +1 -1
- package/dist/src/controllers/LearningSystem.d.ts +1 -17
- package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
- package/dist/src/controllers/LearningSystem.js +18 -135
- package/dist/src/controllers/LearningSystem.js.map +1 -1
- package/dist/src/controllers/MemoryController.d.ts +161 -0
- package/dist/src/controllers/MemoryController.d.ts.map +1 -0
- package/dist/src/controllers/MemoryController.js +303 -0
- package/dist/src/controllers/MemoryController.js.map +1 -0
- 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 +5 -1
- package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
- package/dist/src/controllers/NightlyLearner.js +17 -3
- package/dist/src/controllers/NightlyLearner.js.map +1 -1
- package/dist/src/controllers/QUICClient.d.ts +45 -0
- package/dist/src/controllers/QUICClient.d.ts.map +1 -1
- package/dist/src/controllers/QUICClient.js +190 -0
- package/dist/src/controllers/QUICClient.js.map +1 -1
- package/dist/src/controllers/ReasoningBank.d.ts +6 -3
- package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
- package/dist/src/controllers/ReasoningBank.js +47 -41
- package/dist/src/controllers/ReasoningBank.js.map +1 -1
- package/dist/src/controllers/ReflexionMemory.d.ts +115 -6
- package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
- package/dist/src/controllers/ReflexionMemory.js +541 -213
- package/dist/src/controllers/ReflexionMemory.js.map +1 -1
- package/dist/src/controllers/SkillLibrary.d.ts +27 -3
- package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
- package/dist/src/controllers/SkillLibrary.js +187 -91
- 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.map +1 -1
- package/dist/src/controllers/SyncCoordinator.js +115 -3
- package/dist/src/controllers/SyncCoordinator.js.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.d.ts +12 -30
- package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.js +146 -93
- 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 +141 -0
- package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +1 -0
- package/dist/src/controllers/attention/CrossAttentionController.js +325 -0
- package/dist/src/controllers/attention/CrossAttentionController.js.map +1 -0
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +137 -0
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +1 -0
- package/dist/src/controllers/attention/MultiHeadAttentionController.js +336 -0
- package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +1 -0
- package/dist/src/controllers/attention/SelfAttentionController.d.ts +117 -0
- package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +1 -0
- package/dist/src/controllers/attention/SelfAttentionController.js +205 -0
- package/dist/src/controllers/attention/SelfAttentionController.js.map +1 -0
- package/dist/src/controllers/attention/index.d.ts +24 -0
- package/dist/src/controllers/attention/index.d.ts.map +1 -0
- package/dist/src/controllers/attention/index.js +20 -0
- package/dist/src/controllers/attention/index.js.map +1 -0
- package/dist/src/controllers/index.d.ts +14 -27
- package/dist/src/controllers/index.d.ts.map +1 -1
- package/dist/src/controllers/index.js +10 -18
- 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 +27 -19
- package/dist/src/core/AgentDB.d.ts.map +1 -1
- package/dist/src/core/AgentDB.js +76 -124
- package/dist/src/core/AgentDB.js.map +1 -1
- package/dist/src/core/QueryCache.d.ts +138 -0
- package/dist/src/core/QueryCache.d.ts.map +1 -0
- package/dist/src/core/QueryCache.js +309 -0
- package/dist/src/core/QueryCache.js.map +1 -0
- package/dist/src/db-fallback.d.ts +10 -1
- package/dist/src/db-fallback.d.ts.map +1 -1
- package/dist/src/db-fallback.js +205 -28
- package/dist/src/db-fallback.js.map +1 -1
- package/dist/src/examples/quic-sync-example.js +2 -2
- package/dist/src/examples/quic-sync-example.js.map +1 -1
- package/dist/src/index.d.ts +15 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +39 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/agentdb-mcp-server.js +47 -2
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
- 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 +121 -0
- package/dist/src/model/ModelCacheLoader.js.map +1 -0
- package/dist/src/observability/index.d.ts +8 -0
- package/dist/src/observability/index.d.ts.map +1 -0
- package/dist/src/observability/index.js +8 -0
- package/dist/src/observability/index.js.map +1 -0
- package/dist/src/observability/integration.d.ts +32 -0
- package/dist/src/observability/integration.d.ts.map +1 -0
- package/dist/src/observability/integration.js +159 -0
- package/dist/src/observability/integration.js.map +1 -0
- package/dist/src/observability/telemetry.d.ts +137 -0
- package/dist/src/observability/telemetry.d.ts.map +1 -0
- package/dist/src/observability/telemetry.js +416 -0
- package/dist/src/observability/telemetry.js.map +1 -0
- package/dist/src/optimizations/BatchOperations.d.ts +47 -0
- package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
- package/dist/src/optimizations/BatchOperations.js +183 -31
- 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/index.d.ts +1 -3
- package/dist/src/optimizations/index.d.ts.map +1 -1
- package/dist/src/optimizations/index.js +0 -1
- package/dist/src/optimizations/index.js.map +1 -1
- package/dist/src/quantization/index.d.ts +7 -0
- package/dist/src/quantization/index.d.ts.map +1 -0
- package/dist/src/quantization/index.js +15 -0
- package/dist/src/quantization/index.js.map +1 -0
- package/dist/src/quantization/vector-quantization.d.ts +388 -0
- package/dist/src/quantization/vector-quantization.d.ts.map +1 -0
- package/dist/src/quantization/vector-quantization.js +1132 -0
- package/dist/src/quantization/vector-quantization.js.map +1 -0
- package/dist/src/search/HybridSearch.d.ts +311 -0
- package/dist/src/search/HybridSearch.d.ts.map +1 -0
- package/dist/src/search/HybridSearch.js +712 -0
- package/dist/src/search/HybridSearch.js.map +1 -0
- package/dist/src/search/index.d.ts +12 -0
- package/dist/src/search/index.d.ts.map +1 -0
- package/dist/src/search/index.js +16 -0
- package/dist/src/search/index.js.map +1 -0
- package/dist/src/services/AttentionService.d.ts +303 -0
- package/dist/src/services/AttentionService.d.ts.map +1 -0
- package/dist/src/services/AttentionService.js +1165 -0
- package/dist/src/services/AttentionService.js.map +1 -0
- package/dist/src/services/LLMRouter.d.ts +61 -7
- package/dist/src/services/LLMRouter.d.ts.map +1 -1
- package/dist/src/services/LLMRouter.js +286 -22
- 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/index.d.ts +9 -0
- package/dist/src/simd/index.d.ts.map +1 -0
- package/dist/src/simd/index.js +27 -0
- package/dist/src/simd/index.js.map +1 -0
- package/dist/src/simd/simd-vector-ops.d.ts +332 -0
- package/dist/src/simd/simd-vector-ops.d.ts.map +1 -0
- package/dist/src/simd/simd-vector-ops.js +945 -0
- package/dist/src/simd/simd-vector-ops.js.map +1 -0
- package/dist/src/types/database.types.d.ts +275 -0
- package/dist/src/types/database.types.d.ts.map +1 -0
- package/dist/src/types/database.types.js +55 -0
- package/dist/src/types/database.types.js.map +1 -0
- 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/utils/chalk-fallback.d.ts +3 -0
- package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
- package/dist/src/utils/chalk-fallback.js +20 -0
- package/dist/src/utils/chalk-fallback.js.map +1 -0
- package/dist/src/utils/similarity.d.ts +11 -0
- package/dist/src/utils/similarity.d.ts.map +1 -0
- package/dist/src/utils/similarity.js +25 -0
- package/dist/src/utils/similarity.js.map +1 -0
- package/dist/src/wasm-loader.d.ts +66 -0
- package/dist/src/wasm-loader.d.ts.map +1 -0
- package/dist/src/wasm-loader.js +76 -0
- package/dist/src/wasm-loader.js.map +1 -0
- package/dist/src/wrappers/agentdb-fast.d.ts +139 -0
- package/dist/src/wrappers/agentdb-fast.d.ts.map +1 -0
- package/dist/src/wrappers/agentdb-fast.js +307 -0
- package/dist/src/wrappers/agentdb-fast.js.map +1 -0
- package/dist/src/wrappers/attention-fallbacks.d.ts +343 -0
- package/dist/src/wrappers/attention-fallbacks.d.ts.map +1 -0
- package/dist/src/wrappers/attention-fallbacks.js +1484 -0
- package/dist/src/wrappers/attention-fallbacks.js.map +1 -0
- 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 +117 -0
- package/dist/src/wrappers/embedding-service.d.ts.map +1 -0
- package/dist/src/wrappers/embedding-service.js +370 -0
- package/dist/src/wrappers/embedding-service.js.map +1 -0
- package/dist/src/wrappers/gnn-wrapper.d.ts +71 -0
- package/dist/src/wrappers/gnn-wrapper.d.ts.map +1 -0
- package/dist/src/wrappers/gnn-wrapper.js +236 -0
- package/dist/src/wrappers/gnn-wrapper.js.map +1 -0
- package/dist/src/wrappers/index.d.ts +48 -0
- package/dist/src/wrappers/index.d.ts.map +1 -0
- package/dist/src/wrappers/index.js +83 -0
- package/dist/src/wrappers/index.js.map +1 -0
- package/package.json +77 -76
- package/scripts/postinstall.cjs +13 -144
- package/dist/agentdb.browser.js +0 -1685
- package/dist/agentdb.browser.js.map +0 -7
- package/dist/agentdb.browser.min.js +0 -3
- package/dist/agentdb.browser.min.js.map +0 -7
- package/dist/agentdb.wasm-loader.js +0 -207
- package/dist/backends/VectorBackend.d.ts +0 -120
- package/dist/backends/VectorBackend.js +0 -14
- package/dist/backends/VectorBackend.js.map +0 -1
- package/dist/optimizations/RVFOptimizer.d.ts +0 -225
- package/dist/optimizations/RVFOptimizer.js +0 -541
- package/dist/optimizations/RVFOptimizer.js.map +0 -1
- package/dist/schemas/frontier-schema.sql +0 -378
- package/dist/schemas/schema.sql +0 -382
- package/dist/simulation/cli.d.ts +0 -9
- package/dist/simulation/cli.d.ts.map +0 -1
- package/dist/simulation/cli.js +0 -68
- package/dist/simulation/cli.js.map +0 -1
- package/dist/simulation/runner.d.ts +0 -21
- package/dist/simulation/runner.d.ts.map +0 -1
- package/dist/simulation/runner.js +0 -241
- package/dist/simulation/runner.js.map +0 -1
- package/dist/simulation/scenarios/aidefence-integration.d.ts +0 -24
- package/dist/simulation/scenarios/aidefence-integration.d.ts.map +0 -1
- package/dist/simulation/scenarios/aidefence-integration.js +0 -124
- package/dist/simulation/scenarios/aidefence-integration.js.map +0 -1
- package/dist/simulation/scenarios/bmssp-integration.d.ts +0 -23
- package/dist/simulation/scenarios/bmssp-integration.d.ts.map +0 -1
- package/dist/simulation/scenarios/bmssp-integration.js +0 -104
- package/dist/simulation/scenarios/bmssp-integration.js.map +0 -1
- package/dist/simulation/scenarios/causal-reasoning.d.ts +0 -16
- package/dist/simulation/scenarios/causal-reasoning.d.ts.map +0 -1
- package/dist/simulation/scenarios/causal-reasoning.js +0 -108
- package/dist/simulation/scenarios/causal-reasoning.js.map +0 -1
- package/dist/simulation/scenarios/consciousness-explorer.d.ts +0 -25
- package/dist/simulation/scenarios/consciousness-explorer.d.ts.map +0 -1
- package/dist/simulation/scenarios/consciousness-explorer.js +0 -108
- package/dist/simulation/scenarios/consciousness-explorer.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts +0 -135
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js +0 -158
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/index.d.ts +0 -14
- package/dist/simulation/scenarios/domain-examples/index.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/index.js +0 -14
- package/dist/simulation/scenarios/domain-examples/index.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts +0 -178
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js +0 -218
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts +0 -122
- package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/medical-imaging.js +0 -129
- package/dist/simulation/scenarios/domain-examples/medical-imaging.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts +0 -166
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.js +0 -161
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts +0 -151
- package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/scientific-research.js +0 -187
- package/dist/simulation/scenarios/domain-examples/scientific-research.js.map +0 -1
- package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts +0 -102
- package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts.map +0 -1
- package/dist/simulation/scenarios/domain-examples/trading-systems.js +0 -100
- package/dist/simulation/scenarios/domain-examples/trading-systems.js.map +0 -1
- package/dist/simulation/scenarios/goalie-integration.d.ts +0 -24
- package/dist/simulation/scenarios/goalie-integration.d.ts.map +0 -1
- package/dist/simulation/scenarios/goalie-integration.js +0 -121
- package/dist/simulation/scenarios/goalie-integration.js.map +0 -1
- package/dist/simulation/scenarios/graph-traversal.d.ts +0 -17
- package/dist/simulation/scenarios/graph-traversal.d.ts.map +0 -1
- package/dist/simulation/scenarios/graph-traversal.js +0 -101
- package/dist/simulation/scenarios/graph-traversal.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts +0 -45
- package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/attention-analysis.js +0 -435
- package/dist/simulation/scenarios/latent-space/attention-analysis.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts +0 -55
- package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/clustering-analysis.js +0 -606
- package/dist/simulation/scenarios/latent-space/clustering-analysis.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts +0 -74
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.js +0 -391
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts +0 -51
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js +0 -536
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/index.d.ts +0 -35
- package/dist/simulation/scenarios/latent-space/index.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/index.js +0 -35
- package/dist/simulation/scenarios/latent-space/index.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts +0 -52
- package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/neural-augmentation.js +0 -472
- package/dist/simulation/scenarios/latent-space/neural-augmentation.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts +0 -53
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.js +0 -391
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts +0 -52
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js +0 -514
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js.map +0 -1
- package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts +0 -53
- package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts.map +0 -1
- package/dist/simulation/scenarios/latent-space/traversal-optimization.js +0 -595
- package/dist/simulation/scenarios/latent-space/traversal-optimization.js.map +0 -1
- package/dist/simulation/scenarios/lean-agentic-swarm.d.ts +0 -18
- package/dist/simulation/scenarios/lean-agentic-swarm.d.ts.map +0 -1
- package/dist/simulation/scenarios/lean-agentic-swarm.js +0 -132
- package/dist/simulation/scenarios/lean-agentic-swarm.js.map +0 -1
- package/dist/simulation/scenarios/multi-agent-swarm.d.ts +0 -17
- package/dist/simulation/scenarios/multi-agent-swarm.d.ts.map +0 -1
- package/dist/simulation/scenarios/multi-agent-swarm.js +0 -111
- package/dist/simulation/scenarios/multi-agent-swarm.js.map +0 -1
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts +0 -23
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts.map +0 -1
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.js +0 -98
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.js.map +0 -1
- package/dist/simulation/scenarios/reflexion-learning.d.ts +0 -16
- package/dist/simulation/scenarios/reflexion-learning.d.ts.map +0 -1
- package/dist/simulation/scenarios/reflexion-learning.js +0 -98
- package/dist/simulation/scenarios/reflexion-learning.js.map +0 -1
- package/dist/simulation/scenarios/research-swarm.d.ts +0 -24
- package/dist/simulation/scenarios/research-swarm.d.ts.map +0 -1
- package/dist/simulation/scenarios/research-swarm.js +0 -146
- package/dist/simulation/scenarios/research-swarm.js.map +0 -1
- package/dist/simulation/scenarios/skill-evolution.d.ts +0 -16
- package/dist/simulation/scenarios/skill-evolution.d.ts.map +0 -1
- package/dist/simulation/scenarios/skill-evolution.js +0 -109
- package/dist/simulation/scenarios/skill-evolution.js.map +0 -1
- package/dist/simulation/scenarios/stock-market-emergence.d.ts +0 -33
- package/dist/simulation/scenarios/stock-market-emergence.d.ts.map +0 -1
- package/dist/simulation/scenarios/stock-market-emergence.js +0 -246
- package/dist/simulation/scenarios/stock-market-emergence.js.map +0 -1
- package/dist/simulation/scenarios/strange-loops.d.ts +0 -18
- package/dist/simulation/scenarios/strange-loops.d.ts.map +0 -1
- package/dist/simulation/scenarios/strange-loops.js +0 -133
- package/dist/simulation/scenarios/strange-loops.js.map +0 -1
- package/dist/simulation/scenarios/sublinear-solver.d.ts +0 -22
- package/dist/simulation/scenarios/sublinear-solver.d.ts.map +0 -1
- package/dist/simulation/scenarios/sublinear-solver.js +0 -82
- package/dist/simulation/scenarios/sublinear-solver.js.map +0 -1
- package/dist/simulation/scenarios/temporal-lead-solver.d.ts +0 -23
- package/dist/simulation/scenarios/temporal-lead-solver.d.ts.map +0 -1
- package/dist/simulation/scenarios/temporal-lead-solver.js +0 -90
- package/dist/simulation/scenarios/temporal-lead-solver.js.map +0 -1
- package/dist/simulation/scenarios/voting-system-consensus.d.ts +0 -27
- package/dist/simulation/scenarios/voting-system-consensus.d.ts.map +0 -1
- package/dist/simulation/scenarios/voting-system-consensus.js +0 -175
- package/dist/simulation/scenarios/voting-system-consensus.js.map +0 -1
- package/dist/simulation/types.d.ts +0 -162
- package/dist/simulation/types.d.ts.map +0 -1
- package/dist/simulation/types.js +0 -5
- package/dist/simulation/types.js.map +0 -1
- package/dist/simulation/utils/PerformanceOptimizer.d.ts +0 -115
- package/dist/simulation/utils/PerformanceOptimizer.d.ts.map +0 -1
- package/dist/simulation/utils/PerformanceOptimizer.js +0 -223
- package/dist/simulation/utils/PerformanceOptimizer.js.map +0 -1
- package/dist/src/backends/index.cjs +0 -6
- package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts +0 -93
- package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts.map +0 -1
- package/dist/src/backends/ruvector/GuardedVectorBackend.js +0 -182
- package/dist/src/backends/ruvector/GuardedVectorBackend.js.map +0 -1
- package/dist/src/consensus/RaftConsensus.d.ts +0 -220
- package/dist/src/consensus/RaftConsensus.d.ts.map +0 -1
- package/dist/src/consensus/RaftConsensus.js +0 -762
- package/dist/src/consensus/RaftConsensus.js.map +0 -1
- package/dist/src/controllers/HierarchicalMemory.d.ts +0 -197
- package/dist/src/controllers/HierarchicalMemory.d.ts.map +0 -1
- package/dist/src/controllers/HierarchicalMemory.js +0 -519
- package/dist/src/controllers/HierarchicalMemory.js.map +0 -1
- package/dist/src/controllers/MemoryConsolidation.d.ts +0 -142
- package/dist/src/controllers/MemoryConsolidation.d.ts.map +0 -1
- package/dist/src/controllers/MemoryConsolidation.js +0 -479
- package/dist/src/controllers/MemoryConsolidation.js.map +0 -1
- package/dist/src/controllers/QUICConnection.d.ts +0 -122
- package/dist/src/controllers/QUICConnection.d.ts.map +0 -1
- package/dist/src/controllers/QUICConnection.js +0 -329
- package/dist/src/controllers/QUICConnection.js.map +0 -1
- package/dist/src/controllers/QUICConnectionPool.d.ts +0 -83
- package/dist/src/controllers/QUICConnectionPool.d.ts.map +0 -1
- package/dist/src/controllers/QUICConnectionPool.js +0 -256
- package/dist/src/controllers/QUICConnectionPool.js.map +0 -1
- package/dist/src/controllers/QUICStreamManager.d.ts +0 -114
- package/dist/src/controllers/QUICStreamManager.d.ts.map +0 -1
- package/dist/src/controllers/QUICStreamManager.js +0 -267
- package/dist/src/controllers/QUICStreamManager.js.map +0 -1
- package/dist/src/controllers/StreamingEmbeddingService.d.ts +0 -82
- package/dist/src/controllers/StreamingEmbeddingService.d.ts.map +0 -1
- package/dist/src/controllers/StreamingEmbeddingService.js +0 -243
- package/dist/src/controllers/StreamingEmbeddingService.js.map +0 -1
- package/dist/src/controllers/index.cjs +0 -6
- 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/index.cjs +0 -6
- package/dist/src/optimizations/RVFOptimizer.d.ts +0 -226
- package/dist/src/optimizations/RVFOptimizer.d.ts.map +0 -1
- package/dist/src/optimizations/RVFOptimizer.js +0 -541
- package/dist/src/optimizations/RVFOptimizer.js.map +0 -1
- package/dist/src/security/AttestationLog.d.ts +0 -70
- package/dist/src/security/AttestationLog.d.ts.map +0 -1
- package/dist/src/security/AttestationLog.js +0 -174
- package/dist/src/security/AttestationLog.js.map +0 -1
- package/dist/src/security/MutationGuard.d.ts +0 -83
- package/dist/src/security/MutationGuard.d.ts.map +0 -1
- package/dist/src/security/MutationGuard.js +0 -364
- package/dist/src/security/MutationGuard.js.map +0 -1
- package/dist/src/security/index.cjs +0 -6
- package/dist/src/security/index.d.ts +0 -15
- package/dist/src/security/index.d.ts.map +0 -1
- package/dist/src/security/index.js +0 -18
- package/dist/src/security/index.js.map +0 -1
- package/dist/src/services/GNNService.d.ts +0 -173
- package/dist/src/services/GNNService.d.ts.map +0 -1
- package/dist/src/services/GNNService.js +0 -639
- package/dist/src/services/GNNService.js.map +0 -1
- package/dist/src/services/GraphTransformerService.d.ts +0 -80
- package/dist/src/services/GraphTransformerService.d.ts.map +0 -1
- package/dist/src/services/GraphTransformerService.js +0 -369
- package/dist/src/services/GraphTransformerService.js.map +0 -1
- package/dist/src/services/SemanticRouter.d.ts +0 -83
- package/dist/src/services/SemanticRouter.d.ts.map +0 -1
- package/dist/src/services/SemanticRouter.js +0 -160
- package/dist/src/services/SemanticRouter.js.map +0 -1
- package/dist/src/services/SonaTrajectoryService.d.ts +0 -224
- package/dist/src/services/SonaTrajectoryService.d.ts.map +0 -1
- package/dist/src/services/SonaTrajectoryService.js +0 -539
- package/dist/src/services/SonaTrajectoryService.js.map +0 -1
- package/dist/src/utils/LegacyAttentionAdapter.d.ts +0 -93
- package/dist/src/utils/LegacyAttentionAdapter.d.ts.map +0 -1
- package/dist/src/utils/LegacyAttentionAdapter.js +0 -241
- package/dist/src/utils/LegacyAttentionAdapter.js.map +0 -1
- package/dist/src/utils/vector-math.d.ts +0 -29
- package/dist/src/utils/vector-math.d.ts.map +0 -1
- package/dist/src/utils/vector-math.js +0 -66
- package/dist/src/utils/vector-math.js.map +0 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SemanticQueryRouter - Intent-Based Query Routing for AgentDB
|
|
3
|
+
*
|
|
4
|
+
* Wraps @ruvector/router's SemanticRouter for intelligent query routing
|
|
5
|
+
* based on learned intent embeddings. Routes queries to appropriate
|
|
6
|
+
* handlers (e.g., different memory stores, search strategies) based
|
|
7
|
+
* on semantic similarity.
|
|
8
|
+
*
|
|
9
|
+
* Security:
|
|
10
|
+
* - Intent names validated (length, characters)
|
|
11
|
+
* - Embedding dimensions validated
|
|
12
|
+
* - Route count bounded
|
|
13
|
+
* - No file I/O (uses in-memory VectorDb)
|
|
14
|
+
*/
|
|
15
|
+
/** Route match result */
|
|
16
|
+
export interface RouteMatch {
|
|
17
|
+
intent: string;
|
|
18
|
+
score: number;
|
|
19
|
+
metadata: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/** Intent configuration */
|
|
22
|
+
export interface IntentConfig {
|
|
23
|
+
name: string;
|
|
24
|
+
exemplars: Float32Array[];
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/** Router configuration */
|
|
28
|
+
export interface RouterConfig {
|
|
29
|
+
/** Embedding dimension */
|
|
30
|
+
dimension: number;
|
|
31
|
+
/** Minimum similarity score for matches (default: 0.0 for distance metrics) */
|
|
32
|
+
threshold?: number;
|
|
33
|
+
/** Maximum number of intents (default: 1000) */
|
|
34
|
+
maxIntents?: number;
|
|
35
|
+
/** Path for router state persistence (ADR-007 Phase 1) */
|
|
36
|
+
persistencePath?: string;
|
|
37
|
+
}
|
|
38
|
+
/** Router statistics */
|
|
39
|
+
export interface RouterStats {
|
|
40
|
+
intentCount: number;
|
|
41
|
+
dimension: number;
|
|
42
|
+
totalQueries: number;
|
|
43
|
+
avgLatencyMs: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* SemanticQueryRouter - Route queries to intents via learned embeddings
|
|
47
|
+
*
|
|
48
|
+
* Uses @ruvector/router's N-API VectorDb (HNSW + SIMD) for sub-millisecond
|
|
49
|
+
* routing. Falls back to built-in brute-force search if @ruvector/router
|
|
50
|
+
* is not available.
|
|
51
|
+
*/
|
|
52
|
+
export declare class SemanticQueryRouter {
|
|
53
|
+
private dim;
|
|
54
|
+
private threshold;
|
|
55
|
+
private maxIntents;
|
|
56
|
+
private router;
|
|
57
|
+
private fallbackIntents;
|
|
58
|
+
private _totalQueries;
|
|
59
|
+
private _totalLatencyMs;
|
|
60
|
+
private _destroyed;
|
|
61
|
+
private _useNative;
|
|
62
|
+
private _persistencePath;
|
|
63
|
+
private _persistTimer;
|
|
64
|
+
private _persistDebounceMs;
|
|
65
|
+
private _persistDirty;
|
|
66
|
+
private constructor();
|
|
67
|
+
/**
|
|
68
|
+
* Create a new semantic query router.
|
|
69
|
+
* Lazy-loads @ruvector/router; falls back to built-in search.
|
|
70
|
+
*/
|
|
71
|
+
static create(config: RouterConfig): Promise<SemanticQueryRouter>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if @ruvector/router is available.
|
|
74
|
+
*/
|
|
75
|
+
static isAvailable(): Promise<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Add an intent with exemplar embeddings.
|
|
78
|
+
* The centroid of exemplars is used for routing.
|
|
79
|
+
*/
|
|
80
|
+
addIntent(config: IntentConfig): void;
|
|
81
|
+
/**
|
|
82
|
+
* Route a query embedding to the best matching intent(s).
|
|
83
|
+
*/
|
|
84
|
+
route(query: Float32Array, k?: number): RouteMatch[];
|
|
85
|
+
/**
|
|
86
|
+
* Remove an intent.
|
|
87
|
+
*/
|
|
88
|
+
removeIntent(name: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Get all intent names.
|
|
91
|
+
*/
|
|
92
|
+
getIntents(): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Get router statistics.
|
|
95
|
+
*/
|
|
96
|
+
getStats(): RouterStats;
|
|
97
|
+
/** Whether using native @ruvector/router */
|
|
98
|
+
get isNative(): boolean;
|
|
99
|
+
/** Check if destroyed */
|
|
100
|
+
get isDestroyed(): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Save router state to disk (ADR-007 Phase 1 persistence).
|
|
103
|
+
* Requires @ruvector/router native save support or falls back to JSON.
|
|
104
|
+
*/
|
|
105
|
+
save(path: string): Promise<boolean>;
|
|
106
|
+
/**
|
|
107
|
+
* Load router state from disk (ADR-007 Phase 1 persistence).
|
|
108
|
+
*/
|
|
109
|
+
load(path: string): Promise<boolean>;
|
|
110
|
+
/** Whether a persistence path is configured */
|
|
111
|
+
get persistencePath(): string | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Persist router state immediately (ADR-007 Phase 1).
|
|
114
|
+
* Saves to the configured persistencePath using native or JSON fallback.
|
|
115
|
+
*/
|
|
116
|
+
persist(): Promise<boolean>;
|
|
117
|
+
/** Destroy the router */
|
|
118
|
+
destroy(): void;
|
|
119
|
+
private fallbackRoute;
|
|
120
|
+
private topK;
|
|
121
|
+
/**
|
|
122
|
+
* Schedule a debounced persist (ADR-007 Phase 1).
|
|
123
|
+
* Coalesces rapid route changes into a single write after 5s of quiet.
|
|
124
|
+
*/
|
|
125
|
+
private schedulePersist;
|
|
126
|
+
private ensureAlive;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=SemanticQueryRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticQueryRouter.d.ts","sourceRoot":"","sources":["../../../../src/backends/rvf/SemanticQueryRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,yBAAyB;AACzB,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,2BAA2B;AAC3B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,2BAA2B;AAC3B,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAwB;AACxB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAqCD;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,eAAe,CAAkG;IACzH,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IASP;;;OAGG;WACU,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA8BvE;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAsDrC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,GAAE,MAAU,GAAG,UAAU,EAAE;IAsBvD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAYnC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAOtB;;OAEG;IACH,QAAQ,IAAI,WAAW;IASvB,4CAA4C;IAC5C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,yBAAyB;IACzB,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB1C;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgC1C,+CAA+C;IAC/C,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAMjC,yBAAyB;IACzB,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,IAAI;IA8BZ;;;OAGG;IACH,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SemanticQueryRouter - Intent-Based Query Routing for AgentDB
|
|
3
|
+
*
|
|
4
|
+
* Wraps @ruvector/router's SemanticRouter for intelligent query routing
|
|
5
|
+
* based on learned intent embeddings. Routes queries to appropriate
|
|
6
|
+
* handlers (e.g., different memory stores, search strategies) based
|
|
7
|
+
* on semantic similarity.
|
|
8
|
+
*
|
|
9
|
+
* Security:
|
|
10
|
+
* - Intent names validated (length, characters)
|
|
11
|
+
* - Embedding dimensions validated
|
|
12
|
+
* - Route count bounded
|
|
13
|
+
* - No file I/O (uses in-memory VectorDb)
|
|
14
|
+
*/
|
|
15
|
+
// Bounds
|
|
16
|
+
const MAX_INTENTS = 10000;
|
|
17
|
+
const MAX_INTENT_NAME_LENGTH = 256;
|
|
18
|
+
const MAX_DIMENSION = 4096;
|
|
19
|
+
const MAX_EXEMPLARS = 100;
|
|
20
|
+
const MAX_PATH_LENGTH = 4096;
|
|
21
|
+
const FORBIDDEN_PATH_PATTERNS = [
|
|
22
|
+
/\.\./, // Path traversal
|
|
23
|
+
/^\/etc\//i, // System config
|
|
24
|
+
/^\/proc\//i, // Process info
|
|
25
|
+
/^\/sys\//i, // System info
|
|
26
|
+
/^\/dev\//i, // Devices
|
|
27
|
+
];
|
|
28
|
+
function validatePath(inputPath) {
|
|
29
|
+
if (!inputPath || typeof inputPath !== 'string') {
|
|
30
|
+
throw new Error('Path must be a non-empty string');
|
|
31
|
+
}
|
|
32
|
+
if (inputPath.length > MAX_PATH_LENGTH) {
|
|
33
|
+
throw new Error(`Path exceeds maximum length of ${MAX_PATH_LENGTH}`);
|
|
34
|
+
}
|
|
35
|
+
if (inputPath.includes('\0')) {
|
|
36
|
+
throw new Error('Path must not contain null bytes');
|
|
37
|
+
}
|
|
38
|
+
if (/\.\.[\\/]/.test(inputPath)) {
|
|
39
|
+
throw new Error('Path contains forbidden traversal pattern');
|
|
40
|
+
}
|
|
41
|
+
for (const pattern of FORBIDDEN_PATH_PATTERNS) {
|
|
42
|
+
if (pattern.test(inputPath)) {
|
|
43
|
+
throw new Error('Path contains forbidden pattern');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* SemanticQueryRouter - Route queries to intents via learned embeddings
|
|
49
|
+
*
|
|
50
|
+
* Uses @ruvector/router's N-API VectorDb (HNSW + SIMD) for sub-millisecond
|
|
51
|
+
* routing. Falls back to built-in brute-force search if @ruvector/router
|
|
52
|
+
* is not available.
|
|
53
|
+
*/
|
|
54
|
+
export class SemanticQueryRouter {
|
|
55
|
+
dim;
|
|
56
|
+
threshold;
|
|
57
|
+
maxIntents;
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
+
router = null;
|
|
60
|
+
fallbackIntents = new Map();
|
|
61
|
+
_totalQueries = 0;
|
|
62
|
+
_totalLatencyMs = 0;
|
|
63
|
+
_destroyed = false;
|
|
64
|
+
_useNative;
|
|
65
|
+
_persistencePath;
|
|
66
|
+
_persistTimer = null;
|
|
67
|
+
_persistDebounceMs = 5000;
|
|
68
|
+
_persistDirty = false;
|
|
69
|
+
constructor(config) {
|
|
70
|
+
this.dim = config.dimension;
|
|
71
|
+
this.threshold = config.threshold ?? 0.0;
|
|
72
|
+
this.maxIntents = Math.min(Math.max(1, config.maxIntents ?? 1000), MAX_INTENTS);
|
|
73
|
+
this._useNative = false;
|
|
74
|
+
if (config.persistencePath)
|
|
75
|
+
validatePath(config.persistencePath);
|
|
76
|
+
this._persistencePath = config.persistencePath;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create a new semantic query router.
|
|
80
|
+
* Lazy-loads @ruvector/router; falls back to built-in search.
|
|
81
|
+
*/
|
|
82
|
+
static async create(config) {
|
|
83
|
+
if (!Number.isFinite(config.dimension) || config.dimension < 1 || config.dimension > MAX_DIMENSION) {
|
|
84
|
+
throw new Error(`dimension must be between 1 and ${MAX_DIMENSION}`);
|
|
85
|
+
}
|
|
86
|
+
const instance = new SemanticQueryRouter(config);
|
|
87
|
+
try {
|
|
88
|
+
const { SemanticRouter } = await import('@ruvector/router');
|
|
89
|
+
instance.router = new SemanticRouter({
|
|
90
|
+
dimension: config.dimension,
|
|
91
|
+
threshold: config.threshold ?? 0.0,
|
|
92
|
+
});
|
|
93
|
+
instance._useNative = true;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Fallback to built-in brute-force
|
|
97
|
+
instance._useNative = false;
|
|
98
|
+
}
|
|
99
|
+
// ADR-007 Phase 1: attempt to restore persisted state
|
|
100
|
+
if (config.persistencePath) {
|
|
101
|
+
try {
|
|
102
|
+
const loaded = await instance.load(config.persistencePath);
|
|
103
|
+
if (loaded)
|
|
104
|
+
instance._persistDirty = false;
|
|
105
|
+
}
|
|
106
|
+
catch { /* fresh start if load fails */ }
|
|
107
|
+
}
|
|
108
|
+
return instance;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Check if @ruvector/router is available.
|
|
112
|
+
*/
|
|
113
|
+
static async isAvailable() {
|
|
114
|
+
try {
|
|
115
|
+
await import('@ruvector/router');
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Add an intent with exemplar embeddings.
|
|
124
|
+
* The centroid of exemplars is used for routing.
|
|
125
|
+
*/
|
|
126
|
+
addIntent(config) {
|
|
127
|
+
this.ensureAlive();
|
|
128
|
+
if (!config.name || config.name.length > MAX_INTENT_NAME_LENGTH) {
|
|
129
|
+
throw new Error(`Intent name must be 1-${MAX_INTENT_NAME_LENGTH} characters`);
|
|
130
|
+
}
|
|
131
|
+
if (!config.exemplars || config.exemplars.length === 0) {
|
|
132
|
+
throw new Error('At least one exemplar embedding is required');
|
|
133
|
+
}
|
|
134
|
+
if (config.exemplars.length > MAX_EXEMPLARS) {
|
|
135
|
+
throw new Error(`Maximum ${MAX_EXEMPLARS} exemplars per intent`);
|
|
136
|
+
}
|
|
137
|
+
// Validate dimensions
|
|
138
|
+
for (const emb of config.exemplars) {
|
|
139
|
+
if (emb.length !== this.dim) {
|
|
140
|
+
throw new Error(`Exemplar dimension ${emb.length} does not match router dimension ${this.dim}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const intentCount = this._useNative
|
|
144
|
+
? (this.router?.getIntents()?.length ?? 0)
|
|
145
|
+
: this.fallbackIntents.size;
|
|
146
|
+
if (intentCount >= this.maxIntents) {
|
|
147
|
+
throw new Error(`Maximum ${this.maxIntents} intents reached`);
|
|
148
|
+
}
|
|
149
|
+
// Compute centroid
|
|
150
|
+
const centroid = new Float32Array(this.dim);
|
|
151
|
+
for (const emb of config.exemplars) {
|
|
152
|
+
for (let i = 0; i < this.dim; i++) {
|
|
153
|
+
centroid[i] += emb[i] / config.exemplars.length;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const metadata = config.metadata ?? {};
|
|
157
|
+
if (this._useNative && this.router) {
|
|
158
|
+
this.router.addIntent({
|
|
159
|
+
name: config.name,
|
|
160
|
+
utterances: ['__embedding__'], // Required but unused for embedding routing
|
|
161
|
+
embedding: centroid,
|
|
162
|
+
metadata,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
let norm = 0;
|
|
167
|
+
for (let i = 0; i < this.dim; i++)
|
|
168
|
+
norm += centroid[i] * centroid[i];
|
|
169
|
+
norm = Math.sqrt(norm);
|
|
170
|
+
this.fallbackIntents.set(config.name, { centroid, norm, metadata });
|
|
171
|
+
}
|
|
172
|
+
this.schedulePersist();
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Route a query embedding to the best matching intent(s).
|
|
176
|
+
*/
|
|
177
|
+
route(query, k = 1) {
|
|
178
|
+
this.ensureAlive();
|
|
179
|
+
if (query.length !== this.dim) {
|
|
180
|
+
throw new Error(`Query dimension ${query.length} does not match router dimension ${this.dim}`);
|
|
181
|
+
}
|
|
182
|
+
const start = performance.now();
|
|
183
|
+
let results;
|
|
184
|
+
if (this._useNative && this.router) {
|
|
185
|
+
results = this.router.routeWithEmbedding(query, k);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
results = this.fallbackRoute(query, k);
|
|
189
|
+
}
|
|
190
|
+
const elapsed = performance.now() - start;
|
|
191
|
+
this._totalQueries++;
|
|
192
|
+
this._totalLatencyMs += elapsed;
|
|
193
|
+
return results;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Remove an intent.
|
|
197
|
+
*/
|
|
198
|
+
removeIntent(name) {
|
|
199
|
+
this.ensureAlive();
|
|
200
|
+
let removed;
|
|
201
|
+
if (this._useNative && this.router) {
|
|
202
|
+
removed = this.router.removeIntent(name);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
removed = this.fallbackIntents.delete(name);
|
|
206
|
+
}
|
|
207
|
+
if (removed)
|
|
208
|
+
this.schedulePersist();
|
|
209
|
+
return removed;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get all intent names.
|
|
213
|
+
*/
|
|
214
|
+
getIntents() {
|
|
215
|
+
if (this._useNative && this.router) {
|
|
216
|
+
return this.router.getIntents();
|
|
217
|
+
}
|
|
218
|
+
return Array.from(this.fallbackIntents.keys());
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get router statistics.
|
|
222
|
+
*/
|
|
223
|
+
getStats() {
|
|
224
|
+
return {
|
|
225
|
+
intentCount: this.getIntents().length,
|
|
226
|
+
dimension: this.dim,
|
|
227
|
+
totalQueries: this._totalQueries,
|
|
228
|
+
avgLatencyMs: this._totalQueries > 0 ? this._totalLatencyMs / this._totalQueries : 0,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/** Whether using native @ruvector/router */
|
|
232
|
+
get isNative() {
|
|
233
|
+
return this._useNative;
|
|
234
|
+
}
|
|
235
|
+
/** Check if destroyed */
|
|
236
|
+
get isDestroyed() {
|
|
237
|
+
return this._destroyed;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Save router state to disk (ADR-007 Phase 1 persistence).
|
|
241
|
+
* Requires @ruvector/router native save support or falls back to JSON.
|
|
242
|
+
*/
|
|
243
|
+
async save(path) {
|
|
244
|
+
this.ensureAlive();
|
|
245
|
+
validatePath(path);
|
|
246
|
+
if (this._useNative && this.router) {
|
|
247
|
+
try {
|
|
248
|
+
const { NativeAccelerator: N } = await import('./NativeAccelerator.js');
|
|
249
|
+
const accel = new N();
|
|
250
|
+
await accel.initialize();
|
|
251
|
+
if (accel.routerPersistAvailable)
|
|
252
|
+
return accel.routerSave(this.router, path);
|
|
253
|
+
}
|
|
254
|
+
catch { /* fall through to JSON */ }
|
|
255
|
+
}
|
|
256
|
+
// JSON fallback for fallback intents
|
|
257
|
+
const { writeFile } = await import('node:fs/promises');
|
|
258
|
+
const data = [];
|
|
259
|
+
for (const [name, { centroid, metadata }] of this.fallbackIntents) {
|
|
260
|
+
data.push({ name, centroid: Array.from(centroid), metadata });
|
|
261
|
+
}
|
|
262
|
+
await writeFile(path, JSON.stringify({ dim: this.dim, threshold: this.threshold, intents: data }));
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Load router state from disk (ADR-007 Phase 1 persistence).
|
|
267
|
+
*/
|
|
268
|
+
async load(path) {
|
|
269
|
+
this.ensureAlive();
|
|
270
|
+
validatePath(path);
|
|
271
|
+
if (this._useNative) {
|
|
272
|
+
try {
|
|
273
|
+
const { NativeAccelerator: N } = await import('./NativeAccelerator.js');
|
|
274
|
+
const accel = new N();
|
|
275
|
+
await accel.initialize();
|
|
276
|
+
if (accel.routerPersistAvailable) {
|
|
277
|
+
const loaded = await accel.routerLoad(path);
|
|
278
|
+
if (loaded) {
|
|
279
|
+
this.router = loaded;
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch { /* fall through to JSON */ }
|
|
285
|
+
}
|
|
286
|
+
// JSON fallback
|
|
287
|
+
try {
|
|
288
|
+
const { readFile } = await import('node:fs/promises');
|
|
289
|
+
const raw = JSON.parse(await readFile(path, 'utf-8'));
|
|
290
|
+
if (raw.intents && Array.isArray(raw.intents)) {
|
|
291
|
+
for (const intent of raw.intents) {
|
|
292
|
+
const centroid = new Float32Array(intent.centroid);
|
|
293
|
+
let norm = 0;
|
|
294
|
+
for (let i = 0; i < centroid.length; i++)
|
|
295
|
+
norm += centroid[i] * centroid[i];
|
|
296
|
+
norm = Math.sqrt(norm);
|
|
297
|
+
this.fallbackIntents.set(intent.name, { centroid, norm, metadata: intent.metadata ?? {} });
|
|
298
|
+
}
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
catch { /* path not found or invalid */ }
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
/** Whether a persistence path is configured */
|
|
306
|
+
get persistencePath() {
|
|
307
|
+
return this._persistencePath;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Persist router state immediately (ADR-007 Phase 1).
|
|
311
|
+
* Saves to the configured persistencePath using native or JSON fallback.
|
|
312
|
+
*/
|
|
313
|
+
async persist() {
|
|
314
|
+
if (!this._persistencePath || this._destroyed)
|
|
315
|
+
return false;
|
|
316
|
+
this._persistDirty = false;
|
|
317
|
+
return this.save(this._persistencePath);
|
|
318
|
+
}
|
|
319
|
+
/** Destroy the router */
|
|
320
|
+
destroy() {
|
|
321
|
+
if (!this._destroyed) {
|
|
322
|
+
if (this._persistTimer) {
|
|
323
|
+
clearTimeout(this._persistTimer);
|
|
324
|
+
this._persistTimer = null;
|
|
325
|
+
}
|
|
326
|
+
this.router = null;
|
|
327
|
+
this.fallbackIntents.clear();
|
|
328
|
+
this._destroyed = true;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
// --- Private helpers ---
|
|
332
|
+
fallbackRoute(query, k) {
|
|
333
|
+
// Pre-compute query norm once
|
|
334
|
+
let qNorm = 0;
|
|
335
|
+
for (let i = 0; i < query.length; i++)
|
|
336
|
+
qNorm += query[i] * query[i];
|
|
337
|
+
qNorm = Math.sqrt(qNorm);
|
|
338
|
+
if (qNorm < 1e-10)
|
|
339
|
+
return [];
|
|
340
|
+
const scored = [];
|
|
341
|
+
for (const [name, { centroid, norm, metadata }] of this.fallbackIntents) {
|
|
342
|
+
if (norm < 1e-10)
|
|
343
|
+
continue;
|
|
344
|
+
// Cosine similarity with pre-computed centroid norm
|
|
345
|
+
let dot = 0;
|
|
346
|
+
for (let i = 0; i < query.length; i++)
|
|
347
|
+
dot += query[i] * centroid[i];
|
|
348
|
+
const sim = dot / (qNorm * norm);
|
|
349
|
+
if (sim >= this.threshold) {
|
|
350
|
+
scored.push({ intent: name, score: sim, metadata });
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
// For small k, use partial sort (selection) instead of full sort
|
|
354
|
+
if (k < scored.length / 4) {
|
|
355
|
+
return this.topK(scored, k);
|
|
356
|
+
}
|
|
357
|
+
scored.sort((a, b) => b.score - a.score);
|
|
358
|
+
return scored.slice(0, k);
|
|
359
|
+
}
|
|
360
|
+
topK(items, k) {
|
|
361
|
+
// Min-heap for top-k selection: O(n*log(k)) vs O(n*log(n)) for full sort
|
|
362
|
+
const heap = [];
|
|
363
|
+
for (const item of items) {
|
|
364
|
+
if (heap.length < k) {
|
|
365
|
+
heap.push(item);
|
|
366
|
+
if (heap.length === k)
|
|
367
|
+
heap.sort((a, b) => a.score - b.score);
|
|
368
|
+
}
|
|
369
|
+
else if (item.score > heap[0].score) {
|
|
370
|
+
heap[0] = item;
|
|
371
|
+
// Bubble down to maintain min-heap property
|
|
372
|
+
let i = 0;
|
|
373
|
+
let settled = false;
|
|
374
|
+
while (!settled) {
|
|
375
|
+
const l = 2 * i + 1, r = 2 * i + 2;
|
|
376
|
+
let smallest = i;
|
|
377
|
+
if (l < k && heap[l].score < heap[smallest].score)
|
|
378
|
+
smallest = l;
|
|
379
|
+
if (r < k && heap[r].score < heap[smallest].score)
|
|
380
|
+
smallest = r;
|
|
381
|
+
if (smallest === i) {
|
|
382
|
+
settled = true;
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
[heap[i], heap[smallest]] = [heap[smallest], heap[i]];
|
|
386
|
+
i = smallest;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
heap.sort((a, b) => b.score - a.score);
|
|
392
|
+
return heap;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Schedule a debounced persist (ADR-007 Phase 1).
|
|
396
|
+
* Coalesces rapid route changes into a single write after 5s of quiet.
|
|
397
|
+
*/
|
|
398
|
+
schedulePersist() {
|
|
399
|
+
if (!this._persistencePath || this._destroyed)
|
|
400
|
+
return;
|
|
401
|
+
this._persistDirty = true;
|
|
402
|
+
if (this._persistTimer)
|
|
403
|
+
clearTimeout(this._persistTimer);
|
|
404
|
+
this._persistTimer = setTimeout(() => {
|
|
405
|
+
this._persistTimer = null;
|
|
406
|
+
this.persist().catch(() => { });
|
|
407
|
+
}, this._persistDebounceMs);
|
|
408
|
+
}
|
|
409
|
+
ensureAlive() {
|
|
410
|
+
if (this._destroyed) {
|
|
411
|
+
throw new Error('SemanticQueryRouter has been destroyed. Create a new instance.');
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
//# sourceMappingURL=SemanticQueryRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticQueryRouter.js","sourceRoot":"","sources":["../../../../src/backends/rvf/SemanticQueryRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimdFallbacks - Optimized pure-JS fallbacks for SIMD operations
|
|
3
|
+
*
|
|
4
|
+
* All vector math, activation functions, and element-wise operations
|
|
5
|
+
* with 4-wide loop unrolling for performance-critical paths.
|
|
6
|
+
* Used by NativeAccelerator when @ruvector/ruvllm is unavailable.
|
|
7
|
+
*/
|
|
8
|
+
export declare function jsCosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
9
|
+
export declare function jsDotProduct(a: Float32Array, b: Float32Array): number;
|
|
10
|
+
export declare function jsL2Distance(a: Float32Array, b: Float32Array): number;
|
|
11
|
+
export declare function jsHammingDistance(a: Uint8Array, b: Uint8Array): number;
|
|
12
|
+
export declare function jsInfoNceLoss(anchor: Float32Array, positive: Float32Array, negatives: Float32Array[], temperature: number): number;
|
|
13
|
+
export declare function jsAdamWStep(params: Float32Array, grads: Float32Array, m: Float32Array, v: Float32Array, step: number, lr: number, wd: number): void;
|
|
14
|
+
export declare function jsMatvec(matrix: number[][], vector: number[]): number[];
|
|
15
|
+
export declare function jsSoftmax(input: number[]): number[];
|
|
16
|
+
export declare function jsRelu(input: number[]): number[];
|
|
17
|
+
export declare function jsGelu(input: number[]): number[];
|
|
18
|
+
export declare function jsSigmoid(input: number[]): number[];
|
|
19
|
+
export declare function jsLayerNorm(input: number[], eps: number): number[];
|
|
20
|
+
export declare function jsAdd(a: number[], b: number[]): number[];
|
|
21
|
+
export declare function jsMul(a: number[], b: number[]): number[];
|
|
22
|
+
export declare function jsScale(a: number[], scalar: number): number[];
|
|
23
|
+
export declare function jsNormalizeVec(a: number[]): number[];
|
|
24
|
+
export declare function jsCrc32c(data: Uint8Array): number;
|
|
25
|
+
//# sourceMappingURL=SimdFallbacks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimdFallbacks.d.ts","sourceRoot":"","sources":["../../../../src/backends/rvf/SimdFallbacks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAoB3E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAWrE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAYrE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAOtE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAC5C,SAAS,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,GAC7C,MAAM,CAOR;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EACzC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAChC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GACnC,IAAI,CAUN;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiBvE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CASnD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYhD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAShD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYnD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBlE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAUxD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAUxD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAU7D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAepD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAMjD"}
|