cogmem 3.6.2
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/BENCHMARKS.md +62 -0
- package/CHANGELOG.md +215 -0
- package/CONCURRENT_ACCESS.md +27 -0
- package/CONTRIBUTING.md +32 -0
- package/LICENSE +21 -0
- package/MEMORY_ATLAS.md +101 -0
- package/MEMORY_MODEL.md +179 -0
- package/README.md +751 -0
- package/RECALL_EXPLAINABILITY.md +152 -0
- package/RELEASE_CHECKLIST.md +92 -0
- package/SECURITY.md +21 -0
- package/dist/adapters/MarkdownSourceLoader.d.ts +5 -0
- package/dist/adapters/MarkdownSourceLoader.js +19 -0
- package/dist/adapters/conversation/ConversationMarkdownAdapter.d.ts +9 -0
- package/dist/adapters/conversation/ConversationMarkdownAdapter.js +233 -0
- package/dist/adapters/hermes/HermesStateDbAdapter.d.ts +10 -0
- package/dist/adapters/hermes/HermesStateDbAdapter.js +268 -0
- package/dist/adapters/hermes/HermesWorkspaceProfile.d.ts +15 -0
- package/dist/adapters/hermes/HermesWorkspaceProfile.js +82 -0
- package/dist/adapters/index.d.ts +15 -0
- package/dist/adapters/index.js +12 -0
- package/dist/adapters/openclaw/OpenClawAdapterSupport.d.ts +14 -0
- package/dist/adapters/openclaw/OpenClawAdapterSupport.js +29 -0
- package/dist/adapters/openclaw/OpenClawDailyMemoryAdapter.d.ts +8 -0
- package/dist/adapters/openclaw/OpenClawDailyMemoryAdapter.js +35 -0
- package/dist/adapters/openclaw/OpenClawMemoryIndexAdapter.d.ts +8 -0
- package/dist/adapters/openclaw/OpenClawMemoryIndexAdapter.js +23 -0
- package/dist/adapters/openclaw/OpenClawPersonaAdapter.d.ts +8 -0
- package/dist/adapters/openclaw/OpenClawPersonaAdapter.js +24 -0
- package/dist/adapters/openclaw/OpenClawSessionAdapter.d.ts +8 -0
- package/dist/adapters/openclaw/OpenClawSessionAdapter.js +15 -0
- package/dist/adapters/openclaw/OpenClawUserProfileAdapter.d.ts +8 -0
- package/dist/adapters/openclaw/OpenClawUserProfileAdapter.js +24 -0
- package/dist/adapters/openclaw/OpenClawWorkspaceProfile.d.ts +38 -0
- package/dist/adapters/openclaw/OpenClawWorkspaceProfile.js +199 -0
- package/dist/adapters/soul/SoulMarkdownAdapter.d.ts +14 -0
- package/dist/adapters/soul/SoulMarkdownAdapter.js +255 -0
- package/dist/adapters/types.d.ts +97 -0
- package/dist/adapters/types.js +185 -0
- package/dist/agent/AgentMemoryBackend.d.ts +291 -0
- package/dist/agent/AgentMemoryBackend.js +1272 -0
- package/dist/agent/AgentRecallQueryCompiler.d.ts +20 -0
- package/dist/agent/AgentRecallQueryCompiler.js +289 -0
- package/dist/agent/ContextHygiene.d.ts +9 -0
- package/dist/agent/ContextHygiene.js +20 -0
- package/dist/agent/MemoryUsageReceipt.d.ts +35 -0
- package/dist/agent/MemoryUsageReceipt.js +136 -0
- package/dist/agent/SessionWorkingState.d.ts +20 -0
- package/dist/agent/SessionWorkingState.js +94 -0
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.js +5 -0
- package/dist/algorithm/AlgorithmReviewBackend.d.ts +84 -0
- package/dist/algorithm/AlgorithmReviewBackend.js +261 -0
- package/dist/algorithm/AlgorithmReviewMetrics.d.ts +23 -0
- package/dist/algorithm/AlgorithmReviewMetrics.js +25 -0
- package/dist/algorithm/Phase2ModelAlgorithmReviewBackend.d.ts +38 -0
- package/dist/algorithm/Phase2ModelAlgorithmReviewBackend.js +372 -0
- package/dist/assets/FileAssetIngestionService.d.ts +32 -0
- package/dist/assets/FileAssetIngestionService.js +133 -0
- package/dist/assets/FileAssetStore.d.ts +36 -0
- package/dist/assets/FileAssetStore.js +152 -0
- package/dist/assets/FileBlockStore.d.ts +12 -0
- package/dist/assets/FileBlockStore.js +110 -0
- package/dist/assets/FileChunkStore.d.ts +23 -0
- package/dist/assets/FileChunkStore.js +179 -0
- package/dist/assets/FileChunker.d.ts +10 -0
- package/dist/assets/FileChunker.js +69 -0
- package/dist/assets/FileLoaderRegistry.d.ts +8 -0
- package/dist/assets/FileLoaderRegistry.js +21 -0
- package/dist/assets/FileLoaders.d.ts +37 -0
- package/dist/assets/FileLoaders.js +268 -0
- package/dist/assets/index.d.ts +10 -0
- package/dist/assets/index.js +7 -0
- package/dist/assets/providers/types.d.ts +47 -0
- package/dist/assets/providers/types.js +1 -0
- package/dist/assets/types.d.ts +159 -0
- package/dist/assets/types.js +1 -0
- package/dist/atlas/ActionFrameExtractor.d.ts +15 -0
- package/dist/atlas/ActionFrameExtractor.js +135 -0
- package/dist/atlas/MemoryAtlasIndexer.d.ts +32 -0
- package/dist/atlas/MemoryAtlasIndexer.js +74 -0
- package/dist/atlas/MemoryAtlasQueryCompiler.d.ts +23 -0
- package/dist/atlas/MemoryAtlasQueryCompiler.js +55 -0
- package/dist/atlas/MemoryAtlasService.d.ts +25 -0
- package/dist/atlas/MemoryAtlasService.js +216 -0
- package/dist/atlas/MemoryAtlasTypes.d.ts +107 -0
- package/dist/atlas/MemoryAtlasTypes.js +1 -0
- package/dist/atlas/index.d.ts +6 -0
- package/dist/atlas/index.js +5 -0
- package/dist/backend/SemanticBackend.d.ts +40 -0
- package/dist/backend/SemanticBackend.js +107 -0
- package/dist/batch/IngestionCursorStore.d.ts +52 -0
- package/dist/batch/IngestionCursorStore.js +153 -0
- package/dist/batch/InstalledBatchProcessor.d.ts +88 -0
- package/dist/batch/InstalledBatchProcessor.js +179 -0
- package/dist/batch/SourceOnboarding.d.ts +56 -0
- package/dist/batch/SourceOnboarding.js +366 -0
- package/dist/belief/BeliefGovernanceService.d.ts +59 -0
- package/dist/belief/BeliefGovernanceService.js +183 -0
- package/dist/belief/BeliefStore.d.ts +78 -0
- package/dist/belief/BeliefStore.js +898 -0
- package/dist/benchmark/BenchmarkRegistry.d.ts +16 -0
- package/dist/benchmark/BenchmarkRegistry.js +97 -0
- package/dist/benchmark/BenchmarkReport.d.ts +23 -0
- package/dist/benchmark/BenchmarkReport.js +62 -0
- package/dist/benchmark/BenchmarkRunner.d.ts +27 -0
- package/dist/benchmark/BenchmarkRunner.js +64 -0
- package/dist/benchmark/BrainEval.d.ts +134 -0
- package/dist/benchmark/BrainEval.js +252 -0
- package/dist/benchmark/ExternalBenchmarkRunner.d.ts +8 -0
- package/dist/benchmark/ExternalBenchmarkRunner.js +12 -0
- package/dist/benchmark/LongMemEvalAdapter.d.ts +46 -0
- package/dist/benchmark/LongMemEvalAdapter.js +88 -0
- package/dist/benchmark/LongMemEvalCli.d.ts +6 -0
- package/dist/benchmark/LongMemEvalCli.js +26 -0
- package/dist/bin/CliJson.d.ts +17 -0
- package/dist/bin/CliJson.js +20 -0
- package/dist/bin/brain-eval.d.ts +3 -0
- package/dist/bin/brain-eval.js +46 -0
- package/dist/bin/cogmem.d.ts +3 -0
- package/dist/bin/cogmem.js +95 -0
- package/dist/bin/compact.d.ts +3 -0
- package/dist/bin/compact.js +96 -0
- package/dist/bin/connect.d.ts +3 -0
- package/dist/bin/connect.js +398 -0
- package/dist/bin/doctor.d.ts +3 -0
- package/dist/bin/doctor.js +171 -0
- package/dist/bin/dream.d.ts +3 -0
- package/dist/bin/dream.js +65 -0
- package/dist/bin/episode.d.ts +3 -0
- package/dist/bin/episode.js +268 -0
- package/dist/bin/explain-recall.d.ts +3 -0
- package/dist/bin/explain-recall.js +139 -0
- package/dist/bin/import-hermes.d.ts +3 -0
- package/dist/bin/import-hermes.js +6 -0
- package/dist/bin/import-openclaw.d.ts +3 -0
- package/dist/bin/import-openclaw.js +6 -0
- package/dist/bin/import-support.d.ts +43 -0
- package/dist/bin/import-support.js +528 -0
- package/dist/bin/init.d.ts +30 -0
- package/dist/bin/init.js +761 -0
- package/dist/bin/mcp.d.ts +3 -0
- package/dist/bin/mcp.js +52 -0
- package/dist/bin/memory.d.ts +3 -0
- package/dist/bin/memory.js +803 -0
- package/dist/bin/migrate-vectors.d.ts +3 -0
- package/dist/bin/migrate-vectors.js +74 -0
- package/dist/bin/migrate.d.ts +3 -0
- package/dist/bin/migrate.js +95 -0
- package/dist/bin/normalize-transcript.d.ts +16 -0
- package/dist/bin/normalize-transcript.js +153 -0
- package/dist/bin/openclaw.d.ts +3 -0
- package/dist/bin/openclaw.js +78 -0
- package/dist/bin/prospective.d.ts +3 -0
- package/dist/bin/prospective.js +115 -0
- package/dist/bin/re-embed.d.ts +3 -0
- package/dist/bin/re-embed.js +46 -0
- package/dist/bin/repair.d.ts +3 -0
- package/dist/bin/repair.js +118 -0
- package/dist/bin/snapshot.d.ts +3 -0
- package/dist/bin/snapshot.js +100 -0
- package/dist/bin/strategy.d.ts +3 -0
- package/dist/bin/strategy.js +66 -0
- package/dist/bin/update-release.d.ts +15 -0
- package/dist/bin/update-release.js +62 -0
- package/dist/bin/update.d.ts +3 -0
- package/dist/bin/update.js +215 -0
- package/dist/binding/BindingClassifier.d.ts +19 -0
- package/dist/binding/BindingClassifier.js +270 -0
- package/dist/binding/BindingDecisionEngine.d.ts +11 -0
- package/dist/binding/BindingDecisionEngine.js +13 -0
- package/dist/binding/ClaimKeyGenerator.d.ts +4 -0
- package/dist/binding/ClaimKeyGenerator.js +21 -0
- package/dist/binding/MemoryBindingService.d.ts +28 -0
- package/dist/binding/MemoryBindingService.js +283 -0
- package/dist/binding/MemoryBindingTypes.d.ts +140 -0
- package/dist/binding/MemoryBindingTypes.js +1 -0
- package/dist/binding/TopicPathRegistry.d.ts +5 -0
- package/dist/binding/TopicPathRegistry.js +33 -0
- package/dist/binding/index.d.ts +12 -0
- package/dist/binding/index.js +6 -0
- package/dist/boards/ApprovalBoard.d.ts +14 -0
- package/dist/boards/ApprovalBoard.js +32 -0
- package/dist/boards/Board.d.ts +23 -0
- package/dist/boards/Board.js +1 -0
- package/dist/boards/BoardEventBuffer.d.ts +10 -0
- package/dist/boards/BoardEventBuffer.js +22 -0
- package/dist/boards/BoardEventBus.d.ts +15 -0
- package/dist/boards/BoardEventBus.js +38 -0
- package/dist/boards/BoardEventFilter.d.ts +5 -0
- package/dist/boards/BoardEventFilter.js +1 -0
- package/dist/boards/BoardRegistry.d.ts +11 -0
- package/dist/boards/BoardRegistry.js +15 -0
- package/dist/boards/ContextBoard.d.ts +15 -0
- package/dist/boards/ContextBoard.js +33 -0
- package/dist/boards/MemoryBoard.d.ts +13 -0
- package/dist/boards/MemoryBoard.js +30 -0
- package/dist/boards/ProcessBoard.d.ts +16 -0
- package/dist/boards/ProcessBoard.js +56 -0
- package/dist/boards/ProposalBoard.d.ts +13 -0
- package/dist/boards/ProposalBoard.js +37 -0
- package/dist/boards/ReasoningTraceBoard.d.ts +11 -0
- package/dist/boards/ReasoningTraceBoard.js +34 -0
- package/dist/boards/TaskBoard.d.ts +14 -0
- package/dist/boards/TaskBoard.js +37 -0
- package/dist/boards/index.d.ts +13 -0
- package/dist/boards/index.js +12 -0
- package/dist/config/CogmemConfig.d.ts +43 -0
- package/dist/config/CogmemConfig.js +247 -0
- package/dist/config/VectorDimension.d.ts +13 -0
- package/dist/config/VectorDimension.js +53 -0
- package/dist/context/ContextCortex.d.ts +71 -0
- package/dist/context/ContextCortex.js +156 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.js +1 -0
- package/dist/core/ImportanceLevels.d.ts +4 -0
- package/dist/core/ImportanceLevels.js +6 -0
- package/dist/core/IntentParser.d.ts +12 -0
- package/dist/core/IntentParser.js +211 -0
- package/dist/core/MemoryGraph.d.ts +100 -0
- package/dist/core/MemoryGraph.js +860 -0
- package/dist/core/Metabolism.d.ts +43 -0
- package/dist/core/Metabolism.js +196 -0
- package/dist/core/Neuron.d.ts +20 -0
- package/dist/core/Neuron.js +51 -0
- package/dist/core/QueryClassifier.d.ts +36 -0
- package/dist/core/QueryClassifier.js +161 -0
- package/dist/core/Reflection.d.ts +42 -0
- package/dist/core/Reflection.js +183 -0
- package/dist/core/ResonanceCore.d.ts +26 -0
- package/dist/core/ResonanceCore.js +115 -0
- package/dist/core/Synapse.d.ts +10 -0
- package/dist/core/Synapse.js +27 -0
- package/dist/core/TwoStagePulseRanker.d.ts +16 -0
- package/dist/core/TwoStagePulseRanker.js +120 -0
- package/dist/dream/DreamScheduler.d.ts +47 -0
- package/dist/dream/DreamScheduler.js +156 -0
- package/dist/dream/index.d.ts +2 -0
- package/dist/dream/index.js +1 -0
- package/dist/embedding/EmbeddingProvider.d.ts +16 -0
- package/dist/embedding/EmbeddingProvider.js +12 -0
- package/dist/embedding/NeuronEmbeddingStore.d.ts +38 -0
- package/dist/embedding/NeuronEmbeddingStore.js +193 -0
- package/dist/embedding/OllamaEmbeddingProvider.d.ts +21 -0
- package/dist/embedding/OllamaEmbeddingProvider.js +65 -0
- package/dist/embedding/QwenAPIEmbeddingProvider.d.ts +26 -0
- package/dist/embedding/QwenAPIEmbeddingProvider.js +53 -0
- package/dist/embedding/ReEmbeddingPipeline.d.ts +30 -0
- package/dist/embedding/ReEmbeddingPipeline.js +119 -0
- package/dist/embedding/ReEmbeddingStatus.d.ts +10 -0
- package/dist/embedding/ReEmbeddingStatus.js +1 -0
- package/dist/embedding/index.d.ts +11 -0
- package/dist/embedding/index.js +5 -0
- package/dist/encryption/AesGcmEncryptionProvider.d.ts +9 -0
- package/dist/encryption/AesGcmEncryptionProvider.js +42 -0
- package/dist/encryption/EncryptionProvider.d.ts +6 -0
- package/dist/encryption/EncryptionProvider.js +3 -0
- package/dist/encryption/index.d.ts +4 -0
- package/dist/encryption/index.js +2 -0
- package/dist/engine/BeliefExtractor.d.ts +48 -0
- package/dist/engine/BeliefExtractor.js +1189 -0
- package/dist/engine/CognitiveGraphCompiler.d.ts +24 -0
- package/dist/engine/CognitiveGraphCompiler.js +243 -0
- package/dist/engine/ConsolidationPipeline.d.ts +66 -0
- package/dist/engine/ConsolidationPipeline.js +376 -0
- package/dist/engine/ConsolidationTrigger.d.ts +18 -0
- package/dist/engine/ConsolidationTrigger.js +41 -0
- package/dist/engine/CrossTopicSynthesizer.d.ts +28 -0
- package/dist/engine/CrossTopicSynthesizer.js +70 -0
- package/dist/engine/CrossTopicTrigger.d.ts +17 -0
- package/dist/engine/CrossTopicTrigger.js +29 -0
- package/dist/engine/DeepWriteConfig.d.ts +14 -0
- package/dist/engine/DeepWriteConfig.js +37 -0
- package/dist/engine/DeepWriteMemoryCompiler.d.ts +43 -0
- package/dist/engine/DeepWriteMemoryCompiler.js +42 -0
- package/dist/engine/DeepWriteMemoryOrchestrator.d.ts +60 -0
- package/dist/engine/DeepWriteMemoryOrchestrator.js +175 -0
- package/dist/engine/DeepWritePromotionPolicy.d.ts +48 -0
- package/dist/engine/DeepWritePromotionPolicy.js +514 -0
- package/dist/engine/DeepWriteRedactor.d.ts +14 -0
- package/dist/engine/DeepWriteRedactor.js +53 -0
- package/dist/engine/DreamCuratorSchedule.d.ts +18 -0
- package/dist/engine/DreamCuratorSchedule.js +95 -0
- package/dist/engine/DreamCuratorWorker.d.ts +67 -0
- package/dist/engine/DreamCuratorWorker.js +908 -0
- package/dist/engine/EntityResolutionEngine.d.ts +45 -0
- package/dist/engine/EntityResolutionEngine.js +105 -0
- package/dist/engine/EpisodicSemanticDistiller.d.ts +25 -0
- package/dist/engine/EpisodicSemanticDistiller.js +68 -0
- package/dist/engine/EvolutionVerifier.d.ts +39 -0
- package/dist/engine/EvolutionVerifier.js +104 -0
- package/dist/engine/FactCompiler.d.ts +41 -0
- package/dist/engine/FactCompiler.js +820 -0
- package/dist/engine/GraphCommunityEngine.d.ts +20 -0
- package/dist/engine/GraphCommunityEngine.js +91 -0
- package/dist/engine/ImportanceSignalDetector.d.ts +11 -0
- package/dist/engine/ImportanceSignalDetector.js +51 -0
- package/dist/engine/IngestionEngine.d.ts +44 -0
- package/dist/engine/IngestionEngine.js +182 -0
- package/dist/engine/InteractionBinder.d.ts +16 -0
- package/dist/engine/InteractionBinder.js +87 -0
- package/dist/engine/LocalSemanticCompiler.d.ts +40 -0
- package/dist/engine/LocalSemanticCompiler.js +111 -0
- package/dist/engine/MemoryConsolidationEngine.d.ts +11 -0
- package/dist/engine/MemoryConsolidationEngine.js +21 -0
- package/dist/engine/MemoryGate.d.ts +10 -0
- package/dist/engine/MemoryGate.js +34 -0
- package/dist/engine/OfflineConsolidationPipeline.d.ts +148 -0
- package/dist/engine/OfflineConsolidationPipeline.js +670 -0
- package/dist/engine/OrphanCleaner.d.ts +15 -0
- package/dist/engine/OrphanCleaner.js +27 -0
- package/dist/engine/PipelineMetrics.d.ts +32 -0
- package/dist/engine/PipelineMetrics.js +126 -0
- package/dist/engine/PrincipleDecayPolicy.d.ts +17 -0
- package/dist/engine/PrincipleDecayPolicy.js +64 -0
- package/dist/engine/TopologyCompiler.d.ts +25 -0
- package/dist/engine/TopologyCompiler.js +276 -0
- package/dist/engine/WorkingMemoryDelta.d.ts +23 -0
- package/dist/engine/WorkingMemoryDelta.js +63 -0
- package/dist/entity/EntityGovernanceService.d.ts +47 -0
- package/dist/entity/EntityGovernanceService.js +215 -0
- package/dist/entity/index.d.ts +3 -0
- package/dist/entity/index.js +1 -0
- package/dist/episode/CogmemBlockStripper.d.ts +11 -0
- package/dist/episode/CogmemBlockStripper.js +58 -0
- package/dist/episode/CorrectionResolver.d.ts +30 -0
- package/dist/episode/CorrectionResolver.js +17 -0
- package/dist/episode/EpisodeAssembler.d.ts +54 -0
- package/dist/episode/EpisodeAssembler.js +203 -0
- package/dist/episode/EpisodeImportIdentity.d.ts +7 -0
- package/dist/episode/EpisodeImportIdentity.js +17 -0
- package/dist/episode/EpisodeSemanticSummarizer.d.ts +4 -0
- package/dist/episode/EpisodeSemanticSummarizer.js +31 -0
- package/dist/episode/EpisodeStore.d.ts +189 -0
- package/dist/episode/EpisodeStore.js +680 -0
- package/dist/episode/EpisodeTypes.d.ts +96 -0
- package/dist/episode/EpisodeTypes.js +1 -0
- package/dist/episode/TurnRelationClassifier.d.ts +40 -0
- package/dist/episode/TurnRelationClassifier.js +205 -0
- package/dist/episode/index.d.ts +9 -0
- package/dist/episode/index.js +8 -0
- package/dist/eval/datasets/contradiction_injection.d.ts +3 -0
- package/dist/eval/datasets/contradiction_injection.js +56 -0
- package/dist/eval/datasets/noisy_tool_output_corpus.d.ts +16 -0
- package/dist/eval/datasets/noisy_tool_output_corpus.js +59 -0
- package/dist/eval/datasets/synthetic_long_conversation.d.ts +40 -0
- package/dist/eval/datasets/synthetic_long_conversation.js +136 -0
- package/dist/eval/runners/EvalRunner.d.ts +12 -0
- package/dist/eval/runners/EvalRunner.js +66 -0
- package/dist/eval/runners/ReportFormatter.d.ts +13 -0
- package/dist/eval/runners/ReportFormatter.js +59 -0
- package/dist/eval/strategy/ContextOutcomeStore.d.ts +12 -0
- package/dist/eval/strategy/ContextOutcomeStore.js +44 -0
- package/dist/eval/strategy/ContextPolicyScorer.d.ts +25 -0
- package/dist/eval/strategy/ContextPolicyScorer.js +58 -0
- package/dist/eval/strategy/MemoryUseJudge.d.ts +49 -0
- package/dist/eval/strategy/MemoryUseJudge.js +75 -0
- package/dist/eval/strategy/StrategyDiversitySelector.d.ts +8 -0
- package/dist/eval/strategy/StrategyDiversitySelector.js +44 -0
- package/dist/eval/strategy/StrategyRolloutEvaluator.d.ts +15 -0
- package/dist/eval/strategy/StrategyRolloutEvaluator.js +30 -0
- package/dist/eval/strategy/index.d.ts +6 -0
- package/dist/eval/strategy/index.js +5 -0
- package/dist/factory.d.ts +726 -0
- package/dist/factory.js +2118 -0
- package/dist/governance/CandidateReviewService.d.ts +33 -0
- package/dist/governance/CandidateReviewService.js +126 -0
- package/dist/governance/ContradictionResolver.d.ts +22 -0
- package/dist/governance/ContradictionResolver.js +54 -0
- package/dist/governance/CredibilityScorer.d.ts +10 -0
- package/dist/governance/CredibilityScorer.js +29 -0
- package/dist/governance/DecayPolicy.d.ts +18 -0
- package/dist/governance/DecayPolicy.js +28 -0
- package/dist/governance/MemoryExplain.d.ts +46 -0
- package/dist/governance/MemoryExplain.js +62 -0
- package/dist/governance/MemoryGovernanceExecutor.d.ts +18 -0
- package/dist/governance/MemoryGovernanceExecutor.js +37 -0
- package/dist/governance/MemoryGovernancePlan.d.ts +36 -0
- package/dist/governance/MemoryGovernancePlan.js +1 -0
- package/dist/governance/MemoryGovernanceValidator.d.ts +13 -0
- package/dist/governance/MemoryGovernanceValidator.js +53 -0
- package/dist/governance/ObservationHygieneRules.d.ts +17 -0
- package/dist/governance/ObservationHygieneRules.js +28 -0
- package/dist/governance/PiiRedactor.d.ts +20 -0
- package/dist/governance/PiiRedactor.js +37 -0
- package/dist/governance/SupersedeChain.d.ts +21 -0
- package/dist/governance/SupersedeChain.js +107 -0
- package/dist/governance/index.d.ts +14 -0
- package/dist/governance/index.js +6 -0
- package/dist/graph/BrainGraphView.d.ts +20 -0
- package/dist/graph/BrainGraphView.js +45 -0
- package/dist/host/openclaw/AutoMemoryPluginInstaller.d.ts +45 -0
- package/dist/host/openclaw/AutoMemoryPluginInstaller.js +1904 -0
- package/dist/internal.d.ts +148 -0
- package/dist/internal.js +144 -0
- package/dist/lexicon/coreMemoryLexicon.d.ts +96 -0
- package/dist/lexicon/coreMemoryLexicon.js +525 -0
- package/dist/lexicon/language-packs/en.d.ts +42 -0
- package/dist/lexicon/language-packs/en.js +41 -0
- package/dist/lexicon/language-packs/zh.d.ts +42 -0
- package/dist/lexicon/language-packs/zh.js +41 -0
- package/dist/lexicon/zh/entities.d.ts +2 -0
- package/dist/lexicon/zh/entities.js +17 -0
- package/dist/lexicon/zh/index.d.ts +5 -0
- package/dist/lexicon/zh/index.js +3 -0
- package/dist/lexicon/zh/stopwords.d.ts +2 -0
- package/dist/lexicon/zh/stopwords.js +22 -0
- package/dist/lexicon/zh/topics.d.ts +6 -0
- package/dist/lexicon/zh/topics.js +52 -0
- package/dist/mcp/CoreMcpTools.d.ts +33 -0
- package/dist/mcp/CoreMcpTools.js +832 -0
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp/server.js +29 -0
- package/dist/meta/MetaObservationCollector.d.ts +37 -0
- package/dist/meta/MetaObservationCollector.js +348 -0
- package/dist/meta/PolicyProposalGenerator.d.ts +11 -0
- package/dist/meta/PolicyProposalGenerator.js +159 -0
- package/dist/meta/ProposalApplier.d.ts +18 -0
- package/dist/meta/ProposalApplier.js +91 -0
- package/dist/meta/ProposalConfigOverlay.d.ts +13 -0
- package/dist/meta/ProposalConfigOverlay.js +27 -0
- package/dist/meta/ProposalEvalRunner.d.ts +31 -0
- package/dist/meta/ProposalEvalRunner.js +62 -0
- package/dist/meta/ProposalLedger.d.ts +34 -0
- package/dist/meta/ProposalLedger.js +242 -0
- package/dist/meta/types.d.ts +63 -0
- package/dist/meta/types.js +1 -0
- package/dist/migrations/0001_init.d.ts +4 -0
- package/dist/migrations/0001_init.js +67 -0
- package/dist/migrations/0002_v06_platform.d.ts +10 -0
- package/dist/migrations/0002_v06_platform.js +103 -0
- package/dist/migrations/0003_v07_dialogues.d.ts +9 -0
- package/dist/migrations/0003_v07_dialogues.js +53 -0
- package/dist/migrations/0004_v09_self_improvement.d.ts +9 -0
- package/dist/migrations/0004_v09_self_improvement.js +100 -0
- package/dist/migrations/0005_dialogue_buffer.d.ts +8 -0
- package/dist/migrations/0005_dialogue_buffer.js +44 -0
- package/dist/migrations/0006_deep_write_memory.d.ts +3 -0
- package/dist/migrations/0006_deep_write_memory.js +54 -0
- package/dist/migrations/0007_deep_write_summaries.d.ts +3 -0
- package/dist/migrations/0007_deep_write_summaries.js +24 -0
- package/dist/migrations/0009_memory_importance.d.ts +3 -0
- package/dist/migrations/0009_memory_importance.js +18 -0
- package/dist/migrations/0010_skill_neurons.d.ts +3 -0
- package/dist/migrations/0010_skill_neurons.js +19 -0
- package/dist/migrations/0011_topic_path.d.ts +3 -0
- package/dist/migrations/0011_topic_path.js +19 -0
- package/dist/migrations/0012_governance_security.d.ts +3 -0
- package/dist/migrations/0012_governance_security.js +23 -0
- package/dist/migrations/0015_memory_governance.d.ts +3 -0
- package/dist/migrations/0015_memory_governance.js +74 -0
- package/dist/migrations/0016_entity_governance.d.ts +3 -0
- package/dist/migrations/0016_entity_governance.js +40 -0
- package/dist/migrations/0017_belief_graph.d.ts +3 -0
- package/dist/migrations/0017_belief_graph.js +41 -0
- package/dist/migrations/0018_temporal_memory.d.ts +3 -0
- package/dist/migrations/0018_temporal_memory.js +25 -0
- package/dist/migrations/0019_context_cortex.d.ts +3 -0
- package/dist/migrations/0019_context_cortex.js +19 -0
- package/dist/migrations/0020_prospective_memory.d.ts +3 -0
- package/dist/migrations/0020_prospective_memory.js +42 -0
- package/dist/migrations/0021_strategy_cortex.d.ts +3 -0
- package/dist/migrations/0021_strategy_cortex.js +23 -0
- package/dist/migrations/0022_episode_dream_engine.d.ts +3 -0
- package/dist/migrations/0022_episode_dream_engine.js +74 -0
- package/dist/migrations/0023_episode_dream_hardening.d.ts +3 -0
- package/dist/migrations/0023_episode_dream_hardening.js +65 -0
- package/dist/migrations/0024_episode_ontology_reliability.d.ts +3 -0
- package/dist/migrations/0024_episode_ontology_reliability.js +70 -0
- package/dist/migrations/0025_memory_atlas.d.ts +6 -0
- package/dist/migrations/0025_memory_atlas.js +268 -0
- package/dist/migrations/0026_runtime_governance_atlas_reliability.d.ts +3 -0
- package/dist/migrations/0026_runtime_governance_atlas_reliability.js +72 -0
- package/dist/migrations/0027_openclaw_upgrade_hotfix.d.ts +3 -0
- package/dist/migrations/0027_openclaw_upgrade_hotfix.js +21 -0
- package/dist/migrations/SchemaMigrationRunner.d.ts +21 -0
- package/dist/migrations/SchemaMigrationRunner.js +67 -0
- package/dist/migrations/index.d.ts +36 -0
- package/dist/migrations/index.js +57 -0
- package/dist/models/ModelCapabilityRouter.d.ts +17 -0
- package/dist/models/ModelCapabilityRouter.js +75 -0
- package/dist/models/ModelRegistry.d.ts +15 -0
- package/dist/models/ModelRegistry.js +132 -0
- package/dist/models/ModelRole.d.ts +19 -0
- package/dist/models/ModelRole.js +1 -0
- package/dist/models/UserInsight.d.ts +16 -0
- package/dist/models/UserInsight.js +9 -0
- package/dist/models/UserInsightExtractor.d.ts +19 -0
- package/dist/models/UserInsightExtractor.js +99 -0
- package/dist/models/UserModelManager.d.ts +21 -0
- package/dist/models/UserModelManager.js +41 -0
- package/dist/models/UserModelStore.d.ts +20 -0
- package/dist/models/UserModelStore.js +136 -0
- package/dist/models/WorkingMemoryReporter.d.ts +16 -0
- package/dist/models/WorkingMemoryReporter.js +38 -0
- package/dist/models/adapters/MemoryReviewAdapter.d.ts +12 -0
- package/dist/models/adapters/MemoryReviewAdapter.js +77 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.js +5 -0
- package/dist/models/providers/AnthropicClient.d.ts +17 -0
- package/dist/models/providers/AnthropicClient.js +40 -0
- package/dist/models/providers/OpenAICompatibleClient.d.ts +24 -0
- package/dist/models/providers/OpenAICompatibleClient.js +76 -0
- package/dist/observability/DecisionExplainer.d.ts +5 -0
- package/dist/observability/DecisionExplainer.js +62 -0
- package/dist/observability/TraceEvent.d.ts +11 -0
- package/dist/observability/TraceEvent.js +1 -0
- package/dist/observability/TraceQuery.d.ts +15 -0
- package/dist/observability/TraceQuery.js +28 -0
- package/dist/observability/TraceStore.d.ts +15 -0
- package/dist/observability/TraceStore.js +110 -0
- package/dist/observability/TraceWriter.d.ts +8 -0
- package/dist/observability/TraceWriter.js +14 -0
- package/dist/ontology/MemoryOntology.d.ts +4 -0
- package/dist/ontology/MemoryOntology.js +7 -0
- package/dist/prospective/ProspectiveMemoryService.d.ts +79 -0
- package/dist/prospective/ProspectiveMemoryService.js +258 -0
- package/dist/prospective/index.d.ts +2 -0
- package/dist/prospective/index.js +1 -0
- package/dist/public.d.ts +160 -0
- package/dist/public.js +115 -0
- package/dist/recall/BrainRecall.d.ts +96 -0
- package/dist/recall/BrainRecall.js +574 -0
- package/dist/recall/HierarchicalRecallRouter.d.ts +24 -0
- package/dist/recall/HierarchicalRecallRouter.js +62 -0
- package/dist/recall/RecallExplanation.d.ts +59 -0
- package/dist/recall/RecallExplanation.js +244 -0
- package/dist/recall/RecallGovernance.d.ts +10 -0
- package/dist/recall/RecallGovernance.js +83 -0
- package/dist/recall/RecallSufficiencyGate.d.ts +40 -0
- package/dist/recall/RecallSufficiencyGate.js +208 -0
- package/dist/recall/SourceContextMetadata.d.ts +49 -0
- package/dist/recall/SourceContextMetadata.js +134 -0
- package/dist/recall/TopicClassifier.d.ts +33 -0
- package/dist/recall/TopicClassifier.js +138 -0
- package/dist/recall/TopicDecayPolicy.d.ts +15 -0
- package/dist/recall/TopicDecayPolicy.js +46 -0
- package/dist/recall/TopicRegistry.d.ts +12 -0
- package/dist/recall/TopicRegistry.js +26 -0
- package/dist/recall/TopicSummaryBoard.d.ts +27 -0
- package/dist/recall/TopicSummaryBoard.js +139 -0
- package/dist/recall/VectorCandidateFilter.d.ts +50 -0
- package/dist/recall/VectorCandidateFilter.js +78 -0
- package/dist/retrieval/ConditionDslEvaluator.d.ts +33 -0
- package/dist/retrieval/ConditionDslEvaluator.js +160 -0
- package/dist/retrieval/EntityActivationIndex.d.ts +14 -0
- package/dist/retrieval/EntityActivationIndex.js +19 -0
- package/dist/retrieval/EvidenceFusionPolicy.d.ts +30 -0
- package/dist/retrieval/EvidenceFusionPolicy.js +112 -0
- package/dist/retrieval/EvidenceFusionRanker.d.ts +13 -0
- package/dist/retrieval/EvidenceFusionRanker.js +17 -0
- package/dist/retrieval/NarrativeRecallAssembler.d.ts +32 -0
- package/dist/retrieval/NarrativeRecallAssembler.js +27 -0
- package/dist/retrieval/NativeQueryParser.d.ts +23 -0
- package/dist/retrieval/NativeQueryParser.js +135 -0
- package/dist/retrieval/PlanDslExecutor.d.ts +67 -0
- package/dist/retrieval/PlanDslExecutor.js +194 -0
- package/dist/retrieval/PolicyRuntimeEvaluator.d.ts +48 -0
- package/dist/retrieval/PolicyRuntimeEvaluator.js +96 -0
- package/dist/retrieval/PolicySideEffectExecutor.d.ts +50 -0
- package/dist/retrieval/PolicySideEffectExecutor.js +202 -0
- package/dist/retrieval/PulseRetrievalEngine.d.ts +37 -0
- package/dist/retrieval/PulseRetrievalEngine.js +51 -0
- package/dist/retrieval/QueryCompiler.d.ts +18 -0
- package/dist/retrieval/QueryCompiler.js +97 -0
- package/dist/retrieval/QueryTimePendingEntityResolver.d.ts +67 -0
- package/dist/retrieval/QueryTimePendingEntityResolver.js +260 -0
- package/dist/retrieval/RetrievalPlanner.d.ts +42 -0
- package/dist/retrieval/RetrievalPlanner.js +209 -0
- package/dist/retrieval/TemporalBranchSearch.d.ts +38 -0
- package/dist/retrieval/TemporalBranchSearch.js +109 -0
- package/dist/retrieval/UniverseNavigator.d.ts +43 -0
- package/dist/retrieval/UniverseNavigator.js +75 -0
- package/dist/retrieval/UniverseTraversalExecutor.d.ts +21 -0
- package/dist/retrieval/UniverseTraversalExecutor.js +77 -0
- package/dist/routing/AnswerEvidenceTrace.d.ts +18 -0
- package/dist/routing/AnswerEvidenceTrace.js +1 -0
- package/dist/routing/BrainToolDispatcher.d.ts +37 -0
- package/dist/routing/BrainToolDispatcher.js +163 -0
- package/dist/routing/ConfidenceGate.d.ts +26 -0
- package/dist/routing/ConfidenceGate.js +40 -0
- package/dist/routing/ConfirmationPhraseMatcher.d.ts +9 -0
- package/dist/routing/ConfirmationPhraseMatcher.js +43 -0
- package/dist/routing/DirectReplyFormatter.d.ts +5 -0
- package/dist/routing/DirectReplyFormatter.js +55 -0
- package/dist/routing/EvidenceBudgetManager.d.ts +30 -0
- package/dist/routing/EvidenceBudgetManager.js +55 -0
- package/dist/routing/ExecutionLoop.d.ts +79 -0
- package/dist/routing/ExecutionLoop.js +234 -0
- package/dist/routing/IntentClassifier.d.ts +15 -0
- package/dist/routing/IntentClassifier.js +97 -0
- package/dist/routing/IntentPatternMatcher.d.ts +12 -0
- package/dist/routing/IntentPatternMatcher.js +206 -0
- package/dist/routing/IterativeLLMClarifier.d.ts +80 -0
- package/dist/routing/IterativeLLMClarifier.js +408 -0
- package/dist/routing/LLMToolSchema.d.ts +60 -0
- package/dist/routing/LLMToolSchema.js +143 -0
- package/dist/routing/MessageRouter.d.ts +20 -0
- package/dist/routing/MessageRouter.js +58 -0
- package/dist/routing/SessionContextSelector.d.ts +12 -0
- package/dist/routing/SessionContextSelector.js +86 -0
- package/dist/routing/SystemIntentClassifier.d.ts +15 -0
- package/dist/routing/SystemIntentClassifier.js +50 -0
- package/dist/routing/TaskPlan.d.ts +31 -0
- package/dist/routing/TaskPlan.js +1 -0
- package/dist/routing/TaskRouter.d.ts +13 -0
- package/dist/routing/TaskRouter.js +111 -0
- package/dist/routing/ToolCallParser.d.ts +16 -0
- package/dist/routing/ToolCallParser.js +123 -0
- package/dist/routing/ToolEvidenceNormalizer.d.ts +13 -0
- package/dist/routing/ToolEvidenceNormalizer.js +96 -0
- package/dist/routing/ToolEvidencePack.d.ts +36 -0
- package/dist/routing/ToolEvidencePack.js +84 -0
- package/dist/routing/ToolResultSanitizer.d.ts +19 -0
- package/dist/routing/ToolResultSanitizer.js +58 -0
- package/dist/routing/ToolUsePolicy.d.ts +78 -0
- package/dist/routing/ToolUsePolicy.js +163 -0
- package/dist/routing/index.d.ts +32 -0
- package/dist/routing/index.js +19 -0
- package/dist/routing/templates/ability_template.d.ts +2 -0
- package/dist/routing/templates/ability_template.js +34 -0
- package/dist/routing/templates/approvals_template.d.ts +2 -0
- package/dist/routing/templates/approvals_template.js +43 -0
- package/dist/routing/templates/context_template.d.ts +2 -0
- package/dist/routing/templates/context_template.js +25 -0
- package/dist/routing/templates/contradictions_template.d.ts +2 -0
- package/dist/routing/templates/contradictions_template.js +36 -0
- package/dist/routing/templates/importance_template.d.ts +2 -0
- package/dist/routing/templates/importance_template.js +23 -0
- package/dist/routing/templates/memory_template.d.ts +2 -0
- package/dist/routing/templates/memory_template.js +37 -0
- package/dist/routing/templates/self_manifest_template.d.ts +5 -0
- package/dist/routing/templates/self_manifest_template.js +64 -0
- package/dist/routing/templates/tasks_template.d.ts +2 -0
- package/dist/routing/templates/tasks_template.js +41 -0
- package/dist/routing/templates/trace_template.d.ts +2 -0
- package/dist/routing/templates/trace_template.js +37 -0
- package/dist/routing/tools/EntityExpandTool.d.ts +25 -0
- package/dist/routing/tools/EntityExpandTool.js +59 -0
- package/dist/routing/tools/NeuronContextTool.d.ts +32 -0
- package/dist/routing/tools/NeuronContextTool.js +66 -0
- package/dist/routing/tools/SecondaryRecallTool.d.ts +27 -0
- package/dist/routing/tools/SecondaryRecallTool.js +30 -0
- package/dist/routing/tools/SkillDiscoveryTool.d.ts +13 -0
- package/dist/routing/tools/SkillDiscoveryTool.js +11 -0
- package/dist/snapshot/SnapshotExporter.d.ts +13 -0
- package/dist/snapshot/SnapshotExporter.js +70 -0
- package/dist/snapshot/SnapshotHeader.d.ts +15 -0
- package/dist/snapshot/SnapshotHeader.js +1 -0
- package/dist/snapshot/SnapshotImporter.d.ts +20 -0
- package/dist/snapshot/SnapshotImporter.js +40 -0
- package/dist/snapshot/errors.d.ts +18 -0
- package/dist/snapshot/errors.js +34 -0
- package/dist/snapshot/index.d.ts +5 -0
- package/dist/snapshot/index.js +3 -0
- package/dist/storage/StorageCompactor.d.ts +30 -0
- package/dist/storage/StorageCompactor.js +95 -0
- package/dist/store/ActivationStore.d.ts +45 -0
- package/dist/store/ActivationStore.js +135 -0
- package/dist/store/BackgroundJobStore.d.ts +49 -0
- package/dist/store/BackgroundJobStore.js +156 -0
- package/dist/store/CandidateReviewStore.d.ts +33 -0
- package/dist/store/CandidateReviewStore.js +67 -0
- package/dist/store/CognitiveGraphStore.d.ts +42 -0
- package/dist/store/CognitiveGraphStore.js +193 -0
- package/dist/store/CompilerConfidenceStore.d.ts +20 -0
- package/dist/store/CompilerConfidenceStore.js +76 -0
- package/dist/store/DeepWriteCandidateStore.d.ts +94 -0
- package/dist/store/DeepWriteCandidateStore.js +290 -0
- package/dist/store/DeterministicEmbedder.d.ts +10 -0
- package/dist/store/DeterministicEmbedder.js +24 -0
- package/dist/store/DreamLedgerStore.d.ts +22 -0
- package/dist/store/DreamLedgerStore.js +84 -0
- package/dist/store/Embedder.d.ts +14 -0
- package/dist/store/Embedder.js +52 -0
- package/dist/store/EmbedderFactory.d.ts +12 -0
- package/dist/store/EmbedderFactory.js +51 -0
- package/dist/store/EntityStore.d.ts +195 -0
- package/dist/store/EntityStore.js +941 -0
- package/dist/store/EventStore.d.ts +118 -0
- package/dist/store/EventStore.js +699 -0
- package/dist/store/FactStore.d.ts +76 -0
- package/dist/store/FactStore.js +356 -0
- package/dist/store/HnswlibVectorStore.d.ts +2 -0
- package/dist/store/HnswlibVectorStore.js +1 -0
- package/dist/store/IVectorStore.d.ts +32 -0
- package/dist/store/IVectorStore.js +1 -0
- package/dist/store/InteractionUnitStore.d.ts +52 -0
- package/dist/store/InteractionUnitStore.js +167 -0
- package/dist/store/MemoryAtlasStore.d.ts +60 -0
- package/dist/store/MemoryAtlasStore.js +500 -0
- package/dist/store/MemoryBindingStore.d.ts +77 -0
- package/dist/store/MemoryBindingStore.js +608 -0
- package/dist/store/MemoryGovernanceStore.d.ts +23 -0
- package/dist/store/MemoryGovernanceStore.js +103 -0
- package/dist/store/MemoryInspectionStore.d.ts +61 -0
- package/dist/store/MemoryInspectionStore.js +215 -0
- package/dist/store/PlanRuntimeStore.d.ts +83 -0
- package/dist/store/PlanRuntimeStore.js +257 -0
- package/dist/store/PolicyExecutionProjector.d.ts +17 -0
- package/dist/store/PolicyExecutionProjector.js +115 -0
- package/dist/store/PolicyExecutionStore.d.ts +62 -0
- package/dist/store/PolicyExecutionStore.js +290 -0
- package/dist/store/PolicyProjectionStore.d.ts +18 -0
- package/dist/store/PolicyProjectionStore.js +61 -0
- package/dist/store/ProjectionObservabilityStore.d.ts +38 -0
- package/dist/store/ProjectionObservabilityStore.js +310 -0
- package/dist/store/ReasoningChainStore.d.ts +13 -0
- package/dist/store/ReasoningChainStore.js +74 -0
- package/dist/store/RuntimeProjectionStore.d.ts +18 -0
- package/dist/store/RuntimeProjectionStore.js +61 -0
- package/dist/store/RuntimeProjector.d.ts +17 -0
- package/dist/store/RuntimeProjector.js +119 -0
- package/dist/store/SqliteVecStore.d.ts +25 -0
- package/dist/store/SqliteVecStore.js +126 -0
- package/dist/store/SummaryStore.d.ts +56 -0
- package/dist/store/SummaryStore.js +225 -0
- package/dist/store/TemporalAdjacencyStore.d.ts +49 -0
- package/dist/store/TemporalAdjacencyStore.js +300 -0
- package/dist/store/TopologyStore.d.ts +89 -0
- package/dist/store/TopologyStore.js +657 -0
- package/dist/store/VectorProjector.d.ts +22 -0
- package/dist/store/VectorProjector.js +125 -0
- package/dist/store/VectorStore.d.ts +35 -0
- package/dist/store/VectorStore.js +201 -0
- package/dist/strategy/StrategyCapsule.d.ts +44 -0
- package/dist/strategy/StrategyCapsule.js +1 -0
- package/dist/strategy/StrategyConditionedCandidateBuilder.d.ts +9 -0
- package/dist/strategy/StrategyConditionedCandidateBuilder.js +11 -0
- package/dist/strategy/StrategyContextFormatter.d.ts +3 -0
- package/dist/strategy/StrategyContextFormatter.js +25 -0
- package/dist/strategy/StrategyCortex.d.ts +28 -0
- package/dist/strategy/StrategyCortex.js +78 -0
- package/dist/strategy/StrategyTemplateRegistry.d.ts +9 -0
- package/dist/strategy/StrategyTemplateRegistry.js +78 -0
- package/dist/strategy/index.d.ts +6 -0
- package/dist/strategy/index.js +5 -0
- package/dist/temporal/TemporalMemoryService.d.ts +62 -0
- package/dist/temporal/TemporalMemoryService.js +128 -0
- package/dist/temporal/index.d.ts +2 -0
- package/dist/temporal/index.js +1 -0
- package/dist/topic/TopicAliasRegistry.d.ts +21 -0
- package/dist/topic/TopicAliasRegistry.js +67 -0
- package/dist/topic/TopicGovernance.d.ts +21 -0
- package/dist/topic/TopicGovernance.js +173 -0
- package/dist/topic/TopicPathRegistry.d.ts +36 -0
- package/dist/topic/TopicPathRegistry.js +105 -0
- package/dist/topic/TopicRelationGraph.d.ts +23 -0
- package/dist/topic/TopicRelationGraph.js +55 -0
- package/dist/topic/TopicTypes.d.ts +73 -0
- package/dist/topic/TopicTypes.js +1 -0
- package/dist/topic/index.d.ts +6 -0
- package/dist/topic/index.js +5 -0
- package/dist/types/AsyncEnrichment.d.ts +62 -0
- package/dist/types/AsyncEnrichment.js +7 -0
- package/dist/types/BrainRecallResult.d.ts +66 -0
- package/dist/types/BrainRecallResult.js +1 -0
- package/dist/types/ExtensionPoints.d.ts +116 -0
- package/dist/types/ExtensionPoints.js +1 -0
- package/dist/types/Migration.d.ts +22 -0
- package/dist/types/Migration.js +1 -0
- package/dist/types/QueryTimePendingEntityResolution.d.ts +11 -0
- package/dist/types/QueryTimePendingEntityResolution.js +23 -0
- package/dist/types/index.d.ts +855 -0
- package/dist/types/index.js +24 -0
- package/dist/types/query-ir.d.ts +71 -0
- package/dist/types/query-ir.js +4 -0
- package/dist/types/reasoning.d.ts +16 -0
- package/dist/types/reasoning.js +4 -0
- package/dist/utils/AAAKGenerator.d.ts +57 -0
- package/dist/utils/AAAKGenerator.js +212 -0
- package/dist/utils/Config.d.ts +78 -0
- package/dist/utils/Config.js +91 -0
- package/dist/utils/ConversationMarkdownNormalization.d.ts +88 -0
- package/dist/utils/ConversationMarkdownNormalization.js +567 -0
- package/dist/utils/Logger.d.ts +22 -0
- package/dist/utils/Logger.js +77 -0
- package/dist/utils/hash.d.ts +33 -0
- package/dist/utils/hash.js +53 -0
- package/dist/utils/text.d.ts +2 -0
- package/dist/utils/text.js +19 -0
- package/dist/utils/vector.d.ts +26 -0
- package/dist/utils/vector.js +38 -0
- package/examples/hermes-backend/AGENTS.md +218 -0
- package/examples/hermes-backend/README.md +153 -0
- package/examples/hermes-backend/SKILL.md +365 -0
- package/examples/hermes-backend/references/operations.md +202 -0
- package/examples/openclaw-backend/AGENTS.md +195 -0
- package/examples/openclaw-backend/README.md +228 -0
- package/examples/openclaw-backend/SKILL.md +464 -0
- package/examples/openclaw-backend/references/operations.md +269 -0
- package/install.sh +84 -0
- package/package.json +90 -0
|
@@ -0,0 +1,657 @@
|
|
|
1
|
+
import Database from 'bun:sqlite';
|
|
2
|
+
export class TopologyStore {
|
|
3
|
+
db;
|
|
4
|
+
constructor(dbPath = ':memory:') {
|
|
5
|
+
this.db = new Database(dbPath);
|
|
6
|
+
this.initializeSchema();
|
|
7
|
+
}
|
|
8
|
+
initializeSchema() {
|
|
9
|
+
this.db.exec(`
|
|
10
|
+
CREATE TABLE IF NOT EXISTS time_buckets (
|
|
11
|
+
bucket_id TEXT PRIMARY KEY,
|
|
12
|
+
bucket_type TEXT NOT NULL,
|
|
13
|
+
bucket_start INTEGER NOT NULL,
|
|
14
|
+
bucket_end INTEGER NOT NULL,
|
|
15
|
+
label TEXT NOT NULL
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE TABLE IF NOT EXISTS time_bucket_entries (
|
|
19
|
+
bucket_id TEXT NOT NULL,
|
|
20
|
+
neuron_id TEXT,
|
|
21
|
+
unit_id TEXT,
|
|
22
|
+
belief_id TEXT,
|
|
23
|
+
fact_id TEXT,
|
|
24
|
+
event_id TEXT,
|
|
25
|
+
project_id TEXT,
|
|
26
|
+
created_at INTEGER NOT NULL,
|
|
27
|
+
UNIQUE(bucket_id, neuron_id, unit_id, belief_id, fact_id, event_id)
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
CREATE TABLE IF NOT EXISTS project_branches (
|
|
31
|
+
branch_id TEXT PRIMARY KEY,
|
|
32
|
+
project_id TEXT NOT NULL,
|
|
33
|
+
branch_key TEXT NOT NULL,
|
|
34
|
+
branch_kind TEXT NOT NULL,
|
|
35
|
+
title TEXT NOT NULL,
|
|
36
|
+
created_at INTEGER NOT NULL,
|
|
37
|
+
updated_at INTEGER NOT NULL,
|
|
38
|
+
UNIQUE(project_id, branch_key)
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
CREATE TABLE IF NOT EXISTS branch_links (
|
|
42
|
+
parent_branch_id TEXT NOT NULL,
|
|
43
|
+
child_branch_id TEXT NOT NULL,
|
|
44
|
+
relation_type TEXT NOT NULL,
|
|
45
|
+
created_at INTEGER NOT NULL,
|
|
46
|
+
UNIQUE(parent_branch_id, child_branch_id, relation_type)
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
CREATE TABLE IF NOT EXISTS branch_entries (
|
|
50
|
+
branch_id TEXT NOT NULL,
|
|
51
|
+
neuron_id TEXT,
|
|
52
|
+
unit_id TEXT,
|
|
53
|
+
belief_id TEXT,
|
|
54
|
+
fact_id TEXT,
|
|
55
|
+
event_id TEXT,
|
|
56
|
+
created_at INTEGER NOT NULL,
|
|
57
|
+
UNIQUE(branch_id, neuron_id, unit_id, belief_id, fact_id, event_id)
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
CREATE TABLE IF NOT EXISTS task_branches (
|
|
61
|
+
task_id TEXT PRIMARY KEY,
|
|
62
|
+
project_id TEXT,
|
|
63
|
+
task_key TEXT NOT NULL UNIQUE,
|
|
64
|
+
title TEXT NOT NULL,
|
|
65
|
+
status TEXT NOT NULL,
|
|
66
|
+
created_at INTEGER NOT NULL,
|
|
67
|
+
updated_at INTEGER NOT NULL
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
CREATE TABLE IF NOT EXISTS task_branch_entries (
|
|
71
|
+
task_id TEXT NOT NULL,
|
|
72
|
+
neuron_id TEXT,
|
|
73
|
+
unit_id TEXT,
|
|
74
|
+
belief_id TEXT,
|
|
75
|
+
fact_id TEXT,
|
|
76
|
+
event_id TEXT,
|
|
77
|
+
created_at INTEGER NOT NULL,
|
|
78
|
+
UNIQUE(task_id, neuron_id, unit_id, belief_id, fact_id, event_id)
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
CREATE TABLE IF NOT EXISTS event_clusters (
|
|
82
|
+
cluster_id TEXT PRIMARY KEY,
|
|
83
|
+
project_id TEXT,
|
|
84
|
+
cluster_key TEXT NOT NULL UNIQUE,
|
|
85
|
+
cluster_type TEXT NOT NULL,
|
|
86
|
+
title TEXT NOT NULL,
|
|
87
|
+
created_at INTEGER NOT NULL,
|
|
88
|
+
updated_at INTEGER NOT NULL
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
CREATE TABLE IF NOT EXISTS event_cluster_entries (
|
|
92
|
+
cluster_id TEXT NOT NULL,
|
|
93
|
+
neuron_id TEXT,
|
|
94
|
+
unit_id TEXT,
|
|
95
|
+
belief_id TEXT,
|
|
96
|
+
fact_id TEXT,
|
|
97
|
+
event_id TEXT,
|
|
98
|
+
created_at INTEGER NOT NULL,
|
|
99
|
+
UNIQUE(cluster_id, neuron_id, unit_id, belief_id, fact_id, event_id)
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
CREATE TABLE IF NOT EXISTS topology_membership (
|
|
103
|
+
neuron_id TEXT NOT NULL,
|
|
104
|
+
project_id TEXT,
|
|
105
|
+
dimension_type TEXT NOT NULL,
|
|
106
|
+
dimension_key TEXT NOT NULL,
|
|
107
|
+
title TEXT,
|
|
108
|
+
created_at INTEGER NOT NULL,
|
|
109
|
+
UNIQUE(neuron_id, dimension_type, dimension_key)
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
CREATE INDEX IF NOT EXISTS idx_time_bucket_entries_bucket
|
|
113
|
+
ON time_bucket_entries(bucket_id, created_at DESC);
|
|
114
|
+
CREATE INDEX IF NOT EXISTS idx_project_branches_project
|
|
115
|
+
ON project_branches(project_id, updated_at DESC);
|
|
116
|
+
CREATE INDEX IF NOT EXISTS idx_task_branches_project
|
|
117
|
+
ON task_branches(project_id, updated_at DESC);
|
|
118
|
+
CREATE INDEX IF NOT EXISTS idx_event_clusters_project
|
|
119
|
+
ON event_clusters(project_id, updated_at DESC);
|
|
120
|
+
CREATE INDEX IF NOT EXISTS idx_topology_membership_project
|
|
121
|
+
ON topology_membership(project_id, dimension_type, created_at DESC);
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_topology_membership_dimension
|
|
123
|
+
ON topology_membership(dimension_type, dimension_key, created_at DESC);
|
|
124
|
+
`);
|
|
125
|
+
}
|
|
126
|
+
upsertTimeBucket(bucket) {
|
|
127
|
+
this.db.prepare(`
|
|
128
|
+
INSERT OR REPLACE INTO time_buckets (
|
|
129
|
+
bucket_id, bucket_type, bucket_start, bucket_end, label
|
|
130
|
+
) VALUES (?, ?, ?, ?, ?)
|
|
131
|
+
`).run(bucket.bucketId, bucket.bucketType, bucket.bucketStart, bucket.bucketEnd, bucket.label);
|
|
132
|
+
return bucket;
|
|
133
|
+
}
|
|
134
|
+
attachToTimeBucket(bucketId, ref) {
|
|
135
|
+
this.db.prepare(`
|
|
136
|
+
INSERT OR IGNORE INTO time_bucket_entries (
|
|
137
|
+
bucket_id, neuron_id, unit_id, belief_id, fact_id, event_id, project_id, created_at
|
|
138
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
139
|
+
`).run(bucketId, ref.neuronId || null, ref.unitId || null, ref.beliefId || null, ref.factId || null, ref.eventId || null, ref.projectId || null, ref.createdAt);
|
|
140
|
+
if (ref.neuronId) {
|
|
141
|
+
const row = this.db.prepare(`
|
|
142
|
+
SELECT label FROM time_buckets WHERE bucket_id = ?
|
|
143
|
+
`).get(bucketId);
|
|
144
|
+
this.upsertMembership(ref.neuronId, ref.projectId, 'time_bucket', bucketId, row?.label, ref.createdAt);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
upsertProjectBranch(input) {
|
|
148
|
+
const existing = this.db.prepare(`
|
|
149
|
+
SELECT * FROM project_branches WHERE project_id = ? AND branch_key = ?
|
|
150
|
+
`).get(input.projectId, input.branchKey);
|
|
151
|
+
const branchId = existing?.branch_id || input.branchId;
|
|
152
|
+
const createdAt = existing?.created_at || input.createdAt;
|
|
153
|
+
this.db.prepare(`
|
|
154
|
+
INSERT OR REPLACE INTO project_branches (
|
|
155
|
+
branch_id, project_id, branch_key, branch_kind, title, created_at, updated_at
|
|
156
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
157
|
+
`).run(branchId, input.projectId, input.branchKey, input.branchKind, input.title, createdAt, input.createdAt);
|
|
158
|
+
return {
|
|
159
|
+
branchId,
|
|
160
|
+
projectId: input.projectId,
|
|
161
|
+
branchKey: input.branchKey,
|
|
162
|
+
branchKind: input.branchKind,
|
|
163
|
+
title: input.title,
|
|
164
|
+
createdAt,
|
|
165
|
+
updatedAt: input.createdAt
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
linkBranches(parentBranchId, childBranchId, relationType, createdAt) {
|
|
169
|
+
this.db.prepare(`
|
|
170
|
+
INSERT OR IGNORE INTO branch_links (
|
|
171
|
+
parent_branch_id, child_branch_id, relation_type, created_at
|
|
172
|
+
) VALUES (?, ?, ?, ?)
|
|
173
|
+
`).run(parentBranchId, childBranchId, relationType, createdAt);
|
|
174
|
+
}
|
|
175
|
+
attachToBranch(branchId, ref) {
|
|
176
|
+
this.db.prepare(`
|
|
177
|
+
INSERT OR IGNORE INTO branch_entries (
|
|
178
|
+
branch_id, neuron_id, unit_id, belief_id, fact_id, event_id, created_at
|
|
179
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
180
|
+
`).run(branchId, ref.neuronId || null, ref.unitId || null, ref.beliefId || null, ref.factId || null, ref.eventId || null, ref.createdAt);
|
|
181
|
+
if (ref.neuronId) {
|
|
182
|
+
const row = this.db.prepare(`
|
|
183
|
+
SELECT project_id, branch_key, title FROM project_branches WHERE branch_id = ?
|
|
184
|
+
`).get(branchId);
|
|
185
|
+
this.upsertMembership(ref.neuronId, row?.project_id || undefined, 'project_branch', row?.branch_key || branchId, row?.title, ref.createdAt);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
upsertTaskBranch(input) {
|
|
189
|
+
const existing = this.db.prepare(`
|
|
190
|
+
SELECT * FROM task_branches WHERE task_key = ?
|
|
191
|
+
`).get(input.taskKey);
|
|
192
|
+
const taskId = existing?.task_id || input.taskId;
|
|
193
|
+
const createdAt = existing?.created_at || input.createdAt;
|
|
194
|
+
const status = input.status || 'derived';
|
|
195
|
+
this.db.prepare(`
|
|
196
|
+
INSERT OR REPLACE INTO task_branches (
|
|
197
|
+
task_id, project_id, task_key, title, status, created_at, updated_at
|
|
198
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
199
|
+
`).run(taskId, input.projectId || null, input.taskKey, input.title, status, createdAt, input.createdAt);
|
|
200
|
+
return {
|
|
201
|
+
taskId,
|
|
202
|
+
projectId: input.projectId,
|
|
203
|
+
taskKey: input.taskKey,
|
|
204
|
+
title: input.title,
|
|
205
|
+
status,
|
|
206
|
+
createdAt,
|
|
207
|
+
updatedAt: input.createdAt
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
attachToTask(taskId, ref) {
|
|
211
|
+
this.db.prepare(`
|
|
212
|
+
INSERT OR IGNORE INTO task_branch_entries (
|
|
213
|
+
task_id, neuron_id, unit_id, belief_id, fact_id, event_id, created_at
|
|
214
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
215
|
+
`).run(taskId, ref.neuronId || null, ref.unitId || null, ref.beliefId || null, ref.factId || null, ref.eventId || null, ref.createdAt);
|
|
216
|
+
if (ref.neuronId) {
|
|
217
|
+
const row = this.db.prepare(`
|
|
218
|
+
SELECT project_id, task_key, title FROM task_branches WHERE task_id = ?
|
|
219
|
+
`).get(taskId);
|
|
220
|
+
this.upsertMembership(ref.neuronId, row?.project_id || undefined, 'task_branch', row?.task_key || taskId, row?.title, ref.createdAt);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
upsertEventCluster(input) {
|
|
224
|
+
const existing = this.db.prepare(`
|
|
225
|
+
SELECT * FROM event_clusters WHERE cluster_key = ?
|
|
226
|
+
`).get(input.clusterKey);
|
|
227
|
+
const clusterId = existing?.cluster_id || input.clusterId;
|
|
228
|
+
const createdAt = existing?.created_at || input.createdAt;
|
|
229
|
+
this.db.prepare(`
|
|
230
|
+
INSERT OR REPLACE INTO event_clusters (
|
|
231
|
+
cluster_id, project_id, cluster_key, cluster_type, title, created_at, updated_at
|
|
232
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
233
|
+
`).run(clusterId, input.projectId || null, input.clusterKey, input.clusterType, input.title, createdAt, input.createdAt);
|
|
234
|
+
return {
|
|
235
|
+
clusterId,
|
|
236
|
+
projectId: input.projectId,
|
|
237
|
+
clusterKey: input.clusterKey,
|
|
238
|
+
clusterType: input.clusterType,
|
|
239
|
+
title: input.title,
|
|
240
|
+
createdAt,
|
|
241
|
+
updatedAt: input.createdAt
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
attachToEventCluster(clusterId, ref) {
|
|
245
|
+
this.db.prepare(`
|
|
246
|
+
INSERT OR IGNORE INTO event_cluster_entries (
|
|
247
|
+
cluster_id, neuron_id, unit_id, belief_id, fact_id, event_id, created_at
|
|
248
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
249
|
+
`).run(clusterId, ref.neuronId || null, ref.unitId || null, ref.beliefId || null, ref.factId || null, ref.eventId || null, ref.createdAt);
|
|
250
|
+
if (ref.neuronId) {
|
|
251
|
+
const row = this.db.prepare(`
|
|
252
|
+
SELECT project_id, cluster_key, title FROM event_clusters WHERE cluster_id = ?
|
|
253
|
+
`).get(clusterId);
|
|
254
|
+
this.upsertMembership(ref.neuronId, row?.project_id || undefined, 'event_cluster', row?.cluster_key || clusterId, row?.title, ref.createdAt);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
listProjectBranches(projectId) {
|
|
258
|
+
const rows = this.db.prepare(`
|
|
259
|
+
SELECT * FROM project_branches
|
|
260
|
+
WHERE project_id = ?
|
|
261
|
+
ORDER BY updated_at DESC, created_at DESC
|
|
262
|
+
`).all(projectId);
|
|
263
|
+
return rows.map((row) => ({
|
|
264
|
+
branchId: row.branch_id,
|
|
265
|
+
projectId: row.project_id,
|
|
266
|
+
branchKey: row.branch_key,
|
|
267
|
+
branchKind: row.branch_kind,
|
|
268
|
+
title: row.title,
|
|
269
|
+
createdAt: row.created_at,
|
|
270
|
+
updatedAt: row.updated_at
|
|
271
|
+
}));
|
|
272
|
+
}
|
|
273
|
+
listTaskBranches(projectId) {
|
|
274
|
+
const rows = projectId
|
|
275
|
+
? this.db.prepare(`SELECT * FROM task_branches WHERE project_id = ? ORDER BY updated_at DESC`).all(projectId)
|
|
276
|
+
: this.db.prepare(`SELECT * FROM task_branches ORDER BY updated_at DESC`).all();
|
|
277
|
+
return rows.map((row) => ({
|
|
278
|
+
taskId: row.task_id,
|
|
279
|
+
projectId: row.project_id || undefined,
|
|
280
|
+
taskKey: row.task_key,
|
|
281
|
+
title: row.title,
|
|
282
|
+
status: row.status,
|
|
283
|
+
createdAt: row.created_at,
|
|
284
|
+
updatedAt: row.updated_at
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
listEventClusters(projectId) {
|
|
288
|
+
const rows = projectId
|
|
289
|
+
? this.db.prepare(`SELECT * FROM event_clusters WHERE project_id = ? ORDER BY updated_at DESC`).all(projectId)
|
|
290
|
+
: this.db.prepare(`SELECT * FROM event_clusters ORDER BY updated_at DESC`).all();
|
|
291
|
+
return rows.map((row) => ({
|
|
292
|
+
clusterId: row.cluster_id,
|
|
293
|
+
projectId: row.project_id || undefined,
|
|
294
|
+
clusterKey: row.cluster_key,
|
|
295
|
+
clusterType: row.cluster_type,
|
|
296
|
+
title: row.title,
|
|
297
|
+
createdAt: row.created_at,
|
|
298
|
+
updatedAt: row.updated_at
|
|
299
|
+
}));
|
|
300
|
+
}
|
|
301
|
+
listNeuronIdsByProject(projectId) {
|
|
302
|
+
const rows = this.db.prepare(`
|
|
303
|
+
SELECT DISTINCT neuron_id
|
|
304
|
+
FROM branch_entries be
|
|
305
|
+
JOIN project_branches pb ON pb.branch_id = be.branch_id
|
|
306
|
+
WHERE pb.project_id = ?
|
|
307
|
+
AND neuron_id IS NOT NULL
|
|
308
|
+
ORDER BY be.created_at DESC
|
|
309
|
+
`).all(projectId);
|
|
310
|
+
return rows.map((row) => row.neuron_id).filter((value) => Boolean(value));
|
|
311
|
+
}
|
|
312
|
+
listNeuronIdsByTemporalRange(start, end) {
|
|
313
|
+
const rows = this.db.prepare(`
|
|
314
|
+
SELECT DISTINCT neuron_id
|
|
315
|
+
FROM time_bucket_entries
|
|
316
|
+
WHERE created_at >= ?
|
|
317
|
+
AND created_at <= ?
|
|
318
|
+
AND neuron_id IS NOT NULL
|
|
319
|
+
ORDER BY created_at DESC
|
|
320
|
+
`).all(start, end);
|
|
321
|
+
return rows.map((row) => row.neuron_id).filter((value) => Boolean(value));
|
|
322
|
+
}
|
|
323
|
+
listTimeBucketIdsByNeuronIds(neuronIds, projectId, limit = 80) {
|
|
324
|
+
if (neuronIds.length === 0)
|
|
325
|
+
return [];
|
|
326
|
+
const scopedNeuronIds = Array.from(new Set(neuronIds.filter(Boolean))).slice(0, 200);
|
|
327
|
+
if (scopedNeuronIds.length === 0)
|
|
328
|
+
return [];
|
|
329
|
+
const rowLimit = Math.max(1, Math.min(limit, 200));
|
|
330
|
+
const placeholders = scopedNeuronIds.map(() => '?').join(', ');
|
|
331
|
+
const rows = this.db.prepare(`
|
|
332
|
+
SELECT DISTINCT bucket_id
|
|
333
|
+
FROM time_bucket_entries
|
|
334
|
+
WHERE neuron_id IN (${placeholders})
|
|
335
|
+
AND (? IS NULL OR project_id = ?)
|
|
336
|
+
ORDER BY created_at DESC
|
|
337
|
+
LIMIT ?
|
|
338
|
+
`).all(...scopedNeuronIds, projectId || null, projectId || null, rowLimit);
|
|
339
|
+
return rows.map((row) => row.bucket_id);
|
|
340
|
+
}
|
|
341
|
+
collectCandidateNeuronIds(input) {
|
|
342
|
+
const limit = input.limit ?? 200;
|
|
343
|
+
const collected = new Set();
|
|
344
|
+
const terms = (input.terms || []).map((term) => term.trim().toLowerCase()).filter((term) => term.length >= 2);
|
|
345
|
+
const baseRows = this.db.prepare(`
|
|
346
|
+
SELECT neuron_id
|
|
347
|
+
FROM topology_membership
|
|
348
|
+
WHERE (? IS NULL OR project_id = ?)
|
|
349
|
+
AND (? IS NULL OR created_at >= ?)
|
|
350
|
+
AND (? IS NULL OR created_at <= ?)
|
|
351
|
+
ORDER BY created_at DESC
|
|
352
|
+
LIMIT ?
|
|
353
|
+
`).all(input.projectId ?? null, input.projectId ?? null, input.startTime ?? null, input.startTime ?? null, input.endTime ?? null, input.endTime ?? null, limit * 2);
|
|
354
|
+
for (const row of baseRows) {
|
|
355
|
+
collected.add(row.neuron_id);
|
|
356
|
+
if (collected.size >= limit)
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
for (const term of terms) {
|
|
360
|
+
if (collected.size >= limit)
|
|
361
|
+
break;
|
|
362
|
+
const rows = this.db.prepare(`
|
|
363
|
+
SELECT neuron_id
|
|
364
|
+
FROM topology_membership
|
|
365
|
+
WHERE (? IS NULL OR project_id = ?)
|
|
366
|
+
AND (lower(title) LIKE ? OR lower(dimension_key) LIKE ?)
|
|
367
|
+
ORDER BY created_at DESC
|
|
368
|
+
LIMIT ?
|
|
369
|
+
`).all(input.projectId ?? null, input.projectId ?? null, `%${term}%`, `%${term}%`, limit);
|
|
370
|
+
for (const row of rows) {
|
|
371
|
+
collected.add(row.neuron_id);
|
|
372
|
+
if (collected.size >= limit)
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return Array.from(collected).slice(0, limit);
|
|
377
|
+
}
|
|
378
|
+
collectBranchNavigation(input) {
|
|
379
|
+
const limit = input.limit ?? 120;
|
|
380
|
+
const siblingDepth = Math.max(0, input.siblingDepth ?? 1);
|
|
381
|
+
const terms = (input.terms || []).map((term) => term.trim().toLowerCase()).filter((term) => term.length >= 2);
|
|
382
|
+
const branchIds = new Set();
|
|
383
|
+
const taskIds = new Set();
|
|
384
|
+
const clusterIds = new Set();
|
|
385
|
+
const neuronIds = new Set();
|
|
386
|
+
const addNeuronRows = (rows) => {
|
|
387
|
+
for (const row of rows) {
|
|
388
|
+
if (!row.neuron_id)
|
|
389
|
+
continue;
|
|
390
|
+
neuronIds.add(row.neuron_id);
|
|
391
|
+
if (neuronIds.size >= limit)
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
if (input.projectId) {
|
|
396
|
+
const rootRows = this.db.prepare(`
|
|
397
|
+
SELECT branch_id
|
|
398
|
+
FROM project_branches
|
|
399
|
+
WHERE project_id = ?
|
|
400
|
+
`).all(input.projectId);
|
|
401
|
+
for (const row of rootRows) {
|
|
402
|
+
branchIds.add(row.branch_id);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
for (const term of terms) {
|
|
406
|
+
const branchRows = this.db.prepare(`
|
|
407
|
+
SELECT branch_id
|
|
408
|
+
FROM project_branches
|
|
409
|
+
WHERE (? IS NULL OR project_id = ?)
|
|
410
|
+
AND (lower(title) LIKE ? OR lower(branch_key) LIKE ?)
|
|
411
|
+
ORDER BY updated_at DESC
|
|
412
|
+
LIMIT ?
|
|
413
|
+
`).all(input.projectId || null, input.projectId || null, `%${term}%`, `%${term}%`, limit);
|
|
414
|
+
for (const row of branchRows)
|
|
415
|
+
branchIds.add(row.branch_id);
|
|
416
|
+
const taskRows = this.db.prepare(`
|
|
417
|
+
SELECT task_id
|
|
418
|
+
FROM task_branches
|
|
419
|
+
WHERE (? IS NULL OR project_id = ?)
|
|
420
|
+
AND (lower(title) LIKE ? OR lower(task_key) LIKE ?)
|
|
421
|
+
ORDER BY updated_at DESC
|
|
422
|
+
LIMIT ?
|
|
423
|
+
`).all(input.projectId || null, input.projectId || null, `%${term}%`, `%${term}%`, limit);
|
|
424
|
+
for (const row of taskRows)
|
|
425
|
+
taskIds.add(row.task_id);
|
|
426
|
+
const clusterRows = this.db.prepare(`
|
|
427
|
+
SELECT cluster_id
|
|
428
|
+
FROM event_clusters
|
|
429
|
+
WHERE (? IS NULL OR project_id = ?)
|
|
430
|
+
AND (lower(title) LIKE ? OR lower(cluster_key) LIKE ?)
|
|
431
|
+
ORDER BY updated_at DESC
|
|
432
|
+
LIMIT ?
|
|
433
|
+
`).all(input.projectId || null, input.projectId || null, `%${term}%`, `%${term}%`, limit);
|
|
434
|
+
for (const row of clusterRows)
|
|
435
|
+
clusterIds.add(row.cluster_id);
|
|
436
|
+
}
|
|
437
|
+
if (branchIds.size > 0 && siblingDepth > 0) {
|
|
438
|
+
const frontier = Array.from(branchIds);
|
|
439
|
+
const visited = new Set(frontier);
|
|
440
|
+
for (let depth = 0; depth < siblingDepth; depth += 1) {
|
|
441
|
+
const next = [];
|
|
442
|
+
for (const branchId of frontier) {
|
|
443
|
+
const linked = this.db.prepare(`
|
|
444
|
+
SELECT parent_branch_id, child_branch_id
|
|
445
|
+
FROM branch_links
|
|
446
|
+
WHERE parent_branch_id = ? OR child_branch_id = ?
|
|
447
|
+
`).all(branchId, branchId);
|
|
448
|
+
for (const row of linked) {
|
|
449
|
+
const candidates = [row.parent_branch_id, row.child_branch_id];
|
|
450
|
+
for (const candidate of candidates) {
|
|
451
|
+
if (visited.has(candidate))
|
|
452
|
+
continue;
|
|
453
|
+
visited.add(candidate);
|
|
454
|
+
branchIds.add(candidate);
|
|
455
|
+
next.push(candidate);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
frontier.splice(0, frontier.length, ...next);
|
|
460
|
+
if (frontier.length === 0)
|
|
461
|
+
break;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
if (branchIds.size > 0) {
|
|
465
|
+
const placeholders = Array.from(branchIds).map(() => '?').join(', ');
|
|
466
|
+
addNeuronRows(this.db.prepare(`
|
|
467
|
+
SELECT DISTINCT neuron_id
|
|
468
|
+
FROM branch_entries
|
|
469
|
+
WHERE branch_id IN (${placeholders})
|
|
470
|
+
AND neuron_id IS NOT NULL
|
|
471
|
+
ORDER BY created_at DESC
|
|
472
|
+
LIMIT ?
|
|
473
|
+
`).all(...Array.from(branchIds), limit));
|
|
474
|
+
}
|
|
475
|
+
if (taskIds.size > 0) {
|
|
476
|
+
const placeholders = Array.from(taskIds).map(() => '?').join(', ');
|
|
477
|
+
addNeuronRows(this.db.prepare(`
|
|
478
|
+
SELECT DISTINCT neuron_id
|
|
479
|
+
FROM task_branch_entries
|
|
480
|
+
WHERE task_id IN (${placeholders})
|
|
481
|
+
AND neuron_id IS NOT NULL
|
|
482
|
+
ORDER BY created_at DESC
|
|
483
|
+
LIMIT ?
|
|
484
|
+
`).all(...Array.from(taskIds), limit));
|
|
485
|
+
}
|
|
486
|
+
if (clusterIds.size > 0) {
|
|
487
|
+
const placeholders = Array.from(clusterIds).map(() => '?').join(', ');
|
|
488
|
+
addNeuronRows(this.db.prepare(`
|
|
489
|
+
SELECT DISTINCT neuron_id
|
|
490
|
+
FROM event_cluster_entries
|
|
491
|
+
WHERE cluster_id IN (${placeholders})
|
|
492
|
+
AND neuron_id IS NOT NULL
|
|
493
|
+
ORDER BY created_at DESC
|
|
494
|
+
LIMIT ?
|
|
495
|
+
`).all(...Array.from(clusterIds), limit));
|
|
496
|
+
}
|
|
497
|
+
return {
|
|
498
|
+
branchIds: Array.from(branchIds).slice(0, limit),
|
|
499
|
+
taskIds: Array.from(taskIds).slice(0, limit),
|
|
500
|
+
clusterIds: Array.from(clusterIds).slice(0, limit),
|
|
501
|
+
neuronIds: Array.from(neuronIds).slice(0, limit)
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
collectNavigationFromNeuronIds(input) {
|
|
505
|
+
const limit = input.limit ?? 120;
|
|
506
|
+
const siblingDepth = Math.max(0, input.siblingDepth ?? 1);
|
|
507
|
+
if (input.neuronIds.length === 0) {
|
|
508
|
+
return { branchIds: [], taskIds: [], clusterIds: [], neuronIds: [] };
|
|
509
|
+
}
|
|
510
|
+
const branchIds = new Set();
|
|
511
|
+
const taskIds = new Set();
|
|
512
|
+
const clusterIds = new Set();
|
|
513
|
+
const neuronIds = new Set(input.neuronIds);
|
|
514
|
+
const placeholders = input.neuronIds.map(() => '?').join(', ');
|
|
515
|
+
const branchRows = this.db.prepare(`
|
|
516
|
+
SELECT DISTINCT be.branch_id
|
|
517
|
+
FROM branch_entries be
|
|
518
|
+
JOIN project_branches pb ON pb.branch_id = be.branch_id
|
|
519
|
+
WHERE be.neuron_id IN (${placeholders})
|
|
520
|
+
AND (? IS NULL OR pb.project_id = ?)
|
|
521
|
+
ORDER BY be.created_at DESC
|
|
522
|
+
LIMIT ?
|
|
523
|
+
`).all(...input.neuronIds, input.projectId || null, input.projectId || null, limit);
|
|
524
|
+
for (const row of branchRows)
|
|
525
|
+
branchIds.add(row.branch_id);
|
|
526
|
+
const taskRows = this.db.prepare(`
|
|
527
|
+
SELECT DISTINCT tbe.task_id
|
|
528
|
+
FROM task_branch_entries tbe
|
|
529
|
+
JOIN task_branches tb ON tb.task_id = tbe.task_id
|
|
530
|
+
WHERE tbe.neuron_id IN (${placeholders})
|
|
531
|
+
AND (? IS NULL OR tb.project_id = ?)
|
|
532
|
+
ORDER BY tbe.created_at DESC
|
|
533
|
+
LIMIT ?
|
|
534
|
+
`).all(...input.neuronIds, input.projectId || null, input.projectId || null, limit);
|
|
535
|
+
for (const row of taskRows)
|
|
536
|
+
taskIds.add(row.task_id);
|
|
537
|
+
const clusterRows = this.db.prepare(`
|
|
538
|
+
SELECT DISTINCT ece.cluster_id
|
|
539
|
+
FROM event_cluster_entries ece
|
|
540
|
+
JOIN event_clusters ec ON ec.cluster_id = ece.cluster_id
|
|
541
|
+
WHERE ece.neuron_id IN (${placeholders})
|
|
542
|
+
AND (? IS NULL OR ec.project_id = ?)
|
|
543
|
+
ORDER BY ece.created_at DESC
|
|
544
|
+
LIMIT ?
|
|
545
|
+
`).all(...input.neuronIds, input.projectId || null, input.projectId || null, limit);
|
|
546
|
+
for (const row of clusterRows)
|
|
547
|
+
clusterIds.add(row.cluster_id);
|
|
548
|
+
if (branchIds.size > 0 && siblingDepth > 0) {
|
|
549
|
+
const frontier = Array.from(branchIds);
|
|
550
|
+
const visited = new Set(frontier);
|
|
551
|
+
for (let depth = 0; depth < siblingDepth; depth += 1) {
|
|
552
|
+
const next = [];
|
|
553
|
+
for (const branchId of frontier) {
|
|
554
|
+
const linked = this.db.prepare(`
|
|
555
|
+
SELECT parent_branch_id, child_branch_id
|
|
556
|
+
FROM branch_links
|
|
557
|
+
WHERE parent_branch_id = ? OR child_branch_id = ?
|
|
558
|
+
`).all(branchId, branchId);
|
|
559
|
+
for (const row of linked) {
|
|
560
|
+
for (const candidate of [row.parent_branch_id, row.child_branch_id]) {
|
|
561
|
+
if (visited.has(candidate))
|
|
562
|
+
continue;
|
|
563
|
+
visited.add(candidate);
|
|
564
|
+
branchIds.add(candidate);
|
|
565
|
+
next.push(candidate);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
frontier.splice(0, frontier.length, ...next);
|
|
570
|
+
if (frontier.length === 0)
|
|
571
|
+
break;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
if (branchIds.size > 0) {
|
|
575
|
+
const placeholders2 = Array.from(branchIds).map(() => '?').join(', ');
|
|
576
|
+
const rows = this.db.prepare(`
|
|
577
|
+
SELECT DISTINCT neuron_id
|
|
578
|
+
FROM branch_entries
|
|
579
|
+
WHERE branch_id IN (${placeholders2})
|
|
580
|
+
AND neuron_id IS NOT NULL
|
|
581
|
+
ORDER BY created_at DESC
|
|
582
|
+
LIMIT ?
|
|
583
|
+
`).all(...Array.from(branchIds), limit);
|
|
584
|
+
for (const row of rows) {
|
|
585
|
+
if (row.neuron_id)
|
|
586
|
+
neuronIds.add(row.neuron_id);
|
|
587
|
+
if (neuronIds.size >= limit)
|
|
588
|
+
break;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
return {
|
|
592
|
+
branchIds: Array.from(branchIds).slice(0, limit),
|
|
593
|
+
taskIds: Array.from(taskIds).slice(0, limit),
|
|
594
|
+
clusterIds: Array.from(clusterIds).slice(0, limit),
|
|
595
|
+
neuronIds: Array.from(neuronIds).slice(0, limit)
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
collectTemporalContext(input) {
|
|
599
|
+
const limit = input.limit ?? 120;
|
|
600
|
+
const bucketType = input.preferredBucketType ?? 'day';
|
|
601
|
+
const rows = this.db.prepare(`
|
|
602
|
+
SELECT tb.bucket_id, tb.label, tbe.neuron_id
|
|
603
|
+
FROM time_bucket_entries tbe
|
|
604
|
+
JOIN time_buckets tb ON tb.bucket_id = tbe.bucket_id
|
|
605
|
+
WHERE tb.bucket_type = ?
|
|
606
|
+
AND (? IS NULL OR tbe.created_at >= ?)
|
|
607
|
+
AND (? IS NULL OR tbe.created_at <= ?)
|
|
608
|
+
ORDER BY tb.bucket_start DESC, tbe.created_at DESC
|
|
609
|
+
LIMIT ?
|
|
610
|
+
`).all(bucketType, input.startTime ?? null, input.startTime ?? null, input.endTime ?? null, input.endTime ?? null, limit * 4);
|
|
611
|
+
const bucketIds = [];
|
|
612
|
+
const bucketLabels = [];
|
|
613
|
+
const neuronIds = [];
|
|
614
|
+
const seenBuckets = new Set();
|
|
615
|
+
const seenNeurons = new Set();
|
|
616
|
+
for (const row of rows) {
|
|
617
|
+
if (!seenBuckets.has(row.bucket_id)) {
|
|
618
|
+
seenBuckets.add(row.bucket_id);
|
|
619
|
+
bucketIds.push(row.bucket_id);
|
|
620
|
+
bucketLabels.push(row.label);
|
|
621
|
+
}
|
|
622
|
+
if (row.neuron_id && !seenNeurons.has(row.neuron_id)) {
|
|
623
|
+
seenNeurons.add(row.neuron_id);
|
|
624
|
+
neuronIds.push(row.neuron_id);
|
|
625
|
+
}
|
|
626
|
+
if (neuronIds.length >= limit && bucketIds.length >= Math.min(limit, 12))
|
|
627
|
+
break;
|
|
628
|
+
}
|
|
629
|
+
return {
|
|
630
|
+
bucketType,
|
|
631
|
+
bucketIds: bucketIds.slice(0, limit),
|
|
632
|
+
bucketLabels: bucketLabels.slice(0, 12),
|
|
633
|
+
neuronIds: neuronIds.slice(0, limit)
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
getTimeBucketEntryCount(bucketType, start) {
|
|
637
|
+
const bucketId = `${bucketType}:${start}`;
|
|
638
|
+
const row = this.db.prepare(`
|
|
639
|
+
SELECT COUNT(*) AS count FROM time_bucket_entries WHERE bucket_id = ?
|
|
640
|
+
`).get(bucketId);
|
|
641
|
+
return row?.count || 0;
|
|
642
|
+
}
|
|
643
|
+
getMaterializedMembershipCount() {
|
|
644
|
+
const row = this.db.prepare(`SELECT COUNT(*) AS count FROM topology_membership`).get();
|
|
645
|
+
return row?.count || 0;
|
|
646
|
+
}
|
|
647
|
+
upsertMembership(neuronId, projectId, dimensionType, dimensionKey, title, createdAt) {
|
|
648
|
+
this.db.prepare(`
|
|
649
|
+
INSERT OR IGNORE INTO topology_membership (
|
|
650
|
+
neuron_id, project_id, dimension_type, dimension_key, title, created_at
|
|
651
|
+
) VALUES (?, ?, ?, ?, ?, ?)
|
|
652
|
+
`).run(neuronId, projectId || null, dimensionType, dimensionKey, title || null, createdAt);
|
|
653
|
+
}
|
|
654
|
+
close() {
|
|
655
|
+
this.db.close();
|
|
656
|
+
}
|
|
657
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MemoryEvent } from '../types/index.js';
|
|
2
|
+
import { MemoryGraph } from '../core/MemoryGraph.js';
|
|
3
|
+
import { EventStore } from './EventStore.js';
|
|
4
|
+
import type { IVectorStore } from './IVectorStore.js';
|
|
5
|
+
/**
|
|
6
|
+
* 基于 memory_events 的最小向量投影器。
|
|
7
|
+
* 目标:
|
|
8
|
+
* - 启动时优先 replay 增量事件
|
|
9
|
+
* - 只有在 checkpoint 不可信时才 full rebuild
|
|
10
|
+
*/
|
|
11
|
+
export declare class VectorProjector {
|
|
12
|
+
private eventStore;
|
|
13
|
+
private memoryGraph;
|
|
14
|
+
private vectorStore;
|
|
15
|
+
private projectionName;
|
|
16
|
+
constructor(eventStore: EventStore, memoryGraph: MemoryGraph, vectorStore: IVectorStore, projectionName?: string);
|
|
17
|
+
bootstrap(): Promise<void>;
|
|
18
|
+
fullRebuild(reason: string): Promise<void>;
|
|
19
|
+
replay(events: MemoryEvent[], previousRebuildAt?: number): Promise<void>;
|
|
20
|
+
private applyEvent;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=VectorProjector.d.ts.map
|