@framers/agentos 0.1.46 → 0.1.48
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 +7 -7
- package/dist/cognitive_substrate/IGMI.d.ts +2 -0
- package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
- package/dist/cognitive_substrate/IGMI.js.map +1 -1
- package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts +2 -0
- package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts.map +1 -1
- package/dist/core/audio/AdaptiveVAD.d.ts +147 -0
- package/dist/core/audio/AdaptiveVAD.d.ts.map +1 -0
- package/dist/core/audio/AdaptiveVAD.js +239 -0
- package/dist/core/audio/AdaptiveVAD.js.map +1 -0
- package/dist/core/audio/AudioProcessor.d.ts +121 -0
- package/dist/core/audio/AudioProcessor.d.ts.map +1 -0
- package/dist/core/audio/AudioProcessor.js +299 -0
- package/dist/core/audio/AudioProcessor.js.map +1 -0
- package/dist/core/audio/EnvironmentalCalibrator.d.ts +187 -0
- package/dist/core/audio/EnvironmentalCalibrator.d.ts.map +1 -0
- package/dist/core/audio/EnvironmentalCalibrator.js +360 -0
- package/dist/core/audio/EnvironmentalCalibrator.js.map +1 -0
- package/dist/core/audio/SilenceDetector.d.ts +111 -0
- package/dist/core/audio/SilenceDetector.d.ts.map +1 -0
- package/dist/core/audio/SilenceDetector.js +178 -0
- package/dist/core/audio/SilenceDetector.js.map +1 -0
- package/dist/core/llm/IPromptEngine.d.ts +2 -0
- package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
- package/dist/core/llm/IPromptEngine.js.map +1 -1
- package/dist/core/llm/providers/implementations/OllamaProvider.js +2 -2
- package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.js +8 -1
- package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -1
- package/dist/discovery/CapabilityIndex.d.ts.map +1 -1
- package/dist/discovery/CapabilityIndex.js +18 -4
- package/dist/discovery/CapabilityIndex.js.map +1 -1
- package/dist/extensions/ExtensionManager.d.ts.map +1 -1
- package/dist/extensions/ExtensionManager.js +9 -1
- package/dist/extensions/ExtensionManager.js.map +1 -1
- package/dist/extensions/types.d.ts +20 -2
- package/dist/extensions/types.d.ts.map +1 -1
- package/dist/extensions/types.js +4 -0
- package/dist/extensions/types.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/CognitiveMemoryManager.d.ts +133 -0
- package/dist/memory/CognitiveMemoryManager.d.ts.map +1 -0
- package/dist/memory/CognitiveMemoryManager.js +519 -0
- package/dist/memory/CognitiveMemoryManager.js.map +1 -0
- package/dist/memory/config.d.ts +135 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/config.js +28 -0
- package/dist/memory/config.js.map +1 -0
- package/dist/memory/consolidation/ConsolidationPipeline.d.ts +70 -0
- package/dist/memory/consolidation/ConsolidationPipeline.d.ts.map +1 -0
- package/dist/memory/consolidation/ConsolidationPipeline.js +301 -0
- package/dist/memory/consolidation/ConsolidationPipeline.js.map +1 -0
- package/dist/memory/context/CompactionEngine.d.ts +21 -0
- package/dist/memory/context/CompactionEngine.d.ts.map +1 -0
- package/dist/memory/context/CompactionEngine.js +35 -0
- package/dist/memory/context/CompactionEngine.js.map +1 -0
- package/dist/memory/context/CompactionLog.d.ts +50 -0
- package/dist/memory/context/CompactionLog.d.ts.map +1 -0
- package/dist/memory/context/CompactionLog.js +139 -0
- package/dist/memory/context/CompactionLog.js.map +1 -0
- package/dist/memory/context/ContextWindowManager.d.ts +114 -0
- package/dist/memory/context/ContextWindowManager.d.ts.map +1 -0
- package/dist/memory/context/ContextWindowManager.js +225 -0
- package/dist/memory/context/ContextWindowManager.js.map +1 -0
- package/dist/memory/context/RollingSummaryChain.d.ts +53 -0
- package/dist/memory/context/RollingSummaryChain.d.ts.map +1 -0
- package/dist/memory/context/RollingSummaryChain.js +193 -0
- package/dist/memory/context/RollingSummaryChain.js.map +1 -0
- package/dist/memory/context/index.d.ts +15 -0
- package/dist/memory/context/index.d.ts.map +1 -0
- package/dist/memory/context/index.js +14 -0
- package/dist/memory/context/index.js.map +1 -0
- package/dist/memory/context/strategies/HierarchicalStrategy.d.ts +25 -0
- package/dist/memory/context/strategies/HierarchicalStrategy.d.ts.map +1 -0
- package/dist/memory/context/strategies/HierarchicalStrategy.js +240 -0
- package/dist/memory/context/strategies/HierarchicalStrategy.js.map +1 -0
- package/dist/memory/context/strategies/HybridStrategy.d.ts +26 -0
- package/dist/memory/context/strategies/HybridStrategy.d.ts.map +1 -0
- package/dist/memory/context/strategies/HybridStrategy.js +245 -0
- package/dist/memory/context/strategies/HybridStrategy.js.map +1 -0
- package/dist/memory/context/strategies/SlidingSummaryStrategy.d.ts +22 -0
- package/dist/memory/context/strategies/SlidingSummaryStrategy.d.ts.map +1 -0
- package/dist/memory/context/strategies/SlidingSummaryStrategy.js +203 -0
- package/dist/memory/context/strategies/SlidingSummaryStrategy.js.map +1 -0
- package/dist/memory/context/types.d.ts +120 -0
- package/dist/memory/context/types.d.ts.map +1 -0
- package/dist/memory/context/types.js +17 -0
- package/dist/memory/context/types.js.map +1 -0
- package/dist/memory/decay/DecayModel.d.ts +87 -0
- package/dist/memory/decay/DecayModel.d.ts.map +1 -0
- package/dist/memory/decay/DecayModel.js +117 -0
- package/dist/memory/decay/DecayModel.js.map +1 -0
- package/dist/memory/decay/RetrievalPriorityScorer.d.ts +63 -0
- package/dist/memory/decay/RetrievalPriorityScorer.d.ts.map +1 -0
- package/dist/memory/decay/RetrievalPriorityScorer.js +110 -0
- package/dist/memory/decay/RetrievalPriorityScorer.js.map +1 -0
- package/dist/memory/encoding/ContentFeatureDetector.d.ts +37 -0
- package/dist/memory/encoding/ContentFeatureDetector.d.ts.map +1 -0
- package/dist/memory/encoding/ContentFeatureDetector.js +176 -0
- package/dist/memory/encoding/ContentFeatureDetector.js.map +1 -0
- package/dist/memory/encoding/EncodingModel.d.ts +67 -0
- package/dist/memory/encoding/EncodingModel.d.ts.map +1 -0
- package/dist/memory/encoding/EncodingModel.js +171 -0
- package/dist/memory/encoding/EncodingModel.js.map +1 -0
- package/dist/memory/extension/CognitiveMemoryExtension.d.ts +18 -0
- package/dist/memory/extension/CognitiveMemoryExtension.d.ts.map +1 -0
- package/dist/memory/extension/CognitiveMemoryExtension.js +131 -0
- package/dist/memory/extension/CognitiveMemoryExtension.js.map +1 -0
- package/dist/memory/graph/GraphologyMemoryGraph.d.ts +29 -0
- package/dist/memory/graph/GraphologyMemoryGraph.d.ts.map +1 -0
- package/dist/memory/graph/GraphologyMemoryGraph.js +224 -0
- package/dist/memory/graph/GraphologyMemoryGraph.js.map +1 -0
- package/dist/memory/graph/IMemoryGraph.d.ts +70 -0
- package/dist/memory/graph/IMemoryGraph.d.ts.map +1 -0
- package/dist/memory/graph/IMemoryGraph.js +15 -0
- package/dist/memory/graph/IMemoryGraph.js.map +1 -0
- package/dist/memory/graph/KnowledgeGraphMemoryGraph.d.ts +38 -0
- package/dist/memory/graph/KnowledgeGraphMemoryGraph.d.ts.map +1 -0
- package/dist/memory/graph/KnowledgeGraphMemoryGraph.js +264 -0
- package/dist/memory/graph/KnowledgeGraphMemoryGraph.js.map +1 -0
- package/dist/memory/graph/SpreadingActivation.d.ts +36 -0
- package/dist/memory/graph/SpreadingActivation.d.ts.map +1 -0
- package/dist/memory/graph/SpreadingActivation.js +100 -0
- package/dist/memory/graph/SpreadingActivation.js.map +1 -0
- package/dist/memory/index.d.ts +52 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +43 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/observation/MemoryObserver.d.ts +59 -0
- package/dist/memory/observation/MemoryObserver.d.ts.map +1 -0
- package/dist/memory/observation/MemoryObserver.js +136 -0
- package/dist/memory/observation/MemoryObserver.js.map +1 -0
- package/dist/memory/observation/MemoryReflector.d.ts +51 -0
- package/dist/memory/observation/MemoryReflector.d.ts.map +1 -0
- package/dist/memory/observation/MemoryReflector.js +184 -0
- package/dist/memory/observation/MemoryReflector.js.map +1 -0
- package/dist/memory/observation/ObservationBuffer.d.ts +51 -0
- package/dist/memory/observation/ObservationBuffer.d.ts.map +1 -0
- package/dist/memory/observation/ObservationBuffer.js +81 -0
- package/dist/memory/observation/ObservationBuffer.js.map +1 -0
- package/dist/memory/prompt/MemoryFormatters.d.ts +22 -0
- package/dist/memory/prompt/MemoryFormatters.d.ts.map +1 -0
- package/dist/memory/prompt/MemoryFormatters.js +113 -0
- package/dist/memory/prompt/MemoryFormatters.js.map +1 -0
- package/dist/memory/prompt/MemoryPromptAssembler.d.ts +40 -0
- package/dist/memory/prompt/MemoryPromptAssembler.d.ts.map +1 -0
- package/dist/memory/prompt/MemoryPromptAssembler.js +180 -0
- package/dist/memory/prompt/MemoryPromptAssembler.js.map +1 -0
- package/dist/memory/prospective/ProspectiveMemoryManager.d.ts +83 -0
- package/dist/memory/prospective/ProspectiveMemoryManager.d.ts.map +1 -0
- package/dist/memory/prospective/ProspectiveMemoryManager.js +128 -0
- package/dist/memory/prospective/ProspectiveMemoryManager.js.map +1 -0
- package/dist/memory/store/MemoryStore.d.ts +76 -0
- package/dist/memory/store/MemoryStore.d.ts.map +1 -0
- package/dist/memory/store/MemoryStore.js +320 -0
- package/dist/memory/store/MemoryStore.js.map +1 -0
- package/dist/memory/types.d.ts +184 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +14 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/working/CognitiveWorkingMemory.d.ts +87 -0
- package/dist/memory/working/CognitiveWorkingMemory.d.ts.map +1 -0
- package/dist/memory/working/CognitiveWorkingMemory.js +230 -0
- package/dist/memory/working/CognitiveWorkingMemory.js.map +1 -0
- package/dist/rag/EmbeddingManager.d.ts.map +1 -1
- package/dist/rag/EmbeddingManager.js +8 -1
- package/dist/rag/EmbeddingManager.js.map +1 -1
- package/dist/rag/HydeRetriever.d.ts +111 -0
- package/dist/rag/HydeRetriever.d.ts.map +1 -0
- package/dist/rag/HydeRetriever.js +143 -0
- package/dist/rag/HydeRetriever.js.map +1 -0
- package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
- package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/index.d.ts +1 -0
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +2 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/speech/SpeechProviderRegistry.d.ts +17 -0
- package/dist/speech/SpeechProviderRegistry.d.ts.map +1 -0
- package/dist/speech/SpeechProviderRegistry.js +47 -0
- package/dist/speech/SpeechProviderRegistry.js.map +1 -0
- package/dist/speech/SpeechRuntime.d.ts +30 -0
- package/dist/speech/SpeechRuntime.d.ts.map +1 -0
- package/dist/speech/SpeechRuntime.js +156 -0
- package/dist/speech/SpeechRuntime.js.map +1 -0
- package/dist/speech/SpeechSession.d.ts +37 -0
- package/dist/speech/SpeechSession.d.ts.map +1 -0
- package/dist/speech/SpeechSession.js +285 -0
- package/dist/speech/SpeechSession.js.map +1 -0
- package/dist/speech/audio.d.ts +3 -0
- package/dist/speech/audio.d.ts.map +1 -0
- package/dist/speech/audio.js +39 -0
- package/dist/speech/audio.js.map +1 -0
- package/dist/speech/index.d.ts +11 -0
- package/dist/speech/index.d.ts.map +1 -0
- package/dist/speech/index.js +11 -0
- package/dist/speech/index.js.map +1 -0
- package/dist/speech/providerCatalog.d.ts +7 -0
- package/dist/speech/providerCatalog.d.ts.map +1 -0
- package/dist/speech/providerCatalog.js +243 -0
- package/dist/speech/providerCatalog.js.map +1 -0
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +20 -0
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts.map +1 -0
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.js +29 -0
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.js.map +1 -0
- package/dist/speech/providers/ElevenLabsTextToSpeechProvider.d.ts +20 -0
- package/dist/speech/providers/ElevenLabsTextToSpeechProvider.d.ts.map +1 -0
- package/dist/speech/providers/ElevenLabsTextToSpeechProvider.js +95 -0
- package/dist/speech/providers/ElevenLabsTextToSpeechProvider.js.map +1 -0
- package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts +20 -0
- package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts.map +1 -0
- package/dist/speech/providers/OpenAITextToSpeechProvider.js +75 -0
- package/dist/speech/providers/OpenAITextToSpeechProvider.js.map +1 -0
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts +18 -0
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -0
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js +109 -0
- package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -0
- package/dist/speech/types.d.ts +272 -0
- package/dist/speech/types.d.ts.map +1 -0
- package/dist/speech/types.js +2 -0
- package/dist/speech/types.js.map +1 -0
- package/package.json +22 -2
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Configuration types for the Cognitive Memory System.
|
|
3
|
+
* @module agentos/memory/config
|
|
4
|
+
*/
|
|
5
|
+
import type { IWorkingMemory } from '../cognitive_substrate/memory/IWorkingMemory.js';
|
|
6
|
+
import type { IKnowledgeGraph } from '../core/knowledge/IKnowledgeGraph.js';
|
|
7
|
+
import type { IVectorStore } from '../rag/IVectorStore.js';
|
|
8
|
+
import type { IEmbeddingManager } from '../rag/IEmbeddingManager.js';
|
|
9
|
+
import type { MemoryBudgetAllocation } from './types.js';
|
|
10
|
+
import type { InfiniteContextConfig } from './context/types.js';
|
|
11
|
+
/** Pleasure-Arousal-Dominance emotional state. */
|
|
12
|
+
export interface PADState {
|
|
13
|
+
valence: number;
|
|
14
|
+
arousal: number;
|
|
15
|
+
dominance: number;
|
|
16
|
+
}
|
|
17
|
+
export interface HexacoTraits {
|
|
18
|
+
honesty?: number;
|
|
19
|
+
emotionality?: number;
|
|
20
|
+
extraversion?: number;
|
|
21
|
+
agreeableness?: number;
|
|
22
|
+
conscientiousness?: number;
|
|
23
|
+
openness?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface EncodingConfig {
|
|
26
|
+
/** Base encoding strength before personality modulation. @default 0.5 */
|
|
27
|
+
baseStrength: number;
|
|
28
|
+
/** Emotional intensity threshold for flashbulb memory. @default 0.8 */
|
|
29
|
+
flashbulbThreshold: number;
|
|
30
|
+
/** Strength multiplier for flashbulb memories. @default 2.0 */
|
|
31
|
+
flashbulbStrengthMultiplier: number;
|
|
32
|
+
/** Stability multiplier for flashbulb memories. @default 5.0 */
|
|
33
|
+
flashbulbStabilityMultiplier: number;
|
|
34
|
+
/** Base stability in ms (how long before strength halves). @default 3_600_000 (1 hour) */
|
|
35
|
+
baseStabilityMs: number;
|
|
36
|
+
}
|
|
37
|
+
export interface DecayConfig {
|
|
38
|
+
/** Minimum strength before a trace is soft-deleted. @default 0.05 */
|
|
39
|
+
pruningThreshold: number;
|
|
40
|
+
/** Half-life for recency boost (ms). @default 86_400_000 (24 hours) */
|
|
41
|
+
recencyHalfLifeMs: number;
|
|
42
|
+
/** Cosine similarity threshold for interference detection. @default 0.7 */
|
|
43
|
+
interferenceThreshold: number;
|
|
44
|
+
}
|
|
45
|
+
export interface ObserverConfig {
|
|
46
|
+
/** Token threshold before observer activates. @default 30_000 */
|
|
47
|
+
activationThresholdTokens: number;
|
|
48
|
+
/** LLM model ID for observation extraction (per-persona). */
|
|
49
|
+
modelId?: string;
|
|
50
|
+
/** LLM invoker function. */
|
|
51
|
+
llmInvoker?: (systemPrompt: string, userPrompt: string) => Promise<string>;
|
|
52
|
+
}
|
|
53
|
+
export interface ReflectorConfig {
|
|
54
|
+
/** Token threshold for notes before reflection triggers. @default 40_000 */
|
|
55
|
+
activationThresholdTokens: number;
|
|
56
|
+
/** LLM model ID for reflection/consolidation (per-persona). */
|
|
57
|
+
modelId?: string;
|
|
58
|
+
/** LLM invoker function. */
|
|
59
|
+
llmInvoker?: (systemPrompt: string, userPrompt: string) => Promise<string>;
|
|
60
|
+
}
|
|
61
|
+
export interface MemoryGraphConfig {
|
|
62
|
+
/** Which backend to use. @default 'knowledge-graph' */
|
|
63
|
+
backend: 'graphology' | 'knowledge-graph';
|
|
64
|
+
/** Max hops for spreading activation. @default 3 */
|
|
65
|
+
maxDepth: number;
|
|
66
|
+
/** Activation decay per hop. @default 0.5 */
|
|
67
|
+
decayPerHop: number;
|
|
68
|
+
/** Minimum activation to continue spreading. @default 0.1 */
|
|
69
|
+
activationThreshold: number;
|
|
70
|
+
/** Hebbian learning rate for co-activation edge strengthening. @default 0.1 */
|
|
71
|
+
hebbianLearningRate: number;
|
|
72
|
+
}
|
|
73
|
+
export interface ConsolidationConfig {
|
|
74
|
+
/** How often to run consolidation (ms). @default 3_600_000 (1 hour) */
|
|
75
|
+
intervalMs: number;
|
|
76
|
+
/** Max traces to process per cycle. @default 500 */
|
|
77
|
+
maxTracesPerCycle: number;
|
|
78
|
+
/** Similarity threshold for merging redundant traces. @default 0.92 */
|
|
79
|
+
mergeSimilarityThreshold: number;
|
|
80
|
+
/** Minimum cluster size for schema integration. @default 5 */
|
|
81
|
+
minClusterSize: number;
|
|
82
|
+
}
|
|
83
|
+
export interface CognitiveMemoryPersonaConfig {
|
|
84
|
+
/** Feature detection strategy. @default 'keyword' */
|
|
85
|
+
featureDetectionStrategy?: 'keyword' | 'llm' | 'hybrid';
|
|
86
|
+
/** Working memory slot capacity override. */
|
|
87
|
+
workingMemoryCapacity?: number;
|
|
88
|
+
/** Token budget allocation percentages override. */
|
|
89
|
+
tokenBudget?: Partial<MemoryBudgetAllocation>;
|
|
90
|
+
/** Encoding config overrides. */
|
|
91
|
+
encoding?: Partial<EncodingConfig>;
|
|
92
|
+
/** Decay config overrides. */
|
|
93
|
+
decay?: Partial<DecayConfig>;
|
|
94
|
+
/** Observer config (Batch 2). */
|
|
95
|
+
observer?: Partial<ObserverConfig>;
|
|
96
|
+
/** Reflector config (Batch 2). */
|
|
97
|
+
reflector?: Partial<ReflectorConfig>;
|
|
98
|
+
/** Memory graph config (Batch 2). */
|
|
99
|
+
graph?: Partial<MemoryGraphConfig>;
|
|
100
|
+
/** Infinite context config (Batch 3). */
|
|
101
|
+
infiniteContext?: Partial<InfiniteContextConfig>;
|
|
102
|
+
}
|
|
103
|
+
export interface CognitiveMemoryConfig {
|
|
104
|
+
workingMemory: IWorkingMemory;
|
|
105
|
+
knowledgeGraph: IKnowledgeGraph;
|
|
106
|
+
vectorStore: IVectorStore;
|
|
107
|
+
embeddingManager: IEmbeddingManager;
|
|
108
|
+
agentId: string;
|
|
109
|
+
traits: HexacoTraits;
|
|
110
|
+
/** Callback to get current mood from MoodEngine or similar. */
|
|
111
|
+
moodProvider: () => PADState;
|
|
112
|
+
/** @default 'keyword' */
|
|
113
|
+
featureDetectionStrategy: 'keyword' | 'llm' | 'hybrid';
|
|
114
|
+
/** Required when strategy is 'llm' or 'hybrid'. */
|
|
115
|
+
featureDetectionLlmInvoker?: (systemPrompt: string, userPrompt: string) => Promise<string>;
|
|
116
|
+
encoding?: Partial<EncodingConfig>;
|
|
117
|
+
decay?: Partial<DecayConfig>;
|
|
118
|
+
/** @default 7 (Miller's number) */
|
|
119
|
+
workingMemoryCapacity?: number;
|
|
120
|
+
tokenBudget?: Partial<MemoryBudgetAllocation>;
|
|
121
|
+
observer?: Partial<ObserverConfig>;
|
|
122
|
+
reflector?: Partial<ReflectorConfig>;
|
|
123
|
+
graph?: Partial<MemoryGraphConfig>;
|
|
124
|
+
consolidation?: Partial<ConsolidationConfig>;
|
|
125
|
+
/** Infinite context window config. Enables transparent compaction for forever conversations. */
|
|
126
|
+
infiniteContext?: Partial<InfiniteContextConfig>;
|
|
127
|
+
/** Max context window size in tokens (required for infinite context). */
|
|
128
|
+
maxContextTokens?: number;
|
|
129
|
+
/** @default 'cogmem' */
|
|
130
|
+
collectionPrefix?: string;
|
|
131
|
+
}
|
|
132
|
+
export declare const DEFAULT_ENCODING_CONFIG: EncodingConfig;
|
|
133
|
+
export declare const DEFAULT_DECAY_CONFIG: DecayConfig;
|
|
134
|
+
export declare const DEFAULT_BUDGET_ALLOCATION: MemoryBudgetAllocation;
|
|
135
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Configuration types for the Cognitive Memory System.
|
|
3
|
+
* @module agentos/memory/config
|
|
4
|
+
*/
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Defaults
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export const DEFAULT_ENCODING_CONFIG = {
|
|
9
|
+
baseStrength: 0.5,
|
|
10
|
+
flashbulbThreshold: 0.8,
|
|
11
|
+
flashbulbStrengthMultiplier: 2.0,
|
|
12
|
+
flashbulbStabilityMultiplier: 5.0,
|
|
13
|
+
baseStabilityMs: 3600000,
|
|
14
|
+
};
|
|
15
|
+
export const DEFAULT_DECAY_CONFIG = {
|
|
16
|
+
pruningThreshold: 0.05,
|
|
17
|
+
recencyHalfLifeMs: 86400000,
|
|
18
|
+
interferenceThreshold: 0.7,
|
|
19
|
+
};
|
|
20
|
+
export const DEFAULT_BUDGET_ALLOCATION = {
|
|
21
|
+
workingMemory: 0.15,
|
|
22
|
+
semanticRecall: 0.45,
|
|
23
|
+
recentEpisodic: 0.25,
|
|
24
|
+
prospectiveAlerts: 0.05,
|
|
25
|
+
graphAssociations: 0.05,
|
|
26
|
+
observationNotes: 0.05,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6KH,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,YAAY,EAAE,GAAG;IACjB,kBAAkB,EAAE,GAAG;IACvB,2BAA2B,EAAE,GAAG;IAChC,4BAA4B,EAAE,GAAG;IACjC,eAAe,EAAE,OAAS;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,QAAU;IAC7B,qBAAqB,EAAE,GAAG;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;CACvB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Consolidation Pipeline — background memory maintenance.
|
|
3
|
+
*
|
|
4
|
+
* Runs periodically (default: hourly) to maintain memory health:
|
|
5
|
+
* 1. Decay sweep — apply Ebbinghaus to all traces, soft-delete below threshold
|
|
6
|
+
* 2. Replay — re-process recent traces, find co-activation patterns, create graph edges
|
|
7
|
+
* 3. Schema integration — cluster episodic traces, LLM-summarize into semantic nodes
|
|
8
|
+
* 4. Conflict resolution — scan CONTRADICTS edges, resolve by confidence + personality
|
|
9
|
+
* 5. Spaced repetition — boost traces past nextReinforcementAt
|
|
10
|
+
* 6. Hybrid feature re-classification — if hybrid strategy, re-run LLM on keyword-only traces
|
|
11
|
+
*
|
|
12
|
+
* @module agentos/memory/consolidation/ConsolidationPipeline
|
|
13
|
+
*/
|
|
14
|
+
import type { ConsolidationConfig, DecayConfig, HexacoTraits } from '../config.js';
|
|
15
|
+
import type { IMemoryGraph } from '../graph/IMemoryGraph.js';
|
|
16
|
+
import type { MemoryStore } from '../store/MemoryStore.js';
|
|
17
|
+
export interface ConsolidationResult {
|
|
18
|
+
/** Traces pruned (soft-deleted). */
|
|
19
|
+
prunedCount: number;
|
|
20
|
+
/** Co-activation edges created. */
|
|
21
|
+
edgesCreated: number;
|
|
22
|
+
/** Schema nodes created from episodic clusters. */
|
|
23
|
+
schemasCreated: number;
|
|
24
|
+
/** Conflicts resolved. */
|
|
25
|
+
conflictsResolved: number;
|
|
26
|
+
/** Traces reinforced via spaced repetition. */
|
|
27
|
+
reinforcedCount: number;
|
|
28
|
+
/** Total traces processed. */
|
|
29
|
+
totalProcessed: number;
|
|
30
|
+
/** Duration in ms. */
|
|
31
|
+
durationMs: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ConsolidationPipelineConfig {
|
|
34
|
+
store: MemoryStore;
|
|
35
|
+
graph?: IMemoryGraph;
|
|
36
|
+
traits: HexacoTraits;
|
|
37
|
+
agentId: string;
|
|
38
|
+
decay?: Partial<DecayConfig>;
|
|
39
|
+
consolidation?: Partial<ConsolidationConfig>;
|
|
40
|
+
/** LLM invoker for schema integration (optional). */
|
|
41
|
+
llmInvoker?: (systemPrompt: string, userPrompt: string) => Promise<string>;
|
|
42
|
+
}
|
|
43
|
+
export declare class ConsolidationPipeline {
|
|
44
|
+
private config;
|
|
45
|
+
private consolidationConfig;
|
|
46
|
+
private decayConfig;
|
|
47
|
+
private timer;
|
|
48
|
+
private lastRunAt;
|
|
49
|
+
constructor(config: ConsolidationPipelineConfig);
|
|
50
|
+
/**
|
|
51
|
+
* Start the periodic consolidation timer.
|
|
52
|
+
*/
|
|
53
|
+
start(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Stop the periodic consolidation timer.
|
|
56
|
+
*/
|
|
57
|
+
stop(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Run a single consolidation cycle.
|
|
60
|
+
*/
|
|
61
|
+
run(): Promise<ConsolidationResult>;
|
|
62
|
+
/** Get timestamp of last consolidation run. */
|
|
63
|
+
getLastRunAt(): number;
|
|
64
|
+
private decaySweep;
|
|
65
|
+
private replayCoActivation;
|
|
66
|
+
private schemaIntegration;
|
|
67
|
+
private resolveConflicts;
|
|
68
|
+
private spacedRepetitionSweep;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ConsolidationPipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsolidationPipeline.d.ts","sourceRoot":"","sources":["../../../src/memory/consolidation/ConsolidationPipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGnF,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7C,qDAAqD;IACrD,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E;AAiBD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAa;gBAElB,MAAM,EAAE,2BAA2B;IAS/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6CzC,+CAA+C;IAC/C,YAAY,IAAI,MAAM;YAQR,UAAU;YAYV,kBAAkB;YA6DlB,iBAAiB;YA2FjB,gBAAgB;YAyChB,qBAAqB;CAepC"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Consolidation Pipeline — background memory maintenance.
|
|
3
|
+
*
|
|
4
|
+
* Runs periodically (default: hourly) to maintain memory health:
|
|
5
|
+
* 1. Decay sweep — apply Ebbinghaus to all traces, soft-delete below threshold
|
|
6
|
+
* 2. Replay — re-process recent traces, find co-activation patterns, create graph edges
|
|
7
|
+
* 3. Schema integration — cluster episodic traces, LLM-summarize into semantic nodes
|
|
8
|
+
* 4. Conflict resolution — scan CONTRADICTS edges, resolve by confidence + personality
|
|
9
|
+
* 5. Spaced repetition — boost traces past nextReinforcementAt
|
|
10
|
+
* 6. Hybrid feature re-classification — if hybrid strategy, re-run LLM on keyword-only traces
|
|
11
|
+
*
|
|
12
|
+
* @module agentos/memory/consolidation/ConsolidationPipeline
|
|
13
|
+
*/
|
|
14
|
+
import { DEFAULT_DECAY_CONFIG } from '../config.js';
|
|
15
|
+
import { findPrunableTraces } from '../decay/DecayModel.js';
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Defaults
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const DEFAULT_CONSOLIDATION = {
|
|
20
|
+
intervalMs: 3600000,
|
|
21
|
+
maxTracesPerCycle: 500,
|
|
22
|
+
mergeSimilarityThreshold: 0.92,
|
|
23
|
+
minClusterSize: 5,
|
|
24
|
+
};
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// ConsolidationPipeline
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
export class ConsolidationPipeline {
|
|
29
|
+
constructor(config) {
|
|
30
|
+
this.timer = null;
|
|
31
|
+
this.lastRunAt = 0;
|
|
32
|
+
this.config = config;
|
|
33
|
+
this.consolidationConfig = {
|
|
34
|
+
...DEFAULT_CONSOLIDATION,
|
|
35
|
+
...config.consolidation,
|
|
36
|
+
};
|
|
37
|
+
this.decayConfig = { ...DEFAULT_DECAY_CONFIG, ...config.decay };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Start the periodic consolidation timer.
|
|
41
|
+
*/
|
|
42
|
+
start() {
|
|
43
|
+
if (this.timer)
|
|
44
|
+
return;
|
|
45
|
+
this.timer = setInterval(() => { void this.run(); }, this.consolidationConfig.intervalMs);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Stop the periodic consolidation timer.
|
|
49
|
+
*/
|
|
50
|
+
stop() {
|
|
51
|
+
if (this.timer) {
|
|
52
|
+
clearInterval(this.timer);
|
|
53
|
+
this.timer = null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Run a single consolidation cycle.
|
|
58
|
+
*/
|
|
59
|
+
async run() {
|
|
60
|
+
const startTime = Date.now();
|
|
61
|
+
const result = {
|
|
62
|
+
prunedCount: 0,
|
|
63
|
+
edgesCreated: 0,
|
|
64
|
+
schemasCreated: 0,
|
|
65
|
+
conflictsResolved: 0,
|
|
66
|
+
reinforcedCount: 0,
|
|
67
|
+
totalProcessed: 0,
|
|
68
|
+
durationMs: 0,
|
|
69
|
+
};
|
|
70
|
+
const now = Date.now();
|
|
71
|
+
// Gather traces from the store (scope: user for this agent)
|
|
72
|
+
const traces = await this.config.store.getByScope('user', this.config.agentId);
|
|
73
|
+
const batch = traces.slice(0, this.consolidationConfig.maxTracesPerCycle);
|
|
74
|
+
result.totalProcessed = batch.length;
|
|
75
|
+
// --- Step 1: Decay sweep ---
|
|
76
|
+
result.prunedCount = await this.decaySweep(batch, now);
|
|
77
|
+
// --- Step 2: Co-activation replay ---
|
|
78
|
+
if (this.config.graph) {
|
|
79
|
+
result.edgesCreated = await this.replayCoActivation(batch, now);
|
|
80
|
+
}
|
|
81
|
+
// --- Step 3: Schema integration ---
|
|
82
|
+
if (this.config.graph && this.config.llmInvoker) {
|
|
83
|
+
result.schemasCreated = await this.schemaIntegration();
|
|
84
|
+
}
|
|
85
|
+
// --- Step 4: Conflict resolution ---
|
|
86
|
+
if (this.config.graph) {
|
|
87
|
+
result.conflictsResolved = await this.resolveConflicts(batch);
|
|
88
|
+
}
|
|
89
|
+
// --- Step 5: Spaced repetition reinforcement ---
|
|
90
|
+
result.reinforcedCount = await this.spacedRepetitionSweep(batch, now);
|
|
91
|
+
result.durationMs = Date.now() - startTime;
|
|
92
|
+
this.lastRunAt = now;
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
/** Get timestamp of last consolidation run. */
|
|
96
|
+
getLastRunAt() {
|
|
97
|
+
return this.lastRunAt;
|
|
98
|
+
}
|
|
99
|
+
// =========================================================================
|
|
100
|
+
// Step 1: Decay sweep
|
|
101
|
+
// =========================================================================
|
|
102
|
+
async decaySweep(traces, now) {
|
|
103
|
+
const prunable = findPrunableTraces(traces, now, this.decayConfig);
|
|
104
|
+
for (const traceId of prunable) {
|
|
105
|
+
await this.config.store.softDelete(traceId);
|
|
106
|
+
}
|
|
107
|
+
return prunable.length;
|
|
108
|
+
}
|
|
109
|
+
// =========================================================================
|
|
110
|
+
// Step 2: Co-activation replay
|
|
111
|
+
// =========================================================================
|
|
112
|
+
async replayCoActivation(traces, now) {
|
|
113
|
+
if (!this.config.graph)
|
|
114
|
+
return 0;
|
|
115
|
+
let edgesCreated = 0;
|
|
116
|
+
const recentTraces = traces.filter((t) => t.isActive && (now - t.createdAt) < 86400000);
|
|
117
|
+
// Find traces that share entities → create SHARED_ENTITY edges
|
|
118
|
+
const entityIndex = new Map();
|
|
119
|
+
for (const trace of recentTraces) {
|
|
120
|
+
for (const entity of trace.entities) {
|
|
121
|
+
const list = entityIndex.get(entity) ?? [];
|
|
122
|
+
list.push(trace.id);
|
|
123
|
+
entityIndex.set(entity, list);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
for (const [, traceIds] of entityIndex) {
|
|
127
|
+
if (traceIds.length < 2)
|
|
128
|
+
continue;
|
|
129
|
+
for (let i = 0; i < traceIds.length && i < 10; i++) {
|
|
130
|
+
for (let j = i + 1; j < traceIds.length && j < 10; j++) {
|
|
131
|
+
if (this.config.graph.hasNode(traceIds[i]) && this.config.graph.hasNode(traceIds[j])) {
|
|
132
|
+
await this.config.graph.addEdge({
|
|
133
|
+
sourceId: traceIds[i],
|
|
134
|
+
targetId: traceIds[j],
|
|
135
|
+
type: 'SHARED_ENTITY',
|
|
136
|
+
weight: 0.5,
|
|
137
|
+
createdAt: now,
|
|
138
|
+
});
|
|
139
|
+
edgesCreated++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Find temporally adjacent traces → create TEMPORAL_SEQUENCE edges
|
|
145
|
+
const sorted = [...recentTraces].sort((a, b) => a.createdAt - b.createdAt);
|
|
146
|
+
for (let i = 0; i < sorted.length - 1; i++) {
|
|
147
|
+
const gap = sorted[i + 1].createdAt - sorted[i].createdAt;
|
|
148
|
+
if (gap < 300000) { // Within 5 minutes
|
|
149
|
+
if (this.config.graph.hasNode(sorted[i].id) && this.config.graph.hasNode(sorted[i + 1].id)) {
|
|
150
|
+
await this.config.graph.addEdge({
|
|
151
|
+
sourceId: sorted[i].id,
|
|
152
|
+
targetId: sorted[i + 1].id,
|
|
153
|
+
type: 'TEMPORAL_SEQUENCE',
|
|
154
|
+
weight: 0.3,
|
|
155
|
+
createdAt: now,
|
|
156
|
+
});
|
|
157
|
+
edgesCreated++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return edgesCreated;
|
|
162
|
+
}
|
|
163
|
+
// =========================================================================
|
|
164
|
+
// Step 3: Schema integration
|
|
165
|
+
// =========================================================================
|
|
166
|
+
async schemaIntegration() {
|
|
167
|
+
if (!this.config.graph || !this.config.llmInvoker)
|
|
168
|
+
return 0;
|
|
169
|
+
const clusters = await this.config.graph.detectClusters(this.consolidationConfig.minClusterSize);
|
|
170
|
+
let schemasCreated = 0;
|
|
171
|
+
for (const cluster of clusters) {
|
|
172
|
+
// Gather content from cluster members
|
|
173
|
+
const contents = [];
|
|
174
|
+
for (const id of cluster.memberIds) {
|
|
175
|
+
const trace = this.config.store.getTrace(id);
|
|
176
|
+
if (trace)
|
|
177
|
+
contents.push(trace.content);
|
|
178
|
+
}
|
|
179
|
+
if (contents.length < this.consolidationConfig.minClusterSize)
|
|
180
|
+
continue;
|
|
181
|
+
try {
|
|
182
|
+
const summary = await this.config.llmInvoker('Summarize the following related memories into a single semantic knowledge statement. Be concise (1-2 sentences). Output only the summary.', contents.join('\n---\n'));
|
|
183
|
+
if (summary.trim()) {
|
|
184
|
+
// Store as a new semantic trace
|
|
185
|
+
const now = Date.now();
|
|
186
|
+
const schemaTrace = {
|
|
187
|
+
id: `schema_${now}_${schemasCreated}`,
|
|
188
|
+
type: 'semantic',
|
|
189
|
+
scope: 'user',
|
|
190
|
+
scopeId: this.config.agentId,
|
|
191
|
+
content: summary.trim(),
|
|
192
|
+
entities: [],
|
|
193
|
+
tags: ['schema', 'consolidated'],
|
|
194
|
+
provenance: {
|
|
195
|
+
sourceType: 'reflection',
|
|
196
|
+
sourceTimestamp: now,
|
|
197
|
+
confidence: 0.8,
|
|
198
|
+
verificationCount: cluster.memberIds.length,
|
|
199
|
+
},
|
|
200
|
+
emotionalContext: { valence: 0, arousal: 0, dominance: 0, intensity: 0, gmiMood: '' },
|
|
201
|
+
encodingStrength: 0.7,
|
|
202
|
+
stability: 7200000, // 2 hours (schemas are more stable)
|
|
203
|
+
retrievalCount: 0,
|
|
204
|
+
lastAccessedAt: now,
|
|
205
|
+
accessCount: 0,
|
|
206
|
+
reinforcementInterval: 7200000,
|
|
207
|
+
associatedTraceIds: cluster.memberIds,
|
|
208
|
+
createdAt: now,
|
|
209
|
+
updatedAt: now,
|
|
210
|
+
consolidatedAt: now,
|
|
211
|
+
isActive: true,
|
|
212
|
+
};
|
|
213
|
+
await this.config.store.store(schemaTrace);
|
|
214
|
+
// Add SCHEMA_INSTANCE edges from cluster members to schema
|
|
215
|
+
if (this.config.graph) {
|
|
216
|
+
await this.config.graph.addNode(schemaTrace.id, {
|
|
217
|
+
type: 'semantic',
|
|
218
|
+
scope: 'user',
|
|
219
|
+
scopeId: this.config.agentId,
|
|
220
|
+
strength: 0.7,
|
|
221
|
+
createdAt: now,
|
|
222
|
+
});
|
|
223
|
+
for (const memberId of cluster.memberIds) {
|
|
224
|
+
if (this.config.graph.hasNode(memberId)) {
|
|
225
|
+
await this.config.graph.addEdge({
|
|
226
|
+
sourceId: memberId,
|
|
227
|
+
targetId: schemaTrace.id,
|
|
228
|
+
type: 'SCHEMA_INSTANCE',
|
|
229
|
+
weight: 0.6,
|
|
230
|
+
createdAt: now,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
schemasCreated++;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
// LLM failure is non-critical
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return schemasCreated;
|
|
243
|
+
}
|
|
244
|
+
// =========================================================================
|
|
245
|
+
// Step 4: Conflict resolution
|
|
246
|
+
// =========================================================================
|
|
247
|
+
async resolveConflicts(traces) {
|
|
248
|
+
if (!this.config.graph)
|
|
249
|
+
return 0;
|
|
250
|
+
const clamp = (v) => v == null ? 0.5 : Math.max(0, Math.min(1, v));
|
|
251
|
+
const honesty = clamp(this.config.traits.honesty);
|
|
252
|
+
let resolved = 0;
|
|
253
|
+
for (const trace of traces) {
|
|
254
|
+
if (!trace.isActive)
|
|
255
|
+
continue;
|
|
256
|
+
const conflicts = this.config.graph.getConflicts(trace.id);
|
|
257
|
+
for (const conflict of conflicts) {
|
|
258
|
+
const otherId = conflict.sourceId === trace.id ? conflict.targetId : conflict.sourceId;
|
|
259
|
+
const other = this.config.store.getTrace(otherId);
|
|
260
|
+
if (!other || !other.isActive)
|
|
261
|
+
continue;
|
|
262
|
+
// Determine which trace to keep
|
|
263
|
+
if (honesty > 0.6) {
|
|
264
|
+
// High honesty: prefer newer information
|
|
265
|
+
const loser = trace.createdAt > other.createdAt ? other : trace;
|
|
266
|
+
await this.config.store.softDelete(loser.id);
|
|
267
|
+
resolved++;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
// Default: prefer higher confidence
|
|
271
|
+
if (Math.abs(trace.provenance.confidence - other.provenance.confidence) > 0.2) {
|
|
272
|
+
const loser = trace.provenance.confidence < other.provenance.confidence ? trace : other;
|
|
273
|
+
await this.config.store.softDelete(loser.id);
|
|
274
|
+
resolved++;
|
|
275
|
+
}
|
|
276
|
+
// If confidence is similar, let both coexist
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return resolved;
|
|
281
|
+
}
|
|
282
|
+
// =========================================================================
|
|
283
|
+
// Step 5: Spaced repetition sweep
|
|
284
|
+
// =========================================================================
|
|
285
|
+
async spacedRepetitionSweep(traces, now) {
|
|
286
|
+
let reinforced = 0;
|
|
287
|
+
for (const trace of traces) {
|
|
288
|
+
if (!trace.isActive)
|
|
289
|
+
continue;
|
|
290
|
+
if (!trace.nextReinforcementAt)
|
|
291
|
+
continue;
|
|
292
|
+
if (now < trace.nextReinforcementAt)
|
|
293
|
+
continue;
|
|
294
|
+
// Boost the trace via recordAccess
|
|
295
|
+
await this.config.store.recordAccess(trace.id);
|
|
296
|
+
reinforced++;
|
|
297
|
+
}
|
|
298
|
+
return reinforced;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=ConsolidationPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsolidationPipeline.js","sourceRoot":"","sources":["../../../src/memory/consolidation/ConsolidationPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompactionEngine — Strategy dispatcher for context window compaction.
|
|
3
|
+
*
|
|
4
|
+
* Selects and executes the appropriate compaction strategy based on config.
|
|
5
|
+
* Manages strategy lifecycle and provides a unified interface for the
|
|
6
|
+
* ContextWindowManager.
|
|
7
|
+
*/
|
|
8
|
+
import type { MemoryObserver } from '../observation/MemoryObserver.js';
|
|
9
|
+
import type { MemoryReflector } from '../observation/MemoryReflector.js';
|
|
10
|
+
import type { CompactionInput, CompactionResult, CompactionStrategy, ICompactionStrategy, InfiniteContextConfig } from './types.js';
|
|
11
|
+
export declare class CompactionEngine {
|
|
12
|
+
private strategies;
|
|
13
|
+
constructor(llmInvoker: (prompt: string) => Promise<string>, observer?: MemoryObserver, reflector?: MemoryReflector);
|
|
14
|
+
/** Run compaction using the configured strategy. */
|
|
15
|
+
compact(input: CompactionInput, config: InfiniteContextConfig): Promise<CompactionResult>;
|
|
16
|
+
/** Get a specific strategy instance. */
|
|
17
|
+
getStrategy(name: CompactionStrategy): ICompactionStrategy | undefined;
|
|
18
|
+
/** List available strategy names. */
|
|
19
|
+
getAvailableStrategies(): CompactionStrategy[];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=CompactionEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactionEngine.d.ts","sourceRoot":"","sources":["../../../src/memory/context/CompactionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAKpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAA2D;gBAG3E,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC/C,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,eAAe;IAa7B,oDAAoD;IAC9C,OAAO,CACX,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAQ5B,wCAAwC;IACxC,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,SAAS;IAItE,qCAAqC;IACrC,sBAAsB,IAAI,kBAAkB,EAAE;CAG/C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompactionEngine — Strategy dispatcher for context window compaction.
|
|
3
|
+
*
|
|
4
|
+
* Selects and executes the appropriate compaction strategy based on config.
|
|
5
|
+
* Manages strategy lifecycle and provides a unified interface for the
|
|
6
|
+
* ContextWindowManager.
|
|
7
|
+
*/
|
|
8
|
+
import { HierarchicalStrategy } from './strategies/HierarchicalStrategy.js';
|
|
9
|
+
import { HybridStrategy } from './strategies/HybridStrategy.js';
|
|
10
|
+
import { SlidingSummaryStrategy } from './strategies/SlidingSummaryStrategy.js';
|
|
11
|
+
export class CompactionEngine {
|
|
12
|
+
constructor(llmInvoker, observer, reflector) {
|
|
13
|
+
this.strategies = new Map();
|
|
14
|
+
this.strategies.set('sliding', new SlidingSummaryStrategy(llmInvoker));
|
|
15
|
+
this.strategies.set('hierarchical', new HierarchicalStrategy(llmInvoker));
|
|
16
|
+
this.strategies.set('hybrid', new HybridStrategy(llmInvoker, observer, reflector));
|
|
17
|
+
}
|
|
18
|
+
/** Run compaction using the configured strategy. */
|
|
19
|
+
async compact(input, config) {
|
|
20
|
+
const strategy = this.strategies.get(config.strategy);
|
|
21
|
+
if (!strategy) {
|
|
22
|
+
throw new Error(`Unknown compaction strategy: ${config.strategy}`);
|
|
23
|
+
}
|
|
24
|
+
return strategy.compact(input, config);
|
|
25
|
+
}
|
|
26
|
+
/** Get a specific strategy instance. */
|
|
27
|
+
getStrategy(name) {
|
|
28
|
+
return this.strategies.get(name);
|
|
29
|
+
}
|
|
30
|
+
/** List available strategy names. */
|
|
31
|
+
getAvailableStrategies() {
|
|
32
|
+
return Array.from(this.strategies.keys());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=CompactionEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompactionEngine.js","sourceRoot":"","sources":["../../../src/memory/context/CompactionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,MAAM,OAAO,gBAAgB;IAG3B,YACE,UAA+C,EAC/C,QAAyB,EACzB,SAA2B;QALrB,eAAU,GAAiD,IAAI,GAAG,EAAE,CAAC;QAO3E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,cAAc,EACd,IAAI,oBAAoB,CAAC,UAAU,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,QAAQ,EACR,IAAI,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,OAAO,CACX,KAAsB,EACtB,MAA6B;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,wCAAwC;IACxC,WAAW,CAAC,IAAwB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,qCAAqC;IACrC,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF"}
|