agentdb 3.0.0-alpha.2 → 3.0.0-alpha.4
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 +978 -2342
- package/dist/agentdb.browser.js +1492 -0
- package/dist/agentdb.browser.js.map +7 -0
- package/dist/agentdb.browser.min.js +3 -0
- package/dist/agentdb.browser.min.js.map +7 -0
- package/dist/agentdb.wasm-loader.js +207 -0
- package/dist/schemas/frontier-schema.sql +0 -7
- package/dist/schemas/schema.sql +0 -7
- 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 +8 -8
- package/dist/src/backends/GraphBackend.d.ts.map +1 -1
- package/dist/src/backends/GraphBackend.js +15 -16
- package/dist/src/backends/GraphBackend.js.map +1 -1
- package/dist/src/backends/LearningBackend.d.ts +2 -2
- package/dist/src/backends/LearningBackend.d.ts.map +1 -1
- package/dist/src/backends/LearningBackend.js +10 -11
- package/dist/src/backends/LearningBackend.js.map +1 -1
- package/dist/src/backends/VectorBackend.d.ts +6 -31
- package/dist/src/backends/VectorBackend.d.ts.map +1 -1
- package/dist/src/backends/detector.d.ts +3 -25
- package/dist/src/backends/detector.d.ts.map +1 -1
- package/dist/src/backends/detector.js +15 -119
- package/dist/src/backends/detector.js.map +1 -1
- package/dist/src/backends/factory.d.ts +32 -16
- package/dist/src/backends/factory.d.ts.map +1 -1
- package/dist/src/backends/factory.js +70 -133
- package/dist/src/backends/factory.js.map +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.js +1 -5
- package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +2 -2
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.js +13 -49
- package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
- package/dist/src/backends/index.d.ts +3 -25
- package/dist/src/backends/index.d.ts.map +1 -1
- package/dist/src/backends/index.js +1 -23
- package/dist/src/backends/index.js.map +1 -1
- package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts +93 -0
- package/dist/src/backends/ruvector/GuardedVectorBackend.d.ts.map +1 -0
- package/dist/src/backends/ruvector/GuardedVectorBackend.js +182 -0
- package/dist/src/backends/ruvector/GuardedVectorBackend.js.map +1 -0
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts +16 -187
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.js +94 -576
- package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts +4 -0
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.js +11 -10
- package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
- package/dist/src/benchmarks/wasm-vector-benchmark.d.ts +10 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.js +196 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.js.map +1 -0
- package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -1
- package/dist/src/browser/AdvancedFeatures.js +10 -3
- package/dist/src/browser/AdvancedFeatures.js.map +1 -1
- package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
- package/dist/src/browser/AttentionBrowser.js +12 -5
- package/dist/src/browser/AttentionBrowser.js.map +1 -1
- package/dist/src/browser/HNSWIndex.d.ts +1 -31
- package/dist/src/browser/HNSWIndex.d.ts.map +1 -1
- package/dist/src/browser/HNSWIndex.js +18 -136
- package/dist/src/browser/HNSWIndex.js.map +1 -1
- package/dist/src/browser/ProductQuantization.d.ts.map +1 -1
- package/dist/src/browser/ProductQuantization.js +1 -0
- package/dist/src/browser/ProductQuantization.js.map +1 -1
- package/dist/src/browser/index.d.ts +3 -3
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +1 -2
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/cli/agentdb-cli.d.ts +2 -16
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +216 -853
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/dist/src/cli/commands/attention.js +3 -3
- package/dist/src/cli/commands/attention.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts +0 -2
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +1 -106
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +1 -2
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +7 -30
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
- package/dist/src/cli/commands/install-embeddings.js.map +1 -1
- package/dist/src/cli/commands/migrate.d.ts +0 -15
- package/dist/src/cli/commands/migrate.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate.js +5 -164
- package/dist/src/cli/commands/migrate.js.map +1 -1
- package/dist/src/cli/commands/simulate-report.js.map +1 -1
- package/dist/src/cli/commands/simulate-wizard.js.map +1 -1
- package/dist/src/cli/commands/simulate.d.ts +7 -0
- package/dist/src/cli/commands/simulate.d.ts.map +1 -0
- package/dist/src/cli/commands/simulate.js +100 -0
- package/dist/src/cli/commands/simulate.js.map +1 -0
- package/dist/src/cli/commands/status.js +1 -5
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/lib/attention-config.d.ts +2 -2
- package/dist/src/cli/lib/attention-config.d.ts.map +1 -1
- package/dist/src/cli/lib/attention-config.js +1 -2
- package/dist/src/cli/lib/attention-config.js.map +1 -1
- package/dist/src/cli/lib/config-manager.d.ts +110 -0
- package/dist/src/cli/lib/config-manager.d.ts.map +1 -0
- package/dist/src/cli/lib/config-manager.js +512 -0
- package/dist/src/cli/lib/config-manager.js.map +1 -0
- package/dist/src/cli/lib/config-validator.d.ts +1 -1
- package/dist/src/cli/lib/config-validator.d.ts.map +1 -1
- package/dist/src/cli/lib/health-monitor.d.ts +149 -0
- package/dist/src/cli/lib/health-monitor.d.ts.map +1 -0
- package/dist/src/cli/lib/health-monitor.js +380 -0
- package/dist/src/cli/lib/health-monitor.js.map +1 -0
- package/dist/src/cli/lib/history-tracker.d.ts +103 -0
- package/dist/src/cli/lib/history-tracker.d.ts.map +1 -0
- package/dist/src/cli/lib/history-tracker.js +352 -0
- package/dist/src/cli/lib/history-tracker.js.map +1 -0
- package/dist/src/cli/lib/report-store.d.ts +1 -2
- package/dist/src/cli/lib/report-store.d.ts.map +1 -1
- package/dist/src/cli/lib/report-store.js +65 -87
- package/dist/src/cli/lib/report-store.js.map +1 -1
- package/dist/src/cli/lib/simulation-registry.d.ts +1 -1
- package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-registry.js +0 -1
- package/dist/src/cli/lib/simulation-registry.js.map +1 -1
- package/dist/src/cli/lib/simulation-runner.d.ts +4 -41
- package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-runner.js +6 -251
- package/dist/src/cli/lib/simulation-runner.js.map +1 -1
- package/dist/src/controllers/AttentionService.d.ts.map +1 -1
- package/dist/src/controllers/AttentionService.js +5 -3
- package/dist/src/controllers/AttentionService.js.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.d.ts +8 -33
- package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.js +16 -93
- package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
- package/dist/src/controllers/CausalRecall.d.ts +3 -6
- package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
- package/dist/src/controllers/CausalRecall.js +8 -14
- package/dist/src/controllers/CausalRecall.js.map +1 -1
- package/dist/src/controllers/ContextSynthesizer.d.ts +1 -1
- package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.js +3 -10
- package/dist/src/controllers/EmbeddingService.js.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts +0 -4
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.js +3 -10
- package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
- package/dist/src/controllers/ExplainableRecall.d.ts +6 -5
- package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
- package/dist/src/controllers/ExplainableRecall.js +13 -21
- package/dist/src/controllers/ExplainableRecall.js.map +1 -1
- package/dist/src/controllers/HNSWIndex.d.ts +7 -24
- package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
- package/dist/src/controllers/HNSWIndex.js +10 -89
- package/dist/src/controllers/HNSWIndex.js.map +1 -1
- package/dist/src/controllers/LearningSystem.d.ts +10 -106
- package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
- package/dist/src/controllers/LearningSystem.js +14 -39
- package/dist/src/controllers/LearningSystem.js.map +1 -1
- package/dist/src/controllers/MMRDiversityRanker.d.ts +1 -1
- package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -1
- package/dist/src/controllers/MetadataFilter.d.ts +3 -3
- package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
- package/dist/src/controllers/MetadataFilter.js +6 -9
- package/dist/src/controllers/MetadataFilter.js.map +1 -1
- package/dist/src/controllers/NightlyLearner.d.ts +4 -9
- package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
- package/dist/src/controllers/NightlyLearner.js +9 -28
- package/dist/src/controllers/NightlyLearner.js.map +1 -1
- package/dist/src/controllers/QUICClient.d.ts +2 -50
- package/dist/src/controllers/QUICClient.d.ts.map +1 -1
- package/dist/src/controllers/QUICClient.js +3 -193
- package/dist/src/controllers/QUICClient.js.map +1 -1
- package/dist/src/controllers/QUICServer.d.ts +4 -4
- package/dist/src/controllers/QUICServer.d.ts.map +1 -1
- package/dist/src/controllers/QUICServer.js +14 -22
- package/dist/src/controllers/QUICServer.js.map +1 -1
- package/dist/src/controllers/ReasoningBank.d.ts +4 -14
- package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
- package/dist/src/controllers/ReasoningBank.js +46 -59
- package/dist/src/controllers/ReasoningBank.js.map +1 -1
- package/dist/src/controllers/ReflexionMemory.d.ts +7 -80
- package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
- package/dist/src/controllers/ReflexionMemory.js +214 -372
- package/dist/src/controllers/ReflexionMemory.js.map +1 -1
- package/dist/src/controllers/SkillLibrary.d.ts +7 -37
- package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
- package/dist/src/controllers/SkillLibrary.js +96 -212
- package/dist/src/controllers/SkillLibrary.js.map +1 -1
- package/dist/src/controllers/SyncCoordinator.d.ts +3 -2
- package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
- package/dist/src/controllers/SyncCoordinator.js +5 -117
- package/dist/src/controllers/SyncCoordinator.js.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.d.ts +9 -20
- package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.js +29 -154
- package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
- package/dist/src/controllers/frontier-index.d.ts +14 -0
- package/dist/src/controllers/frontier-index.d.ts.map +1 -0
- package/dist/src/controllers/frontier-index.js +10 -0
- package/dist/src/controllers/frontier-index.js.map +1 -0
- package/dist/src/controllers/index.d.ts +17 -8
- package/dist/src/controllers/index.d.ts.map +1 -1
- package/dist/src/controllers/index.js +12 -6
- package/dist/src/controllers/index.js.map +1 -1
- package/dist/src/core/AgentDB.d.ts +25 -57
- package/dist/src/core/AgentDB.d.ts.map +1 -1
- package/dist/src/core/AgentDB.js +115 -137
- package/dist/src/core/AgentDB.js.map +1 -1
- package/dist/src/db-fallback.d.ts +1 -10
- package/dist/src/db-fallback.d.ts.map +1 -1
- package/dist/src/db-fallback.js +4 -171
- package/dist/src/db-fallback.js.map +1 -1
- package/dist/src/db-test.d.ts +13 -0
- package/dist/src/db-test.d.ts.map +1 -0
- package/dist/src/db-test.js +55 -0
- package/dist/src/db-test.js.map +1 -0
- package/dist/src/db-unified.d.ts +76 -0
- package/dist/src/db-unified.d.ts.map +1 -0
- package/dist/src/db-unified.js +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 +12 -38
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -46
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/agentdb-mcp-server.js +63 -219
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
- package/dist/src/mcp/learning-tools-handlers.d.ts +16 -0
- package/dist/src/mcp/learning-tools-handlers.d.ts.map +1 -0
- package/dist/src/mcp/learning-tools-handlers.js +105 -0
- package/dist/src/mcp/learning-tools-handlers.js.map +1 -0
- package/dist/src/optimizations/BatchOperations.d.ts +5 -52
- package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
- package/dist/src/optimizations/BatchOperations.js +33 -186
- package/dist/src/optimizations/BatchOperations.js.map +1 -1
- package/dist/src/optimizations/QueryOptimizer.d.ts +4 -4
- package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -1
- package/dist/src/optimizations/QueryOptimizer.js +1 -3
- package/dist/src/optimizations/QueryOptimizer.js.map +1 -1
- package/dist/src/optimizations/ToolCache.d.ts +4 -4
- package/dist/src/optimizations/ToolCache.d.ts.map +1 -1
- package/dist/src/optimizations/ToolCache.js.map +1 -1
- package/dist/src/optimizations/index.d.ts +1 -1
- package/dist/src/optimizations/index.d.ts.map +1 -1
- package/dist/src/security/AttestationLog.d.ts +70 -0
- package/dist/src/security/AttestationLog.d.ts.map +1 -0
- package/dist/src/security/AttestationLog.js +174 -0
- package/dist/src/security/AttestationLog.js.map +1 -0
- package/dist/src/security/MutationGuard.d.ts +83 -0
- package/dist/src/security/MutationGuard.d.ts.map +1 -0
- package/dist/src/security/MutationGuard.js +379 -0
- package/dist/src/security/MutationGuard.js.map +1 -0
- package/dist/src/security/index.d.ts +15 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +18 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/security/input-validation.d.ts +12 -12
- package/dist/src/security/input-validation.d.ts.map +1 -1
- package/dist/src/security/input-validation.js +0 -1
- package/dist/src/security/input-validation.js.map +1 -1
- package/dist/src/security/limits.d.ts +150 -0
- package/dist/src/security/limits.d.ts.map +1 -0
- package/dist/src/security/limits.js +288 -0
- package/dist/src/security/limits.js.map +1 -0
- package/dist/src/security/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/GraphTransformerService.d.ts +79 -0
- package/dist/src/services/GraphTransformerService.d.ts.map +1 -0
- package/dist/src/services/GraphTransformerService.js +331 -0
- package/dist/src/services/GraphTransformerService.js.map +1 -0
- package/dist/src/services/LLMRouter.d.ts +7 -61
- package/dist/src/services/LLMRouter.d.ts.map +1 -1
- package/dist/src/services/LLMRouter.js +25 -295
- package/dist/src/services/LLMRouter.js.map +1 -1
- package/dist/src/services/SemanticRouter.d.ts +78 -0
- package/dist/src/services/SemanticRouter.d.ts.map +1 -0
- package/dist/src/services/SemanticRouter.js +149 -0
- package/dist/src/services/SemanticRouter.js.map +1 -0
- package/dist/src/services/SonaTrajectoryService.d.ts +100 -0
- package/dist/src/services/SonaTrajectoryService.d.ts.map +1 -0
- package/dist/src/services/SonaTrajectoryService.js +231 -0
- package/dist/src/services/SonaTrajectoryService.js.map +1 -0
- package/dist/src/types/attention.d.ts +249 -0
- package/dist/src/types/attention.d.ts.map +1 -0
- package/dist/src/types/attention.js +43 -0
- package/dist/src/types/attention.js.map +1 -0
- package/dist/src/types/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/LegacyAttentionAdapter.d.ts +93 -0
- package/dist/src/utils/LegacyAttentionAdapter.d.ts.map +1 -0
- package/dist/src/utils/LegacyAttentionAdapter.js +241 -0
- package/dist/src/utils/LegacyAttentionAdapter.js.map +1 -0
- package/dist/src/utils/attention-metrics.d.ts +76 -0
- package/dist/src/utils/attention-metrics.d.ts.map +1 -0
- package/dist/src/utils/attention-metrics.js +178 -0
- package/dist/src/utils/attention-metrics.js.map +1 -0
- package/dist/src/utils/vector-math.d.ts +29 -0
- package/dist/src/utils/vector-math.d.ts.map +1 -0
- package/dist/src/utils/vector-math.js +66 -0
- package/dist/src/utils/vector-math.js.map +1 -0
- package/examples/README.md +105 -0
- package/examples/browser/attention-demo.html +499 -0
- package/examples/browser/flash-consolidation.html +598 -0
- package/examples/browser/hyperbolic-hierarchy.html +497 -0
- package/examples/quickstart.js +43 -0
- package/package.json +53 -56
- package/simulation/.claude-flow/metrics/agent-metrics.json +1 -0
- package/simulation/.claude-flow/metrics/performance.json +87 -0
- package/simulation/.claude-flow/metrics/task-metrics.json +10 -0
- package/simulation/COMPLETION-STATUS.md +139 -0
- package/simulation/FINAL-RESULTS.md +414 -0
- package/simulation/FINAL-STATUS.md +281 -0
- package/simulation/INTEGRATION-COMPLETE.md +452 -0
- package/simulation/MIGRATION-STATUS.md +231 -0
- package/simulation/OPTIMIZATION-RESULTS.md +397 -0
- package/simulation/PHASE1-COMPLETE.md +163 -0
- package/simulation/README.md +848 -0
- package/simulation/SIMULATION-RESULTS.md +239 -0
- package/simulation/cli.ts +78 -0
- package/simulation/configs/default.json +37 -0
- package/simulation/data/advanced/aidefence.graph +0 -0
- package/simulation/data/advanced/bmssp.graph +0 -0
- package/simulation/data/advanced/consciousness.graph +0 -0
- package/simulation/data/advanced/goalie.graph +0 -0
- package/simulation/data/advanced/psycho-symbolic.graph +0 -0
- package/simulation/data/advanced/research-swarm.graph +0 -0
- package/simulation/data/advanced/sublinear.graph +0 -0
- package/simulation/data/advanced/temporal.graph +0 -0
- package/simulation/data/causal.graph +0 -0
- package/simulation/data/graph-traversal.graph +0 -0
- package/simulation/data/lean-agentic.graph +0 -0
- package/simulation/data/reflexion.graph +0 -0
- package/simulation/data/skills.graph +0 -0
- package/simulation/data/stock-market.graph +0 -0
- package/simulation/data/strange-loops.graph +0 -0
- package/simulation/data/swarm.graph +0 -0
- package/simulation/data/voting-consensus.graph +0 -0
- package/simulation/docs/CLI-INTEGRATION-PLAN.md +1038 -0
- package/simulation/docs/COMPREHENSIVE-LATENT-SPACE-COMPLETION.md +354 -0
- package/simulation/docs/DOCUMENTATION-INDEX.md +226 -0
- package/simulation/docs/IMPLEMENTATION-COMPLETE.md +521 -0
- package/simulation/docs/OPTIMIZATION-SUMMARY.md +279 -0
- package/simulation/docs/README.md +229 -0
- package/simulation/docs/SWARM-5-INTEGRATION-SUMMARY.md +528 -0
- package/simulation/docs/TESTING-SUMMARY.md +304 -0
- package/simulation/docs/architecture/EXTENSION-API.md +868 -0
- package/simulation/docs/architecture/INTEGRATION-ARCHITECTURE.md +1138 -0
- package/simulation/docs/architecture/OPTIMIZATION-STRATEGY.md +778 -0
- package/simulation/docs/architecture/SIMULATION-ARCHITECTURE.md +892 -0
- package/simulation/docs/guides/CLI-REFERENCE.md +896 -0
- package/simulation/docs/guides/CUSTOM-SIMULATIONS.md +931 -0
- package/simulation/docs/guides/DEPLOYMENT.md +832 -0
- package/simulation/docs/guides/IMPLEMENTATION-SUMMARY.md +544 -0
- package/simulation/docs/guides/MIGRATION-GUIDE.md +591 -0
- package/simulation/docs/guides/QUICK-START.md +361 -0
- package/simulation/docs/guides/README.md +736 -0
- package/simulation/docs/guides/TROUBLESHOOTING.md +817 -0
- package/simulation/docs/guides/WIZARD-GUIDE.md +869 -0
- package/simulation/docs/reports/latent-space/MASTER-SYNTHESIS.md +345 -0
- package/simulation/docs/reports/latent-space/README.md +132 -0
- package/simulation/docs/reports/latent-space/attention-analysis-RESULTS.md +238 -0
- package/simulation/docs/reports/latent-space/clustering-analysis-RESULTS.md +210 -0
- package/simulation/docs/reports/latent-space/hnsw-exploration-RESULTS.md +332 -0
- package/simulation/docs/reports/latent-space/hypergraph-exploration-RESULTS.md +37 -0
- package/simulation/docs/reports/latent-space/neural-augmentation-RESULTS.md +69 -0
- package/simulation/docs/reports/latent-space/quantum-hybrid-RESULTS.md +91 -0
- package/simulation/docs/reports/latent-space/self-organizing-hnsw-RESULTS.md +51 -0
- package/simulation/docs/reports/latent-space/traversal-optimization-RESULTS.md +238 -0
- package/simulation/reports/README.md +397 -0
- package/simulation/reports/advanced-simulations-performance.md +1241 -0
- package/simulation/reports/aidefence-integration-2025-11-30T01-36-53-486Z.json +30 -0
- package/simulation/reports/architecture-analysis.md +1396 -0
- package/simulation/reports/basic-scenarios-performance.md +1840 -0
- package/simulation/reports/bmssp-integration-2025-11-30T01-36-27-193Z.json +30 -0
- package/simulation/reports/bmssp-integration-2025-11-30T03-38-12-887Z.json +30 -0
- package/simulation/reports/causal-reasoning-2025-11-29T23-35-21-795Z.json +36 -0
- package/simulation/reports/causal-reasoning-2025-11-30T00-58-42-862Z.json +30 -0
- package/simulation/reports/causal-reasoning-2025-11-30T00-59-12-546Z.json +40 -0
- package/simulation/reports/consciousness-explorer-2025-11-30T01-36-51-269Z.json +31 -0
- package/simulation/reports/core-benchmarks.md +727 -0
- package/simulation/reports/goalie-integration-2025-11-30T01-36-52-377Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-29T23-35-35-279Z.json +78 -0
- package/simulation/reports/graph-traversal-2025-11-29T23-37-36-697Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-03-59-716Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-05-10-984Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-06-16-334Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-06-53-312Z.json +30 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-07-51-075Z.json +24 -0
- package/simulation/reports/graph-traversal-2025-11-30T01-08-22-179Z.json +42 -0
- package/simulation/reports/lean-agentic-swarm-2025-11-29T23-37-23-804Z.json +148 -0
- package/simulation/reports/lean-agentic-swarm-2025-11-30T01-31-24-401Z.json +31 -0
- package/simulation/reports/lean-agentic-swarm-2025-11-30T03-38-01-470Z.json +31 -0
- package/simulation/reports/multi-agent-swarm-2025-11-29T23-35-28-093Z.json +78 -0
- package/simulation/reports/multi-agent-swarm-2025-11-30T01-03-54-062Z.json +42 -0
- package/simulation/reports/multi-agent-swarm-2025-11-30T01-05-06-092Z.json +42 -0
- package/simulation/reports/psycho-symbolic-reasoner-2025-11-30T01-36-50-180Z.json +30 -0
- package/simulation/reports/quality-metrics.md +727 -0
- package/simulation/reports/reflexion-learning-2025-11-29T23-35-09-774Z.json +48 -0
- package/simulation/reports/reflexion-learning-2025-11-29T23-37-16-934Z.json +36 -0
- package/simulation/reports/reflexion-learning-2025-11-30T00-07-49-259Z.json +30 -0
- package/simulation/reports/reflexion-learning-2025-11-30T00-09-29-319Z.json +51 -0
- package/simulation/reports/reflexion-learning-2025-11-30T00-28-37-659Z.json +51 -0
- package/simulation/reports/reflexion-learning-2025-11-30T01-31-30-690Z.json +29 -0
- package/simulation/reports/reflexion-learning-2025-11-30T03-38-06-937Z.json +29 -0
- package/simulation/reports/research-foundations.md +2004 -0
- package/simulation/reports/research-swarm-2025-11-30T01-36-54-647Z.json +30 -0
- package/simulation/reports/scalability-deployment.md +2404 -0
- package/simulation/reports/skill-evolution-2025-11-29T23-35-15-945Z.json +36 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-03-17-995Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-03-48-441Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-05-00-554Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-06-11-436Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-06-51-979Z.json +30 -0
- package/simulation/reports/skill-evolution-2025-11-30T01-07-32-695Z.json +40 -0
- package/simulation/reports/stock-market-emergence-2025-11-30T00-11-43-865Z.json +56 -0
- package/simulation/reports/stock-market-emergence-2025-11-30T00-28-57-495Z.json +56 -0
- package/simulation/reports/strange-loops-2025-11-29T23-37-30-621Z.json +78 -0
- package/simulation/reports/strange-loops-2025-11-30T00-07-55-415Z.json +30 -0
- package/simulation/reports/strange-loops-2025-11-30T00-09-35-133Z.json +30 -0
- package/simulation/reports/strange-loops-2025-11-30T00-48-50-744Z.json +24 -0
- package/simulation/reports/strange-loops-2025-11-30T00-54-48-044Z.json +24 -0
- package/simulation/reports/strange-loops-2025-11-30T00-57-27-633Z.json +24 -0
- package/simulation/reports/strange-loops-2025-11-30T00-57-59-135Z.json +42 -0
- package/simulation/reports/sublinear-solver-2025-11-30T01-36-33-134Z.json +30 -0
- package/simulation/reports/temporal-lead-solver-2025-11-30T01-36-38-628Z.json +30 -0
- package/simulation/reports/use-cases-applications.md +2212 -0
- package/simulation/reports/voting-system-consensus-2025-11-30T00-11-37-199Z.json +58 -0
- package/simulation/reports/voting-system-consensus-2025-11-30T00-28-47-735Z.json +58 -0
- package/simulation/runner.ts +300 -0
- package/simulation/scenarios/README-advanced/aidefence-integration.md +63 -0
- package/simulation/scenarios/README-advanced/bmssp-integration.md +58 -0
- package/simulation/scenarios/README-advanced/consciousness-explorer.md +53 -0
- package/simulation/scenarios/README-advanced/goalie-integration.md +61 -0
- package/simulation/scenarios/README-advanced/psycho-symbolic-reasoner.md +55 -0
- package/simulation/scenarios/README-advanced/research-swarm.md +63 -0
- package/simulation/scenarios/README-advanced/sublinear-solver.md +58 -0
- package/simulation/scenarios/README-advanced/temporal-lead-solver.md +55 -0
- package/simulation/scenarios/README-basic/causal-reasoning.md +39 -0
- package/simulation/scenarios/README-basic/graph-traversal.md +41 -0
- package/simulation/scenarios/README-basic/lean-agentic-swarm.md +122 -0
- package/simulation/scenarios/README-basic/multi-agent-swarm.md +34 -0
- package/simulation/scenarios/README-basic/reflexion-learning.md +41 -0
- package/simulation/scenarios/README-basic/skill-evolution.md +38 -0
- package/simulation/scenarios/README-basic/stock-market-emergence.md +28 -0
- package/simulation/scenarios/README-basic/strange-loops.md +36 -0
- package/simulation/scenarios/README-basic/voting-system-consensus.md +28 -0
- package/simulation/scenarios/README.md +438 -0
- package/simulation/scenarios/aidefence-integration.ts +165 -0
- package/simulation/scenarios/bmssp-integration.ts +137 -0
- package/simulation/scenarios/causal-reasoning.ts +143 -0
- package/simulation/scenarios/consciousness-explorer.ts +139 -0
- package/simulation/scenarios/domain-examples/.claude-flow/metrics/agent-metrics.json +1 -0
- package/simulation/scenarios/domain-examples/.claude-flow/metrics/performance.json +87 -0
- package/simulation/scenarios/domain-examples/.claude-flow/metrics/task-metrics.json +10 -0
- package/simulation/scenarios/domain-examples/README.md +525 -0
- package/simulation/scenarios/domain-examples/e-commerce-recommendations.ts +220 -0
- package/simulation/scenarios/domain-examples/index.ts +81 -0
- package/simulation/scenarios/domain-examples/iot-sensor-networks.ts +290 -0
- package/simulation/scenarios/domain-examples/medical-imaging.ts +181 -0
- package/simulation/scenarios/domain-examples/robotics-navigation.ts +214 -0
- package/simulation/scenarios/domain-examples/scientific-research.ts +250 -0
- package/simulation/scenarios/domain-examples/trading-systems.ts +138 -0
- package/simulation/scenarios/goalie-integration.ts +161 -0
- package/simulation/scenarios/graph-traversal.ts +129 -0
- package/simulation/scenarios/latent-space/OPTIMIZATION-COMPLETE.md +287 -0
- package/simulation/scenarios/latent-space/README-attention-analysis.md +170 -0
- package/simulation/scenarios/latent-space/README-clustering-analysis.md +239 -0
- package/simulation/scenarios/latent-space/README-hnsw-exploration.md +199 -0
- package/simulation/scenarios/latent-space/README-hypergraph-exploration.md +279 -0
- package/simulation/scenarios/latent-space/README-neural-augmentation.md +267 -0
- package/simulation/scenarios/latent-space/README-quantum-hybrid.md +276 -0
- package/simulation/scenarios/latent-space/README-self-organizing-hnsw.md +244 -0
- package/simulation/scenarios/latent-space/README-traversal-optimization.md +212 -0
- package/simulation/scenarios/latent-space/attention-analysis.ts +598 -0
- package/simulation/scenarios/latent-space/clustering-analysis.ts +796 -0
- package/simulation/scenarios/latent-space/hnsw-exploration.ts +526 -0
- package/simulation/scenarios/latent-space/hypergraph-exploration.ts +706 -0
- package/simulation/scenarios/latent-space/index.ts +47 -0
- package/simulation/scenarios/latent-space/neural-augmentation.ts +604 -0
- package/simulation/scenarios/latent-space/quantum-hybrid.ts +508 -0
- package/simulation/scenarios/latent-space/self-organizing-hnsw.ts +680 -0
- package/simulation/scenarios/latent-space/traversal-optimization.ts +782 -0
- package/simulation/scenarios/lean-agentic-swarm.ts +182 -0
- package/simulation/scenarios/multi-agent-swarm.ts +146 -0
- package/simulation/scenarios/psycho-symbolic-reasoner.ts +136 -0
- package/simulation/scenarios/reflexion-learning.ts +132 -0
- package/simulation/scenarios/research-swarm.ts +187 -0
- package/simulation/scenarios/skill-evolution.ts +135 -0
- package/simulation/scenarios/stock-market-emergence.ts +323 -0
- package/simulation/scenarios/strange-loops.ts +175 -0
- package/simulation/scenarios/sublinear-solver.ts +108 -0
- package/simulation/scenarios/temporal-lead-solver.ts +121 -0
- package/simulation/scenarios/voting-system-consensus.ts +251 -0
- package/simulation/tests/latent-space/attention-analysis.test.ts +204 -0
- package/simulation/tests/latent-space/clustering-analysis.test.ts +281 -0
- package/simulation/tests/latent-space/hnsw-exploration.test.ts +253 -0
- package/simulation/tests/latent-space/hypergraph-exploration.test.ts +295 -0
- package/simulation/tests/latent-space/neural-augmentation.test.ts +326 -0
- package/simulation/tests/latent-space/quantum-hybrid.test.ts +307 -0
- package/simulation/tests/latent-space/self-organizing-hnsw.test.ts +291 -0
- package/simulation/tests/latent-space/traversal-optimization.test.ts +261 -0
- package/simulation/types.ts +177 -0
- package/simulation/utils/PerformanceOptimizer.ts +269 -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 +147 -0
- package/src/backends/detector.ts +283 -0
- package/src/backends/factory.ts +279 -0
- package/src/backends/graph/GraphDatabaseAdapter.ts +334 -0
- package/src/backends/hnswlib/HNSWLibBackend.ts +419 -0
- package/src/backends/hnswlib/index.ts +7 -0
- package/src/backends/index.ts +32 -0
- package/src/backends/ruvector/GuardedVectorBackend.ts +219 -0
- package/src/backends/ruvector/RuVectorBackend.ts +343 -0
- package/src/backends/ruvector/RuVectorLearning.ts +254 -0
- package/src/backends/ruvector/index.ts +9 -0
- package/src/benchmarks/wasm-vector-benchmark.ts +250 -0
- package/src/browser/AdvancedFeatures.ts +565 -0
- package/src/browser/AttentionBrowser.ts +387 -0
- package/src/browser/HNSWIndex.ts +494 -0
- package/src/browser/ProductQuantization.ts +419 -0
- package/src/browser/index.ts +317 -0
- package/src/cli/agentdb-cli.ts +2712 -0
- package/src/cli/attention-cli-integration.ts +91 -0
- package/src/cli/commands/attention.ts +656 -0
- package/src/cli/commands/doctor.ts +322 -0
- package/src/cli/commands/init.ts +176 -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/examples.sh +83 -0
- package/src/cli/lib/attention-config.ts +326 -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 +503 -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 +503 -0
- package/src/cli/lib/simulation-runner.ts +291 -0
- package/src/cli/tests/agentdb-cli.test.ts +58 -0
- package/src/cli/tests/attention-cli.test.ts +335 -0
- package/src/controllers/AttentionService.ts +770 -0
- package/src/controllers/CausalMemoryGraph.ts +773 -0
- package/src/controllers/CausalRecall.ts +484 -0
- package/src/controllers/ContextSynthesizer.ts +285 -0
- package/src/controllers/EmbeddingService.ts +161 -0
- package/src/controllers/EnhancedEmbeddingService.ts +143 -0
- package/src/controllers/ExplainableRecall.ts +746 -0
- package/src/controllers/HNSWIndex.ts +495 -0
- package/src/controllers/LearningSystem.ts +1270 -0
- package/src/controllers/MMRDiversityRanker.ts +187 -0
- package/src/controllers/MetadataFilter.ts +280 -0
- package/src/controllers/NightlyLearner.ts +647 -0
- package/src/controllers/QUICClient.ts +413 -0
- package/src/controllers/QUICServer.ts +498 -0
- package/src/controllers/ReasoningBank.ts +665 -0
- package/src/controllers/ReflexionMemory.ts +872 -0
- package/src/controllers/SkillLibrary.ts +795 -0
- package/src/controllers/SyncCoordinator.ts +597 -0
- package/src/controllers/WASMVectorSearch.ts +292 -0
- package/src/controllers/frontier-index.ts +35 -0
- package/src/controllers/index.ts +57 -0
- package/src/coordination/MultiDatabaseCoordinator.ts +1107 -0
- package/src/coordination/index.ts +24 -0
- package/src/core/AgentDB.ts +211 -0
- package/src/db-fallback.ts +296 -0
- package/src/db-test.ts +59 -0
- package/src/db-unified.ts +327 -0
- package/src/examples/quic-sync-example.ts +198 -0
- package/src/examples/wasm-vector-usage.ts +245 -0
- package/src/index.ts +69 -0
- package/src/mcp/agentdb-mcp-server.ts +2318 -0
- package/src/mcp/attention-mcp-integration.ts +145 -0
- package/src/mcp/attention-tools-handlers.ts +586 -0
- package/src/mcp/learning-tools-handlers.ts +106 -0
- package/src/optimizations/BatchOperations.ts +594 -0
- package/src/optimizations/QueryOptimizer.ts +297 -0
- package/src/optimizations/ToolCache.ts +355 -0
- package/src/optimizations/index.ts +11 -0
- package/src/schemas/frontier-schema.sql +378 -0
- package/src/schemas/schema.sql +382 -0
- package/src/security/AttestationLog.ts +252 -0
- package/src/security/MutationGuard.ts +420 -0
- package/src/security/index.ts +52 -0
- package/src/security/input-validation.ts +543 -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/GraphTransformerService.ts +389 -0
- package/src/services/LLMRouter.ts +380 -0
- package/src/services/SemanticRouter.ts +169 -0
- package/src/services/SonaTrajectoryService.ts +264 -0
- package/src/tests/attention-service.test.ts +492 -0
- package/src/tests/wasm-vector-search.test.ts +240 -0
- package/src/types/attention.ts +392 -0
- package/src/types/quic.ts +772 -0
- package/src/utils/LegacyAttentionAdapter.ts +393 -0
- package/src/utils/NodeIdMapper.ts +64 -0
- package/src/utils/attention-metrics.ts +253 -0
- package/src/utils/vector-math.ts +71 -0
- package/LICENSE +0 -21
- package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts +0 -175
- package/dist/src/backends/rvf/AdaptiveIndexTuner.d.ts.map +0 -1
- package/dist/src/backends/rvf/AdaptiveIndexTuner.js +0 -559
- package/dist/src/backends/rvf/AdaptiveIndexTuner.js.map +0 -1
- package/dist/src/backends/rvf/ContrastiveTrainer.d.ts +0 -148
- package/dist/src/backends/rvf/ContrastiveTrainer.d.ts.map +0 -1
- package/dist/src/backends/rvf/ContrastiveTrainer.js +0 -438
- package/dist/src/backends/rvf/ContrastiveTrainer.js.map +0 -1
- package/dist/src/backends/rvf/FederatedSessionManager.d.ts +0 -211
- package/dist/src/backends/rvf/FederatedSessionManager.d.ts.map +0 -1
- package/dist/src/backends/rvf/FederatedSessionManager.js +0 -389
- package/dist/src/backends/rvf/FederatedSessionManager.js.map +0 -1
- package/dist/src/backends/rvf/FilterBuilder.d.ts +0 -136
- package/dist/src/backends/rvf/FilterBuilder.d.ts.map +0 -1
- package/dist/src/backends/rvf/FilterBuilder.js +0 -157
- package/dist/src/backends/rvf/FilterBuilder.js.map +0 -1
- package/dist/src/backends/rvf/NativeAccelerator.d.ts +0 -140
- package/dist/src/backends/rvf/NativeAccelerator.d.ts.map +0 -1
- package/dist/src/backends/rvf/NativeAccelerator.js +0 -630
- package/dist/src/backends/rvf/NativeAccelerator.js.map +0 -1
- package/dist/src/backends/rvf/RvfBackend.d.ts +0 -194
- package/dist/src/backends/rvf/RvfBackend.d.ts.map +0 -1
- package/dist/src/backends/rvf/RvfBackend.js +0 -607
- package/dist/src/backends/rvf/RvfBackend.js.map +0 -1
- package/dist/src/backends/rvf/RvfSolver.d.ts +0 -175
- package/dist/src/backends/rvf/RvfSolver.d.ts.map +0 -1
- package/dist/src/backends/rvf/RvfSolver.js +0 -176
- package/dist/src/backends/rvf/RvfSolver.js.map +0 -1
- package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts +0 -143
- package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +0 -1
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js +0 -569
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +0 -1
- package/dist/src/backends/rvf/SemanticQueryRouter.d.ts +0 -128
- package/dist/src/backends/rvf/SemanticQueryRouter.d.ts.map +0 -1
- package/dist/src/backends/rvf/SemanticQueryRouter.js +0 -415
- package/dist/src/backends/rvf/SemanticQueryRouter.js.map +0 -1
- package/dist/src/backends/rvf/SimdFallbacks.d.ts +0 -25
- package/dist/src/backends/rvf/SimdFallbacks.d.ts.map +0 -1
- package/dist/src/backends/rvf/SimdFallbacks.js +0 -287
- package/dist/src/backends/rvf/SimdFallbacks.js.map +0 -1
- package/dist/src/backends/rvf/SolverBandit.d.ts +0 -100
- package/dist/src/backends/rvf/SolverBandit.d.ts.map +0 -1
- package/dist/src/backends/rvf/SolverBandit.js +0 -216
- package/dist/src/backends/rvf/SolverBandit.js.map +0 -1
- package/dist/src/backends/rvf/SonaLearningBackend.d.ts +0 -157
- package/dist/src/backends/rvf/SonaLearningBackend.d.ts.map +0 -1
- package/dist/src/backends/rvf/SonaLearningBackend.js +0 -283
- package/dist/src/backends/rvf/SonaLearningBackend.js.map +0 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +0 -77
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +0 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.js +0 -382
- package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +0 -1
- package/dist/src/backends/rvf/WasmStoreBridge.d.ts +0 -27
- package/dist/src/backends/rvf/WasmStoreBridge.d.ts.map +0 -1
- package/dist/src/backends/rvf/WasmStoreBridge.js +0 -87
- package/dist/src/backends/rvf/WasmStoreBridge.js.map +0 -1
- package/dist/src/backends/rvf/validation.d.ts +0 -20
- package/dist/src/backends/rvf/validation.d.ts.map +0 -1
- package/dist/src/backends/rvf/validation.js +0 -78
- package/dist/src/backends/rvf/validation.js.map +0 -1
- package/dist/src/benchmark/BenchmarkSuite.d.ts +0 -318
- package/dist/src/benchmark/BenchmarkSuite.d.ts.map +0 -1
- package/dist/src/benchmark/BenchmarkSuite.js +0 -986
- package/dist/src/benchmark/BenchmarkSuite.js.map +0 -1
- package/dist/src/benchmark/index.d.ts +0 -29
- package/dist/src/benchmark/index.d.ts.map +0 -1
- package/dist/src/benchmark/index.js +0 -39
- package/dist/src/benchmark/index.js.map +0 -1
- package/dist/src/cli/commands/hyperbolic.d.ts +0 -11
- package/dist/src/cli/commands/hyperbolic.d.ts.map +0 -1
- package/dist/src/cli/commands/hyperbolic.js +0 -428
- package/dist/src/cli/commands/hyperbolic.js.map +0 -1
- package/dist/src/cli/commands/learn.d.ts +0 -11
- package/dist/src/cli/commands/learn.d.ts.map +0 -1
- package/dist/src/cli/commands/learn.js +0 -404
- package/dist/src/cli/commands/learn.js.map +0 -1
- package/dist/src/cli/commands/route.d.ts +0 -11
- package/dist/src/cli/commands/route.d.ts.map +0 -1
- package/dist/src/cli/commands/route.js +0 -414
- package/dist/src/cli/commands/route.js.map +0 -1
- package/dist/src/cli/commands/rvf.d.ts +0 -21
- package/dist/src/cli/commands/rvf.d.ts.map +0 -1
- package/dist/src/cli/commands/rvf.js +0 -448
- package/dist/src/cli/commands/rvf.js.map +0 -1
- package/dist/src/cli/tests/agentdb-cli.test.d.ts +0 -8
- package/dist/src/cli/tests/agentdb-cli.test.d.ts.map +0 -1
- package/dist/src/cli/tests/agentdb-cli.test.js +0 -50
- package/dist/src/cli/tests/agentdb-cli.test.js.map +0 -1
- package/dist/src/cli/tests/attention-cli.test.d.ts +0 -5
- package/dist/src/cli/tests/attention-cli.test.d.ts.map +0 -1
- package/dist/src/cli/tests/attention-cli.test.js +0 -257
- package/dist/src/cli/tests/attention-cli.test.js.map +0 -1
- package/dist/src/compatibility/DeprecationWarnings.d.ts +0 -54
- package/dist/src/compatibility/DeprecationWarnings.d.ts.map +0 -1
- package/dist/src/compatibility/DeprecationWarnings.js +0 -131
- package/dist/src/compatibility/DeprecationWarnings.js.map +0 -1
- package/dist/src/compatibility/MigrationUtilities.d.ts +0 -30
- package/dist/src/compatibility/MigrationUtilities.d.ts.map +0 -1
- package/dist/src/compatibility/MigrationUtilities.js +0 -184
- package/dist/src/compatibility/MigrationUtilities.js.map +0 -1
- package/dist/src/compatibility/V1toV2Adapter.d.ts +0 -76
- package/dist/src/compatibility/V1toV2Adapter.d.ts.map +0 -1
- package/dist/src/compatibility/V1toV2Adapter.js +0 -198
- package/dist/src/compatibility/V1toV2Adapter.js.map +0 -1
- package/dist/src/compatibility/VersionDetector.d.ts +0 -32
- package/dist/src/compatibility/VersionDetector.d.ts.map +0 -1
- package/dist/src/compatibility/VersionDetector.js +0 -144
- package/dist/src/compatibility/VersionDetector.js.map +0 -1
- package/dist/src/compatibility/index.d.ts +0 -11
- package/dist/src/compatibility/index.d.ts.map +0 -1
- package/dist/src/compatibility/index.js +0 -10
- package/dist/src/compatibility/index.js.map +0 -1
- package/dist/src/compatibility/types.d.ts +0 -103
- package/dist/src/compatibility/types.d.ts.map +0 -1
- package/dist/src/compatibility/types.js +0 -5
- package/dist/src/compatibility/types.js.map +0 -1
- package/dist/src/controllers/MemoryController.d.ts +0 -161
- package/dist/src/controllers/MemoryController.d.ts.map +0 -1
- package/dist/src/controllers/MemoryController.js +0 -290
- package/dist/src/controllers/MemoryController.js.map +0 -1
- package/dist/src/controllers/attention/CrossAttentionController.d.ts +0 -141
- package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +0 -1
- package/dist/src/controllers/attention/CrossAttentionController.js +0 -325
- package/dist/src/controllers/attention/CrossAttentionController.js.map +0 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +0 -137
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +0 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.js +0 -339
- package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +0 -1
- package/dist/src/controllers/attention/SelfAttentionController.d.ts +0 -117
- package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +0 -1
- package/dist/src/controllers/attention/SelfAttentionController.js +0 -205
- package/dist/src/controllers/attention/SelfAttentionController.js.map +0 -1
- package/dist/src/controllers/attention/index.d.ts +0 -15
- package/dist/src/controllers/attention/index.d.ts.map +0 -1
- package/dist/src/controllers/attention/index.js +0 -12
- package/dist/src/controllers/attention/index.js.map +0 -1
- package/dist/src/core/QueryCache.d.ts +0 -138
- package/dist/src/core/QueryCache.d.ts.map +0 -1
- package/dist/src/core/QueryCache.js +0 -313
- package/dist/src/core/QueryCache.js.map +0 -1
- package/dist/src/observability/index.d.ts +0 -8
- package/dist/src/observability/index.d.ts.map +0 -1
- package/dist/src/observability/index.js +0 -8
- package/dist/src/observability/index.js.map +0 -1
- package/dist/src/observability/integration.d.ts +0 -32
- package/dist/src/observability/integration.d.ts.map +0 -1
- package/dist/src/observability/integration.js +0 -157
- package/dist/src/observability/integration.js.map +0 -1
- package/dist/src/observability/telemetry.d.ts +0 -137
- package/dist/src/observability/telemetry.d.ts.map +0 -1
- package/dist/src/observability/telemetry.js +0 -420
- package/dist/src/observability/telemetry.js.map +0 -1
- package/dist/src/quantization/index.d.ts +0 -7
- package/dist/src/quantization/index.d.ts.map +0 -1
- package/dist/src/quantization/index.js +0 -15
- package/dist/src/quantization/index.js.map +0 -1
- package/dist/src/quantization/vector-quantization.d.ts +0 -388
- package/dist/src/quantization/vector-quantization.d.ts.map +0 -1
- package/dist/src/quantization/vector-quantization.js +0 -1136
- package/dist/src/quantization/vector-quantization.js.map +0 -1
- package/dist/src/search/HybridSearch.d.ts +0 -311
- package/dist/src/search/HybridSearch.d.ts.map +0 -1
- package/dist/src/search/HybridSearch.js +0 -712
- package/dist/src/search/HybridSearch.js.map +0 -1
- package/dist/src/search/index.d.ts +0 -12
- package/dist/src/search/index.d.ts.map +0 -1
- package/dist/src/search/index.js +0 -16
- package/dist/src/search/index.js.map +0 -1
- package/dist/src/services/AttentionService.d.ts +0 -303
- package/dist/src/services/AttentionService.d.ts.map +0 -1
- package/dist/src/services/AttentionService.js +0 -1167
- package/dist/src/services/AttentionService.js.map +0 -1
- package/dist/src/simd/index.d.ts +0 -9
- package/dist/src/simd/index.d.ts.map +0 -1
- package/dist/src/simd/index.js +0 -27
- package/dist/src/simd/index.js.map +0 -1
- package/dist/src/simd/simd-vector-ops.d.ts +0 -332
- package/dist/src/simd/simd-vector-ops.d.ts.map +0 -1
- package/dist/src/simd/simd-vector-ops.js +0 -947
- package/dist/src/simd/simd-vector-ops.js.map +0 -1
- package/dist/src/tests/attention-service.test.d.ts +0 -7
- package/dist/src/tests/attention-service.test.d.ts.map +0 -1
- package/dist/src/tests/attention-service.test.js +0 -401
- package/dist/src/tests/attention-service.test.js.map +0 -1
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts +0 -7
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts.map +0 -1
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js +0 -283
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js.map +0 -1
- package/dist/src/tests/query-cache.test.d.ts +0 -7
- package/dist/src/tests/query-cache.test.d.ts.map +0 -1
- package/dist/src/tests/query-cache.test.js +0 -343
- package/dist/src/tests/query-cache.test.js.map +0 -1
- package/dist/src/tests/ruvector-integration.test.d.ts +0 -14
- package/dist/src/tests/ruvector-integration.test.d.ts.map +0 -1
- package/dist/src/tests/ruvector-integration.test.js +0 -1156
- package/dist/src/tests/ruvector-integration.test.js.map +0 -1
- package/dist/src/tests/unit/auth/crypto.utils.test.d.ts +0 -6
- package/dist/src/tests/unit/auth/crypto.utils.test.d.ts.map +0 -1
- package/dist/src/tests/unit/auth/crypto.utils.test.js +0 -310
- package/dist/src/tests/unit/auth/crypto.utils.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts +0 -5
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js +0 -207
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts +0 -5
- package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/migration-utils.test.js +0 -264
- package/dist/src/tests/unit/compatibility/migration-utils.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts +0 -7
- package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/v1-adapter.test.js +0 -228
- package/dist/src/tests/unit/compatibility/v1-adapter.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/version-detector.test.d.ts +0 -10
- package/dist/src/tests/unit/compatibility/version-detector.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/version-detector.test.js +0 -162
- package/dist/src/tests/unit/compatibility/version-detector.test.js.map +0 -1
- package/dist/src/tests/vector-quantization.test.d.ts +0 -5
- package/dist/src/tests/vector-quantization.test.d.ts.map +0 -1
- package/dist/src/tests/vector-quantization.test.js +0 -338
- package/dist/src/tests/vector-quantization.test.js.map +0 -1
- package/dist/src/tests/wasm-vector-search.test.d.ts +0 -7
- package/dist/src/tests/wasm-vector-search.test.d.ts.map +0 -1
- package/dist/src/tests/wasm-vector-search.test.js +0 -193
- package/dist/src/tests/wasm-vector-search.test.js.map +0 -1
- package/dist/src/types/database.types.d.ts +0 -275
- package/dist/src/types/database.types.d.ts.map +0 -1
- package/dist/src/types/database.types.js +0 -57
- package/dist/src/types/database.types.js.map +0 -1
- package/dist/src/utils/chalk-fallback.d.ts +0 -3
- package/dist/src/utils/chalk-fallback.d.ts.map +0 -1
- package/dist/src/utils/chalk-fallback.js +0 -20
- package/dist/src/utils/chalk-fallback.js.map +0 -1
- package/dist/src/utils/crypto.utils.d.ts +0 -122
- package/dist/src/utils/crypto.utils.d.ts.map +0 -1
- package/dist/src/utils/crypto.utils.js +0 -296
- package/dist/src/utils/crypto.utils.js.map +0 -1
- package/dist/src/utils/similarity.d.ts +0 -11
- package/dist/src/utils/similarity.d.ts.map +0 -1
- package/dist/src/utils/similarity.js +0 -25
- package/dist/src/utils/similarity.js.map +0 -1
- package/dist/src/wasm-loader.d.ts +0 -67
- package/dist/src/wasm-loader.d.ts.map +0 -1
- package/dist/src/wasm-loader.js +0 -78
- package/dist/src/wasm-loader.js.map +0 -1
- package/dist/src/wrappers/agentdb-fast.d.ts +0 -139
- package/dist/src/wrappers/agentdb-fast.d.ts.map +0 -1
- package/dist/src/wrappers/agentdb-fast.js +0 -316
- package/dist/src/wrappers/agentdb-fast.js.map +0 -1
- package/dist/src/wrappers/attention-fallbacks.d.ts +0 -351
- package/dist/src/wrappers/attention-fallbacks.d.ts.map +0 -1
- package/dist/src/wrappers/attention-fallbacks.js +0 -1487
- package/dist/src/wrappers/attention-fallbacks.js.map +0 -1
- package/dist/src/wrappers/embedding-service.d.ts +0 -117
- package/dist/src/wrappers/embedding-service.d.ts.map +0 -1
- package/dist/src/wrappers/embedding-service.js +0 -376
- package/dist/src/wrappers/embedding-service.js.map +0 -1
- package/dist/src/wrappers/gnn-wrapper.d.ts +0 -71
- package/dist/src/wrappers/gnn-wrapper.d.ts.map +0 -1
- package/dist/src/wrappers/gnn-wrapper.js +0 -240
- package/dist/src/wrappers/gnn-wrapper.js.map +0 -1
- package/dist/src/wrappers/index.d.ts +0 -48
- package/dist/src/wrappers/index.d.ts.map +0 -1
- package/dist/src/wrappers/index.js +0 -83
- package/dist/src/wrappers/index.js.map +0 -1
|
@@ -1,947 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SIMD-Accelerated Vector Operations for AgentDB
|
|
3
|
-
*
|
|
4
|
-
* High-performance vector operations with WebAssembly SIMD acceleration.
|
|
5
|
-
* Provides 2-8x speedup over standard JavaScript implementations through:
|
|
6
|
-
* - 8x loop unrolling with separate accumulators for Instruction-Level Parallelism (ILP)
|
|
7
|
-
* - Pre-allocated buffer pools to minimize GC pressure
|
|
8
|
-
* - SIMD detection and graceful fallback to optimized scalar code
|
|
9
|
-
* - Batch operations for cache-friendly memory access patterns
|
|
10
|
-
*
|
|
11
|
-
* @module simd-vector-ops
|
|
12
|
-
*/
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// Performance & Security Constants
|
|
15
|
-
// ============================================================================
|
|
16
|
-
/** @inline Maximum allowed vector dimension to prevent DoS via large allocations */
|
|
17
|
-
export const MAX_VECTOR_DIMENSION = 4096;
|
|
18
|
-
/** @inline Maximum buffer pool size per dimension bucket */
|
|
19
|
-
const MAX_BUFFER_POOL_SIZE = 128;
|
|
20
|
-
/** @inline Maximum batch size for optimal cache utilization */
|
|
21
|
-
export const MAX_BATCH_SIZE = 10000;
|
|
22
|
-
/** @inline Default cache size for embedding storage */
|
|
23
|
-
export const DEFAULT_CACHE_SIZE = 10000;
|
|
24
|
-
/** @inline Small epsilon for numerical stability */
|
|
25
|
-
const EPSILON = 1e-10;
|
|
26
|
-
// ============================================================================
|
|
27
|
-
// Input Validation Helpers
|
|
28
|
-
// ============================================================================
|
|
29
|
-
/**
|
|
30
|
-
* Validate that a value is a valid Float32Array
|
|
31
|
-
*/
|
|
32
|
-
function validateFloat32Array(arr, name) {
|
|
33
|
-
if (arr === null || arr === undefined) {
|
|
34
|
-
throw new Error(`${name} cannot be null or undefined`);
|
|
35
|
-
}
|
|
36
|
-
if (!(arr instanceof Float32Array)) {
|
|
37
|
-
throw new Error(`${name} must be a Float32Array`);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Validate vector dimension is within safe limits
|
|
42
|
-
*/
|
|
43
|
-
function validateDimension(dimension, name = 'dimension') {
|
|
44
|
-
if (!Number.isFinite(dimension) || dimension < 0) {
|
|
45
|
-
throw new Error(`${name} must be a non-negative finite number`);
|
|
46
|
-
}
|
|
47
|
-
if (dimension > MAX_VECTOR_DIMENSION) {
|
|
48
|
-
throw new Error(`${name} exceeds maximum allowed size of ${MAX_VECTOR_DIMENSION}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Check if a number is valid (not NaN, not Infinity)
|
|
53
|
-
*/
|
|
54
|
-
function isValidNumber(n) {
|
|
55
|
-
return Number.isFinite(n);
|
|
56
|
-
}
|
|
57
|
-
// ============================================================================
|
|
58
|
-
// SIMD Detection
|
|
59
|
-
// ============================================================================
|
|
60
|
-
/**
|
|
61
|
-
* WebAssembly SIMD feature detection
|
|
62
|
-
*
|
|
63
|
-
* Tests for SIMD support by attempting to validate a minimal WASM module
|
|
64
|
-
* that uses SIMD instructions (v128.const and i8x16.extract_lane_s)
|
|
65
|
-
*/
|
|
66
|
-
let _simdSupported = null;
|
|
67
|
-
/**
|
|
68
|
-
* Detect WebAssembly SIMD support
|
|
69
|
-
*
|
|
70
|
-
* This function caches the result after first call for performance.
|
|
71
|
-
* The detection is done by validating a minimal WASM module containing
|
|
72
|
-
* SIMD instructions.
|
|
73
|
-
*
|
|
74
|
-
* @returns true if SIMD is supported, false otherwise
|
|
75
|
-
*/
|
|
76
|
-
export function detectSIMDSupport() {
|
|
77
|
-
if (_simdSupported !== null) {
|
|
78
|
-
return _simdSupported;
|
|
79
|
-
}
|
|
80
|
-
try {
|
|
81
|
-
// Minimal WASM module with SIMD instructions:
|
|
82
|
-
// - v128.const: Creates a 128-bit vector constant
|
|
83
|
-
// - i8x16.extract_lane_s: Extracts a signed byte from the vector
|
|
84
|
-
//
|
|
85
|
-
// If the browser/runtime supports SIMD, this module will validate successfully
|
|
86
|
-
const simdTestModule = new Uint8Array([
|
|
87
|
-
0x00, 0x61, 0x73, 0x6d, // WASM magic number
|
|
88
|
-
0x01, 0x00, 0x00, 0x00, // Version 1
|
|
89
|
-
0x01, 0x05, 0x01, 0x60, // Type section: function type () -> i32
|
|
90
|
-
0x00, 0x01, 0x7f,
|
|
91
|
-
0x03, 0x02, 0x01, 0x00, // Function section: 1 function of type 0
|
|
92
|
-
0x0a, 0x16, 0x01, 0x14, // Code section
|
|
93
|
-
0x00, // No locals
|
|
94
|
-
0xfd, 0x0c, // v128.const
|
|
95
|
-
0x00, 0x00, 0x00, 0x00, // Vector constant (16 bytes)
|
|
96
|
-
0x00, 0x00, 0x00, 0x00,
|
|
97
|
-
0x00, 0x00, 0x00, 0x00,
|
|
98
|
-
0x00, 0x00, 0x00, 0x00,
|
|
99
|
-
0xfd, 0x15, 0x00, // i8x16.extract_lane_s 0
|
|
100
|
-
0x0b // end
|
|
101
|
-
]);
|
|
102
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- WebAssembly runtime detection requires dynamic access
|
|
103
|
-
const globalAny = globalThis;
|
|
104
|
-
_simdSupported =
|
|
105
|
-
typeof globalAny.WebAssembly !== 'undefined' &&
|
|
106
|
-
typeof globalAny.WebAssembly.validate === 'function' &&
|
|
107
|
-
globalAny.WebAssembly.validate(simdTestModule);
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
_simdSupported = false;
|
|
111
|
-
}
|
|
112
|
-
// @inline Ensure we always return boolean (not null)
|
|
113
|
-
return _simdSupported === true;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Alternative SIMD detection using the simpler v128.const check
|
|
117
|
-
* This is the same check used in WASMVectorSearch for consistency
|
|
118
|
-
*/
|
|
119
|
-
export function detectSIMDSupportLegacy() {
|
|
120
|
-
try {
|
|
121
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- WebAssembly runtime detection requires dynamic access
|
|
122
|
-
const globalAny = globalThis;
|
|
123
|
-
return (typeof globalAny.WebAssembly !== 'undefined' &&
|
|
124
|
-
globalAny.WebAssembly.validate(new Uint8Array([
|
|
125
|
-
0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10,
|
|
126
|
-
10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11,
|
|
127
|
-
])));
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// ============================================================================
|
|
134
|
-
// Optimized Scalar Operations (8x Unrolled with ILP)
|
|
135
|
-
// ============================================================================
|
|
136
|
-
/**
|
|
137
|
-
* Calculate cosine similarity with 8x loop unrolling and ILP
|
|
138
|
-
*
|
|
139
|
-
* Uses 8 separate accumulators to maximize instruction-level parallelism.
|
|
140
|
-
* Modern CPUs can execute multiple independent operations in parallel,
|
|
141
|
-
* and separate accumulators prevent data dependencies between iterations.
|
|
142
|
-
*
|
|
143
|
-
* Performance characteristics:
|
|
144
|
-
* - 8x unrolling reduces loop overhead by 87.5%
|
|
145
|
-
* - Separate accumulators enable out-of-order execution
|
|
146
|
-
* - Final reduction combines accumulators efficiently
|
|
147
|
-
*
|
|
148
|
-
* @param a - First vector (Float32Array)
|
|
149
|
-
* @param b - Second vector (Float32Array)
|
|
150
|
-
* @returns Cosine similarity in range [-1, 1]
|
|
151
|
-
* @throws Error if vectors have different lengths
|
|
152
|
-
*/
|
|
153
|
-
export function cosineSimilaritySIMD(a, b) {
|
|
154
|
-
// Input validation
|
|
155
|
-
validateFloat32Array(a, 'First vector (a)');
|
|
156
|
-
validateFloat32Array(b, 'Second vector (b)');
|
|
157
|
-
const len = a.length;
|
|
158
|
-
if (len !== b.length) {
|
|
159
|
-
throw new Error(`Vector length mismatch: ${len} vs ${b.length}. Vectors must have same dimension.`);
|
|
160
|
-
}
|
|
161
|
-
validateDimension(len, 'Vector length');
|
|
162
|
-
if (len === 0) {
|
|
163
|
-
return 0;
|
|
164
|
-
}
|
|
165
|
-
// 8 separate accumulators for instruction-level parallelism
|
|
166
|
-
// This allows the CPU to execute up to 8 multiply-accumulate operations
|
|
167
|
-
// in parallel across different execution units
|
|
168
|
-
let dot0 = 0, dot1 = 0, dot2 = 0, dot3 = 0, dot4 = 0, dot5 = 0, dot6 = 0, dot7 = 0;
|
|
169
|
-
let normA0 = 0, normA1 = 0, normA2 = 0, normA3 = 0, normA4 = 0, normA5 = 0, normA6 = 0, normA7 = 0;
|
|
170
|
-
let normB0 = 0, normB1 = 0, normB2 = 0, normB3 = 0, normB4 = 0, normB5 = 0, normB6 = 0, normB7 = 0;
|
|
171
|
-
// Process 8 elements at a time
|
|
172
|
-
const loopEnd = len - (len % 8);
|
|
173
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
174
|
-
// Load 8 elements from each vector
|
|
175
|
-
const a0 = a[i], a1 = a[i + 1], a2 = a[i + 2], a3 = a[i + 3];
|
|
176
|
-
const a4 = a[i + 4], a5 = a[i + 5], a6 = a[i + 6], a7 = a[i + 7];
|
|
177
|
-
const b0 = b[i], b1 = b[i + 1], b2 = b[i + 2], b3 = b[i + 3];
|
|
178
|
-
const b4 = b[i + 4], b5 = b[i + 5], b6 = b[i + 6], b7 = b[i + 7];
|
|
179
|
-
// Accumulate dot products (independent operations for ILP)
|
|
180
|
-
dot0 += a0 * b0;
|
|
181
|
-
dot1 += a1 * b1;
|
|
182
|
-
dot2 += a2 * b2;
|
|
183
|
-
dot3 += a3 * b3;
|
|
184
|
-
dot4 += a4 * b4;
|
|
185
|
-
dot5 += a5 * b5;
|
|
186
|
-
dot6 += a6 * b6;
|
|
187
|
-
dot7 += a7 * b7;
|
|
188
|
-
// Accumulate norms for vector a
|
|
189
|
-
normA0 += a0 * a0;
|
|
190
|
-
normA1 += a1 * a1;
|
|
191
|
-
normA2 += a2 * a2;
|
|
192
|
-
normA3 += a3 * a3;
|
|
193
|
-
normA4 += a4 * a4;
|
|
194
|
-
normA5 += a5 * a5;
|
|
195
|
-
normA6 += a6 * a6;
|
|
196
|
-
normA7 += a7 * a7;
|
|
197
|
-
// Accumulate norms for vector b
|
|
198
|
-
normB0 += b0 * b0;
|
|
199
|
-
normB1 += b1 * b1;
|
|
200
|
-
normB2 += b2 * b2;
|
|
201
|
-
normB3 += b3 * b3;
|
|
202
|
-
normB4 += b4 * b4;
|
|
203
|
-
normB5 += b5 * b5;
|
|
204
|
-
normB6 += b6 * b6;
|
|
205
|
-
normB7 += b7 * b7;
|
|
206
|
-
}
|
|
207
|
-
// Handle remaining elements (up to 7)
|
|
208
|
-
let dotRem = 0, normARem = 0, normBRem = 0;
|
|
209
|
-
for (let i = loopEnd; i < len; i++) {
|
|
210
|
-
const ai = a[i], bi = b[i];
|
|
211
|
-
dotRem += ai * bi;
|
|
212
|
-
normARem += ai * ai;
|
|
213
|
-
normBRem += bi * bi;
|
|
214
|
-
}
|
|
215
|
-
// Reduce accumulators (tree reduction for numerical stability)
|
|
216
|
-
const dotProduct = dot0 +
|
|
217
|
-
dot1 +
|
|
218
|
-
dot2 +
|
|
219
|
-
dot3 +
|
|
220
|
-
dot4 +
|
|
221
|
-
dot5 +
|
|
222
|
-
dot6 +
|
|
223
|
-
dot7 +
|
|
224
|
-
dotRem;
|
|
225
|
-
const normA = normA0 +
|
|
226
|
-
normA1 +
|
|
227
|
-
normA2 +
|
|
228
|
-
normA3 +
|
|
229
|
-
normA4 +
|
|
230
|
-
normA5 +
|
|
231
|
-
normA6 +
|
|
232
|
-
normA7 +
|
|
233
|
-
normARem;
|
|
234
|
-
const normB = normB0 +
|
|
235
|
-
normB1 +
|
|
236
|
-
normB2 +
|
|
237
|
-
normB3 +
|
|
238
|
-
normB4 +
|
|
239
|
-
normB5 +
|
|
240
|
-
normB6 +
|
|
241
|
-
normB7 +
|
|
242
|
-
normBRem;
|
|
243
|
-
// @inline Compute final similarity with numerical stability check
|
|
244
|
-
// Combined sqrt(a*b) is faster than sqrt(a)*sqrt(b) and more numerically stable
|
|
245
|
-
const denom = Math.sqrt(normA * normB);
|
|
246
|
-
if (denom < EPSILON || !isValidNumber(denom)) {
|
|
247
|
-
return 0;
|
|
248
|
-
}
|
|
249
|
-
// Clamp to [-1, 1] to handle floating point errors
|
|
250
|
-
const similarity = dotProduct / denom;
|
|
251
|
-
// Guard against NaN/Infinity from floating point issues
|
|
252
|
-
if (!isValidNumber(similarity)) {
|
|
253
|
-
return 0;
|
|
254
|
-
}
|
|
255
|
-
// @inline Branchless clamp is slightly faster than Math.max/min
|
|
256
|
-
return similarity > 1 ? 1 : similarity < -1 ? -1 : similarity;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Calculate Euclidean (L2) distance with 8x loop unrolling
|
|
260
|
-
*
|
|
261
|
-
* Uses the same ILP optimization as cosine similarity.
|
|
262
|
-
*
|
|
263
|
-
* @param a - First vector (Float32Array)
|
|
264
|
-
* @param b - Second vector (Float32Array)
|
|
265
|
-
* @returns Euclidean distance (non-negative)
|
|
266
|
-
* @throws Error if vectors have different lengths
|
|
267
|
-
*/
|
|
268
|
-
export function euclideanDistanceSIMD(a, b) {
|
|
269
|
-
// Input validation
|
|
270
|
-
validateFloat32Array(a, 'First vector (a)');
|
|
271
|
-
validateFloat32Array(b, 'Second vector (b)');
|
|
272
|
-
const len = a.length;
|
|
273
|
-
if (len !== b.length) {
|
|
274
|
-
throw new Error(`Vector length mismatch: ${len} vs ${b.length}. Vectors must have same dimension.`);
|
|
275
|
-
}
|
|
276
|
-
validateDimension(len, 'Vector length');
|
|
277
|
-
if (len === 0) {
|
|
278
|
-
return 0;
|
|
279
|
-
}
|
|
280
|
-
// 8 separate accumulators for ILP
|
|
281
|
-
let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
|
|
282
|
-
const loopEnd = len - (len % 8);
|
|
283
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
284
|
-
// Compute squared differences
|
|
285
|
-
const d0 = a[i] - b[i];
|
|
286
|
-
const d1 = a[i + 1] - b[i + 1];
|
|
287
|
-
const d2 = a[i + 2] - b[i + 2];
|
|
288
|
-
const d3 = a[i + 3] - b[i + 3];
|
|
289
|
-
const d4 = a[i + 4] - b[i + 4];
|
|
290
|
-
const d5 = a[i + 5] - b[i + 5];
|
|
291
|
-
const d6 = a[i + 6] - b[i + 6];
|
|
292
|
-
const d7 = a[i + 7] - b[i + 7];
|
|
293
|
-
// Accumulate squared distances (independent for ILP)
|
|
294
|
-
sum0 += d0 * d0;
|
|
295
|
-
sum1 += d1 * d1;
|
|
296
|
-
sum2 += d2 * d2;
|
|
297
|
-
sum3 += d3 * d3;
|
|
298
|
-
sum4 += d4 * d4;
|
|
299
|
-
sum5 += d5 * d5;
|
|
300
|
-
sum6 += d6 * d6;
|
|
301
|
-
sum7 += d7 * d7;
|
|
302
|
-
}
|
|
303
|
-
// Handle remainder
|
|
304
|
-
let sumRem = 0;
|
|
305
|
-
for (let i = loopEnd; i < len; i++) {
|
|
306
|
-
const d = a[i] - b[i];
|
|
307
|
-
sumRem += d * d;
|
|
308
|
-
}
|
|
309
|
-
// @inline Pairwise reduction for better numerical stability
|
|
310
|
-
const total = (sum0 + sum1) + (sum2 + sum3) + (sum4 + sum5) + (sum6 + sum7) + sumRem;
|
|
311
|
-
return Math.sqrt(total);
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Calculate squared Euclidean distance (faster than euclideanDistanceSIMD)
|
|
315
|
-
*
|
|
316
|
-
* Useful when you only need to compare distances (skip the sqrt).
|
|
317
|
-
*
|
|
318
|
-
* @param a - First vector
|
|
319
|
-
* @param b - Second vector
|
|
320
|
-
* @returns Squared Euclidean distance
|
|
321
|
-
*/
|
|
322
|
-
export function euclideanDistanceSquaredSIMD(a, b) {
|
|
323
|
-
// Input validation
|
|
324
|
-
validateFloat32Array(a, 'First vector (a)');
|
|
325
|
-
validateFloat32Array(b, 'Second vector (b)');
|
|
326
|
-
const len = a.length;
|
|
327
|
-
if (len !== b.length) {
|
|
328
|
-
throw new Error(`Vector length mismatch: ${len} vs ${b.length}`);
|
|
329
|
-
}
|
|
330
|
-
validateDimension(len, 'Vector length');
|
|
331
|
-
let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
|
|
332
|
-
const loopEnd = len - (len % 8);
|
|
333
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
334
|
-
const d0 = a[i] - b[i];
|
|
335
|
-
const d1 = a[i + 1] - b[i + 1];
|
|
336
|
-
const d2 = a[i + 2] - b[i + 2];
|
|
337
|
-
const d3 = a[i + 3] - b[i + 3];
|
|
338
|
-
const d4 = a[i + 4] - b[i + 4];
|
|
339
|
-
const d5 = a[i + 5] - b[i + 5];
|
|
340
|
-
const d6 = a[i + 6] - b[i + 6];
|
|
341
|
-
const d7 = a[i + 7] - b[i + 7];
|
|
342
|
-
sum0 += d0 * d0;
|
|
343
|
-
sum1 += d1 * d1;
|
|
344
|
-
sum2 += d2 * d2;
|
|
345
|
-
sum3 += d3 * d3;
|
|
346
|
-
sum4 += d4 * d4;
|
|
347
|
-
sum5 += d5 * d5;
|
|
348
|
-
sum6 += d6 * d6;
|
|
349
|
-
sum7 += d7 * d7;
|
|
350
|
-
}
|
|
351
|
-
let sumRem = 0;
|
|
352
|
-
for (let i = loopEnd; i < len; i++) {
|
|
353
|
-
const d = a[i] - b[i];
|
|
354
|
-
sumRem += d * d;
|
|
355
|
-
}
|
|
356
|
-
return sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sumRem;
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Calculate dot product with 8x loop unrolling
|
|
360
|
-
*
|
|
361
|
-
* @param a - First vector
|
|
362
|
-
* @param b - Second vector
|
|
363
|
-
* @returns Dot product
|
|
364
|
-
*/
|
|
365
|
-
export function dotProductSIMD(a, b) {
|
|
366
|
-
// Input validation
|
|
367
|
-
validateFloat32Array(a, 'First vector (a)');
|
|
368
|
-
validateFloat32Array(b, 'Second vector (b)');
|
|
369
|
-
const len = a.length;
|
|
370
|
-
if (len !== b.length) {
|
|
371
|
-
throw new Error(`Vector length mismatch: ${len} vs ${b.length}`);
|
|
372
|
-
}
|
|
373
|
-
validateDimension(len, 'Vector length');
|
|
374
|
-
let dot0 = 0, dot1 = 0, dot2 = 0, dot3 = 0, dot4 = 0, dot5 = 0, dot6 = 0, dot7 = 0;
|
|
375
|
-
const loopEnd = len - (len % 8);
|
|
376
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
377
|
-
dot0 += a[i] * b[i];
|
|
378
|
-
dot1 += a[i + 1] * b[i + 1];
|
|
379
|
-
dot2 += a[i + 2] * b[i + 2];
|
|
380
|
-
dot3 += a[i + 3] * b[i + 3];
|
|
381
|
-
dot4 += a[i + 4] * b[i + 4];
|
|
382
|
-
dot5 += a[i + 5] * b[i + 5];
|
|
383
|
-
dot6 += a[i + 6] * b[i + 6];
|
|
384
|
-
dot7 += a[i + 7] * b[i + 7];
|
|
385
|
-
}
|
|
386
|
-
let dotRem = 0;
|
|
387
|
-
for (let i = loopEnd; i < len; i++) {
|
|
388
|
-
dotRem += a[i] * b[i];
|
|
389
|
-
}
|
|
390
|
-
return dot0 + dot1 + dot2 + dot3 + dot4 + dot5 + dot6 + dot7 + dotRem;
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* Calculate L2 norm (magnitude) of a vector with 8x unrolling
|
|
394
|
-
*
|
|
395
|
-
* @param v - Input vector
|
|
396
|
-
* @returns L2 norm
|
|
397
|
-
*/
|
|
398
|
-
export function l2NormSIMD(v) {
|
|
399
|
-
// Input validation
|
|
400
|
-
validateFloat32Array(v, 'Vector');
|
|
401
|
-
const len = v.length;
|
|
402
|
-
validateDimension(len, 'Vector length');
|
|
403
|
-
let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
|
|
404
|
-
const loopEnd = len - (len % 8);
|
|
405
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
406
|
-
const v0 = v[i], v1 = v[i + 1], v2 = v[i + 2], v3 = v[i + 3];
|
|
407
|
-
const v4 = v[i + 4], v5 = v[i + 5], v6 = v[i + 6], v7 = v[i + 7];
|
|
408
|
-
sum0 += v0 * v0;
|
|
409
|
-
sum1 += v1 * v1;
|
|
410
|
-
sum2 += v2 * v2;
|
|
411
|
-
sum3 += v3 * v3;
|
|
412
|
-
sum4 += v4 * v4;
|
|
413
|
-
sum5 += v5 * v5;
|
|
414
|
-
sum6 += v6 * v6;
|
|
415
|
-
sum7 += v7 * v7;
|
|
416
|
-
}
|
|
417
|
-
let sumRem = 0;
|
|
418
|
-
for (let i = loopEnd; i < len; i++) {
|
|
419
|
-
sumRem += v[i] * v[i];
|
|
420
|
-
}
|
|
421
|
-
return Math.sqrt(sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sumRem);
|
|
422
|
-
}
|
|
423
|
-
// ============================================================================
|
|
424
|
-
// Vector Normalization
|
|
425
|
-
// ============================================================================
|
|
426
|
-
/**
|
|
427
|
-
* Normalize a vector to unit length (in-place)
|
|
428
|
-
*
|
|
429
|
-
* @param v - Vector to normalize (modified in-place)
|
|
430
|
-
* @returns The same vector, normalized
|
|
431
|
-
*/
|
|
432
|
-
export function normalizeVectorInPlace(v) {
|
|
433
|
-
const norm = l2NormSIMD(v);
|
|
434
|
-
if (norm === 0) {
|
|
435
|
-
return v;
|
|
436
|
-
}
|
|
437
|
-
const invNorm = 1 / norm;
|
|
438
|
-
const len = v.length;
|
|
439
|
-
const loopEnd = len - (len % 8);
|
|
440
|
-
// 8x unrolled normalization
|
|
441
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
442
|
-
v[i] *= invNorm;
|
|
443
|
-
v[i + 1] *= invNorm;
|
|
444
|
-
v[i + 2] *= invNorm;
|
|
445
|
-
v[i + 3] *= invNorm;
|
|
446
|
-
v[i + 4] *= invNorm;
|
|
447
|
-
v[i + 5] *= invNorm;
|
|
448
|
-
v[i + 6] *= invNorm;
|
|
449
|
-
v[i + 7] *= invNorm;
|
|
450
|
-
}
|
|
451
|
-
for (let i = loopEnd; i < len; i++) {
|
|
452
|
-
v[i] *= invNorm;
|
|
453
|
-
}
|
|
454
|
-
return v;
|
|
455
|
-
}
|
|
456
|
-
/**
|
|
457
|
-
* Create a normalized copy of a vector
|
|
458
|
-
*
|
|
459
|
-
* @param v - Input vector
|
|
460
|
-
* @returns New normalized vector
|
|
461
|
-
*/
|
|
462
|
-
export function normalizeVector(v) {
|
|
463
|
-
const result = new Float32Array(v);
|
|
464
|
-
return normalizeVectorInPlace(result);
|
|
465
|
-
}
|
|
466
|
-
// ============================================================================
|
|
467
|
-
// Batch Operations
|
|
468
|
-
// ============================================================================
|
|
469
|
-
/**
|
|
470
|
-
* Batch cosine similarity calculation with early termination optimization
|
|
471
|
-
*
|
|
472
|
-
* Efficiently computes similarities between a query vector and multiple
|
|
473
|
-
* candidate vectors. Uses cache-friendly memory access patterns.
|
|
474
|
-
*
|
|
475
|
-
* @inline V8 optimization hint - hot path function
|
|
476
|
-
* @param query - Query vector
|
|
477
|
-
* @param vectors - Array of candidate vectors
|
|
478
|
-
* @param options - Optional configuration
|
|
479
|
-
* @returns Array of similarity scores (same order as input vectors)
|
|
480
|
-
*/
|
|
481
|
-
export function batchCosineSimilarity(query, vectors, options) {
|
|
482
|
-
// @inline Force integer for loop optimization
|
|
483
|
-
const vectorCount = vectors.length | 0;
|
|
484
|
-
const threshold = options?.threshold ?? -Infinity;
|
|
485
|
-
const topK = options?.topK;
|
|
486
|
-
const earlyTermThreshold = options?.earlyTerminationThreshold ?? 0.9999;
|
|
487
|
-
const results = [];
|
|
488
|
-
// @inline Track perfect matches for early termination
|
|
489
|
-
let perfectMatches = 0;
|
|
490
|
-
const maxPerfectMatches = topK ?? 10;
|
|
491
|
-
// Process all vectors
|
|
492
|
-
for (let i = 0; i < vectorCount; i++) {
|
|
493
|
-
const similarity = cosineSimilaritySIMD(query, vectors[i]);
|
|
494
|
-
if (similarity >= threshold) {
|
|
495
|
-
results.push({
|
|
496
|
-
index: i,
|
|
497
|
-
similarity,
|
|
498
|
-
});
|
|
499
|
-
// @inline Early termination check for perfect matches
|
|
500
|
-
if (similarity >= earlyTermThreshold) {
|
|
501
|
-
perfectMatches++;
|
|
502
|
-
if (topK && perfectMatches >= maxPerfectMatches) {
|
|
503
|
-
break; // Early termination - found enough high-quality matches
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
// Sort by similarity (descending)
|
|
509
|
-
results.sort((a, b) => b.similarity - a.similarity);
|
|
510
|
-
// Return top-k if specified
|
|
511
|
-
if (topK !== undefined && topK > 0) {
|
|
512
|
-
return results.slice(0, topK);
|
|
513
|
-
}
|
|
514
|
-
return results;
|
|
515
|
-
}
|
|
516
|
-
/**
|
|
517
|
-
* Batch Euclidean distance calculation with early termination
|
|
518
|
-
*
|
|
519
|
-
* @inline V8 optimization hint - hot path function
|
|
520
|
-
* @param query - Query vector
|
|
521
|
-
* @param vectors - Array of candidate vectors
|
|
522
|
-
* @param options - Optional configuration
|
|
523
|
-
* @returns Array of distance results (same order as input vectors)
|
|
524
|
-
*/
|
|
525
|
-
export function batchEuclideanDistance(query, vectors, options) {
|
|
526
|
-
// @inline Force integer for loop optimization
|
|
527
|
-
const vectorCount = vectors.length | 0;
|
|
528
|
-
const maxDist = options?.maxDistance ?? Infinity;
|
|
529
|
-
const useSquared = options?.squared ?? false;
|
|
530
|
-
const topK = options?.topK;
|
|
531
|
-
const earlyTermDist = options?.earlyTerminationDistance ?? 0.0001;
|
|
532
|
-
// @inline Select distance function once outside loop
|
|
533
|
-
const distFn = useSquared ? euclideanDistanceSquaredSIMD : euclideanDistanceSIMD;
|
|
534
|
-
const results = [];
|
|
535
|
-
let nearPerfectMatches = 0;
|
|
536
|
-
const maxNearPerfect = topK ?? 10;
|
|
537
|
-
for (let i = 0; i < vectorCount; i++) {
|
|
538
|
-
const distance = distFn(query, vectors[i]);
|
|
539
|
-
if (distance <= maxDist) {
|
|
540
|
-
results.push({
|
|
541
|
-
index: i,
|
|
542
|
-
similarity: 1 / (1 + distance), // Convert to similarity-like score
|
|
543
|
-
distance,
|
|
544
|
-
});
|
|
545
|
-
// @inline Early termination for near-zero distances
|
|
546
|
-
if (distance <= earlyTermDist) {
|
|
547
|
-
nearPerfectMatches++;
|
|
548
|
-
if (topK && nearPerfectMatches >= maxNearPerfect) {
|
|
549
|
-
break;
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
// Sort by distance (ascending)
|
|
555
|
-
results.sort((a, b) => (a.distance ?? 0) - (b.distance ?? 0));
|
|
556
|
-
if (topK !== undefined && topK > 0) {
|
|
557
|
-
return results.slice(0, topK);
|
|
558
|
-
}
|
|
559
|
-
return results;
|
|
560
|
-
}
|
|
561
|
-
// ============================================================================
|
|
562
|
-
// Buffer Pool for Memory Efficiency
|
|
563
|
-
// ============================================================================
|
|
564
|
-
/**
|
|
565
|
-
* Pre-allocated buffer pool to reduce GC pressure
|
|
566
|
-
*
|
|
567
|
-
* Reuses Float32Array buffers for temporary computations,
|
|
568
|
-
* avoiding frequent memory allocations during vector operations.
|
|
569
|
-
*/
|
|
570
|
-
class BufferPool {
|
|
571
|
-
pools = new Map();
|
|
572
|
-
maxPoolSize;
|
|
573
|
-
stats = {
|
|
574
|
-
allocations: 0,
|
|
575
|
-
reuses: 0,
|
|
576
|
-
returns: 0,
|
|
577
|
-
};
|
|
578
|
-
constructor(maxPoolSize = 32) {
|
|
579
|
-
// Enforce maximum pool size limit for security
|
|
580
|
-
this.maxPoolSize = Math.min(Math.max(1, maxPoolSize), MAX_BUFFER_POOL_SIZE);
|
|
581
|
-
}
|
|
582
|
-
/**
|
|
583
|
-
* Acquire a buffer of the specified size
|
|
584
|
-
*/
|
|
585
|
-
acquire(size) {
|
|
586
|
-
// Validate size to prevent DoS
|
|
587
|
-
if (!Number.isFinite(size) || size < 0 || size > MAX_VECTOR_DIMENSION) {
|
|
588
|
-
throw new Error(`Invalid buffer size: ${size}. Must be between 0 and ${MAX_VECTOR_DIMENSION}`);
|
|
589
|
-
}
|
|
590
|
-
const pool = this.pools.get(size);
|
|
591
|
-
if (pool && pool.length > 0) {
|
|
592
|
-
this.stats.reuses++;
|
|
593
|
-
return pool.pop();
|
|
594
|
-
}
|
|
595
|
-
this.stats.allocations++;
|
|
596
|
-
return new Float32Array(size);
|
|
597
|
-
}
|
|
598
|
-
/**
|
|
599
|
-
* Return a buffer to the pool
|
|
600
|
-
*/
|
|
601
|
-
release(buffer) {
|
|
602
|
-
const size = buffer.length;
|
|
603
|
-
let pool = this.pools.get(size);
|
|
604
|
-
if (!pool) {
|
|
605
|
-
pool = [];
|
|
606
|
-
this.pools.set(size, pool);
|
|
607
|
-
}
|
|
608
|
-
if (pool.length < this.maxPoolSize) {
|
|
609
|
-
// Zero the buffer before returning to pool (security)
|
|
610
|
-
buffer.fill(0);
|
|
611
|
-
pool.push(buffer);
|
|
612
|
-
this.stats.returns++;
|
|
613
|
-
}
|
|
614
|
-
// If pool is full, buffer will be garbage collected
|
|
615
|
-
}
|
|
616
|
-
/**
|
|
617
|
-
* Get pool statistics
|
|
618
|
-
*/
|
|
619
|
-
getStats() {
|
|
620
|
-
return {
|
|
621
|
-
...this.stats,
|
|
622
|
-
poolSizes: Array.from(this.pools.keys()),
|
|
623
|
-
};
|
|
624
|
-
}
|
|
625
|
-
/**
|
|
626
|
-
* Clear all pools
|
|
627
|
-
*/
|
|
628
|
-
clear() {
|
|
629
|
-
this.pools.clear();
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
// ============================================================================
|
|
633
|
-
// SIMDVectorOps Class
|
|
634
|
-
// ============================================================================
|
|
635
|
-
/**
|
|
636
|
-
* SIMD-accelerated vector operations manager
|
|
637
|
-
*
|
|
638
|
-
* Provides a stateful wrapper around vector operations with:
|
|
639
|
-
* - Automatic SIMD detection
|
|
640
|
-
* - Pre-allocated buffer pools
|
|
641
|
-
* - Operation statistics tracking
|
|
642
|
-
* - Configurable behavior
|
|
643
|
-
*/
|
|
644
|
-
export class SIMDVectorOps {
|
|
645
|
-
config;
|
|
646
|
-
simdEnabled;
|
|
647
|
-
bufferPool;
|
|
648
|
-
stats;
|
|
649
|
-
constructor(config) {
|
|
650
|
-
this.config = {
|
|
651
|
-
enableSIMD: config?.enableSIMD ?? true,
|
|
652
|
-
bufferPoolSize: config?.bufferPoolSize ?? 32,
|
|
653
|
-
defaultDimension: config?.defaultDimension ?? 384,
|
|
654
|
-
enableLogging: config?.enableLogging ?? false,
|
|
655
|
-
};
|
|
656
|
-
// Detect SIMD support
|
|
657
|
-
this.simdEnabled = this.config.enableSIMD && detectSIMDSupport();
|
|
658
|
-
// Initialize buffer pool
|
|
659
|
-
this.bufferPool = new BufferPool(this.config.bufferPoolSize);
|
|
660
|
-
// Initialize stats
|
|
661
|
-
this.stats = {
|
|
662
|
-
simdEnabled: this.simdEnabled,
|
|
663
|
-
vectorsProcessed: 0,
|
|
664
|
-
operationsCount: 0,
|
|
665
|
-
buffersInPool: 0,
|
|
666
|
-
peakBufferUsage: 0,
|
|
667
|
-
};
|
|
668
|
-
if (this.config.enableLogging) {
|
|
669
|
-
console.log(`[SIMDVectorOps] Initialized with SIMD ${this.simdEnabled ? 'enabled' : 'disabled'}`);
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
/**
|
|
673
|
-
* Calculate cosine similarity between two vectors
|
|
674
|
-
*/
|
|
675
|
-
cosineSimilarity(a, b) {
|
|
676
|
-
this.stats.operationsCount++;
|
|
677
|
-
this.stats.vectorsProcessed += 2;
|
|
678
|
-
return cosineSimilaritySIMD(a, b);
|
|
679
|
-
}
|
|
680
|
-
/**
|
|
681
|
-
* Calculate Euclidean distance between two vectors
|
|
682
|
-
*/
|
|
683
|
-
euclideanDistance(a, b) {
|
|
684
|
-
this.stats.operationsCount++;
|
|
685
|
-
this.stats.vectorsProcessed += 2;
|
|
686
|
-
return euclideanDistanceSIMD(a, b);
|
|
687
|
-
}
|
|
688
|
-
/**
|
|
689
|
-
* Calculate squared Euclidean distance (faster for comparisons)
|
|
690
|
-
*/
|
|
691
|
-
euclideanDistanceSquared(a, b) {
|
|
692
|
-
this.stats.operationsCount++;
|
|
693
|
-
this.stats.vectorsProcessed += 2;
|
|
694
|
-
return euclideanDistanceSquaredSIMD(a, b);
|
|
695
|
-
}
|
|
696
|
-
/**
|
|
697
|
-
* Calculate dot product
|
|
698
|
-
*/
|
|
699
|
-
dotProduct(a, b) {
|
|
700
|
-
this.stats.operationsCount++;
|
|
701
|
-
this.stats.vectorsProcessed += 2;
|
|
702
|
-
return dotProductSIMD(a, b);
|
|
703
|
-
}
|
|
704
|
-
/**
|
|
705
|
-
* Calculate L2 norm
|
|
706
|
-
*/
|
|
707
|
-
l2Norm(v) {
|
|
708
|
-
this.stats.operationsCount++;
|
|
709
|
-
this.stats.vectorsProcessed++;
|
|
710
|
-
return l2NormSIMD(v);
|
|
711
|
-
}
|
|
712
|
-
/**
|
|
713
|
-
* Normalize a vector (creates a copy)
|
|
714
|
-
*/
|
|
715
|
-
normalize(v) {
|
|
716
|
-
this.stats.operationsCount++;
|
|
717
|
-
this.stats.vectorsProcessed++;
|
|
718
|
-
return normalizeVector(v);
|
|
719
|
-
}
|
|
720
|
-
/**
|
|
721
|
-
* Normalize a vector in place
|
|
722
|
-
*/
|
|
723
|
-
normalizeInPlace(v) {
|
|
724
|
-
this.stats.operationsCount++;
|
|
725
|
-
this.stats.vectorsProcessed++;
|
|
726
|
-
return normalizeVectorInPlace(v);
|
|
727
|
-
}
|
|
728
|
-
/**
|
|
729
|
-
* Batch cosine similarity
|
|
730
|
-
*/
|
|
731
|
-
batchCosineSimilarity(query, vectors, options) {
|
|
732
|
-
this.stats.operationsCount++;
|
|
733
|
-
this.stats.vectorsProcessed += 1 + vectors.length;
|
|
734
|
-
return batchCosineSimilarity(query, vectors, options);
|
|
735
|
-
}
|
|
736
|
-
/**
|
|
737
|
-
* Batch Euclidean distance
|
|
738
|
-
*/
|
|
739
|
-
batchEuclideanDistance(query, vectors, options) {
|
|
740
|
-
this.stats.operationsCount++;
|
|
741
|
-
this.stats.vectorsProcessed += 1 + vectors.length;
|
|
742
|
-
return batchEuclideanDistance(query, vectors, options);
|
|
743
|
-
}
|
|
744
|
-
/**
|
|
745
|
-
* Acquire a temporary buffer from the pool
|
|
746
|
-
*/
|
|
747
|
-
acquireBuffer(size) {
|
|
748
|
-
const bufferSize = size ?? this.config.defaultDimension;
|
|
749
|
-
this.stats.peakBufferUsage = Math.max(this.stats.peakBufferUsage, this.stats.buffersInPool + 1);
|
|
750
|
-
return this.bufferPool.acquire(bufferSize);
|
|
751
|
-
}
|
|
752
|
-
/**
|
|
753
|
-
* Release a buffer back to the pool
|
|
754
|
-
*/
|
|
755
|
-
releaseBuffer(buffer) {
|
|
756
|
-
this.bufferPool.release(buffer);
|
|
757
|
-
}
|
|
758
|
-
/**
|
|
759
|
-
* Get operation statistics
|
|
760
|
-
*/
|
|
761
|
-
getStats() {
|
|
762
|
-
const poolStats = this.bufferPool.getStats();
|
|
763
|
-
return {
|
|
764
|
-
...this.stats,
|
|
765
|
-
buffersInPool: poolStats.poolSizes.length,
|
|
766
|
-
};
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* Reset statistics
|
|
770
|
-
*/
|
|
771
|
-
resetStats() {
|
|
772
|
-
this.stats = {
|
|
773
|
-
simdEnabled: this.simdEnabled,
|
|
774
|
-
vectorsProcessed: 0,
|
|
775
|
-
operationsCount: 0,
|
|
776
|
-
buffersInPool: 0,
|
|
777
|
-
peakBufferUsage: 0,
|
|
778
|
-
};
|
|
779
|
-
}
|
|
780
|
-
/**
|
|
781
|
-
* Check if SIMD is enabled
|
|
782
|
-
*/
|
|
783
|
-
isSIMDEnabled() {
|
|
784
|
-
return this.simdEnabled;
|
|
785
|
-
}
|
|
786
|
-
/**
|
|
787
|
-
* Clear buffer pools
|
|
788
|
-
*/
|
|
789
|
-
clearBufferPool() {
|
|
790
|
-
this.bufferPool.clear();
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
// ============================================================================
|
|
794
|
-
// Utility Functions
|
|
795
|
-
// ============================================================================
|
|
796
|
-
/**
|
|
797
|
-
* Create a Float32Array from various input types
|
|
798
|
-
*
|
|
799
|
-
* @param data - Input data (array of numbers, ArrayBuffer, or existing Float32Array)
|
|
800
|
-
* @returns Float32Array
|
|
801
|
-
*/
|
|
802
|
-
export function toFloat32Array(data) {
|
|
803
|
-
if (data instanceof Float32Array) {
|
|
804
|
-
return data;
|
|
805
|
-
}
|
|
806
|
-
if (data instanceof ArrayBuffer) {
|
|
807
|
-
return new Float32Array(data);
|
|
808
|
-
}
|
|
809
|
-
return new Float32Array(data);
|
|
810
|
-
}
|
|
811
|
-
/**
|
|
812
|
-
* Create random unit vector for testing
|
|
813
|
-
*
|
|
814
|
-
* @param dimension - Vector dimension
|
|
815
|
-
* @returns Normalized random vector
|
|
816
|
-
*/
|
|
817
|
-
export function randomUnitVector(dimension) {
|
|
818
|
-
// Input validation to prevent DoS via large allocations
|
|
819
|
-
if (!Number.isFinite(dimension) || dimension < 0 || !Number.isInteger(dimension)) {
|
|
820
|
-
throw new Error('Dimension must be a non-negative integer');
|
|
821
|
-
}
|
|
822
|
-
validateDimension(dimension, 'Dimension');
|
|
823
|
-
const v = new Float32Array(dimension);
|
|
824
|
-
for (let i = 0; i < dimension; i++) {
|
|
825
|
-
v[i] = Math.random() * 2 - 1;
|
|
826
|
-
}
|
|
827
|
-
return normalizeVector(v);
|
|
828
|
-
}
|
|
829
|
-
/**
|
|
830
|
-
* Vector addition with 8x unrolling
|
|
831
|
-
*
|
|
832
|
-
* @param a - First vector
|
|
833
|
-
* @param b - Second vector
|
|
834
|
-
* @param out - Optional output buffer (creates new if not provided)
|
|
835
|
-
* @returns Result vector (a + b)
|
|
836
|
-
*/
|
|
837
|
-
export function vectorAdd(a, b, out) {
|
|
838
|
-
const len = a.length;
|
|
839
|
-
const result = out ?? new Float32Array(len);
|
|
840
|
-
const loopEnd = len - (len % 8);
|
|
841
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
842
|
-
result[i] = a[i] + b[i];
|
|
843
|
-
result[i + 1] = a[i + 1] + b[i + 1];
|
|
844
|
-
result[i + 2] = a[i + 2] + b[i + 2];
|
|
845
|
-
result[i + 3] = a[i + 3] + b[i + 3];
|
|
846
|
-
result[i + 4] = a[i + 4] + b[i + 4];
|
|
847
|
-
result[i + 5] = a[i + 5] + b[i + 5];
|
|
848
|
-
result[i + 6] = a[i + 6] + b[i + 6];
|
|
849
|
-
result[i + 7] = a[i + 7] + b[i + 7];
|
|
850
|
-
}
|
|
851
|
-
for (let i = loopEnd; i < len; i++) {
|
|
852
|
-
result[i] = a[i] + b[i];
|
|
853
|
-
}
|
|
854
|
-
return result;
|
|
855
|
-
}
|
|
856
|
-
/**
|
|
857
|
-
* Vector subtraction with 8x unrolling
|
|
858
|
-
*
|
|
859
|
-
* @param a - First vector
|
|
860
|
-
* @param b - Second vector
|
|
861
|
-
* @param out - Optional output buffer
|
|
862
|
-
* @returns Result vector (a - b)
|
|
863
|
-
*/
|
|
864
|
-
export function vectorSub(a, b, out) {
|
|
865
|
-
const len = a.length;
|
|
866
|
-
const result = out ?? new Float32Array(len);
|
|
867
|
-
const loopEnd = len - (len % 8);
|
|
868
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
869
|
-
result[i] = a[i] - b[i];
|
|
870
|
-
result[i + 1] = a[i + 1] - b[i + 1];
|
|
871
|
-
result[i + 2] = a[i + 2] - b[i + 2];
|
|
872
|
-
result[i + 3] = a[i + 3] - b[i + 3];
|
|
873
|
-
result[i + 4] = a[i + 4] - b[i + 4];
|
|
874
|
-
result[i + 5] = a[i + 5] - b[i + 5];
|
|
875
|
-
result[i + 6] = a[i + 6] - b[i + 6];
|
|
876
|
-
result[i + 7] = a[i + 7] - b[i + 7];
|
|
877
|
-
}
|
|
878
|
-
for (let i = loopEnd; i < len; i++) {
|
|
879
|
-
result[i] = a[i] - b[i];
|
|
880
|
-
}
|
|
881
|
-
return result;
|
|
882
|
-
}
|
|
883
|
-
/**
|
|
884
|
-
* Scalar multiplication with 8x unrolling
|
|
885
|
-
*
|
|
886
|
-
* @param v - Input vector
|
|
887
|
-
* @param scalar - Scalar multiplier
|
|
888
|
-
* @param out - Optional output buffer
|
|
889
|
-
* @returns Result vector (v * scalar)
|
|
890
|
-
*/
|
|
891
|
-
export function vectorScale(v, scalar, out) {
|
|
892
|
-
const len = v.length;
|
|
893
|
-
const result = out ?? new Float32Array(len);
|
|
894
|
-
const loopEnd = len - (len % 8);
|
|
895
|
-
for (let i = 0; i < loopEnd; i += 8) {
|
|
896
|
-
result[i] = v[i] * scalar;
|
|
897
|
-
result[i + 1] = v[i + 1] * scalar;
|
|
898
|
-
result[i + 2] = v[i + 2] * scalar;
|
|
899
|
-
result[i + 3] = v[i + 3] * scalar;
|
|
900
|
-
result[i + 4] = v[i + 4] * scalar;
|
|
901
|
-
result[i + 5] = v[i + 5] * scalar;
|
|
902
|
-
result[i + 6] = v[i + 6] * scalar;
|
|
903
|
-
result[i + 7] = v[i + 7] * scalar;
|
|
904
|
-
}
|
|
905
|
-
for (let i = loopEnd; i < len; i++) {
|
|
906
|
-
result[i] = v[i] * scalar;
|
|
907
|
-
}
|
|
908
|
-
return result;
|
|
909
|
-
}
|
|
910
|
-
// ============================================================================
|
|
911
|
-
// Default Export
|
|
912
|
-
// ============================================================================
|
|
913
|
-
/**
|
|
914
|
-
* Default SIMD vector operations instance
|
|
915
|
-
*
|
|
916
|
-
* Pre-configured with sensible defaults. For custom configuration,
|
|
917
|
-
* create a new SIMDVectorOps instance.
|
|
918
|
-
*/
|
|
919
|
-
export const defaultSIMDOps = new SIMDVectorOps();
|
|
920
|
-
export default {
|
|
921
|
-
// Core operations
|
|
922
|
-
cosineSimilaritySIMD,
|
|
923
|
-
euclideanDistanceSIMD,
|
|
924
|
-
euclideanDistanceSquaredSIMD,
|
|
925
|
-
dotProductSIMD,
|
|
926
|
-
l2NormSIMD,
|
|
927
|
-
// Normalization
|
|
928
|
-
normalizeVector,
|
|
929
|
-
normalizeVectorInPlace,
|
|
930
|
-
// Batch operations
|
|
931
|
-
batchCosineSimilarity,
|
|
932
|
-
batchEuclideanDistance,
|
|
933
|
-
// Vector math
|
|
934
|
-
vectorAdd,
|
|
935
|
-
vectorSub,
|
|
936
|
-
vectorScale,
|
|
937
|
-
// Utilities
|
|
938
|
-
toFloat32Array,
|
|
939
|
-
randomUnitVector,
|
|
940
|
-
detectSIMDSupport,
|
|
941
|
-
detectSIMDSupportLegacy,
|
|
942
|
-
// Class
|
|
943
|
-
SIMDVectorOps,
|
|
944
|
-
// Default instance
|
|
945
|
-
defaultSIMDOps,
|
|
946
|
-
};
|
|
947
|
-
//# sourceMappingURL=simd-vector-ops.js.map
|