@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Personality-specific memory formatting.
|
|
3
|
+
*
|
|
4
|
+
* Formats MemoryTrace objects into text appropriate for prompt injection,
|
|
5
|
+
* with style adapted to the agent's personality:
|
|
6
|
+
* - **structured** (high conscientiousness): bullet lists with metadata
|
|
7
|
+
* - **narrative** (high openness): flowing prose with associations
|
|
8
|
+
* - **emotional** (high emotionality): includes emotional context annotations
|
|
9
|
+
*
|
|
10
|
+
* @module agentos/memory/prompt/MemoryFormatters
|
|
11
|
+
*/
|
|
12
|
+
import type { ScoredMemoryTrace } from '../types.js';
|
|
13
|
+
export type FormattingStyle = 'structured' | 'narrative' | 'emotional';
|
|
14
|
+
/**
|
|
15
|
+
* Format a single memory trace according to the given style.
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatMemoryTrace(trace: ScoredMemoryTrace, style: FormattingStyle): string;
|
|
18
|
+
/**
|
|
19
|
+
* Format multiple traces with a separator appropriate for the style.
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatMemoryTraces(traces: ScoredMemoryTrace[], style: FormattingStyle): string;
|
|
22
|
+
//# sourceMappingURL=MemoryFormatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryFormatters.d.ts","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryFormatters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;AAsFvE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAW1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAE9F"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Personality-specific memory formatting.
|
|
3
|
+
*
|
|
4
|
+
* Formats MemoryTrace objects into text appropriate for prompt injection,
|
|
5
|
+
* with style adapted to the agent's personality:
|
|
6
|
+
* - **structured** (high conscientiousness): bullet lists with metadata
|
|
7
|
+
* - **narrative** (high openness): flowing prose with associations
|
|
8
|
+
* - **emotional** (high emotionality): includes emotional context annotations
|
|
9
|
+
*
|
|
10
|
+
* @module agentos/memory/prompt/MemoryFormatters
|
|
11
|
+
*/
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Helpers
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
function timeAgo(timestampMs) {
|
|
16
|
+
const elapsed = Date.now() - timestampMs;
|
|
17
|
+
const minutes = Math.floor(elapsed / 60000);
|
|
18
|
+
if (minutes < 1)
|
|
19
|
+
return 'just now';
|
|
20
|
+
if (minutes < 60)
|
|
21
|
+
return `${minutes}m ago`;
|
|
22
|
+
const hours = Math.floor(minutes / 60);
|
|
23
|
+
if (hours < 24)
|
|
24
|
+
return `${hours}h ago`;
|
|
25
|
+
const days = Math.floor(hours / 24);
|
|
26
|
+
if (days < 7)
|
|
27
|
+
return `${days}d ago`;
|
|
28
|
+
const weeks = Math.floor(days / 7);
|
|
29
|
+
return `${weeks}w ago`;
|
|
30
|
+
}
|
|
31
|
+
function confidenceLabel(confidence) {
|
|
32
|
+
if (confidence > 0.8)
|
|
33
|
+
return 'high confidence';
|
|
34
|
+
if (confidence > 0.5)
|
|
35
|
+
return 'moderate confidence';
|
|
36
|
+
return 'low confidence';
|
|
37
|
+
}
|
|
38
|
+
function valenceEmoji(valence) {
|
|
39
|
+
if (valence > 0.3)
|
|
40
|
+
return '(+)';
|
|
41
|
+
if (valence < -0.3)
|
|
42
|
+
return '(-)';
|
|
43
|
+
return '(~)';
|
|
44
|
+
}
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Formatters
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
function formatStructured(trace) {
|
|
49
|
+
const parts = [
|
|
50
|
+
`- [${trace.type}]`,
|
|
51
|
+
trace.content.substring(0, 300),
|
|
52
|
+
];
|
|
53
|
+
const meta = [];
|
|
54
|
+
meta.push(timeAgo(trace.createdAt));
|
|
55
|
+
meta.push(confidenceLabel(trace.provenance.confidence));
|
|
56
|
+
meta.push(`relevance: ${trace.retrievalScore.toFixed(2)}`);
|
|
57
|
+
if (trace.tags.length > 0) {
|
|
58
|
+
meta.push(`tags: ${trace.tags.slice(0, 3).join(', ')}`);
|
|
59
|
+
}
|
|
60
|
+
parts.push(`(${meta.join(' | ')})`);
|
|
61
|
+
return parts.join(' ');
|
|
62
|
+
}
|
|
63
|
+
function formatNarrative(trace) {
|
|
64
|
+
const time = timeAgo(trace.createdAt);
|
|
65
|
+
const content = trace.content.substring(0, 350);
|
|
66
|
+
let text = `${time}: ${content}`;
|
|
67
|
+
if (trace.associatedTraceIds.length > 0) {
|
|
68
|
+
text += ` [linked to ${trace.associatedTraceIds.length} other memories]`;
|
|
69
|
+
}
|
|
70
|
+
if (trace.entities.length > 0) {
|
|
71
|
+
text += ` (involves: ${trace.entities.slice(0, 3).join(', ')})`;
|
|
72
|
+
}
|
|
73
|
+
return text;
|
|
74
|
+
}
|
|
75
|
+
function formatEmotional(trace) {
|
|
76
|
+
const time = timeAgo(trace.createdAt);
|
|
77
|
+
const emoji = valenceEmoji(trace.emotionalContext.valence);
|
|
78
|
+
const content = trace.content.substring(0, 300);
|
|
79
|
+
const intensity = trace.emotionalContext.intensity;
|
|
80
|
+
let text = `${emoji} ${time}: ${content}`;
|
|
81
|
+
if (intensity > 0.6) {
|
|
82
|
+
text += ` [strongly felt, mood: ${trace.emotionalContext.gmiMood}]`;
|
|
83
|
+
}
|
|
84
|
+
else if (intensity > 0.3) {
|
|
85
|
+
text += ` [mood: ${trace.emotionalContext.gmiMood}]`;
|
|
86
|
+
}
|
|
87
|
+
return text;
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Public API
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
/**
|
|
93
|
+
* Format a single memory trace according to the given style.
|
|
94
|
+
*/
|
|
95
|
+
export function formatMemoryTrace(trace, style) {
|
|
96
|
+
switch (style) {
|
|
97
|
+
case 'structured':
|
|
98
|
+
return formatStructured(trace);
|
|
99
|
+
case 'narrative':
|
|
100
|
+
return formatNarrative(trace);
|
|
101
|
+
case 'emotional':
|
|
102
|
+
return formatEmotional(trace);
|
|
103
|
+
default:
|
|
104
|
+
return formatStructured(trace);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Format multiple traces with a separator appropriate for the style.
|
|
109
|
+
*/
|
|
110
|
+
export function formatMemoryTraces(traces, style) {
|
|
111
|
+
return traces.map((t) => formatMemoryTrace(t, style)).join('\n');
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=MemoryFormatters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryFormatters.js","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryFormatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Token-budgeted memory prompt assembly.
|
|
3
|
+
*
|
|
4
|
+
* Carves a token budget from the PromptEngine's RAG context allocation
|
|
5
|
+
* and distributes it across memory sections:
|
|
6
|
+
* - Working memory scratchpad
|
|
7
|
+
* - Semantic recall results
|
|
8
|
+
* - Recent episodic memories
|
|
9
|
+
* - Prospective alerts (Batch 2)
|
|
10
|
+
* - Graph associations (Batch 2)
|
|
11
|
+
* - Observation notes (Batch 2)
|
|
12
|
+
*
|
|
13
|
+
* @module agentos/memory/prompt/MemoryPromptAssembler
|
|
14
|
+
*/
|
|
15
|
+
import type { MemoryBudgetAllocation, AssembledMemoryContext, ScoredMemoryTrace } from '../types.js';
|
|
16
|
+
import type { HexacoTraits } from '../config.js';
|
|
17
|
+
export interface MemoryAssemblerInput {
|
|
18
|
+
/** Token budget for all memory context. */
|
|
19
|
+
totalTokenBudget: number;
|
|
20
|
+
/** Budget allocation percentages. */
|
|
21
|
+
allocation?: Partial<MemoryBudgetAllocation>;
|
|
22
|
+
/** HEXACO traits for formatting style selection. */
|
|
23
|
+
traits: HexacoTraits;
|
|
24
|
+
/** Working memory formatted string. */
|
|
25
|
+
workingMemoryText?: string;
|
|
26
|
+
/** Scored semantic/episodic traces from retrieval. */
|
|
27
|
+
retrievedTraces?: ScoredMemoryTrace[];
|
|
28
|
+
/** Prospective memory alerts (Batch 2). */
|
|
29
|
+
prospectiveAlerts?: string[];
|
|
30
|
+
/** Graph association context (Batch 2). */
|
|
31
|
+
graphContext?: string[];
|
|
32
|
+
/** Observation notes (Batch 2). */
|
|
33
|
+
observationNotes?: string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Assemble memory context into a single formatted string within
|
|
37
|
+
* the given token budget, with overflow redistribution.
|
|
38
|
+
*/
|
|
39
|
+
export declare function assembleMemoryContext(input: MemoryAssemblerInput): AssembledMemoryContext;
|
|
40
|
+
//# sourceMappingURL=MemoryPromptAssembler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryPromptAssembler.d.ts","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryPromptAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmCjD,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,oDAAoD;IACpD,MAAM,EAAE,YAAY,CAAC;IAGrB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,CA2IzF"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Token-budgeted memory prompt assembly.
|
|
3
|
+
*
|
|
4
|
+
* Carves a token budget from the PromptEngine's RAG context allocation
|
|
5
|
+
* and distributes it across memory sections:
|
|
6
|
+
* - Working memory scratchpad
|
|
7
|
+
* - Semantic recall results
|
|
8
|
+
* - Recent episodic memories
|
|
9
|
+
* - Prospective alerts (Batch 2)
|
|
10
|
+
* - Graph associations (Batch 2)
|
|
11
|
+
* - Observation notes (Batch 2)
|
|
12
|
+
*
|
|
13
|
+
* @module agentos/memory/prompt/MemoryPromptAssembler
|
|
14
|
+
*/
|
|
15
|
+
import { DEFAULT_BUDGET_ALLOCATION } from '../config.js';
|
|
16
|
+
import { formatMemoryTrace } from './MemoryFormatters.js';
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Token estimation
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/** Rough token estimate: ~4 chars per token for English text. */
|
|
21
|
+
function estimateTokens(text) {
|
|
22
|
+
return Math.ceil(text.length / 4);
|
|
23
|
+
}
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Personality → formatting style
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
const clamp01 = (v) => v == null ? 0.5 : Math.max(0, Math.min(1, v));
|
|
28
|
+
function selectFormattingStyle(traits) {
|
|
29
|
+
const c = clamp01(traits.conscientiousness);
|
|
30
|
+
const o = clamp01(traits.openness);
|
|
31
|
+
const e = clamp01(traits.emotionality);
|
|
32
|
+
// Highest trait wins
|
|
33
|
+
if (c >= o && c >= e)
|
|
34
|
+
return 'structured';
|
|
35
|
+
if (o >= c && o >= e)
|
|
36
|
+
return 'narrative';
|
|
37
|
+
return 'emotional';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Assemble memory context into a single formatted string within
|
|
41
|
+
* the given token budget, with overflow redistribution.
|
|
42
|
+
*/
|
|
43
|
+
export function assembleMemoryContext(input) {
|
|
44
|
+
const alloc = {
|
|
45
|
+
...DEFAULT_BUDGET_ALLOCATION,
|
|
46
|
+
...input.allocation,
|
|
47
|
+
};
|
|
48
|
+
const budget = input.totalTokenBudget;
|
|
49
|
+
const style = selectFormattingStyle(input.traits);
|
|
50
|
+
// Compute per-section budgets
|
|
51
|
+
const wmBudget = Math.floor(budget * alloc.workingMemory);
|
|
52
|
+
let semanticBudget = Math.floor(budget * alloc.semanticRecall);
|
|
53
|
+
const episodicBudget = Math.floor(budget * alloc.recentEpisodic);
|
|
54
|
+
const prospectiveBudget = Math.floor(budget * alloc.prospectiveAlerts);
|
|
55
|
+
const graphBudget = Math.floor(budget * alloc.graphAssociations);
|
|
56
|
+
const observationBudget = Math.floor(budget * alloc.observationNotes);
|
|
57
|
+
const sections = [];
|
|
58
|
+
const includedIds = [];
|
|
59
|
+
let totalTokens = 0;
|
|
60
|
+
// --- Working Memory ---
|
|
61
|
+
const wmText = input.workingMemoryText ?? '';
|
|
62
|
+
const wmTokens = estimateTokens(wmText);
|
|
63
|
+
let wmUsed = 0;
|
|
64
|
+
if (wmText && wmTokens <= wmBudget) {
|
|
65
|
+
sections.push(`## Active Context\n${wmText}`);
|
|
66
|
+
wmUsed = wmTokens;
|
|
67
|
+
totalTokens += wmUsed;
|
|
68
|
+
}
|
|
69
|
+
const wmOverflow = wmBudget - wmUsed;
|
|
70
|
+
// --- Separate episodic and semantic traces ---
|
|
71
|
+
const episodicTraces = [];
|
|
72
|
+
const semanticTraces = [];
|
|
73
|
+
for (const trace of input.retrievedTraces ?? []) {
|
|
74
|
+
if (trace.type === 'episodic') {
|
|
75
|
+
episodicTraces.push(trace);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
semanticTraces.push(trace);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// --- Semantic Recall (gets overflow from WM and unused Batch 2 sections) ---
|
|
82
|
+
semanticBudget += wmOverflow;
|
|
83
|
+
// If Batch 2 sections are empty, their budgets flow to semantic
|
|
84
|
+
if (!input.prospectiveAlerts?.length)
|
|
85
|
+
semanticBudget += prospectiveBudget;
|
|
86
|
+
if (!input.graphContext?.length)
|
|
87
|
+
semanticBudget += graphBudget;
|
|
88
|
+
if (!input.observationNotes?.length)
|
|
89
|
+
semanticBudget += observationBudget;
|
|
90
|
+
let semanticUsed = 0;
|
|
91
|
+
if (semanticTraces.length > 0) {
|
|
92
|
+
const semanticLines = [];
|
|
93
|
+
for (const trace of semanticTraces) {
|
|
94
|
+
const formatted = formatMemoryTrace(trace, style);
|
|
95
|
+
const tokens = estimateTokens(formatted);
|
|
96
|
+
if (semanticUsed + tokens > semanticBudget)
|
|
97
|
+
break;
|
|
98
|
+
semanticLines.push(formatted);
|
|
99
|
+
semanticUsed += tokens;
|
|
100
|
+
includedIds.push(trace.id);
|
|
101
|
+
}
|
|
102
|
+
if (semanticLines.length > 0) {
|
|
103
|
+
sections.push(`## Relevant Memories\n${semanticLines.join('\n')}`);
|
|
104
|
+
totalTokens += semanticUsed;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// --- Recent Episodic ---
|
|
108
|
+
let episodicUsed = 0;
|
|
109
|
+
if (episodicTraces.length > 0) {
|
|
110
|
+
const episodicLines = [];
|
|
111
|
+
for (const trace of episodicTraces) {
|
|
112
|
+
const formatted = formatMemoryTrace(trace, style);
|
|
113
|
+
const tokens = estimateTokens(formatted);
|
|
114
|
+
if (episodicUsed + tokens > episodicBudget)
|
|
115
|
+
break;
|
|
116
|
+
episodicLines.push(formatted);
|
|
117
|
+
episodicUsed += tokens;
|
|
118
|
+
includedIds.push(trace.id);
|
|
119
|
+
}
|
|
120
|
+
if (episodicLines.length > 0) {
|
|
121
|
+
sections.push(`## Recent Experiences\n${episodicLines.join('\n')}`);
|
|
122
|
+
totalTokens += episodicUsed;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// --- Prospective Alerts (Batch 2) ---
|
|
126
|
+
if (input.prospectiveAlerts?.length) {
|
|
127
|
+
let prospectiveUsed = 0;
|
|
128
|
+
const prospectiveLines = [];
|
|
129
|
+
for (const alert of input.prospectiveAlerts) {
|
|
130
|
+
const tokens = estimateTokens(alert);
|
|
131
|
+
if (prospectiveUsed + tokens > prospectiveBudget)
|
|
132
|
+
break;
|
|
133
|
+
prospectiveLines.push(`- ${alert}`);
|
|
134
|
+
prospectiveUsed += tokens;
|
|
135
|
+
}
|
|
136
|
+
if (prospectiveLines.length > 0) {
|
|
137
|
+
sections.push(`## Reminders\n${prospectiveLines.join('\n')}`);
|
|
138
|
+
totalTokens += prospectiveUsed;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// --- Graph Associations (Batch 2) ---
|
|
142
|
+
if (input.graphContext?.length) {
|
|
143
|
+
let graphUsed = 0;
|
|
144
|
+
const graphLines = [];
|
|
145
|
+
for (const ctx of input.graphContext) {
|
|
146
|
+
const tokens = estimateTokens(ctx);
|
|
147
|
+
if (graphUsed + tokens > graphBudget)
|
|
148
|
+
break;
|
|
149
|
+
graphLines.push(`- ${ctx}`);
|
|
150
|
+
graphUsed += tokens;
|
|
151
|
+
}
|
|
152
|
+
if (graphLines.length > 0) {
|
|
153
|
+
sections.push(`## Related Context\n${graphLines.join('\n')}`);
|
|
154
|
+
totalTokens += graphUsed;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// --- Observation Notes (Batch 2) ---
|
|
158
|
+
if (input.observationNotes?.length) {
|
|
159
|
+
let observationUsed = 0;
|
|
160
|
+
const observationLines = [];
|
|
161
|
+
for (const note of input.observationNotes) {
|
|
162
|
+
const tokens = estimateTokens(note);
|
|
163
|
+
if (observationUsed + tokens > observationBudget)
|
|
164
|
+
break;
|
|
165
|
+
observationLines.push(`- ${note}`);
|
|
166
|
+
observationUsed += tokens;
|
|
167
|
+
}
|
|
168
|
+
if (observationLines.length > 0) {
|
|
169
|
+
sections.push(`## Observations\n${observationLines.join('\n')}`);
|
|
170
|
+
totalTokens += observationUsed;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
contextText: sections.join('\n\n'),
|
|
175
|
+
tokensUsed: totalTokens,
|
|
176
|
+
allocation: alloc,
|
|
177
|
+
includedMemoryIds: includedIds,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=MemoryPromptAssembler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryPromptAssembler.js","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryPromptAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,uBAAuB,CAAC;AAEhF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,iEAAiE;AACjE,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,OAAO,GAAG,CAAC,CAAqB,EAAU,EAAE,CAChD,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhD,SAAS,qBAAqB,CAAC,MAAoB;IACjD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEvC,qBAAqB;IACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACzC,OAAO,WAAW,CAAC;AACrB,CAAC;AA2BD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,MAAM,KAAK,GAA2B;QACpC,GAAG,yBAAyB;QAC5B,GAAG,KAAK,CAAC,UAAU;KACpB,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACtC,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElD,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,yBAAyB;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,QAAQ,CAAC;QAClB,WAAW,IAAI,MAAM,CAAC;IACxB,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAErC,gDAAgD;IAChD,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,cAAc,IAAI,UAAU,CAAC;IAC7B,gEAAgE;IAChE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM;QAAE,cAAc,IAAI,iBAAiB,CAAC;IAC1E,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM;QAAE,cAAc,IAAI,WAAW,CAAC;IAC/D,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM;QAAE,cAAc,IAAI,iBAAiB,CAAC;IAEzE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,YAAY,GAAG,MAAM,GAAG,cAAc;gBAAE,MAAM;YAClD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,YAAY,IAAI,MAAM,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,yBAAyB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnE,WAAW,IAAI,YAAY,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,YAAY,GAAG,MAAM,GAAG,cAAc;gBAAE,MAAM;YAClD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,YAAY,IAAI,MAAM,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,0BAA0B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,WAAW,IAAI,YAAY,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;QACpC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,eAAe,GAAG,MAAM,GAAG,iBAAiB;gBAAE,MAAM;YACxD,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YACpC,eAAe,IAAI,MAAM,CAAC;QAC5B,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,WAAW,IAAI,eAAe,CAAC;QACjC,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,SAAS,GAAG,MAAM,GAAG,WAAW;gBAAE,MAAM;YAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YAC5B,SAAS,IAAI,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,WAAW,IAAI,SAAS,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QACnC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,eAAe,GAAG,MAAM,GAAG,iBAAiB;gBAAE,MAAM;YACxD,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnC,eAAe,IAAI,MAAM,CAAC;QAC5B,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,WAAW,IAAI,eAAe,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,UAAU,EAAE,WAAW;QACvB,UAAU,EAAE,KAAK;QACjB,iBAAiB,EAAE,WAAW;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Prospective Memory Manager — goal/intention-triggered reminders.
|
|
3
|
+
*
|
|
4
|
+
* Prospective memory = memory for future intentions (e.g., "remind me to...",
|
|
5
|
+
* "I need to...", "when X happens, do Y").
|
|
6
|
+
*
|
|
7
|
+
* Trigger types:
|
|
8
|
+
* - time_based: Fires at or after a specified timestamp
|
|
9
|
+
* - event_based: Fires when a named event occurs
|
|
10
|
+
* - context_based: Fires when semantic similarity to a cue exceeds threshold
|
|
11
|
+
*
|
|
12
|
+
* Checked each turn before prompt construction. Triggered items are
|
|
13
|
+
* injected into the "Reminders" section of the assembled memory context.
|
|
14
|
+
*
|
|
15
|
+
* @module agentos/memory/prospective/ProspectiveMemoryManager
|
|
16
|
+
*/
|
|
17
|
+
import type { IEmbeddingManager } from '../../rag/IEmbeddingManager.js';
|
|
18
|
+
export type ProspectiveTriggerType = 'time_based' | 'event_based' | 'context_based';
|
|
19
|
+
export interface ProspectiveMemoryItem {
|
|
20
|
+
id: string;
|
|
21
|
+
/** What the agent should remember to do. */
|
|
22
|
+
content: string;
|
|
23
|
+
/** How this memory is triggered. */
|
|
24
|
+
triggerType: ProspectiveTriggerType;
|
|
25
|
+
/** For time_based: Unix ms when this should fire. */
|
|
26
|
+
triggerAt?: number;
|
|
27
|
+
/** For event_based: event name to match. */
|
|
28
|
+
triggerEvent?: string;
|
|
29
|
+
/** For context_based: embedding of the cue phrase. */
|
|
30
|
+
cueEmbedding?: number[];
|
|
31
|
+
/** For context_based: raw cue text (for display). */
|
|
32
|
+
cueText?: string;
|
|
33
|
+
/** Minimum similarity for context-based triggers. @default 0.7 */
|
|
34
|
+
similarityThreshold?: number;
|
|
35
|
+
/** Importance / priority. */
|
|
36
|
+
importance: number;
|
|
37
|
+
/** Whether this has been triggered and delivered. */
|
|
38
|
+
triggered: boolean;
|
|
39
|
+
/** Whether to re-trigger (recurring). */
|
|
40
|
+
recurring: boolean;
|
|
41
|
+
/** Creation timestamp. */
|
|
42
|
+
createdAt: number;
|
|
43
|
+
/** Source trace ID (if linked to a memory trace). */
|
|
44
|
+
sourceTraceId?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare class ProspectiveMemoryManager {
|
|
47
|
+
private items;
|
|
48
|
+
private embeddingManager?;
|
|
49
|
+
constructor(embeddingManager?: IEmbeddingManager);
|
|
50
|
+
/**
|
|
51
|
+
* Register a new prospective memory item.
|
|
52
|
+
*/
|
|
53
|
+
register(input: Omit<ProspectiveMemoryItem, 'id' | 'triggered' | 'createdAt' | 'cueEmbedding'> & {
|
|
54
|
+
cueText?: string;
|
|
55
|
+
}): Promise<ProspectiveMemoryItem>;
|
|
56
|
+
/**
|
|
57
|
+
* Check all prospective memories against the current context.
|
|
58
|
+
* Returns items that should fire this turn.
|
|
59
|
+
*/
|
|
60
|
+
check(context: {
|
|
61
|
+
now?: number;
|
|
62
|
+
events?: string[];
|
|
63
|
+
queryText?: string;
|
|
64
|
+
queryEmbedding?: number[];
|
|
65
|
+
}): Promise<ProspectiveMemoryItem[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Remove a prospective memory item.
|
|
68
|
+
*/
|
|
69
|
+
remove(id: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get all active (non-triggered or recurring) items.
|
|
72
|
+
*/
|
|
73
|
+
getActive(): ProspectiveMemoryItem[];
|
|
74
|
+
/**
|
|
75
|
+
* Get total item count.
|
|
76
|
+
*/
|
|
77
|
+
getCount(): number;
|
|
78
|
+
/**
|
|
79
|
+
* Clear all items.
|
|
80
|
+
*/
|
|
81
|
+
clear(): void;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=ProspectiveMemoryManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProspectiveMemoryManager.d.ts","sourceRoot":"","sources":["../../../src/memory/prospective/ProspectiveMemoryManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAMxE,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;AAEpF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,EAAE,sBAAsB,CAAC;IACpC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,gBAAgB,CAAC,CAAoB;gBAEjC,gBAAgB,CAAC,EAAE,iBAAiB;IAIhD;;OAEG;IACG,QAAQ,CACZ,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3G,OAAO,CAAC,qBAAqB,CAAC;IAqBjC;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA2CpC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B;;OAEG;IACH,SAAS,IAAI,qBAAqB,EAAE;IAMpC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Prospective Memory Manager — goal/intention-triggered reminders.
|
|
3
|
+
*
|
|
4
|
+
* Prospective memory = memory for future intentions (e.g., "remind me to...",
|
|
5
|
+
* "I need to...", "when X happens, do Y").
|
|
6
|
+
*
|
|
7
|
+
* Trigger types:
|
|
8
|
+
* - time_based: Fires at or after a specified timestamp
|
|
9
|
+
* - event_based: Fires when a named event occurs
|
|
10
|
+
* - context_based: Fires when semantic similarity to a cue exceeds threshold
|
|
11
|
+
*
|
|
12
|
+
* Checked each turn before prompt construction. Triggered items are
|
|
13
|
+
* injected into the "Reminders" section of the assembled memory context.
|
|
14
|
+
*
|
|
15
|
+
* @module agentos/memory/prospective/ProspectiveMemoryManager
|
|
16
|
+
*/
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// ProspectiveMemoryManager
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
let pmIdCounter = 0;
|
|
21
|
+
export class ProspectiveMemoryManager {
|
|
22
|
+
constructor(embeddingManager) {
|
|
23
|
+
this.items = new Map();
|
|
24
|
+
this.embeddingManager = embeddingManager;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Register a new prospective memory item.
|
|
28
|
+
*/
|
|
29
|
+
async register(input) {
|
|
30
|
+
const id = `pm_${Date.now()}_${++pmIdCounter}`;
|
|
31
|
+
let cueEmbedding;
|
|
32
|
+
if (input.triggerType === 'context_based' && input.cueText && this.embeddingManager) {
|
|
33
|
+
const resp = await this.embeddingManager.generateEmbeddings({ texts: input.cueText });
|
|
34
|
+
cueEmbedding = resp.embeddings[0];
|
|
35
|
+
}
|
|
36
|
+
const item = {
|
|
37
|
+
...input,
|
|
38
|
+
id,
|
|
39
|
+
cueEmbedding,
|
|
40
|
+
triggered: false,
|
|
41
|
+
createdAt: Date.now(),
|
|
42
|
+
};
|
|
43
|
+
this.items.set(id, item);
|
|
44
|
+
return item;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check all prospective memories against the current context.
|
|
48
|
+
* Returns items that should fire this turn.
|
|
49
|
+
*/
|
|
50
|
+
async check(context) {
|
|
51
|
+
const now = context.now ?? Date.now();
|
|
52
|
+
const triggered = [];
|
|
53
|
+
for (const item of this.items.values()) {
|
|
54
|
+
if (item.triggered && !item.recurring)
|
|
55
|
+
continue;
|
|
56
|
+
let shouldFire = false;
|
|
57
|
+
switch (item.triggerType) {
|
|
58
|
+
case 'time_based':
|
|
59
|
+
if (item.triggerAt && now >= item.triggerAt) {
|
|
60
|
+
shouldFire = true;
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
case 'event_based':
|
|
64
|
+
if (item.triggerEvent && context.events?.includes(item.triggerEvent)) {
|
|
65
|
+
shouldFire = true;
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
case 'context_based':
|
|
69
|
+
if (item.cueEmbedding && context.queryEmbedding) {
|
|
70
|
+
const similarity = cosineSimilarity(item.cueEmbedding, context.queryEmbedding);
|
|
71
|
+
if (similarity >= (item.similarityThreshold ?? 0.7)) {
|
|
72
|
+
shouldFire = true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
if (shouldFire) {
|
|
78
|
+
item.triggered = true;
|
|
79
|
+
triggered.push(item);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Sort by importance descending
|
|
83
|
+
triggered.sort((a, b) => b.importance - a.importance);
|
|
84
|
+
return triggered;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Remove a prospective memory item.
|
|
88
|
+
*/
|
|
89
|
+
remove(id) {
|
|
90
|
+
return this.items.delete(id);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get all active (non-triggered or recurring) items.
|
|
94
|
+
*/
|
|
95
|
+
getActive() {
|
|
96
|
+
return Array.from(this.items.values()).filter((item) => !item.triggered || item.recurring);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get total item count.
|
|
100
|
+
*/
|
|
101
|
+
getCount() {
|
|
102
|
+
return this.items.size;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Clear all items.
|
|
106
|
+
*/
|
|
107
|
+
clear() {
|
|
108
|
+
this.items.clear();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
// Utility
|
|
113
|
+
// ---------------------------------------------------------------------------
|
|
114
|
+
function cosineSimilarity(a, b) {
|
|
115
|
+
if (a.length !== b.length || a.length === 0)
|
|
116
|
+
return 0;
|
|
117
|
+
let dot = 0;
|
|
118
|
+
let normA = 0;
|
|
119
|
+
let normB = 0;
|
|
120
|
+
for (let i = 0; i < a.length; i++) {
|
|
121
|
+
dot += a[i] * b[i];
|
|
122
|
+
normA += a[i] * a[i];
|
|
123
|
+
normB += b[i] * b[i];
|
|
124
|
+
}
|
|
125
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
126
|
+
return denom === 0 ? 0 : dot / denom;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=ProspectiveMemoryManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProspectiveMemoryManager.js","sourceRoot":"","sources":["../../../src/memory/prospective/ProspectiveMemoryManager.ts"],"names":[],"mappings":"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"}
|