agentdb 1.6.1 → 2.0.0-alpha.1
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 +1098 -350
- package/dist/agentdb-advanced.js +2110 -0
- package/dist/agentdb-advanced.min.js +1 -0
- package/dist/agentdb.min.js +4 -4
- package/dist/backends/GraphBackend.d.ts +196 -0
- package/dist/backends/GraphBackend.d.ts.map +1 -0
- package/dist/backends/GraphBackend.js +33 -0
- package/dist/backends/GraphBackend.js.map +1 -0
- package/dist/backends/LearningBackend.d.ts +148 -0
- package/dist/backends/LearningBackend.d.ts.map +1 -0
- package/dist/backends/LearningBackend.js +27 -0
- package/dist/backends/LearningBackend.js.map +1 -0
- package/dist/backends/VectorBackend.d.ts +119 -0
- package/dist/backends/VectorBackend.d.ts.map +1 -0
- package/dist/backends/VectorBackend.js +14 -0
- package/dist/backends/VectorBackend.js.map +1 -0
- package/dist/backends/detector.d.ts +81 -0
- package/dist/backends/detector.d.ts.map +1 -0
- package/dist/backends/detector.js +192 -0
- package/dist/backends/detector.js.map +1 -0
- package/dist/backends/factory.d.ts +50 -0
- package/dist/backends/factory.d.ts.map +1 -0
- package/dist/backends/factory.js +161 -0
- package/dist/backends/factory.js.map +1 -0
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts +139 -0
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -0
- package/dist/backends/graph/GraphDatabaseAdapter.js +194 -0
- package/dist/backends/graph/GraphDatabaseAdapter.js.map +1 -0
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts +92 -0
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -0
- package/dist/backends/hnswlib/HNSWLibBackend.js +316 -0
- package/dist/backends/hnswlib/HNSWLibBackend.js.map +1 -0
- package/dist/backends/hnswlib/index.d.ts +7 -0
- package/dist/backends/hnswlib/index.d.ts.map +1 -0
- package/dist/backends/hnswlib/index.js +7 -0
- package/dist/backends/hnswlib/index.js.map +1 -0
- package/dist/backends/index.d.ts +14 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +13 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/ruvector/RuVectorBackend.d.ts +75 -0
- package/dist/backends/ruvector/RuVectorBackend.d.ts.map +1 -0
- package/dist/backends/ruvector/RuVectorBackend.js +198 -0
- package/dist/backends/ruvector/RuVectorBackend.js.map +1 -0
- package/dist/backends/ruvector/RuVectorLearning.d.ts +104 -0
- package/dist/backends/ruvector/RuVectorLearning.d.ts.map +1 -0
- package/dist/backends/ruvector/RuVectorLearning.js +177 -0
- package/dist/backends/ruvector/RuVectorLearning.js.map +1 -0
- package/dist/backends/ruvector/index.d.ts +9 -0
- package/dist/backends/ruvector/index.d.ts.map +1 -0
- package/dist/backends/ruvector/index.js +8 -0
- package/dist/backends/ruvector/index.js.map +1 -0
- package/dist/browser/AdvancedFeatures.d.ts +144 -0
- package/dist/browser/AdvancedFeatures.d.ts.map +1 -0
- package/dist/browser/AdvancedFeatures.js +430 -0
- package/dist/browser/AdvancedFeatures.js.map +1 -0
- package/dist/browser/HNSWIndex.d.ts +117 -0
- package/dist/browser/HNSWIndex.d.ts.map +1 -0
- package/dist/browser/HNSWIndex.js +402 -0
- package/dist/browser/HNSWIndex.js.map +1 -0
- package/dist/browser/ProductQuantization.d.ts +107 -0
- package/dist/browser/ProductQuantization.d.ts.map +1 -0
- package/dist/browser/ProductQuantization.js +337 -0
- package/dist/browser/ProductQuantization.js.map +1 -0
- package/dist/browser/browser/AdvancedFeatures.d.ts +144 -0
- package/dist/browser/browser/AdvancedFeatures.d.ts.map +1 -0
- package/dist/browser/browser/AdvancedFeatures.js +427 -0
- package/dist/browser/browser/HNSWIndex.d.ts +117 -0
- package/dist/browser/browser/HNSWIndex.d.ts.map +1 -0
- package/dist/browser/browser/HNSWIndex.js +402 -0
- package/dist/browser/browser/ProductQuantization.d.ts +107 -0
- package/dist/browser/browser/ProductQuantization.d.ts.map +1 -0
- package/dist/browser/browser/ProductQuantization.js +348 -0
- package/dist/browser/browser/index.d.ts +223 -0
- package/dist/browser/browser/index.d.ts.map +1 -0
- package/dist/browser/browser/index.js +233 -0
- package/dist/browser/index.d.ts +223 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +225 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/cli/agentdb-cli.js +130 -8
- package/dist/cli/agentdb-cli.js.map +1 -1
- package/dist/cli/agentdb.db +0 -0
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +115 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install-embeddings.d.ts +10 -0
- package/dist/cli/commands/install-embeddings.d.ts.map +1 -0
- package/dist/cli/commands/install-embeddings.js +68 -0
- package/dist/cli/commands/install-embeddings.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +15 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +425 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/status.d.ts +10 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +129 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/controllers/CausalRecall.d.ts +3 -1
- package/dist/controllers/CausalRecall.d.ts.map +1 -1
- package/dist/controllers/CausalRecall.js +35 -4
- package/dist/controllers/CausalRecall.js.map +1 -1
- package/dist/controllers/ExplainableRecall.d.ts +24 -0
- package/dist/controllers/ExplainableRecall.d.ts.map +1 -1
- package/dist/controllers/ExplainableRecall.js +102 -5
- package/dist/controllers/ExplainableRecall.js.map +1 -1
- package/dist/controllers/NightlyLearner.d.ts.map +1 -1
- package/dist/controllers/NightlyLearner.js +7 -4
- package/dist/controllers/NightlyLearner.js.map +1 -1
- package/dist/controllers/ReasoningBank.d.ts +101 -2
- package/dist/controllers/ReasoningBank.d.ts.map +1 -1
- package/dist/controllers/ReasoningBank.js +196 -4
- package/dist/controllers/ReasoningBank.js.map +1 -1
- package/dist/controllers/ReflexionMemory.d.ts +41 -1
- package/dist/controllers/ReflexionMemory.d.ts.map +1 -1
- package/dist/controllers/ReflexionMemory.js +282 -5
- package/dist/controllers/ReflexionMemory.js.map +1 -1
- package/dist/controllers/SkillLibrary.d.ts +27 -9
- package/dist/controllers/SkillLibrary.d.ts.map +1 -1
- package/dist/controllers/SkillLibrary.js +136 -47
- package/dist/controllers/SkillLibrary.js.map +1 -1
- package/dist/db-fallback.d.ts.map +1 -1
- package/dist/db-fallback.js +100 -29
- package/dist/db-fallback.js.map +1 -1
- package/dist/db-test.d.ts +13 -0
- package/dist/db-test.d.ts.map +1 -0
- package/dist/db-test.js +55 -0
- package/dist/db-test.js.map +1 -0
- package/dist/db-unified.d.ts +76 -0
- package/dist/db-unified.d.ts.map +1 -0
- package/dist/db-unified.js +278 -0
- package/dist/db-unified.js.map +1 -0
- package/dist/malp/core/ccc.d.ts +99 -0
- package/dist/malp/core/ccc.d.ts.map +1 -0
- package/dist/malp/core/ccc.js +181 -0
- package/dist/malp/core/ccc.js.map +1 -0
- package/dist/malp/core/index.d.ts +9 -0
- package/dist/malp/core/index.d.ts.map +1 -0
- package/dist/malp/core/index.js +9 -0
- package/dist/malp/core/index.js.map +1 -0
- package/dist/malp/core/linalg.d.ts +101 -0
- package/dist/malp/core/linalg.d.ts.map +1 -0
- package/dist/malp/core/linalg.js +278 -0
- package/dist/malp/core/linalg.js.map +1 -0
- package/dist/malp/core/optimizer.d.ts +68 -0
- package/dist/malp/core/optimizer.d.ts.map +1 -0
- package/dist/malp/core/optimizer.js +160 -0
- package/dist/malp/core/optimizer.js.map +1 -0
- package/dist/malp/index.d.ts +33 -0
- package/dist/malp/index.d.ts.map +1 -0
- package/dist/malp/index.js +37 -0
- package/dist/malp/index.js.map +1 -0
- package/dist/malp/metrics/agreement.d.ts +106 -0
- package/dist/malp/metrics/agreement.d.ts.map +1 -0
- package/dist/malp/metrics/agreement.js +199 -0
- package/dist/malp/metrics/agreement.js.map +1 -0
- package/dist/malp/metrics/comparison.d.ts +93 -0
- package/dist/malp/metrics/comparison.d.ts.map +1 -0
- package/dist/malp/metrics/comparison.js +256 -0
- package/dist/malp/metrics/comparison.js.map +1 -0
- package/dist/malp/metrics/index.d.ts +8 -0
- package/dist/malp/metrics/index.d.ts.map +1 -0
- package/dist/malp/metrics/index.js +8 -0
- package/dist/malp/metrics/index.js.map +1 -0
- package/dist/malp/metrics/performance.d.ts +61 -0
- package/dist/malp/metrics/performance.d.ts.map +1 -0
- package/dist/malp/metrics/performance.js +190 -0
- package/dist/malp/metrics/performance.js.map +1 -0
- package/dist/malp/models/index.d.ts +7 -0
- package/dist/malp/models/index.d.ts.map +1 -0
- package/dist/malp/models/index.js +7 -0
- package/dist/malp/models/index.js.map +1 -0
- package/dist/malp/models/malp.d.ts +116 -0
- package/dist/malp/models/malp.d.ts.map +1 -0
- package/dist/malp/models/malp.js +206 -0
- package/dist/malp/models/malp.js.map +1 -0
- package/dist/malp/models/regressor.d.ts +80 -0
- package/dist/malp/models/regressor.d.ts.map +1 -0
- package/dist/malp/models/regressor.js +229 -0
- package/dist/malp/models/regressor.js.map +1 -0
- package/dist/malp/reasoningbank_validator.d.ts +187 -0
- package/dist/malp/reasoningbank_validator.d.ts.map +1 -0
- package/dist/malp/reasoningbank_validator.js +246 -0
- package/dist/malp/reasoningbank_validator.js.map +1 -0
- package/dist/malp/wasm_bindings.d.ts +344 -0
- package/dist/malp/wasm_bindings.d.ts.map +1 -0
- package/dist/malp/wasm_bindings.js +9 -0
- package/dist/malp/wasm_bindings.js.map +1 -0
- package/dist/mcp/agentdb-mcp-server.js +512 -33
- package/dist/mcp/agentdb-mcp-server.js.map +1 -1
- package/dist/optimizations/BatchOperations.d.ts +42 -0
- package/dist/optimizations/BatchOperations.d.ts.map +1 -1
- package/dist/optimizations/BatchOperations.js +181 -0
- package/dist/optimizations/BatchOperations.js.map +1 -1
- package/dist/optimizations/ToolCache.d.ts +137 -0
- package/dist/optimizations/ToolCache.d.ts.map +1 -0
- package/dist/optimizations/ToolCache.js +281 -0
- package/dist/optimizations/ToolCache.js.map +1 -0
- package/dist/security/input-validation.d.ts +24 -0
- package/dist/security/input-validation.d.ts.map +1 -1
- package/dist/security/input-validation.js +106 -0
- package/dist/security/input-validation.js.map +1 -1
- package/dist/security/limits.d.ts +150 -0
- package/dist/security/limits.d.ts.map +1 -0
- package/dist/security/limits.js +288 -0
- package/dist/security/limits.js.map +1 -0
- package/dist/security/path-security.d.ts +100 -0
- package/dist/security/path-security.d.ts.map +1 -0
- package/dist/security/path-security.js +337 -0
- package/dist/security/path-security.js.map +1 -0
- package/dist/security/validation.d.ts +95 -0
- package/dist/security/validation.d.ts.map +1 -0
- package/dist/security/validation.js +315 -0
- package/dist/security/validation.js.map +1 -0
- package/dist/simulation/cli.d.ts +9 -0
- package/dist/simulation/cli.d.ts.map +1 -0
- package/dist/simulation/cli.js +68 -0
- package/dist/simulation/cli.js.map +1 -0
- package/dist/simulation/runner.d.ts +21 -0
- package/dist/simulation/runner.d.ts.map +1 -0
- package/dist/simulation/runner.js +241 -0
- package/dist/simulation/runner.js.map +1 -0
- package/dist/simulation/scenarios/aidefence-integration.d.ts +24 -0
- package/dist/simulation/scenarios/aidefence-integration.d.ts.map +1 -0
- package/dist/simulation/scenarios/aidefence-integration.js +124 -0
- package/dist/simulation/scenarios/aidefence-integration.js.map +1 -0
- package/dist/simulation/scenarios/bmssp-integration.d.ts +23 -0
- package/dist/simulation/scenarios/bmssp-integration.d.ts.map +1 -0
- package/dist/simulation/scenarios/bmssp-integration.js +104 -0
- package/dist/simulation/scenarios/bmssp-integration.js.map +1 -0
- package/dist/simulation/scenarios/causal-reasoning.d.ts +16 -0
- package/dist/simulation/scenarios/causal-reasoning.d.ts.map +1 -0
- package/dist/simulation/scenarios/causal-reasoning.js +108 -0
- package/dist/simulation/scenarios/causal-reasoning.js.map +1 -0
- package/dist/simulation/scenarios/consciousness-explorer.d.ts +25 -0
- package/dist/simulation/scenarios/consciousness-explorer.d.ts.map +1 -0
- package/dist/simulation/scenarios/consciousness-explorer.js +108 -0
- package/dist/simulation/scenarios/consciousness-explorer.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts +135 -0
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js +158 -0
- package/dist/simulation/scenarios/domain-examples/e-commerce-recommendations.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/index.d.ts +14 -0
- package/dist/simulation/scenarios/domain-examples/index.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/index.js +14 -0
- package/dist/simulation/scenarios/domain-examples/index.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts +178 -0
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js +218 -0
- package/dist/simulation/scenarios/domain-examples/iot-sensor-networks.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts +122 -0
- package/dist/simulation/scenarios/domain-examples/medical-imaging.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/medical-imaging.js +129 -0
- package/dist/simulation/scenarios/domain-examples/medical-imaging.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts +166 -0
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.js +161 -0
- package/dist/simulation/scenarios/domain-examples/robotics-navigation.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts +151 -0
- package/dist/simulation/scenarios/domain-examples/scientific-research.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/scientific-research.js +187 -0
- package/dist/simulation/scenarios/domain-examples/scientific-research.js.map +1 -0
- package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts +102 -0
- package/dist/simulation/scenarios/domain-examples/trading-systems.d.ts.map +1 -0
- package/dist/simulation/scenarios/domain-examples/trading-systems.js +100 -0
- package/dist/simulation/scenarios/domain-examples/trading-systems.js.map +1 -0
- package/dist/simulation/scenarios/goalie-integration.d.ts +24 -0
- package/dist/simulation/scenarios/goalie-integration.d.ts.map +1 -0
- package/dist/simulation/scenarios/goalie-integration.js +121 -0
- package/dist/simulation/scenarios/goalie-integration.js.map +1 -0
- package/dist/simulation/scenarios/graph-traversal.d.ts +17 -0
- package/dist/simulation/scenarios/graph-traversal.d.ts.map +1 -0
- package/dist/simulation/scenarios/graph-traversal.js +101 -0
- package/dist/simulation/scenarios/graph-traversal.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts +45 -0
- package/dist/simulation/scenarios/latent-space/attention-analysis.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/attention-analysis.js +435 -0
- package/dist/simulation/scenarios/latent-space/attention-analysis.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts +55 -0
- package/dist/simulation/scenarios/latent-space/clustering-analysis.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/clustering-analysis.js +606 -0
- package/dist/simulation/scenarios/latent-space/clustering-analysis.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts +74 -0
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.js +391 -0
- package/dist/simulation/scenarios/latent-space/hnsw-exploration.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts +51 -0
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js +536 -0
- package/dist/simulation/scenarios/latent-space/hypergraph-exploration.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/index.d.ts +35 -0
- package/dist/simulation/scenarios/latent-space/index.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/index.js +35 -0
- package/dist/simulation/scenarios/latent-space/index.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts +52 -0
- package/dist/simulation/scenarios/latent-space/neural-augmentation.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/neural-augmentation.js +472 -0
- package/dist/simulation/scenarios/latent-space/neural-augmentation.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts +53 -0
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.js +391 -0
- package/dist/simulation/scenarios/latent-space/quantum-hybrid.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts +52 -0
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js +514 -0
- package/dist/simulation/scenarios/latent-space/self-organizing-hnsw.js.map +1 -0
- package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts +53 -0
- package/dist/simulation/scenarios/latent-space/traversal-optimization.d.ts.map +1 -0
- package/dist/simulation/scenarios/latent-space/traversal-optimization.js +595 -0
- package/dist/simulation/scenarios/latent-space/traversal-optimization.js.map +1 -0
- package/dist/simulation/scenarios/lean-agentic-swarm.d.ts +18 -0
- package/dist/simulation/scenarios/lean-agentic-swarm.d.ts.map +1 -0
- package/dist/simulation/scenarios/lean-agentic-swarm.js +132 -0
- package/dist/simulation/scenarios/lean-agentic-swarm.js.map +1 -0
- package/dist/simulation/scenarios/multi-agent-swarm.d.ts +17 -0
- package/dist/simulation/scenarios/multi-agent-swarm.d.ts.map +1 -0
- package/dist/simulation/scenarios/multi-agent-swarm.js +111 -0
- package/dist/simulation/scenarios/multi-agent-swarm.js.map +1 -0
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts +23 -0
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.d.ts.map +1 -0
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.js +98 -0
- package/dist/simulation/scenarios/psycho-symbolic-reasoner.js.map +1 -0
- package/dist/simulation/scenarios/reflexion-learning.d.ts +16 -0
- package/dist/simulation/scenarios/reflexion-learning.d.ts.map +1 -0
- package/dist/simulation/scenarios/reflexion-learning.js +98 -0
- package/dist/simulation/scenarios/reflexion-learning.js.map +1 -0
- package/dist/simulation/scenarios/research-swarm.d.ts +24 -0
- package/dist/simulation/scenarios/research-swarm.d.ts.map +1 -0
- package/dist/simulation/scenarios/research-swarm.js +146 -0
- package/dist/simulation/scenarios/research-swarm.js.map +1 -0
- package/dist/simulation/scenarios/skill-evolution.d.ts +16 -0
- package/dist/simulation/scenarios/skill-evolution.d.ts.map +1 -0
- package/dist/simulation/scenarios/skill-evolution.js +109 -0
- package/dist/simulation/scenarios/skill-evolution.js.map +1 -0
- package/dist/simulation/scenarios/stock-market-emergence.d.ts +33 -0
- package/dist/simulation/scenarios/stock-market-emergence.d.ts.map +1 -0
- package/dist/simulation/scenarios/stock-market-emergence.js +246 -0
- package/dist/simulation/scenarios/stock-market-emergence.js.map +1 -0
- package/dist/simulation/scenarios/strange-loops.d.ts +18 -0
- package/dist/simulation/scenarios/strange-loops.d.ts.map +1 -0
- package/dist/simulation/scenarios/strange-loops.js +133 -0
- package/dist/simulation/scenarios/strange-loops.js.map +1 -0
- package/dist/simulation/scenarios/sublinear-solver.d.ts +22 -0
- package/dist/simulation/scenarios/sublinear-solver.d.ts.map +1 -0
- package/dist/simulation/scenarios/sublinear-solver.js +82 -0
- package/dist/simulation/scenarios/sublinear-solver.js.map +1 -0
- package/dist/simulation/scenarios/temporal-lead-solver.d.ts +23 -0
- package/dist/simulation/scenarios/temporal-lead-solver.d.ts.map +1 -0
- package/dist/simulation/scenarios/temporal-lead-solver.js +90 -0
- package/dist/simulation/scenarios/temporal-lead-solver.js.map +1 -0
- package/dist/simulation/scenarios/voting-system-consensus.d.ts +27 -0
- package/dist/simulation/scenarios/voting-system-consensus.d.ts.map +1 -0
- package/dist/simulation/scenarios/voting-system-consensus.js +175 -0
- package/dist/simulation/scenarios/voting-system-consensus.js.map +1 -0
- package/dist/simulation/types.d.ts +162 -0
- package/dist/simulation/types.d.ts.map +1 -0
- package/dist/simulation/types.js +5 -0
- package/dist/simulation/types.js.map +1 -0
- package/dist/simulation/utils/PerformanceOptimizer.d.ts +115 -0
- package/dist/simulation/utils/PerformanceOptimizer.d.ts.map +1 -0
- package/dist/simulation/utils/PerformanceOptimizer.js +223 -0
- package/dist/simulation/utils/PerformanceOptimizer.js.map +1 -0
- package/dist/src/backends/GraphBackend.d.ts +196 -0
- package/dist/src/backends/GraphBackend.d.ts.map +1 -0
- package/dist/src/backends/GraphBackend.js +33 -0
- package/dist/src/backends/GraphBackend.js.map +1 -0
- package/dist/src/backends/LearningBackend.d.ts +148 -0
- package/dist/src/backends/LearningBackend.d.ts.map +1 -0
- package/dist/src/backends/LearningBackend.js +27 -0
- package/dist/src/backends/LearningBackend.js.map +1 -0
- package/dist/src/backends/VectorBackend.d.ts +119 -0
- package/dist/src/backends/VectorBackend.d.ts.map +1 -0
- package/dist/src/backends/VectorBackend.js +14 -0
- package/dist/src/backends/VectorBackend.js.map +1 -0
- package/dist/src/backends/detector.d.ts +81 -0
- package/dist/src/backends/detector.d.ts.map +1 -0
- package/dist/src/backends/detector.js +192 -0
- package/dist/src/backends/detector.js.map +1 -0
- package/dist/src/backends/factory.d.ts +50 -0
- package/dist/src/backends/factory.d.ts.map +1 -0
- package/dist/src/backends/factory.js +161 -0
- package/dist/src/backends/factory.js.map +1 -0
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +151 -0
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -0
- package/dist/src/backends/graph/GraphDatabaseAdapter.js +224 -0
- package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -0
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +92 -0
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -0
- package/dist/src/backends/hnswlib/HNSWLibBackend.js +316 -0
- package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -0
- package/dist/src/backends/hnswlib/index.d.ts +7 -0
- package/dist/src/backends/hnswlib/index.d.ts.map +1 -0
- package/dist/src/backends/hnswlib/index.js +7 -0
- package/dist/src/backends/hnswlib/index.js.map +1 -0
- package/dist/src/backends/index.d.ts +14 -0
- package/dist/src/backends/index.d.ts.map +1 -0
- package/dist/src/backends/index.js +13 -0
- package/dist/src/backends/index.js.map +1 -0
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts +75 -0
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -0
- package/dist/src/backends/ruvector/RuVectorBackend.js +198 -0
- package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -0
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts +104 -0
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -0
- package/dist/src/backends/ruvector/RuVectorLearning.js +177 -0
- package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -0
- package/dist/src/backends/ruvector/index.d.ts +9 -0
- package/dist/src/backends/ruvector/index.d.ts.map +1 -0
- package/dist/src/backends/ruvector/index.js +8 -0
- package/dist/src/backends/ruvector/index.js.map +1 -0
- 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 +144 -0
- package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -0
- package/dist/src/browser/AdvancedFeatures.js +430 -0
- package/dist/src/browser/AdvancedFeatures.js.map +1 -0
- package/dist/src/browser/HNSWIndex.d.ts +117 -0
- package/dist/src/browser/HNSWIndex.d.ts.map +1 -0
- package/dist/src/browser/HNSWIndex.js +402 -0
- package/dist/src/browser/HNSWIndex.js.map +1 -0
- package/dist/src/browser/ProductQuantization.d.ts +107 -0
- package/dist/src/browser/ProductQuantization.d.ts.map +1 -0
- package/dist/src/browser/ProductQuantization.js +337 -0
- package/dist/src/browser/ProductQuantization.js.map +1 -0
- package/dist/src/browser/index.d.ts +223 -0
- package/dist/src/browser/index.d.ts.map +1 -0
- package/dist/src/browser/index.js +225 -0
- package/dist/src/browser/index.js.map +1 -0
- package/dist/src/cli/agentdb-cli.d.ts +154 -0
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -0
- package/dist/src/cli/agentdb-cli.js +2273 -0
- package/dist/src/cli/agentdb-cli.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +12 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +115 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/install-embeddings.d.ts +10 -0
- package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -0
- package/dist/src/cli/commands/install-embeddings.js +68 -0
- package/dist/src/cli/commands/install-embeddings.js.map +1 -0
- package/dist/src/cli/commands/migrate.d.ts +15 -0
- package/dist/src/cli/commands/migrate.d.ts.map +1 -0
- package/dist/src/cli/commands/migrate.js +425 -0
- package/dist/src/cli/commands/migrate.js.map +1 -0
- package/dist/src/cli/commands/simulate-custom.d.ts +26 -0
- package/dist/src/cli/commands/simulate-custom.d.ts.map +1 -0
- package/dist/src/cli/commands/simulate-custom.js +207 -0
- package/dist/src/cli/commands/simulate-custom.js.map +1 -0
- package/dist/src/cli/commands/simulate-report.d.ts +15 -0
- package/dist/src/cli/commands/simulate-report.d.ts.map +1 -0
- package/dist/src/cli/commands/simulate-report.js +136 -0
- package/dist/src/cli/commands/simulate-report.js.map +1 -0
- package/dist/src/cli/commands/simulate-wizard.d.ts +6 -0
- package/dist/src/cli/commands/simulate-wizard.d.ts.map +1 -0
- package/dist/src/cli/commands/simulate-wizard.js +352 -0
- package/dist/src/cli/commands/simulate-wizard.js.map +1 -0
- 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.d.ts +10 -0
- package/dist/src/cli/commands/status.d.ts.map +1 -0
- package/dist/src/cli/commands/status.js +129 -0
- package/dist/src/cli/commands/status.js.map +1 -0
- 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 +43 -0
- package/dist/src/cli/lib/config-validator.d.ts.map +1 -0
- package/dist/src/cli/lib/config-validator.js +217 -0
- package/dist/src/cli/lib/config-validator.js.map +1 -0
- 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/help-formatter.d.ts +38 -0
- package/dist/src/cli/lib/help-formatter.d.ts.map +1 -0
- package/dist/src/cli/lib/help-formatter.js +357 -0
- package/dist/src/cli/lib/help-formatter.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 +346 -0
- package/dist/src/cli/lib/history-tracker.js.map +1 -0
- package/dist/src/cli/lib/report-generator.d.ts +24 -0
- package/dist/src/cli/lib/report-generator.d.ts.map +1 -0
- package/dist/src/cli/lib/report-generator.js +417 -0
- package/dist/src/cli/lib/report-generator.js.map +1 -0
- package/dist/src/cli/lib/report-store.d.ts +116 -0
- package/dist/src/cli/lib/report-store.d.ts.map +1 -0
- package/dist/src/cli/lib/report-store.js +464 -0
- package/dist/src/cli/lib/report-store.js.map +1 -0
- package/dist/src/cli/lib/simulation-registry.d.ts +165 -0
- package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -0
- package/dist/src/cli/lib/simulation-registry.js +332 -0
- package/dist/src/cli/lib/simulation-registry.js.map +1 -0
- package/dist/src/cli/lib/simulation-runner.d.ts +90 -0
- package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -0
- package/dist/src/cli/lib/simulation-runner.js +211 -0
- package/dist/src/cli/lib/simulation-runner.js.map +1 -0
- package/dist/src/controllers/CausalMemoryGraph.d.ts +127 -0
- package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -0
- package/dist/src/controllers/CausalMemoryGraph.js +354 -0
- package/dist/src/controllers/CausalMemoryGraph.js.map +1 -0
- package/dist/src/controllers/CausalRecall.d.ts +139 -0
- package/dist/src/controllers/CausalRecall.d.ts.map +1 -0
- package/dist/src/controllers/CausalRecall.js +356 -0
- package/dist/src/controllers/CausalRecall.js.map +1 -0
- package/dist/src/controllers/ContextSynthesizer.d.ts +65 -0
- package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -0
- package/dist/src/controllers/ContextSynthesizer.js +208 -0
- package/dist/src/controllers/ContextSynthesizer.js.map +1 -0
- package/dist/src/controllers/EmbeddingService.d.ts +37 -0
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -0
- package/dist/src/controllers/EmbeddingService.js +136 -0
- package/dist/src/controllers/EmbeddingService.js.map +1 -0
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts +50 -0
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -0
- package/dist/src/controllers/EnhancedEmbeddingService.js +119 -0
- package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -0
- package/dist/src/controllers/ExplainableRecall.d.ts +163 -0
- package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -0
- package/dist/src/controllers/ExplainableRecall.js +485 -0
- package/dist/src/controllers/ExplainableRecall.js.map +1 -0
- package/dist/src/controllers/HNSWIndex.d.ts +128 -0
- package/dist/src/controllers/HNSWIndex.d.ts.map +1 -0
- package/dist/src/controllers/HNSWIndex.js +361 -0
- package/dist/src/controllers/HNSWIndex.js.map +1 -0
- package/dist/src/controllers/LearningSystem.d.ts +195 -0
- package/dist/src/controllers/LearningSystem.d.ts.map +1 -0
- package/dist/src/controllers/LearningSystem.js +929 -0
- package/dist/src/controllers/LearningSystem.js.map +1 -0
- package/dist/src/controllers/MMRDiversityRanker.d.ts +50 -0
- package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -0
- package/dist/src/controllers/MMRDiversityRanker.js +130 -0
- package/dist/src/controllers/MMRDiversityRanker.js.map +1 -0
- package/dist/src/controllers/MetadataFilter.d.ts +70 -0
- package/dist/src/controllers/MetadataFilter.d.ts.map +1 -0
- package/dist/src/controllers/MetadataFilter.js +243 -0
- package/dist/src/controllers/MetadataFilter.js.map +1 -0
- package/dist/src/controllers/NightlyLearner.d.ts +114 -0
- package/dist/src/controllers/NightlyLearner.d.ts.map +1 -0
- package/dist/src/controllers/NightlyLearner.js +394 -0
- package/dist/src/controllers/NightlyLearner.js.map +1 -0
- package/dist/src/controllers/QUICClient.d.ts +109 -0
- package/dist/src/controllers/QUICClient.d.ts.map +1 -0
- package/dist/src/controllers/QUICClient.js +299 -0
- package/dist/src/controllers/QUICClient.js.map +1 -0
- package/dist/src/controllers/QUICServer.d.ts +121 -0
- package/dist/src/controllers/QUICServer.d.ts.map +1 -0
- package/dist/src/controllers/QUICServer.js +383 -0
- package/dist/src/controllers/QUICServer.js.map +1 -0
- package/dist/src/controllers/ReasoningBank.d.ts +196 -0
- package/dist/src/controllers/ReasoningBank.d.ts.map +1 -0
- package/dist/src/controllers/ReasoningBank.js +494 -0
- package/dist/src/controllers/ReasoningBank.js.map +1 -0
- package/dist/src/controllers/ReflexionMemory.d.ts +125 -0
- package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -0
- package/dist/src/controllers/ReflexionMemory.js +654 -0
- package/dist/src/controllers/ReflexionMemory.js.map +1 -0
- package/dist/src/controllers/SkillLibrary.d.ts +150 -0
- package/dist/src/controllers/SkillLibrary.d.ts.map +1 -0
- package/dist/src/controllers/SkillLibrary.js +608 -0
- package/dist/src/controllers/SkillLibrary.js.map +1 -0
- package/dist/src/controllers/SyncCoordinator.d.ts +120 -0
- package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -0
- package/dist/src/controllers/SyncCoordinator.js +441 -0
- package/dist/src/controllers/SyncCoordinator.js.map +1 -0
- package/dist/src/controllers/WASMVectorSearch.d.ts +89 -0
- package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -0
- package/dist/src/controllers/WASMVectorSearch.js +234 -0
- package/dist/src/controllers/WASMVectorSearch.js.map +1 -0
- 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 +30 -0
- package/dist/src/controllers/index.d.ts.map +1 -0
- package/dist/src/controllers/index.js +18 -0
- package/dist/src/controllers/index.js.map +1 -0
- package/dist/src/db-fallback.d.ts +26 -0
- package/dist/src/db-fallback.d.ts.map +1 -0
- package/dist/src/db-fallback.js +264 -0
- package/dist/src/db-fallback.js.map +1 -0
- 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 +279 -0
- package/dist/src/db-unified.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/index.d.ts +28 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +35 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp/agentdb-mcp-server.d.ts +8 -0
- package/dist/src/mcp/agentdb-mcp-server.d.ts.map +1 -0
- package/dist/src/mcp/agentdb-mcp-server.js +2116 -0
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -0
- 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/optimizations/BatchOperations.d.ts +109 -0
- package/dist/src/optimizations/BatchOperations.d.ts.map +1 -0
- package/dist/src/optimizations/BatchOperations.js +407 -0
- package/dist/src/optimizations/BatchOperations.js.map +1 -0
- package/dist/src/optimizations/QueryOptimizer.d.ts +83 -0
- package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -0
- package/dist/src/optimizations/QueryOptimizer.js +228 -0
- package/dist/src/optimizations/QueryOptimizer.js.map +1 -0
- package/dist/src/optimizations/ToolCache.d.ts +137 -0
- package/dist/src/optimizations/ToolCache.d.ts.map +1 -0
- package/dist/src/optimizations/ToolCache.js +281 -0
- package/dist/src/optimizations/ToolCache.js.map +1 -0
- package/dist/src/optimizations/index.d.ts +10 -0
- package/dist/src/optimizations/index.d.ts.map +1 -0
- package/dist/src/optimizations/index.js +8 -0
- package/dist/src/optimizations/index.js.map +1 -0
- package/dist/src/security/input-validation.d.ts +109 -0
- package/dist/src/security/input-validation.d.ts.map +1 -0
- package/dist/src/security/input-validation.js +398 -0
- package/dist/src/security/input-validation.js.map +1 -0
- 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/path-security.d.ts +100 -0
- package/dist/src/security/path-security.d.ts.map +1 -0
- package/dist/src/security/path-security.js +337 -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/LLMRouter.d.ts +84 -0
- package/dist/src/services/LLMRouter.d.ts.map +1 -0
- package/dist/src/services/LLMRouter.js +329 -0
- package/dist/src/services/LLMRouter.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/NodeIdMapper.d.ts +38 -0
- package/dist/src/utils/NodeIdMapper.d.ts.map +1 -0
- package/dist/src/utils/NodeIdMapper.js +57 -0
- package/dist/src/utils/NodeIdMapper.js.map +1 -0
- package/package.json +12 -2
- package/scripts/README.md +314 -0
- package/src/backends/GraphBackend.ts +290 -0
- package/src/backends/LearningBackend.ts +210 -0
- package/src/backends/README.md +389 -0
- package/src/backends/VectorBackend.ts +145 -0
- package/src/backends/detector.ts +283 -0
- package/src/backends/factory.ts +193 -0
- package/src/backends/graph/GraphDatabaseAdapter.ts +334 -0
- package/src/backends/hnswlib/HNSWLibBackend.ts +413 -0
- package/src/backends/hnswlib/index.ts +7 -0
- package/src/backends/index.ts +32 -0
- package/src/backends/ruvector/RuVectorBackend.ts +232 -0
- package/src/backends/ruvector/RuVectorLearning.ts +242 -0
- package/src/backends/ruvector/index.ts +9 -0
- package/src/backends/ruvector/types.d.ts +64 -0
- package/src/browser/AdvancedFeatures.ts +565 -0
- package/src/browser/HNSWIndex.ts +494 -0
- package/src/browser/ProductQuantization.ts +419 -0
- package/src/browser/index.ts +301 -0
- package/src/cli/agentdb-cli.ts +131 -8
- package/src/cli/commands/init.ts +148 -0
- package/src/cli/commands/install-embeddings.ts +81 -0
- package/src/cli/commands/migrate.ts +545 -0
- package/src/cli/commands/simulate-custom.ts +232 -0
- package/src/cli/commands/simulate-report.ts +171 -0
- package/src/cli/commands/simulate-wizard.ts +379 -0
- package/src/cli/commands/simulate.ts +115 -0
- package/src/cli/commands/status.ts +156 -0
- package/src/cli/lib/config-manager.ts +627 -0
- package/src/cli/lib/config-validator.ts +261 -0
- package/src/cli/lib/health-monitor.ts +513 -0
- package/src/cli/lib/help-formatter.ts +406 -0
- package/src/cli/lib/history-tracker.ts +497 -0
- package/src/cli/lib/report-generator.ts +455 -0
- package/src/cli/lib/report-store.ts +582 -0
- package/src/cli/lib/simulation-registry.ts +502 -0
- package/src/cli/lib/simulation-runner.ts +291 -0
- package/src/cli/tests/agentdb-cli.test.ts +58 -0
- package/src/controllers/CausalMemoryGraph.ts +42 -2
- package/src/controllers/CausalRecall.ts +41 -4
- package/src/controllers/ExplainableRecall.ts +123 -5
- package/src/controllers/NightlyLearner.ts +8 -4
- package/src/controllers/ReasoningBank.ts +268 -5
- package/src/controllers/ReflexionMemory.ts +531 -6
- package/src/controllers/SkillLibrary.ts +234 -60
- package/src/db-fallback.ts +103 -35
- package/src/db-test.ts +59 -0
- package/src/db-unified.ts +327 -0
- package/src/mcp/agentdb-mcp-server.ts +544 -38
- package/src/optimizations/BatchOperations.ts +270 -0
- package/src/optimizations/ToolCache.ts +355 -0
- package/src/security/input-validation.ts +166 -0
- package/src/security/limits.ts +375 -0
- package/src/security/path-security.ts +436 -0
- package/src/security/validation.ts +556 -0
- package/src/services/LLMRouter.ts +406 -0
- package/src/types/xenova-transformers.d.ts +26 -0
- package/src/utils/NodeIdMapper.ts +64 -0
|
@@ -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;IA2D9C;;OAEG;YACW,cAAc;IA6B5B;;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,278 @@
|
|
|
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 { getDatabaseImplementation } from './db-fallback.js';
|
|
20
|
+
import * as fs from 'fs';
|
|
21
|
+
import * as path from 'path';
|
|
22
|
+
/**
|
|
23
|
+
* Unified Database - Smart detection and mode selection
|
|
24
|
+
*/
|
|
25
|
+
export class UnifiedDatabase {
|
|
26
|
+
mode;
|
|
27
|
+
graphDb;
|
|
28
|
+
sqliteDb;
|
|
29
|
+
config;
|
|
30
|
+
constructor(config) {
|
|
31
|
+
this.config = config;
|
|
32
|
+
this.mode = 'graph'; // Default to graph mode
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize database with automatic mode detection
|
|
36
|
+
*/
|
|
37
|
+
async initialize(embedder) {
|
|
38
|
+
const dbPath = this.config.path;
|
|
39
|
+
// Check if user forced a specific mode
|
|
40
|
+
if (this.config.forceMode) {
|
|
41
|
+
this.mode = this.config.forceMode;
|
|
42
|
+
await this.initializeMode(embedder);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Auto-detect based on file extension and content
|
|
46
|
+
if (fs.existsSync(dbPath)) {
|
|
47
|
+
const ext = path.extname(dbPath);
|
|
48
|
+
// .graph extension = always use graph mode
|
|
49
|
+
if (ext === '.graph') {
|
|
50
|
+
this.mode = 'graph';
|
|
51
|
+
console.log('🔍 Detected .graph extension → Using RuVector GraphDatabase');
|
|
52
|
+
}
|
|
53
|
+
// .db extension = check if it's SQLite
|
|
54
|
+
else if (ext === '.db') {
|
|
55
|
+
const isLegacySQLite = await this.isSQLiteDatabase(dbPath);
|
|
56
|
+
if (isLegacySQLite) {
|
|
57
|
+
this.mode = 'sqlite-legacy';
|
|
58
|
+
console.log('🔍 Detected legacy SQLite database');
|
|
59
|
+
// Offer migration if autoMigrate is enabled
|
|
60
|
+
if (this.config.autoMigrate) {
|
|
61
|
+
console.log('🔄 Auto-migration enabled, will migrate to GraphDatabase...');
|
|
62
|
+
await this.migrateSQLiteToGraph(dbPath, embedder);
|
|
63
|
+
this.mode = 'graph';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
console.log('ℹ️ Running in legacy SQLite mode');
|
|
67
|
+
console.log('💡 To migrate to RuVector Graph: set autoMigrate: true');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Not SQLite, use graph mode
|
|
72
|
+
this.mode = 'graph';
|
|
73
|
+
console.log('🔍 Using RuVector GraphDatabase');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// Unknown extension, default to graph
|
|
78
|
+
this.mode = 'graph';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// New database - use graph mode (recommended)
|
|
83
|
+
this.mode = 'graph';
|
|
84
|
+
console.log('✨ Creating new RuVector GraphDatabase');
|
|
85
|
+
// Suggest .graph extension if not using it
|
|
86
|
+
if (!dbPath.endsWith('.graph') && !dbPath.endsWith('.db')) {
|
|
87
|
+
console.log('💡 Tip: Use .graph extension for clarity (e.g., agentdb.graph)');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
await this.initializeMode(embedder);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Initialize the selected database mode
|
|
94
|
+
*/
|
|
95
|
+
async initializeMode(embedder) {
|
|
96
|
+
if (this.mode === 'graph') {
|
|
97
|
+
// Use RuVector GraphDatabase
|
|
98
|
+
const config = {
|
|
99
|
+
storagePath: this.config.path,
|
|
100
|
+
dimensions: this.config.dimensions || 384,
|
|
101
|
+
distanceMetric: 'Cosine'
|
|
102
|
+
};
|
|
103
|
+
this.graphDb = new GraphDatabaseAdapter(config, embedder);
|
|
104
|
+
await this.graphDb.initialize();
|
|
105
|
+
console.log('✅ RuVector GraphDatabase ready (Primary Mode)');
|
|
106
|
+
console.log(' - Cypher queries enabled');
|
|
107
|
+
console.log(' - Hypergraph support active');
|
|
108
|
+
console.log(' - ACID transactions available');
|
|
109
|
+
console.log(' - 131K+ ops/sec batch inserts');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Use legacy SQLite
|
|
113
|
+
const impl = await getDatabaseImplementation();
|
|
114
|
+
this.sqliteDb = await require('./db-fallback.js').createDatabase(this.config.path);
|
|
115
|
+
console.log('⚠️ Using legacy SQLite mode');
|
|
116
|
+
console.log(' - Limited to SQL queries');
|
|
117
|
+
console.log(' - No hypergraph support');
|
|
118
|
+
console.log(' - Consider migration to GraphDatabase');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Check if file is a SQLite database
|
|
123
|
+
*/
|
|
124
|
+
async isSQLiteDatabase(filePath) {
|
|
125
|
+
try {
|
|
126
|
+
const buffer = fs.readFileSync(filePath);
|
|
127
|
+
// SQLite databases start with "SQLite format 3\0"
|
|
128
|
+
const signature = buffer.slice(0, 16).toString();
|
|
129
|
+
return signature.startsWith('SQLite format 3');
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Migrate SQLite database to RuVector GraphDatabase
|
|
137
|
+
*/
|
|
138
|
+
async migrateSQLiteToGraph(sqlitePath, embedder) {
|
|
139
|
+
console.log('🔄 Starting migration from SQLite to RuVector Graph...');
|
|
140
|
+
const startTime = Date.now();
|
|
141
|
+
// Load SQLite database
|
|
142
|
+
const sqliteImpl = await getDatabaseImplementation();
|
|
143
|
+
const sqliteDb = await require('./db-fallback.js').createDatabase(sqlitePath);
|
|
144
|
+
// Create new GraphDatabase
|
|
145
|
+
const graphPath = sqlitePath.replace(/\.db$/, '.graph');
|
|
146
|
+
const graphConfig = {
|
|
147
|
+
storagePath: graphPath,
|
|
148
|
+
dimensions: this.config.dimensions || 384,
|
|
149
|
+
distanceMetric: 'Cosine'
|
|
150
|
+
};
|
|
151
|
+
const graphDb = new GraphDatabaseAdapter(graphConfig, embedder);
|
|
152
|
+
await graphDb.initialize();
|
|
153
|
+
// Migrate episodes
|
|
154
|
+
console.log(' 📦 Migrating episodes...');
|
|
155
|
+
const episodes = sqliteDb.prepare('SELECT * FROM episodes').all();
|
|
156
|
+
for (const ep of episodes) {
|
|
157
|
+
// Generate embedding for episode
|
|
158
|
+
const text = `${ep.task} ${ep.input || ''} ${ep.output || ''}`;
|
|
159
|
+
const embedding = await embedder.generateEmbedding(text);
|
|
160
|
+
await graphDb.storeEpisode({
|
|
161
|
+
id: `ep-${ep.id}`,
|
|
162
|
+
sessionId: ep.session_id,
|
|
163
|
+
task: ep.task,
|
|
164
|
+
reward: ep.reward,
|
|
165
|
+
success: ep.success === 1,
|
|
166
|
+
input: ep.input,
|
|
167
|
+
output: ep.output,
|
|
168
|
+
critique: ep.critique,
|
|
169
|
+
createdAt: ep.created_at,
|
|
170
|
+
tokensUsed: ep.tokens_used,
|
|
171
|
+
latencyMs: ep.latency_ms
|
|
172
|
+
}, embedding);
|
|
173
|
+
}
|
|
174
|
+
console.log(` ✅ Migrated ${episodes.length} episodes`);
|
|
175
|
+
// Migrate skills
|
|
176
|
+
console.log(' 📦 Migrating skills...');
|
|
177
|
+
const skills = sqliteDb.prepare('SELECT * FROM skills').all();
|
|
178
|
+
for (const skill of skills) {
|
|
179
|
+
const text = `${skill.name} ${skill.description} ${skill.code}`;
|
|
180
|
+
const embedding = await embedder.generateEmbedding(text);
|
|
181
|
+
await graphDb.storeSkill({
|
|
182
|
+
id: `skill-${skill.id}`,
|
|
183
|
+
name: skill.name,
|
|
184
|
+
description: skill.description,
|
|
185
|
+
code: skill.code,
|
|
186
|
+
usageCount: skill.usage_count,
|
|
187
|
+
avgReward: skill.avg_reward,
|
|
188
|
+
createdAt: skill.created_at,
|
|
189
|
+
updatedAt: skill.updated_at,
|
|
190
|
+
tags: skill.tags
|
|
191
|
+
}, embedding);
|
|
192
|
+
}
|
|
193
|
+
console.log(` ✅ Migrated ${skills.length} skills`);
|
|
194
|
+
// Migrate causal edges
|
|
195
|
+
console.log(' 📦 Migrating causal relationships...');
|
|
196
|
+
const edges = sqliteDb.prepare('SELECT * FROM causal_edges').all();
|
|
197
|
+
for (const edge of edges) {
|
|
198
|
+
const text = edge.mechanism;
|
|
199
|
+
const embedding = await embedder.generateEmbedding(text);
|
|
200
|
+
await graphDb.createCausalEdge({
|
|
201
|
+
from: `ep-${edge.from_memory_id}`,
|
|
202
|
+
to: `ep-${edge.to_memory_id}`,
|
|
203
|
+
mechanism: edge.mechanism,
|
|
204
|
+
uplift: edge.uplift,
|
|
205
|
+
confidence: edge.confidence,
|
|
206
|
+
sampleSize: edge.sample_size
|
|
207
|
+
}, embedding);
|
|
208
|
+
}
|
|
209
|
+
console.log(` ✅ Migrated ${edges.length} causal edges`);
|
|
210
|
+
const duration = ((Date.now() - startTime) / 1000).toFixed(2);
|
|
211
|
+
console.log(`\n🎉 Migration complete in ${duration}s!`);
|
|
212
|
+
console.log(` Old SQLite: ${sqlitePath}`);
|
|
213
|
+
console.log(` New Graph: ${graphPath}`);
|
|
214
|
+
console.log(`\n💡 Backup your SQLite file and update path to use .graph`);
|
|
215
|
+
// Close SQLite
|
|
216
|
+
sqliteDb.close();
|
|
217
|
+
// Update config to use new graph database
|
|
218
|
+
this.config.path = graphPath;
|
|
219
|
+
this.graphDb = graphDb;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get the active database mode
|
|
223
|
+
*/
|
|
224
|
+
getMode() {
|
|
225
|
+
return this.mode;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get the graph database (if in graph mode)
|
|
229
|
+
*/
|
|
230
|
+
getGraphDatabase() {
|
|
231
|
+
return this.graphDb;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get the SQLite database (if in legacy mode)
|
|
235
|
+
*/
|
|
236
|
+
getSQLiteDatabase() {
|
|
237
|
+
return this.sqliteDb;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Execute a query (auto-routes to correct database)
|
|
241
|
+
*/
|
|
242
|
+
async query(queryOrCypher) {
|
|
243
|
+
if (this.mode === 'graph') {
|
|
244
|
+
// Execute Cypher query
|
|
245
|
+
return await this.graphDb.query(queryOrCypher);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// Execute SQL query
|
|
249
|
+
return this.sqliteDb.prepare(queryOrCypher).all();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Close database
|
|
254
|
+
*/
|
|
255
|
+
close() {
|
|
256
|
+
if (this.graphDb) {
|
|
257
|
+
this.graphDb.close();
|
|
258
|
+
}
|
|
259
|
+
if (this.sqliteDb) {
|
|
260
|
+
this.sqliteDb.close();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Create unified database (smart mode detection)
|
|
266
|
+
*/
|
|
267
|
+
export async function createUnifiedDatabase(path, embedder, options) {
|
|
268
|
+
const config = {
|
|
269
|
+
path,
|
|
270
|
+
dimensions: options?.dimensions || 384,
|
|
271
|
+
forceMode: options?.forceMode,
|
|
272
|
+
autoMigrate: options?.autoMigrate ?? false // Default: manual migration
|
|
273
|
+
};
|
|
274
|
+
const db = new UnifiedDatabase(config);
|
|
275
|
+
await db.initialize(embedder);
|
|
276
|
+
return db;
|
|
277
|
+
}
|
|
278
|
+
//# 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,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Concordance Correlation Coefficient (CCC) Module
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for computing CCC and related metrics.
|
|
5
|
+
* CCC measures agreement between two continuous measurements.
|
|
6
|
+
*/
|
|
7
|
+
import { Vector } from './linalg';
|
|
8
|
+
/**
|
|
9
|
+
* Components of the CCC calculation
|
|
10
|
+
*/
|
|
11
|
+
export interface CCCComponents {
|
|
12
|
+
/** Pearson correlation coefficient */
|
|
13
|
+
rho: number;
|
|
14
|
+
/** Mean of first variable */
|
|
15
|
+
muX: number;
|
|
16
|
+
/** Mean of second variable */
|
|
17
|
+
muY: number;
|
|
18
|
+
/** Standard deviation of first variable */
|
|
19
|
+
sigmaX: number;
|
|
20
|
+
/** Standard deviation of second variable */
|
|
21
|
+
sigmaY: number;
|
|
22
|
+
/** Location shift component (bias) */
|
|
23
|
+
locationShift: number;
|
|
24
|
+
/** Scale shift component */
|
|
25
|
+
scaleShift: number;
|
|
26
|
+
/** Precision (correlation) */
|
|
27
|
+
precision: number;
|
|
28
|
+
/** Accuracy (bias correction factor) */
|
|
29
|
+
accuracy: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Result of CCC computation
|
|
33
|
+
*/
|
|
34
|
+
export interface CCCResult {
|
|
35
|
+
/** Concordance Correlation Coefficient (-1 to 1) */
|
|
36
|
+
ccc: number;
|
|
37
|
+
/** Detailed components breakdown */
|
|
38
|
+
components: CCCComponents;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Compute Concordance Correlation Coefficient
|
|
42
|
+
*
|
|
43
|
+
* CCC measures agreement between two continuous measurements.
|
|
44
|
+
* Range: [-1, 1], where 1 = perfect agreement
|
|
45
|
+
*
|
|
46
|
+
* Formula: CCC = 2 * cov(x,y) / (var(x) + var(y) + (mean(x) - mean(y))^2)
|
|
47
|
+
*
|
|
48
|
+
* @param x - First variable (reference/gold standard)
|
|
49
|
+
* @param y - Second variable (new/test method)
|
|
50
|
+
* @returns CCC result with components
|
|
51
|
+
*/
|
|
52
|
+
export declare function computeCCC(x: number[] | Vector, y: number[] | Vector): CCCResult;
|
|
53
|
+
/**
|
|
54
|
+
* Alternative implementation using explicit formula
|
|
55
|
+
* Same as computeCCC but more explicit
|
|
56
|
+
*/
|
|
57
|
+
export declare function calculateCCC(x: number[] | Vector, y: number[] | Vector): CCCResult;
|
|
58
|
+
/**
|
|
59
|
+
* Compute gradient of CCC with respect to predictions
|
|
60
|
+
*
|
|
61
|
+
* Useful for optimization algorithms that maximize CCC.
|
|
62
|
+
*
|
|
63
|
+
* @param x - Observed values
|
|
64
|
+
* @param y - Predicted values
|
|
65
|
+
* @returns Gradient vector
|
|
66
|
+
*/
|
|
67
|
+
export declare function computeCCCGradient(x: number[] | Vector, y: number[] | Vector): number[];
|
|
68
|
+
/**
|
|
69
|
+
* Compute diagonal of Hessian matrix for CCC
|
|
70
|
+
* (approximate second derivatives)
|
|
71
|
+
*
|
|
72
|
+
* @param x - Observed values
|
|
73
|
+
* @param y - Predicted values
|
|
74
|
+
* @returns Diagonal Hessian elements
|
|
75
|
+
*/
|
|
76
|
+
export declare function computeCCCHessianDiagonal(x: number[] | Vector, y: number[] | Vector): number[];
|
|
77
|
+
/**
|
|
78
|
+
* CCC-based loss function (negative CCC for minimization)
|
|
79
|
+
*
|
|
80
|
+
* @param x - Observed values
|
|
81
|
+
* @param y - Predicted values
|
|
82
|
+
* @returns Negative CCC (for minimization)
|
|
83
|
+
*/
|
|
84
|
+
export declare function cccLoss(x: number[] | Vector, y: number[] | Vector): number;
|
|
85
|
+
/**
|
|
86
|
+
* Interpret CCC value
|
|
87
|
+
*
|
|
88
|
+
* @param ccc - CCC value
|
|
89
|
+
* @returns Human-readable interpretation
|
|
90
|
+
*/
|
|
91
|
+
export declare function interpretCCC(ccc: number): string;
|
|
92
|
+
/**
|
|
93
|
+
* Validate CCC value is within expected range
|
|
94
|
+
*
|
|
95
|
+
* @param ccc - CCC value to validate
|
|
96
|
+
* @throws Error if CCC is outside [-1, 1] range
|
|
97
|
+
*/
|
|
98
|
+
export declare function validateCCC(ccc: number): void;
|
|
99
|
+
//# sourceMappingURL=ccc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ccc.d.ts","sourceRoot":"","sources":["../../../src/malp/core/ccc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAoD,MAAM,UAAU,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EACpB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GACnB,SAAS,CAsDX;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EACpB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GACnB,SAAS,CAEX;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EACpB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GACnB,MAAM,EAAE,CA6BV;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EACpB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GACnB,MAAM,EAAE,CA4BV;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYhD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ7C"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Concordance Correlation Coefficient (CCC) Module
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for computing CCC and related metrics.
|
|
5
|
+
* CCC measures agreement between two continuous measurements.
|
|
6
|
+
*/
|
|
7
|
+
import { createVector, mean, std, covariance, pearsonCorr } from './linalg';
|
|
8
|
+
/**
|
|
9
|
+
* Compute Concordance Correlation Coefficient
|
|
10
|
+
*
|
|
11
|
+
* CCC measures agreement between two continuous measurements.
|
|
12
|
+
* Range: [-1, 1], where 1 = perfect agreement
|
|
13
|
+
*
|
|
14
|
+
* Formula: CCC = 2 * cov(x,y) / (var(x) + var(y) + (mean(x) - mean(y))^2)
|
|
15
|
+
*
|
|
16
|
+
* @param x - First variable (reference/gold standard)
|
|
17
|
+
* @param y - Second variable (new/test method)
|
|
18
|
+
* @returns CCC result with components
|
|
19
|
+
*/
|
|
20
|
+
export function computeCCC(x, y) {
|
|
21
|
+
const xVec = Array.isArray(x) ? createVector(x) : x;
|
|
22
|
+
const yVec = Array.isArray(y) ? createVector(y) : y;
|
|
23
|
+
if (xVec.length !== yVec.length) {
|
|
24
|
+
throw new Error(`Vector length mismatch: ${xVec.length} !== ${yVec.length}`);
|
|
25
|
+
}
|
|
26
|
+
if (xVec.length === 0) {
|
|
27
|
+
throw new Error('Cannot compute CCC on empty vectors');
|
|
28
|
+
}
|
|
29
|
+
// Compute basic statistics
|
|
30
|
+
const muX = mean(xVec);
|
|
31
|
+
const muY = mean(yVec);
|
|
32
|
+
const sigmaX = std(xVec, muX);
|
|
33
|
+
const sigmaY = std(yVec, muY);
|
|
34
|
+
const rho = pearsonCorr(xVec, yVec);
|
|
35
|
+
// CCC components
|
|
36
|
+
const locationShift = muX - muY;
|
|
37
|
+
const scaleShift = sigmaX / sigmaY;
|
|
38
|
+
const precision = rho;
|
|
39
|
+
const accuracy = 2.0 / (scaleShift + 1.0 / scaleShift);
|
|
40
|
+
// CCC formula: 2 * cov(x,y) / (var(x) + var(y) + (mean(x) - mean(y))^2)
|
|
41
|
+
const cov = covariance(xVec, yVec);
|
|
42
|
+
const varX = sigmaX * sigmaX;
|
|
43
|
+
const varY = sigmaY * sigmaY;
|
|
44
|
+
const meanDiffSq = locationShift * locationShift;
|
|
45
|
+
const numerator = 2.0 * cov;
|
|
46
|
+
const denominator = varX + varY + meanDiffSq;
|
|
47
|
+
if (denominator === 0) {
|
|
48
|
+
throw new Error('Division by zero in CCC calculation (constant values?)');
|
|
49
|
+
}
|
|
50
|
+
const ccc = numerator / denominator;
|
|
51
|
+
return {
|
|
52
|
+
ccc,
|
|
53
|
+
components: {
|
|
54
|
+
rho,
|
|
55
|
+
muX,
|
|
56
|
+
muY,
|
|
57
|
+
sigmaX,
|
|
58
|
+
sigmaY,
|
|
59
|
+
locationShift,
|
|
60
|
+
scaleShift,
|
|
61
|
+
precision,
|
|
62
|
+
accuracy,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Alternative implementation using explicit formula
|
|
68
|
+
* Same as computeCCC but more explicit
|
|
69
|
+
*/
|
|
70
|
+
export function calculateCCC(x, y) {
|
|
71
|
+
return computeCCC(x, y);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Compute gradient of CCC with respect to predictions
|
|
75
|
+
*
|
|
76
|
+
* Useful for optimization algorithms that maximize CCC.
|
|
77
|
+
*
|
|
78
|
+
* @param x - Observed values
|
|
79
|
+
* @param y - Predicted values
|
|
80
|
+
* @returns Gradient vector
|
|
81
|
+
*/
|
|
82
|
+
export function computeCCCGradient(x, y) {
|
|
83
|
+
const xVec = Array.isArray(x) ? createVector(x) : x;
|
|
84
|
+
const yVec = Array.isArray(y) ? createVector(y) : y;
|
|
85
|
+
if (xVec.length !== yVec.length) {
|
|
86
|
+
throw new Error('Vector length mismatch');
|
|
87
|
+
}
|
|
88
|
+
const n = xVec.length;
|
|
89
|
+
const muX = mean(xVec);
|
|
90
|
+
const muY = mean(yVec);
|
|
91
|
+
const sigmaX = std(xVec, muX);
|
|
92
|
+
const sigmaY = std(yVec, muY);
|
|
93
|
+
// Numerical gradient using finite differences
|
|
94
|
+
const epsilon = 1e-7;
|
|
95
|
+
const gradient = [];
|
|
96
|
+
for (let i = 0; i < n; i++) {
|
|
97
|
+
const yPerturbed = [...yVec.data];
|
|
98
|
+
yPerturbed[i] += epsilon;
|
|
99
|
+
const cccOriginal = computeCCC(xVec, yVec).ccc;
|
|
100
|
+
const cccPerturbed = computeCCC(xVec, createVector(yPerturbed)).ccc;
|
|
101
|
+
gradient.push((cccPerturbed - cccOriginal) / epsilon);
|
|
102
|
+
}
|
|
103
|
+
return gradient;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Compute diagonal of Hessian matrix for CCC
|
|
107
|
+
* (approximate second derivatives)
|
|
108
|
+
*
|
|
109
|
+
* @param x - Observed values
|
|
110
|
+
* @param y - Predicted values
|
|
111
|
+
* @returns Diagonal Hessian elements
|
|
112
|
+
*/
|
|
113
|
+
export function computeCCCHessianDiagonal(x, y) {
|
|
114
|
+
const xVec = Array.isArray(x) ? createVector(x) : x;
|
|
115
|
+
const yVec = Array.isArray(y) ? createVector(y) : y;
|
|
116
|
+
const n = xVec.length;
|
|
117
|
+
const epsilon = 1e-6;
|
|
118
|
+
const hessian = [];
|
|
119
|
+
for (let i = 0; i < n; i++) {
|
|
120
|
+
// Compute f(x + h)
|
|
121
|
+
const yPlus = [...yVec.data];
|
|
122
|
+
yPlus[i] += epsilon;
|
|
123
|
+
const cccPlus = computeCCC(xVec, createVector(yPlus)).ccc;
|
|
124
|
+
// Compute f(x - h)
|
|
125
|
+
const yMinus = [...yVec.data];
|
|
126
|
+
yMinus[i] -= epsilon;
|
|
127
|
+
const cccMinus = computeCCC(xVec, createVector(yMinus)).ccc;
|
|
128
|
+
// Compute f(x)
|
|
129
|
+
const cccCurrent = computeCCC(xVec, yVec).ccc;
|
|
130
|
+
// Second derivative: (f(x+h) - 2f(x) + f(x-h)) / h^2
|
|
131
|
+
const secondDerivative = (cccPlus - 2 * cccCurrent + cccMinus) / (epsilon * epsilon);
|
|
132
|
+
hessian.push(secondDerivative);
|
|
133
|
+
}
|
|
134
|
+
return hessian;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* CCC-based loss function (negative CCC for minimization)
|
|
138
|
+
*
|
|
139
|
+
* @param x - Observed values
|
|
140
|
+
* @param y - Predicted values
|
|
141
|
+
* @returns Negative CCC (for minimization)
|
|
142
|
+
*/
|
|
143
|
+
export function cccLoss(x, y) {
|
|
144
|
+
return -computeCCC(x, y).ccc;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Interpret CCC value
|
|
148
|
+
*
|
|
149
|
+
* @param ccc - CCC value
|
|
150
|
+
* @returns Human-readable interpretation
|
|
151
|
+
*/
|
|
152
|
+
export function interpretCCC(ccc) {
|
|
153
|
+
const absCcc = Math.abs(ccc);
|
|
154
|
+
if (absCcc < 0.90) {
|
|
155
|
+
return 'Poor agreement';
|
|
156
|
+
}
|
|
157
|
+
else if (absCcc < 0.95) {
|
|
158
|
+
return 'Moderate agreement';
|
|
159
|
+
}
|
|
160
|
+
else if (absCcc < 0.99) {
|
|
161
|
+
return 'Substantial agreement';
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
return 'Almost perfect agreement';
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Validate CCC value is within expected range
|
|
169
|
+
*
|
|
170
|
+
* @param ccc - CCC value to validate
|
|
171
|
+
* @throws Error if CCC is outside [-1, 1] range
|
|
172
|
+
*/
|
|
173
|
+
export function validateCCC(ccc) {
|
|
174
|
+
if (!isFinite(ccc)) {
|
|
175
|
+
throw new Error('CCC must be a finite number');
|
|
176
|
+
}
|
|
177
|
+
if (ccc < -1.0 || ccc > 1.0) {
|
|
178
|
+
throw new Error(`CCC must be in range [-1, 1], got ${ccc}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=ccc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ccc.js","sourceRoot":"","sources":["../../../src/malp/core/ccc.ts"],"names":[],"mappings":"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"}
|