agentdb 3.0.0-alpha.2 → 3.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +208 -2593
- package/dist/src/backends/GraphBackend.d.ts +8 -8
- package/dist/src/backends/GraphBackend.d.ts.map +1 -1
- package/dist/src/backends/GraphBackend.js +15 -16
- package/dist/src/backends/GraphBackend.js.map +1 -1
- package/dist/src/backends/LearningBackend.d.ts +2 -2
- package/dist/src/backends/LearningBackend.d.ts.map +1 -1
- package/dist/src/backends/LearningBackend.js +10 -11
- package/dist/src/backends/LearningBackend.js.map +1 -1
- package/dist/src/backends/VectorBackend.d.ts +10 -0
- package/dist/src/backends/VectorBackend.d.ts.map +1 -1
- package/dist/src/backends/detector.d.ts +3 -25
- package/dist/src/backends/detector.d.ts.map +1 -1
- package/dist/src/backends/detector.js +15 -119
- package/dist/src/backends/detector.js.map +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts +55 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.d.ts.map +1 -1
- package/dist/src/backends/graph/GraphDatabaseAdapter.js +133 -7
- package/dist/src/backends/graph/GraphDatabaseAdapter.js.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts +2 -2
- package/dist/src/backends/hnswlib/HNSWLibBackend.d.ts.map +1 -1
- package/dist/src/backends/hnswlib/HNSWLibBackend.js +12 -21
- package/dist/src/backends/hnswlib/HNSWLibBackend.js.map +1 -1
- package/dist/src/backends/index.d.ts +3 -25
- package/dist/src/backends/index.d.ts.map +1 -1
- package/dist/src/backends/index.js +1 -23
- package/dist/src/backends/index.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts +4 -4
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.js +2 -2
- package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorLearning.js +5 -10
- package/dist/src/backends/ruvector/RuVectorLearning.js.map +1 -1
- package/dist/src/backends/rvf/SelfLearningRvfBackend.d.ts.map +1 -1
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js +45 -2
- package/dist/src/backends/rvf/SelfLearningRvfBackend.js.map +1 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +26 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.js +93 -31
- package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -1
- package/dist/src/benchmark/BenchmarkSuite.d.ts.map +1 -1
- package/dist/src/benchmark/BenchmarkSuite.js +0 -2
- package/dist/src/benchmark/BenchmarkSuite.js.map +1 -1
- package/dist/src/benchmarks/wasm-vector-benchmark.d.ts +10 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.js +196 -0
- package/dist/src/benchmarks/wasm-vector-benchmark.js.map +1 -0
- package/dist/src/browser/AdvancedFeatures.d.ts.map +1 -1
- package/dist/src/browser/AdvancedFeatures.js +10 -3
- package/dist/src/browser/AdvancedFeatures.js.map +1 -1
- package/dist/src/browser/AttentionBrowser.d.ts.map +1 -1
- package/dist/src/browser/AttentionBrowser.js +13 -5
- package/dist/src/browser/AttentionBrowser.js.map +1 -1
- package/dist/src/browser/HNSWIndex.d.ts +1 -31
- package/dist/src/browser/HNSWIndex.d.ts.map +1 -1
- package/dist/src/browser/HNSWIndex.js +18 -136
- package/dist/src/browser/HNSWIndex.js.map +1 -1
- package/dist/src/browser/ProductQuantization.d.ts.map +1 -1
- package/dist/src/browser/ProductQuantization.js +1 -0
- package/dist/src/browser/ProductQuantization.js.map +1 -1
- package/dist/src/browser/index.d.ts +3 -3
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +1 -2
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/cli/agentdb-cli.d.ts +2 -3
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +142 -96
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/dist/src/cli/commands/attention.js +15 -5
- package/dist/src/cli/commands/attention.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts +0 -2
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +6 -111
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/hyperbolic.d.ts.map +1 -1
- package/dist/src/cli/commands/hyperbolic.js +15 -3
- package/dist/src/cli/commands/hyperbolic.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts +1 -2
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +7 -30
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/install-embeddings.d.ts +1 -1
- package/dist/src/cli/commands/install-embeddings.d.ts.map +1 -1
- package/dist/src/cli/commands/install-embeddings.js +17 -11
- package/dist/src/cli/commands/install-embeddings.js.map +1 -1
- package/dist/src/cli/commands/learn.d.ts.map +1 -1
- package/dist/src/cli/commands/learn.js +12 -6
- package/dist/src/cli/commands/learn.js.map +1 -1
- package/dist/src/cli/commands/migrate.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate.js +31 -10
- package/dist/src/cli/commands/migrate.js.map +1 -1
- package/dist/src/cli/commands/route.d.ts.map +1 -1
- package/dist/src/cli/commands/route.js +6 -1
- package/dist/src/cli/commands/route.js.map +1 -1
- package/dist/src/cli/commands/simulate-report.js +14 -2
- package/dist/src/cli/commands/simulate-report.js.map +1 -1
- package/dist/src/cli/commands/simulate-wizard.js.map +1 -1
- package/dist/src/cli/commands/simulate.d.ts +7 -0
- package/dist/src/cli/commands/simulate.d.ts.map +1 -0
- package/dist/src/cli/commands/simulate.js +100 -0
- package/dist/src/cli/commands/simulate.js.map +1 -0
- package/dist/src/cli/commands/status.js +1 -5
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/lib/attention-config.d.ts +2 -2
- package/dist/src/cli/lib/attention-config.d.ts.map +1 -1
- package/dist/src/cli/lib/attention-config.js +1 -2
- package/dist/src/cli/lib/attention-config.js.map +1 -1
- package/dist/src/cli/lib/config-manager.d.ts +110 -0
- package/dist/src/cli/lib/config-manager.d.ts.map +1 -0
- package/dist/src/cli/lib/config-manager.js +512 -0
- package/dist/src/cli/lib/config-manager.js.map +1 -0
- package/dist/src/cli/lib/config-validator.d.ts +1 -1
- package/dist/src/cli/lib/config-validator.d.ts.map +1 -1
- package/dist/src/cli/lib/health-monitor.d.ts +149 -0
- package/dist/src/cli/lib/health-monitor.d.ts.map +1 -0
- package/dist/src/cli/lib/health-monitor.js +380 -0
- package/dist/src/cli/lib/health-monitor.js.map +1 -0
- package/dist/src/cli/lib/history-tracker.d.ts +103 -0
- package/dist/src/cli/lib/history-tracker.d.ts.map +1 -0
- package/dist/src/cli/lib/history-tracker.js +352 -0
- package/dist/src/cli/lib/history-tracker.js.map +1 -0
- package/dist/src/cli/lib/report-store.d.ts.map +1 -1
- package/dist/src/cli/lib/report-store.js +3 -5
- package/dist/src/cli/lib/report-store.js.map +1 -1
- package/dist/src/cli/lib/simulation-registry.d.ts +1 -1
- package/dist/src/cli/lib/simulation-registry.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-registry.js +0 -1
- package/dist/src/cli/lib/simulation-registry.js.map +1 -1
- package/dist/src/cli/lib/simulation-runner.d.ts +1 -1
- package/dist/src/cli/lib/simulation-runner.d.ts.map +1 -1
- package/dist/src/cli/lib/simulation-runner.js +1 -4
- package/dist/src/cli/lib/simulation-runner.js.map +1 -1
- package/dist/src/compatibility/DeprecationWarnings.d.ts.map +1 -1
- package/dist/src/compatibility/V1toV2Adapter.d.ts +2 -2
- package/dist/src/compatibility/V1toV2Adapter.d.ts.map +1 -1
- package/dist/src/compatibility/V1toV2Adapter.js +1 -14
- package/dist/src/compatibility/V1toV2Adapter.js.map +1 -1
- package/dist/src/compatibility/VersionDetector.d.ts +1 -1
- package/dist/src/compatibility/VersionDetector.d.ts.map +1 -1
- package/dist/src/compatibility/VersionDetector.js +3 -3
- package/dist/src/compatibility/VersionDetector.js.map +1 -1
- package/dist/src/compatibility/index.d.ts +3 -0
- package/dist/src/compatibility/index.d.ts.map +1 -1
- package/dist/src/compatibility/index.js +11 -0
- package/dist/src/compatibility/index.js.map +1 -1
- package/dist/src/controllers/AttentionService.d.ts +98 -122
- package/dist/src/controllers/AttentionService.d.ts.map +1 -1
- package/dist/src/controllers/AttentionService.js +463 -238
- package/dist/src/controllers/AttentionService.js.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.d.ts +4 -4
- package/dist/src/controllers/CausalMemoryGraph.d.ts.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.js +7 -8
- package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
- package/dist/src/controllers/CausalRecall.d.ts +3 -2
- package/dist/src/controllers/CausalRecall.d.ts.map +1 -1
- package/dist/src/controllers/CausalRecall.js +21 -10
- package/dist/src/controllers/CausalRecall.js.map +1 -1
- package/dist/src/controllers/ContextSynthesizer.d.ts +1 -1
- package/dist/src/controllers/ContextSynthesizer.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.d.ts +29 -0
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.js +149 -34
- package/dist/src/controllers/EmbeddingService.js.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.js +14 -7
- package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
- package/dist/src/controllers/ExplainableRecall.d.ts +5 -4
- package/dist/src/controllers/ExplainableRecall.d.ts.map +1 -1
- package/dist/src/controllers/ExplainableRecall.js +12 -20
- package/dist/src/controllers/ExplainableRecall.js.map +1 -1
- package/dist/src/controllers/HNSWIndex.d.ts +5 -4
- package/dist/src/controllers/HNSWIndex.d.ts.map +1 -1
- package/dist/src/controllers/HNSWIndex.js +6 -9
- package/dist/src/controllers/HNSWIndex.js.map +1 -1
- package/dist/src/controllers/LearningSystem.d.ts +10 -105
- package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
- package/dist/src/controllers/LearningSystem.js +28 -39
- package/dist/src/controllers/LearningSystem.js.map +1 -1
- package/dist/src/controllers/MMRDiversityRanker.d.ts +1 -1
- package/dist/src/controllers/MMRDiversityRanker.d.ts.map +1 -1
- package/dist/src/controllers/MemoryController.d.ts +15 -2
- package/dist/src/controllers/MemoryController.d.ts.map +1 -1
- package/dist/src/controllers/MemoryController.js +33 -3
- package/dist/src/controllers/MemoryController.js.map +1 -1
- package/dist/src/controllers/MetadataFilter.d.ts +3 -3
- package/dist/src/controllers/MetadataFilter.d.ts.map +1 -1
- package/dist/src/controllers/MetadataFilter.js +6 -9
- package/dist/src/controllers/MetadataFilter.js.map +1 -1
- package/dist/src/controllers/MincutService.d.ts +92 -0
- package/dist/src/controllers/MincutService.d.ts.map +1 -0
- package/dist/src/controllers/MincutService.js +336 -0
- package/dist/src/controllers/MincutService.js.map +1 -0
- package/dist/src/controllers/NightlyLearner.d.ts +3 -4
- package/dist/src/controllers/NightlyLearner.d.ts.map +1 -1
- package/dist/src/controllers/NightlyLearner.js +17 -22
- package/dist/src/controllers/NightlyLearner.js.map +1 -1
- package/dist/src/controllers/QUICClient.d.ts +7 -10
- package/dist/src/controllers/QUICClient.d.ts.map +1 -1
- package/dist/src/controllers/QUICClient.js +3 -3
- package/dist/src/controllers/QUICClient.js.map +1 -1
- package/dist/src/controllers/QUICServer.d.ts +4 -4
- package/dist/src/controllers/QUICServer.d.ts.map +1 -1
- package/dist/src/controllers/QUICServer.js +14 -22
- package/dist/src/controllers/QUICServer.js.map +1 -1
- package/dist/src/controllers/ReasoningBank.d.ts +2 -9
- package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
- package/dist/src/controllers/ReasoningBank.js +39 -35
- package/dist/src/controllers/ReasoningBank.js.map +1 -1
- package/dist/src/controllers/ReflexionMemory.d.ts +51 -1
- package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
- package/dist/src/controllers/ReflexionMemory.js +307 -33
- package/dist/src/controllers/ReflexionMemory.js.map +1 -1
- package/dist/src/controllers/SkillLibrary.d.ts +5 -11
- package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
- package/dist/src/controllers/SkillLibrary.js +39 -48
- package/dist/src/controllers/SkillLibrary.js.map +1 -1
- package/dist/src/controllers/SparsificationService.d.ts +151 -0
- package/dist/src/controllers/SparsificationService.d.ts.map +1 -0
- package/dist/src/controllers/SparsificationService.js +375 -0
- package/dist/src/controllers/SparsificationService.js.map +1 -0
- package/dist/src/controllers/SyncCoordinator.d.ts +3 -2
- package/dist/src/controllers/SyncCoordinator.d.ts.map +1 -1
- package/dist/src/controllers/SyncCoordinator.js +2 -2
- package/dist/src/controllers/SyncCoordinator.js.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.d.ts +7 -6
- package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.js +2 -4
- package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
- package/dist/src/controllers/attention/AttentionCache.d.ts +38 -0
- package/dist/src/controllers/attention/AttentionCache.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionCache.js +80 -0
- package/dist/src/controllers/attention/AttentionCache.js.map +1 -0
- package/dist/src/controllers/attention/AttentionConfig.d.ts +127 -0
- package/dist/src/controllers/attention/AttentionConfig.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionConfig.js +124 -0
- package/dist/src/controllers/attention/AttentionConfig.js.map +1 -0
- package/dist/src/controllers/attention/AttentionCore.d.ts +89 -0
- package/dist/src/controllers/attention/AttentionCore.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionCore.js +289 -0
- package/dist/src/controllers/attention/AttentionCore.js.map +1 -0
- package/dist/src/controllers/attention/AttentionHelpers.d.ts +55 -0
- package/dist/src/controllers/attention/AttentionHelpers.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionHelpers.js +148 -0
- package/dist/src/controllers/attention/AttentionHelpers.js.map +1 -0
- package/dist/src/controllers/attention/AttentionMetrics.d.ts +55 -0
- package/dist/src/controllers/attention/AttentionMetrics.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionMetrics.js +72 -0
- package/dist/src/controllers/attention/AttentionMetrics.js.map +1 -0
- package/dist/src/controllers/attention/AttentionWASM.d.ts +98 -0
- package/dist/src/controllers/attention/AttentionWASM.d.ts.map +1 -0
- package/dist/src/controllers/attention/AttentionWASM.js +147 -0
- package/dist/src/controllers/attention/AttentionWASM.js.map +1 -0
- package/dist/src/controllers/attention/CrossAttentionController.d.ts +1 -1
- package/dist/src/controllers/attention/CrossAttentionController.d.ts.map +1 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts +1 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.d.ts.map +1 -1
- package/dist/src/controllers/attention/MultiHeadAttentionController.js +5 -8
- package/dist/src/controllers/attention/MultiHeadAttentionController.js.map +1 -1
- package/dist/src/controllers/attention/SelfAttentionController.d.ts +1 -1
- package/dist/src/controllers/attention/SelfAttentionController.d.ts.map +1 -1
- package/dist/src/controllers/attention/index.d.ts +9 -0
- package/dist/src/controllers/attention/index.d.ts.map +1 -1
- package/dist/src/controllers/attention/index.js +8 -0
- package/dist/src/controllers/attention/index.js.map +1 -1
- package/dist/src/controllers/frontier-index.d.ts +14 -0
- package/dist/src/controllers/frontier-index.d.ts.map +1 -0
- package/dist/src/controllers/frontier-index.js +10 -0
- package/dist/src/controllers/frontier-index.js.map +1 -0
- package/dist/src/controllers/index.d.ts +7 -1
- package/dist/src/controllers/index.d.ts.map +1 -1
- package/dist/src/controllers/index.js +5 -1
- package/dist/src/controllers/index.js.map +1 -1
- package/dist/src/controllers/prerequisites.d.ts +76 -0
- package/dist/src/controllers/prerequisites.d.ts.map +1 -0
- package/dist/src/controllers/prerequisites.js +235 -0
- package/dist/src/controllers/prerequisites.js.map +1 -0
- package/dist/src/core/AgentDB.d.ts +11 -36
- package/dist/src/core/AgentDB.d.ts.map +1 -1
- package/dist/src/core/AgentDB.js +31 -89
- package/dist/src/core/AgentDB.js.map +1 -1
- package/dist/src/core/QueryCache.d.ts +1 -1
- package/dist/src/core/QueryCache.d.ts.map +1 -1
- package/dist/src/core/QueryCache.js +2 -6
- package/dist/src/core/QueryCache.js.map +1 -1
- package/dist/src/db-fallback.d.ts +40 -3
- package/dist/src/db-fallback.d.ts.map +1 -1
- package/dist/src/db-fallback.js +308 -84
- package/dist/src/db-fallback.js.map +1 -1
- package/dist/src/db-test.d.ts +13 -0
- package/dist/src/db-test.d.ts.map +1 -0
- package/dist/src/db-test.js +55 -0
- package/dist/src/db-test.js.map +1 -0
- package/dist/src/db-unified.d.ts +76 -0
- package/dist/src/db-unified.d.ts.map +1 -0
- package/dist/src/db-unified.js +281 -0
- package/dist/src/db-unified.js.map +1 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts +58 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts.map +1 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.js +137 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.js.map +1 -0
- package/dist/src/embedding/index.d.ts +3 -0
- package/dist/src/embedding/index.d.ts.map +1 -0
- package/dist/src/embedding/index.js +2 -0
- package/dist/src/embedding/index.js.map +1 -0
- package/dist/src/examples/quic-sync-example.d.ts +9 -0
- package/dist/src/examples/quic-sync-example.d.ts.map +1 -0
- package/dist/src/examples/quic-sync-example.js +169 -0
- package/dist/src/examples/quic-sync-example.js.map +1 -0
- package/dist/src/examples/wasm-vector-usage.d.ts +12 -0
- package/dist/src/examples/wasm-vector-usage.d.ts.map +1 -0
- package/dist/src/examples/wasm-vector-usage.js +190 -0
- package/dist/src/examples/wasm-vector-usage.js.map +1 -0
- package/dist/src/governance/MetaHarnessGateway.d.ts +55 -0
- package/dist/src/governance/MetaHarnessGateway.d.ts.map +1 -0
- package/dist/src/governance/MetaHarnessGateway.js +65 -0
- package/dist/src/governance/MetaHarnessGateway.js.map +1 -0
- package/dist/src/governance/RvfExperimentBranch.d.ts +65 -0
- package/dist/src/governance/RvfExperimentBranch.d.ts.map +1 -0
- package/dist/src/governance/RvfExperimentBranch.js +115 -0
- package/dist/src/governance/RvfExperimentBranch.js.map +1 -0
- package/dist/src/index.d.ts +7 -25
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/agentdb-mcp-server.js +162 -159
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
- package/dist/src/mcp/learning-tools-handlers.d.ts +16 -0
- package/dist/src/mcp/learning-tools-handlers.d.ts.map +1 -0
- package/dist/src/mcp/learning-tools-handlers.js +105 -0
- package/dist/src/mcp/learning-tools-handlers.js.map +1 -0
- package/dist/src/model/ModelCacheLoader.d.ts +24 -0
- package/dist/src/model/ModelCacheLoader.d.ts.map +1 -0
- package/dist/src/model/ModelCacheLoader.js +123 -0
- package/dist/src/model/ModelCacheLoader.js.map +1 -0
- package/dist/src/observability/integration.d.ts +3 -3
- package/dist/src/observability/integration.d.ts.map +1 -1
- package/dist/src/observability/integration.js +2 -0
- package/dist/src/observability/integration.js.map +1 -1
- package/dist/src/observability/telemetry.d.ts +3 -3
- package/dist/src/observability/telemetry.d.ts.map +1 -1
- package/dist/src/observability/telemetry.js +3 -5
- package/dist/src/observability/telemetry.js.map +1 -1
- package/dist/src/optimizations/BatchOperations.d.ts +6 -6
- package/dist/src/optimizations/BatchOperations.d.ts.map +1 -1
- package/dist/src/optimizations/BatchOperations.js +6 -5
- package/dist/src/optimizations/BatchOperations.js.map +1 -1
- package/dist/src/optimizations/Quantization.d.ts +330 -0
- package/dist/src/optimizations/Quantization.d.ts.map +1 -0
- package/dist/src/optimizations/Quantization.js +793 -0
- package/dist/src/optimizations/Quantization.js.map +1 -0
- package/dist/src/optimizations/QueryOptimizer.d.ts +4 -4
- package/dist/src/optimizations/QueryOptimizer.d.ts.map +1 -1
- package/dist/src/optimizations/QueryOptimizer.js +1 -3
- package/dist/src/optimizations/QueryOptimizer.js.map +1 -1
- package/dist/src/optimizations/ToolCache.d.ts +4 -4
- package/dist/src/optimizations/ToolCache.d.ts.map +1 -1
- package/dist/src/optimizations/ToolCache.js.map +1 -1
- package/dist/src/quantization/vector-quantization.d.ts.map +1 -1
- package/dist/src/quantization/vector-quantization.js +1 -5
- package/dist/src/quantization/vector-quantization.js.map +1 -1
- package/dist/src/schemas/inline.d.ts +3 -0
- package/dist/src/schemas/inline.d.ts.map +1 -0
- package/dist/src/schemas/inline.js +10 -0
- package/dist/src/schemas/inline.js.map +1 -0
- package/dist/src/search/HybridSearch.d.ts +6 -6
- package/dist/src/search/HybridSearch.d.ts.map +1 -1
- package/dist/src/search/HybridSearch.js.map +1 -1
- package/dist/src/security/input-validation.d.ts +34 -12
- package/dist/src/security/input-validation.d.ts.map +1 -1
- package/dist/src/security/input-validation.js +46 -1
- package/dist/src/security/input-validation.js.map +1 -1
- package/dist/src/security/limits.d.ts +150 -0
- package/dist/src/security/limits.d.ts.map +1 -0
- package/dist/src/security/limits.js +288 -0
- package/dist/src/security/limits.js.map +1 -0
- package/dist/src/security/mcp-policy.d.ts +13 -0
- package/dist/src/security/mcp-policy.d.ts.map +1 -0
- package/dist/src/security/mcp-policy.js +66 -0
- package/dist/src/security/mcp-policy.js.map +1 -0
- package/dist/src/security/path-security.d.ts +100 -0
- package/dist/src/security/path-security.d.ts.map +1 -0
- package/dist/src/security/path-security.js +339 -0
- package/dist/src/security/path-security.js.map +1 -0
- package/dist/src/security/validation.d.ts +95 -0
- package/dist/src/security/validation.d.ts.map +1 -0
- package/dist/src/security/validation.js +315 -0
- package/dist/src/security/validation.js.map +1 -0
- package/dist/src/services/AttentionService.d.ts.map +1 -1
- package/dist/src/services/AttentionService.js +2 -4
- package/dist/src/services/AttentionService.js.map +1 -1
- package/dist/src/services/LLMRouter.d.ts +2 -2
- package/dist/src/services/LLMRouter.d.ts.map +1 -1
- package/dist/src/services/LLMRouter.js +3 -9
- package/dist/src/services/LLMRouter.js.map +1 -1
- package/dist/src/services/audit-logger.service.d.ts +168 -0
- package/dist/src/services/audit-logger.service.d.ts.map +1 -0
- package/dist/src/services/audit-logger.service.js +331 -0
- package/dist/src/services/audit-logger.service.js.map +1 -0
- package/dist/src/services/enhanced-embeddings.d.ts +271 -0
- package/dist/src/services/enhanced-embeddings.d.ts.map +1 -0
- package/dist/src/services/enhanced-embeddings.js +1035 -0
- package/dist/src/services/enhanced-embeddings.js.map +1 -0
- package/dist/src/services/federated-learning.d.ts +172 -0
- package/dist/src/services/federated-learning.d.ts.map +1 -0
- package/dist/src/services/federated-learning.js +342 -0
- package/dist/src/services/federated-learning.js.map +1 -0
- package/dist/src/simd/simd-vector-ops.d.ts.map +1 -1
- package/dist/src/simd/simd-vector-ops.js +0 -2
- package/dist/src/simd/simd-vector-ops.js.map +1 -1
- package/dist/src/types/attention.d.ts +249 -0
- package/dist/src/types/attention.d.ts.map +1 -0
- package/dist/src/types/attention.js +43 -0
- package/dist/src/types/attention.js.map +1 -0
- package/dist/src/types/database.types.d.ts +11 -11
- package/dist/src/types/database.types.d.ts.map +1 -1
- package/dist/src/types/database.types.js +2 -4
- package/dist/src/types/database.types.js.map +1 -1
- package/dist/src/types/graph.d.ts +29 -0
- package/dist/src/types/graph.d.ts.map +1 -0
- package/dist/src/types/graph.js +8 -0
- package/dist/src/types/graph.js.map +1 -0
- package/dist/src/types/quic.d.ts +518 -0
- package/dist/src/types/quic.d.ts.map +1 -0
- package/dist/src/types/quic.js +272 -0
- package/dist/src/types/quic.js.map +1 -0
- package/dist/src/utils/attention-metrics.d.ts +76 -0
- package/dist/src/utils/attention-metrics.d.ts.map +1 -0
- package/dist/src/utils/attention-metrics.js +178 -0
- package/dist/src/utils/attention-metrics.js.map +1 -0
- package/dist/src/wasm-loader.d.ts +0 -1
- package/dist/src/wasm-loader.d.ts.map +1 -1
- package/dist/src/wasm-loader.js +0 -2
- package/dist/src/wasm-loader.js.map +1 -1
- package/dist/src/wrappers/agentdb-fast.d.ts +5 -4
- package/dist/src/wrappers/agentdb-fast.d.ts.map +1 -1
- package/dist/src/wrappers/agentdb-fast.js +6 -13
- package/dist/src/wrappers/agentdb-fast.js.map +1 -1
- package/dist/src/wrappers/attention-fallbacks.d.ts +0 -8
- package/dist/src/wrappers/attention-fallbacks.d.ts.map +1 -1
- package/dist/src/wrappers/attention-fallbacks.js +3 -6
- package/dist/src/wrappers/attention-fallbacks.js.map +1 -1
- package/dist/src/wrappers/attention-native.d.ts +111 -0
- package/dist/src/wrappers/attention-native.d.ts.map +1 -0
- package/dist/src/wrappers/attention-native.js +273 -0
- package/dist/src/wrappers/attention-native.js.map +1 -0
- package/dist/src/wrappers/embedding-service.d.ts +4 -4
- package/dist/src/wrappers/embedding-service.d.ts.map +1 -1
- package/dist/src/wrappers/embedding-service.js +2 -8
- package/dist/src/wrappers/embedding-service.js.map +1 -1
- package/dist/src/wrappers/gnn-wrapper.d.ts.map +1 -1
- package/dist/src/wrappers/gnn-wrapper.js +3 -7
- package/dist/src/wrappers/gnn-wrapper.js.map +1 -1
- package/package.json +87 -18
- package/scripts/postinstall.cjs +13 -144
- package/dist/src/cli/tests/agentdb-cli.test.d.ts +0 -8
- package/dist/src/cli/tests/agentdb-cli.test.d.ts.map +0 -1
- package/dist/src/cli/tests/agentdb-cli.test.js +0 -50
- package/dist/src/cli/tests/agentdb-cli.test.js.map +0 -1
- package/dist/src/cli/tests/attention-cli.test.d.ts +0 -5
- package/dist/src/cli/tests/attention-cli.test.d.ts.map +0 -1
- package/dist/src/cli/tests/attention-cli.test.js +0 -257
- package/dist/src/cli/tests/attention-cli.test.js.map +0 -1
- package/dist/src/coordination/MultiDatabaseCoordinator.d.ts +0 -348
- package/dist/src/coordination/MultiDatabaseCoordinator.d.ts.map +0 -1
- package/dist/src/coordination/MultiDatabaseCoordinator.js +0 -803
- package/dist/src/coordination/MultiDatabaseCoordinator.js.map +0 -1
- package/dist/src/coordination/index.d.ts +0 -10
- package/dist/src/coordination/index.d.ts.map +0 -1
- package/dist/src/coordination/index.js +0 -10
- package/dist/src/coordination/index.js.map +0 -1
- package/dist/src/tests/attention-service.test.d.ts +0 -7
- package/dist/src/tests/attention-service.test.d.ts.map +0 -1
- package/dist/src/tests/attention-service.test.js +0 -401
- package/dist/src/tests/attention-service.test.js.map +0 -1
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts +0 -7
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.d.ts.map +0 -1
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js +0 -283
- package/dist/src/tests/integration/compatibility/backwards-compat.integration.test.js.map +0 -1
- package/dist/src/tests/query-cache.test.d.ts +0 -7
- package/dist/src/tests/query-cache.test.d.ts.map +0 -1
- package/dist/src/tests/query-cache.test.js +0 -343
- package/dist/src/tests/query-cache.test.js.map +0 -1
- package/dist/src/tests/ruvector-integration.test.d.ts +0 -14
- package/dist/src/tests/ruvector-integration.test.d.ts.map +0 -1
- package/dist/src/tests/ruvector-integration.test.js +0 -1156
- package/dist/src/tests/ruvector-integration.test.js.map +0 -1
- package/dist/src/tests/unit/auth/crypto.utils.test.d.ts +0 -6
- package/dist/src/tests/unit/auth/crypto.utils.test.d.ts.map +0 -1
- package/dist/src/tests/unit/auth/crypto.utils.test.js +0 -310
- package/dist/src/tests/unit/auth/crypto.utils.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts +0 -5
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js +0 -207
- package/dist/src/tests/unit/compatibility/deprecation-warnings.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts +0 -5
- package/dist/src/tests/unit/compatibility/migration-utils.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/migration-utils.test.js +0 -264
- package/dist/src/tests/unit/compatibility/migration-utils.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts +0 -7
- package/dist/src/tests/unit/compatibility/v1-adapter.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/v1-adapter.test.js +0 -228
- package/dist/src/tests/unit/compatibility/v1-adapter.test.js.map +0 -1
- package/dist/src/tests/unit/compatibility/version-detector.test.d.ts +0 -10
- package/dist/src/tests/unit/compatibility/version-detector.test.d.ts.map +0 -1
- package/dist/src/tests/unit/compatibility/version-detector.test.js +0 -162
- package/dist/src/tests/unit/compatibility/version-detector.test.js.map +0 -1
- package/dist/src/tests/vector-quantization.test.d.ts +0 -5
- package/dist/src/tests/vector-quantization.test.d.ts.map +0 -1
- package/dist/src/tests/vector-quantization.test.js +0 -338
- package/dist/src/tests/vector-quantization.test.js.map +0 -1
- package/dist/src/tests/wasm-vector-search.test.d.ts +0 -7
- package/dist/src/tests/wasm-vector-search.test.d.ts.map +0 -1
- package/dist/src/tests/wasm-vector-search.test.js +0 -193
- package/dist/src/tests/wasm-vector-search.test.js.map +0 -1
- package/dist/src/utils/crypto.utils.d.ts +0 -122
- package/dist/src/utils/crypto.utils.d.ts.map +0 -1
- package/dist/src/utils/crypto.utils.js +0 -296
- package/dist/src/utils/crypto.utils.js.map +0 -1
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cryptographic Utilities for AgentDB Authentication
|
|
3
|
-
*
|
|
4
|
-
* Provides secure cryptographic operations:
|
|
5
|
-
* - Password hashing with Argon2id (OWASP recommended)
|
|
6
|
-
* - Secure random token generation
|
|
7
|
-
* - API key generation and verification
|
|
8
|
-
* - Constant-time comparison
|
|
9
|
-
*
|
|
10
|
-
* Security Features:
|
|
11
|
-
* - Argon2id algorithm (resistant to GPU/ASIC attacks)
|
|
12
|
-
* - Cryptographically secure random generation
|
|
13
|
-
* - Timing attack prevention
|
|
14
|
-
* - Configurable security parameters
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Argon2 configuration (OWASP recommended)
|
|
18
|
-
*/
|
|
19
|
-
export declare const ARGON2_CONFIG: {
|
|
20
|
-
readonly type: 2;
|
|
21
|
-
readonly memoryCost: 65536;
|
|
22
|
-
readonly timeCost: 3;
|
|
23
|
-
readonly parallelism: 4;
|
|
24
|
-
readonly hashLength: 32;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Generate cryptographically secure random bytes
|
|
28
|
-
*/
|
|
29
|
-
export declare function generateSecureRandom(length?: number): Buffer;
|
|
30
|
-
/**
|
|
31
|
-
* Generate secure random hex string
|
|
32
|
-
*/
|
|
33
|
-
export declare function generateSecureRandomHex(length?: number): string;
|
|
34
|
-
/**
|
|
35
|
-
* Generate URL-safe random string (base64url)
|
|
36
|
-
*/
|
|
37
|
-
export declare function generateSecureRandomBase64(length?: number): string;
|
|
38
|
-
/**
|
|
39
|
-
* Hash password using Argon2id
|
|
40
|
-
* OWASP recommended algorithm - resistant to GPU/ASIC attacks
|
|
41
|
-
*/
|
|
42
|
-
export declare function hashPassword(password: string): Promise<string>;
|
|
43
|
-
/**
|
|
44
|
-
* Verify password against Argon2 hash
|
|
45
|
-
* Uses constant-time comparison internally
|
|
46
|
-
*/
|
|
47
|
-
export declare function verifyPassword(password: string, hash: string): Promise<boolean>;
|
|
48
|
-
/**
|
|
49
|
-
* Generate API key with cryptographically secure random data
|
|
50
|
-
* Format: agdb_live_<64 hex chars> or agdb_test_<64 hex chars>
|
|
51
|
-
*/
|
|
52
|
-
export declare function generateApiKey(environment?: 'live' | 'test'): {
|
|
53
|
-
key: string;
|
|
54
|
-
hash: string;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Hash API key for storage
|
|
58
|
-
*/
|
|
59
|
-
export declare function hashApiKey(apiKey: string): string;
|
|
60
|
-
/**
|
|
61
|
-
* Verify API key against stored hash
|
|
62
|
-
* Uses constant-time comparison to prevent timing attacks
|
|
63
|
-
*/
|
|
64
|
-
export declare function verifyApiKey(apiKey: string, storedHash: string): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Generate secure session ID
|
|
67
|
-
*/
|
|
68
|
-
export declare function generateSessionId(): string;
|
|
69
|
-
/**
|
|
70
|
-
* Generate JWT secret key (for initial setup)
|
|
71
|
-
*/
|
|
72
|
-
export declare function generateJWTSecret(): string;
|
|
73
|
-
/**
|
|
74
|
-
* Constant-time string comparison
|
|
75
|
-
* Prevents timing attacks when comparing secrets
|
|
76
|
-
*/
|
|
77
|
-
export declare function constantTimeCompare(a: string, b: string): boolean;
|
|
78
|
-
/**
|
|
79
|
-
* Generate HMAC signature for data integrity
|
|
80
|
-
*/
|
|
81
|
-
export declare function generateHMAC(data: string, secret: string): string;
|
|
82
|
-
/**
|
|
83
|
-
* Verify HMAC signature
|
|
84
|
-
*/
|
|
85
|
-
export declare function verifyHMAC(data: string, signature: string, secret: string): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Hash data with SHA-256
|
|
88
|
-
*/
|
|
89
|
-
export declare function sha256(data: string): string;
|
|
90
|
-
/**
|
|
91
|
-
* Generate cryptographically secure UUID v4
|
|
92
|
-
*/
|
|
93
|
-
export declare function generateUUID(): string;
|
|
94
|
-
/**
|
|
95
|
-
* Derive key from password using PBKDF2 (for encryption keys)
|
|
96
|
-
*/
|
|
97
|
-
export declare function deriveKey(password: string, salt: Buffer, iterations?: number, keyLength?: number): Promise<Buffer>;
|
|
98
|
-
/**
|
|
99
|
-
* Generate salt for key derivation
|
|
100
|
-
*/
|
|
101
|
-
export declare function generateSalt(length?: number): Buffer;
|
|
102
|
-
/**
|
|
103
|
-
* Encrypt data using AES-256-GCM
|
|
104
|
-
*/
|
|
105
|
-
export declare function encrypt(plaintext: string, key: Buffer): {
|
|
106
|
-
ciphertext: string;
|
|
107
|
-
iv: string;
|
|
108
|
-
authTag: string;
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Decrypt data using AES-256-GCM
|
|
112
|
-
*/
|
|
113
|
-
export declare function decrypt(ciphertext: string, key: Buffer, iv: string, authTag: string): string;
|
|
114
|
-
/**
|
|
115
|
-
* Validate password strength
|
|
116
|
-
*/
|
|
117
|
-
export declare function validatePasswordStrength(password: string): {
|
|
118
|
-
valid: boolean;
|
|
119
|
-
errors: string[];
|
|
120
|
-
score: number;
|
|
121
|
-
};
|
|
122
|
-
//# sourceMappingURL=crypto.utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/crypto.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAShE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAMtE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBpE;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,GAAE,MAAM,GAAG,MAAe,GAAG;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAYA;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAgBxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAiBjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAe,EAC3B,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAcA;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,GACd,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC1D,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAgDA"}
|
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cryptographic Utilities for AgentDB Authentication
|
|
3
|
-
*
|
|
4
|
-
* Provides secure cryptographic operations:
|
|
5
|
-
* - Password hashing with Argon2id (OWASP recommended)
|
|
6
|
-
* - Secure random token generation
|
|
7
|
-
* - API key generation and verification
|
|
8
|
-
* - Constant-time comparison
|
|
9
|
-
*
|
|
10
|
-
* Security Features:
|
|
11
|
-
* - Argon2id algorithm (resistant to GPU/ASIC attacks)
|
|
12
|
-
* - Cryptographically secure random generation
|
|
13
|
-
* - Timing attack prevention
|
|
14
|
-
* - Configurable security parameters
|
|
15
|
-
*/
|
|
16
|
-
import crypto from 'crypto';
|
|
17
|
-
import argon2 from 'argon2';
|
|
18
|
-
/**
|
|
19
|
-
* Argon2 configuration (OWASP recommended)
|
|
20
|
-
*/
|
|
21
|
-
export const ARGON2_CONFIG = {
|
|
22
|
-
type: argon2.argon2id,
|
|
23
|
-
memoryCost: 65536, // 64 MB
|
|
24
|
-
timeCost: 3, // 3 iterations
|
|
25
|
-
parallelism: 4, // 4 threads
|
|
26
|
-
hashLength: 32, // 32 bytes output
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Generate cryptographically secure random bytes
|
|
30
|
-
*/
|
|
31
|
-
export function generateSecureRandom(length = 32) {
|
|
32
|
-
if (length < 16) {
|
|
33
|
-
throw new Error('Random length must be at least 16 bytes for security');
|
|
34
|
-
}
|
|
35
|
-
if (length > 1024) {
|
|
36
|
-
throw new Error('Random length too large (max 1024 bytes)');
|
|
37
|
-
}
|
|
38
|
-
return crypto.randomBytes(length);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Generate secure random hex string
|
|
42
|
-
*/
|
|
43
|
-
export function generateSecureRandomHex(length = 32) {
|
|
44
|
-
return generateSecureRandom(length).toString('hex');
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Generate URL-safe random string (base64url)
|
|
48
|
-
*/
|
|
49
|
-
export function generateSecureRandomBase64(length = 32) {
|
|
50
|
-
return generateSecureRandom(length)
|
|
51
|
-
.toString('base64')
|
|
52
|
-
.replace(/\+/g, '-')
|
|
53
|
-
.replace(/\//g, '_')
|
|
54
|
-
.replace(/=/g, '');
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Hash password using Argon2id
|
|
58
|
-
* OWASP recommended algorithm - resistant to GPU/ASIC attacks
|
|
59
|
-
*/
|
|
60
|
-
export async function hashPassword(password) {
|
|
61
|
-
if (!password || typeof password !== 'string') {
|
|
62
|
-
throw new Error('Password must be a non-empty string');
|
|
63
|
-
}
|
|
64
|
-
if (password.length < 8) {
|
|
65
|
-
throw new Error('Password must be at least 8 characters');
|
|
66
|
-
}
|
|
67
|
-
if (password.length > 128) {
|
|
68
|
-
throw new Error('Password exceeds maximum length (128 characters)');
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
const hash = await argon2.hash(password, ARGON2_CONFIG);
|
|
72
|
-
return hash;
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
throw new Error(`Password hashing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Verify password against Argon2 hash
|
|
80
|
-
* Uses constant-time comparison internally
|
|
81
|
-
*/
|
|
82
|
-
export async function verifyPassword(password, hash) {
|
|
83
|
-
if (!password || !hash) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
return await argon2.verify(hash, password);
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
// Invalid hash format or verification error
|
|
91
|
-
console.error('Password verification error:', error);
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Generate API key with cryptographically secure random data
|
|
97
|
-
* Format: agdb_live_<64 hex chars> or agdb_test_<64 hex chars>
|
|
98
|
-
*/
|
|
99
|
-
export function generateApiKey(environment = 'live') {
|
|
100
|
-
const prefix = environment === 'live' ? 'agdb_live_' : 'agdb_test_';
|
|
101
|
-
const randomPart = generateSecureRandomHex(32); // 64 hex chars
|
|
102
|
-
const key = prefix + randomPart;
|
|
103
|
-
// Create hash for storage (we only store the hash, never the raw key)
|
|
104
|
-
const hash = crypto
|
|
105
|
-
.createHash('sha256')
|
|
106
|
-
.update(key)
|
|
107
|
-
.digest('hex');
|
|
108
|
-
return { key, hash };
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Hash API key for storage
|
|
112
|
-
*/
|
|
113
|
-
export function hashApiKey(apiKey) {
|
|
114
|
-
if (!apiKey || typeof apiKey !== 'string') {
|
|
115
|
-
throw new Error('API key must be a non-empty string');
|
|
116
|
-
}
|
|
117
|
-
// Validate API key format
|
|
118
|
-
const validPrefixes = ['agdb_live_', 'agdb_test_'];
|
|
119
|
-
const hasValidPrefix = validPrefixes.some(prefix => apiKey.startsWith(prefix));
|
|
120
|
-
if (!hasValidPrefix) {
|
|
121
|
-
throw new Error('Invalid API key format');
|
|
122
|
-
}
|
|
123
|
-
return crypto
|
|
124
|
-
.createHash('sha256')
|
|
125
|
-
.update(apiKey)
|
|
126
|
-
.digest('hex');
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Verify API key against stored hash
|
|
130
|
-
* Uses constant-time comparison to prevent timing attacks
|
|
131
|
-
*/
|
|
132
|
-
export function verifyApiKey(apiKey, storedHash) {
|
|
133
|
-
if (!apiKey || !storedHash) {
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
try {
|
|
137
|
-
const computedHash = hashApiKey(apiKey);
|
|
138
|
-
// Constant-time comparison
|
|
139
|
-
return crypto.timingSafeEqual(Buffer.from(computedHash, 'hex'), Buffer.from(storedHash, 'hex'));
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Generate secure session ID
|
|
147
|
-
*/
|
|
148
|
-
export function generateSessionId() {
|
|
149
|
-
return generateSecureRandomBase64(32);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Generate JWT secret key (for initial setup)
|
|
153
|
-
*/
|
|
154
|
-
export function generateJWTSecret() {
|
|
155
|
-
return generateSecureRandomBase64(64);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Constant-time string comparison
|
|
159
|
-
* Prevents timing attacks when comparing secrets
|
|
160
|
-
*/
|
|
161
|
-
export function constantTimeCompare(a, b) {
|
|
162
|
-
if (!a || !b) {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
try {
|
|
166
|
-
const bufferA = Buffer.from(a);
|
|
167
|
-
const bufferB = Buffer.from(b);
|
|
168
|
-
if (bufferA.length !== bufferB.length) {
|
|
169
|
-
return false;
|
|
170
|
-
}
|
|
171
|
-
return crypto.timingSafeEqual(bufferA, bufferB);
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
return false;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Generate HMAC signature for data integrity
|
|
179
|
-
*/
|
|
180
|
-
export function generateHMAC(data, secret) {
|
|
181
|
-
return crypto
|
|
182
|
-
.createHmac('sha256', secret)
|
|
183
|
-
.update(data)
|
|
184
|
-
.digest('hex');
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Verify HMAC signature
|
|
188
|
-
*/
|
|
189
|
-
export function verifyHMAC(data, signature, secret) {
|
|
190
|
-
const expectedSignature = generateHMAC(data, secret);
|
|
191
|
-
return constantTimeCompare(signature, expectedSignature);
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Hash data with SHA-256
|
|
195
|
-
*/
|
|
196
|
-
export function sha256(data) {
|
|
197
|
-
return crypto.createHash('sha256').update(data).digest('hex');
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Generate cryptographically secure UUID v4
|
|
201
|
-
*/
|
|
202
|
-
export function generateUUID() {
|
|
203
|
-
return crypto.randomUUID();
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Derive key from password using PBKDF2 (for encryption keys)
|
|
207
|
-
*/
|
|
208
|
-
export async function deriveKey(password, salt, iterations = 100000, keyLength = 32) {
|
|
209
|
-
return new Promise((resolve, reject) => {
|
|
210
|
-
crypto.pbkdf2(password, salt, iterations, keyLength, 'sha256', (err, derivedKey) => {
|
|
211
|
-
if (err)
|
|
212
|
-
reject(err);
|
|
213
|
-
else
|
|
214
|
-
resolve(derivedKey);
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Generate salt for key derivation
|
|
220
|
-
*/
|
|
221
|
-
export function generateSalt(length = 16) {
|
|
222
|
-
return crypto.randomBytes(length);
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Encrypt data using AES-256-GCM
|
|
226
|
-
*/
|
|
227
|
-
export function encrypt(plaintext, key) {
|
|
228
|
-
const iv = crypto.randomBytes(12); // 96-bit IV for GCM
|
|
229
|
-
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
|
|
230
|
-
let ciphertext = cipher.update(plaintext, 'utf8', 'hex');
|
|
231
|
-
ciphertext += cipher.final('hex');
|
|
232
|
-
const authTag = cipher.getAuthTag();
|
|
233
|
-
return {
|
|
234
|
-
ciphertext,
|
|
235
|
-
iv: iv.toString('hex'),
|
|
236
|
-
authTag: authTag.toString('hex'),
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Decrypt data using AES-256-GCM
|
|
241
|
-
*/
|
|
242
|
-
export function decrypt(ciphertext, key, iv, authTag) {
|
|
243
|
-
const decipher = crypto.createDecipheriv('aes-256-gcm', key, Buffer.from(iv, 'hex'));
|
|
244
|
-
decipher.setAuthTag(Buffer.from(authTag, 'hex'));
|
|
245
|
-
let plaintext = decipher.update(ciphertext, 'hex', 'utf8');
|
|
246
|
-
plaintext += decipher.final('utf8');
|
|
247
|
-
return plaintext;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Validate password strength
|
|
251
|
-
*/
|
|
252
|
-
export function validatePasswordStrength(password) {
|
|
253
|
-
const errors = [];
|
|
254
|
-
let score = 0;
|
|
255
|
-
if (!password) {
|
|
256
|
-
return { valid: false, errors: ['Password is required'], score: 0 };
|
|
257
|
-
}
|
|
258
|
-
// Length check
|
|
259
|
-
if (password.length < 8) {
|
|
260
|
-
errors.push('Password must be at least 8 characters');
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
score += 1;
|
|
264
|
-
}
|
|
265
|
-
if (password.length >= 12) {
|
|
266
|
-
score += 1;
|
|
267
|
-
}
|
|
268
|
-
// Complexity checks
|
|
269
|
-
if (/[a-z]/.test(password))
|
|
270
|
-
score += 1;
|
|
271
|
-
if (/[A-Z]/.test(password))
|
|
272
|
-
score += 1;
|
|
273
|
-
if (/[0-9]/.test(password))
|
|
274
|
-
score += 1;
|
|
275
|
-
if (/[^a-zA-Z0-9]/.test(password))
|
|
276
|
-
score += 1;
|
|
277
|
-
// Common patterns
|
|
278
|
-
if (/^[a-zA-Z]+$/.test(password)) {
|
|
279
|
-
errors.push('Password should contain numbers or special characters');
|
|
280
|
-
}
|
|
281
|
-
if (/^[0-9]+$/.test(password)) {
|
|
282
|
-
errors.push('Password should contain letters');
|
|
283
|
-
}
|
|
284
|
-
// Sequential or repeated characters
|
|
285
|
-
if (/(.)\1{2,}/.test(password)) {
|
|
286
|
-
errors.push('Password contains repeated characters');
|
|
287
|
-
score -= 1;
|
|
288
|
-
}
|
|
289
|
-
if (/012|123|234|345|456|567|678|789|abc|bcd|cde|def/.test(password.toLowerCase())) {
|
|
290
|
-
errors.push('Password contains sequential characters');
|
|
291
|
-
score -= 1;
|
|
292
|
-
}
|
|
293
|
-
const valid = errors.length === 0 && score >= 4;
|
|
294
|
-
return { valid, errors, score: Math.max(0, score) };
|
|
295
|
-
}
|
|
296
|
-
//# sourceMappingURL=crypto.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.utils.js","sourceRoot":"","sources":["../../../src/utils/crypto.utils.ts"],"names":[],"mappings":"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"}
|