0xkobold 0.5.2 → 0.6.0
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 +88 -11
- package/dist/package.json +3 -3
- package/dist/skills/session-resume-skill.js +121 -0
- package/dist/skills/session-resume-skill.js.map +1 -0
- package/dist/src/agent/DraconicRunRegistry.js +0 -9
- package/dist/src/agent/DraconicRunRegistry.js.map +1 -1
- package/dist/src/agent/auth-profiles.js +290 -0
- package/dist/src/agent/auth-profiles.js.map +1 -0
- package/dist/src/agent/embedded-runner.js +115 -29
- package/dist/src/agent/embedded-runner.js.map +1 -1
- package/dist/src/agent/index.js +4 -0
- package/dist/src/agent/index.js.map +1 -1
- package/dist/src/agent/model-fallback.js +173 -0
- package/dist/src/agent/model-fallback.js.map +1 -0
- package/dist/src/agent/tools/spawn-agent.js.map +1 -1
- package/dist/src/cli/commands/gateway.js +4 -8
- package/dist/src/cli/commands/gateway.js.map +1 -1
- package/dist/src/cron/notifications.js +15 -5
- package/dist/src/cron/notifications.js.map +1 -1
- package/dist/src/cron/runner.js +15 -6
- package/dist/src/cron/runner.js.map +1 -1
- package/dist/src/event-bus/index.js.map +1 -1
- package/dist/src/extensions/core/gateway-status-extension.js +54 -0
- package/dist/src/extensions/core/gateway-status-extension.js.map +1 -0
- package/dist/src/gateway/gateway-server.js +383 -0
- package/dist/src/gateway/gateway-server.js.map +1 -0
- package/dist/src/gateway/index.js +15 -8
- package/dist/src/gateway/index.js.map +1 -1
- package/dist/src/gateway/methods/agent.js +348 -0
- package/dist/src/gateway/methods/agent.js.map +1 -0
- package/dist/src/gateway/methods/index.js +30 -0
- package/dist/src/gateway/methods/index.js.map +1 -0
- package/dist/src/gateway/methods/types.js +7 -0
- package/dist/src/gateway/methods/types.js.map +1 -0
- package/dist/src/gateway/persistence/AgentStore.js +6 -0
- package/dist/src/gateway/persistence/AgentStore.js.map +1 -1
- package/dist/src/gateway/protocol/frames.js +43 -0
- package/dist/src/gateway/protocol/frames.js.map +1 -0
- package/dist/src/gateway/protocol/index.js +5 -0
- package/dist/src/gateway/protocol/index.js.map +1 -0
- package/dist/src/gateway/quickstart.js +34 -0
- package/dist/src/gateway/quickstart.js.map +1 -0
- package/dist/src/index.js +33 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/memory/memory-integration.js +204 -0
- package/dist/src/memory/memory-integration.js.map +1 -0
- package/dist/src/memory/session-memory-bridge.js +177 -0
- package/dist/src/memory/session-memory-bridge.js.map +1 -0
- package/dist/src/memory/session-resume.js +265 -0
- package/dist/src/memory/session-resume.js.map +1 -0
- package/dist/src/memory/session-store.js +224 -0
- package/dist/src/memory/session-store.js.map +1 -0
- package/dist/src/skills/framework.js +104 -16
- package/dist/src/skills/framework.js.map +1 -1
- package/dist/src/tui/components/footer.js +106 -0
- package/dist/src/tui/components/footer.js.map +1 -0
- package/dist/src/tui/components/status-bar.js +82 -16
- package/dist/src/tui/components/status-bar.js.map +1 -1
- package/dist/src/tui/gateway-chat-client.js +218 -0
- package/dist/src/tui/gateway-chat-client.js.map +1 -0
- package/dist/src/tui/index.js +1 -0
- package/dist/src/tui/index.js.map +1 -1
- package/package.json +3 -3
- package/skills/session-resume-skill.ts +150 -0
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,IAAI,IAAI,MAAM,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Integration (Phase 5)
|
|
3
|
+
*
|
|
4
|
+
* Bridges Session Memory Bridge ↔ Perennial Memory ↔ Generative Agents
|
|
5
|
+
*
|
|
6
|
+
* - Saves thread summaries to perennial
|
|
7
|
+
* - Loads relevant perennial memories into thread context
|
|
8
|
+
* - Triggers generative reflections on big sessions
|
|
9
|
+
* - Auto-recap before new session messages
|
|
10
|
+
*/
|
|
11
|
+
import { eventBus } from "../event-bus";
|
|
12
|
+
import { getSessionMemoryBridge } from "./session-memory-bridge";
|
|
13
|
+
const DEFAULT_CONFIG = {
|
|
14
|
+
autoSaveThreshold: 10,
|
|
15
|
+
contextMemoryLimit: 5,
|
|
16
|
+
observationReflectionThreshold: 20,
|
|
17
|
+
};
|
|
18
|
+
class MemoryIntegration {
|
|
19
|
+
config = DEFAULT_CONFIG;
|
|
20
|
+
// Track observation counts per session (generative agents uses this for reflections)
|
|
21
|
+
observationCounts = new Map();
|
|
22
|
+
constructor() {
|
|
23
|
+
console.log("[MemoryIntegration] Initializing...");
|
|
24
|
+
this.setupEventListeners();
|
|
25
|
+
}
|
|
26
|
+
setupEventListeners() {
|
|
27
|
+
// When session connects via gateway
|
|
28
|
+
eventBus.on("gateway.session_connected", async (event) => {
|
|
29
|
+
const { sessionKey } = event.payload;
|
|
30
|
+
await this.enrichSessionWithPerennial(sessionKey);
|
|
31
|
+
});
|
|
32
|
+
// When agent completes a run in gateway session
|
|
33
|
+
eventBus.on("session.run.completed", async (event) => {
|
|
34
|
+
const { sessionKey, runId, result } = event.payload;
|
|
35
|
+
await this.processRunCompletion(sessionKey, runId, result);
|
|
36
|
+
});
|
|
37
|
+
// When generative agent observes
|
|
38
|
+
eventBus.on("generative.observation", async (event) => {
|
|
39
|
+
const { agentId, content, sessionId } = event.payload;
|
|
40
|
+
if (sessionId) {
|
|
41
|
+
await this.trackObservation(sessionId, agentId, content);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
// When generative recap triggers
|
|
45
|
+
eventBus.on("generative.recap", async (event) => {
|
|
46
|
+
const { agentId, summary, memories } = event.payload;
|
|
47
|
+
await this.processGenerativeRecap(agentId, summary, memories);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 1. ENRICH: Load relevant perennial memories into session context
|
|
52
|
+
*/
|
|
53
|
+
async enrichSessionWithPerennial(sessionKey) {
|
|
54
|
+
console.log(`[MemoryIntegration] Enriching session ${sessionKey.slice(0, 8)}...`);
|
|
55
|
+
try {
|
|
56
|
+
// Get session context
|
|
57
|
+
const bridge = getSessionMemoryBridge();
|
|
58
|
+
const session = await bridge.getEnrichedSession(sessionKey);
|
|
59
|
+
if (!session)
|
|
60
|
+
return;
|
|
61
|
+
// Try to search perennial for relevant memories
|
|
62
|
+
// This would need perennial memory API - let's emit an event
|
|
63
|
+
const query = session.conversationSummary || "current work context";
|
|
64
|
+
// Event for perennial to pick up
|
|
65
|
+
eventBus.emit("perennial.query_for_session", {
|
|
66
|
+
sessionKey,
|
|
67
|
+
query,
|
|
68
|
+
limit: this.config.contextMemoryLimit,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
console.warn("[MemoryIntegration] Failed to enrich session:", err);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 2. SAVE: When session accumulates messages, save to perennial
|
|
77
|
+
*/
|
|
78
|
+
async processRunCompletion(sessionKey, _runId, result) {
|
|
79
|
+
try {
|
|
80
|
+
const bridge = getSessionMemoryBridge();
|
|
81
|
+
const session = await bridge.getEnrichedSession(sessionKey);
|
|
82
|
+
if (!session)
|
|
83
|
+
return;
|
|
84
|
+
// Check if we should auto-save
|
|
85
|
+
if (session.messageCount >= this.config.autoSaveThreshold) {
|
|
86
|
+
// Emit event for perennial to save this thread
|
|
87
|
+
eventBus.emit("perennial.save_session", {
|
|
88
|
+
sessionKey,
|
|
89
|
+
memoryThreadId: session.memoryThreadId,
|
|
90
|
+
summary: session.conversationSummary,
|
|
91
|
+
category: "context",
|
|
92
|
+
tags: ["gateway-session", `thread-${session.memoryThreadId}`],
|
|
93
|
+
importance: 0.7,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Also add generative observation
|
|
97
|
+
if (result) {
|
|
98
|
+
eventBus.emit("generative.observe_session", {
|
|
99
|
+
sessionKey,
|
|
100
|
+
content: `Session completed with ${result.slice(0, 100)}...
|
|
101
|
+
`, type: "action",
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
console.warn("[MemoryIntegration] Failed to process run completion:", err);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 3. TRACK: Count observations for reflection triggering
|
|
111
|
+
*/
|
|
112
|
+
async trackObservation(sessionId, agentId, content) {
|
|
113
|
+
const currentCount = this.observationCounts.get(sessionId) || 0;
|
|
114
|
+
const newCount = currentCount + 1;
|
|
115
|
+
this.observationCounts.set(sessionId, newCount);
|
|
116
|
+
// Check if we should trigger reflection
|
|
117
|
+
if (newCount >= this.config.observationReflectionThreshold && newCount % 20 === 0) {
|
|
118
|
+
console.log(`[MemoryIntegration] Triggering reflection for ${sessionId.slice(0, 8)}...`);
|
|
119
|
+
eventBus.emit("generative.trigger_reflection", {
|
|
120
|
+
agentId,
|
|
121
|
+
sessionId,
|
|
122
|
+
observationCount: newCount,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 4. RECAP: When generative agents generate insights, save to perennial
|
|
128
|
+
*/
|
|
129
|
+
async processGenerativeRecap(agentId, summary, memories) {
|
|
130
|
+
console.log(`[MemoryIntegration] Processing recap from ${agentId.slice(0, 8)}...`);
|
|
131
|
+
// Save the reflection summary to perennial
|
|
132
|
+
eventBus.emit("perennial.save", {
|
|
133
|
+
content: `Reflection from ${agentId}: ${summary}`,
|
|
134
|
+
category: "learning",
|
|
135
|
+
tags: ["generative-reflection", `agent-${agentId}`],
|
|
136
|
+
importance: 0.8,
|
|
137
|
+
});
|
|
138
|
+
// Also extract key observations and save
|
|
139
|
+
const keyMemories = memories
|
|
140
|
+
.filter(m => m.type === "observation" || m.type === "thought")
|
|
141
|
+
.slice(0, 5);
|
|
142
|
+
for (const mem of keyMemories) {
|
|
143
|
+
eventBus.emit("perennial.save", {
|
|
144
|
+
content: mem.content,
|
|
145
|
+
category: "context",
|
|
146
|
+
tags: ["generative-memory", `agent-${agentId}`, `type-${mem.type}`],
|
|
147
|
+
importance: 0.6,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* 5. AUTO-RECAP: Get conversation summary before new messages
|
|
153
|
+
*/
|
|
154
|
+
async getSessionRecap(sessionKey) {
|
|
155
|
+
try {
|
|
156
|
+
const bridge = getSessionMemoryBridge();
|
|
157
|
+
const context = await bridge.getMemoryContext(sessionKey);
|
|
158
|
+
if (!context)
|
|
159
|
+
return undefined;
|
|
160
|
+
// Try to get from generative agents
|
|
161
|
+
const memories = await this.queryGenerativeMemories(context.memoryThreadId);
|
|
162
|
+
if (memories.length > 0) {
|
|
163
|
+
return `Previous conversation (${memories.length} memories):
|
|
164
|
+
${memories.map(m => `- ${m.content.slice(0, 80)}...`).join("\n")}`;
|
|
165
|
+
}
|
|
166
|
+
// Fall back to stored summary
|
|
167
|
+
if (context.conversationSummary) {
|
|
168
|
+
return `Summary: ${context.conversationSummary}`;
|
|
169
|
+
}
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
console.warn("[MemoryIntegration] Failed to get recap:", err);
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Query generative memory stream for this thread
|
|
179
|
+
*/
|
|
180
|
+
async queryGenerativeMemories(threadId) {
|
|
181
|
+
// This would query the generative agents database
|
|
182
|
+
// For now, return empty and rely on event emission
|
|
183
|
+
eventBus.emit("generative.query_thread", { threadId });
|
|
184
|
+
return [];
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get total observation count for a session
|
|
188
|
+
*/
|
|
189
|
+
getObservationCount(sessionId) {
|
|
190
|
+
return this.observationCounts.get(sessionId) || 0;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Reset observation count (e.g., when reflection completes)
|
|
194
|
+
*/
|
|
195
|
+
resetObservationCount(sessionId) {
|
|
196
|
+
this.observationCounts.delete(sessionId);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Singleton
|
|
200
|
+
const integration = new MemoryIntegration();
|
|
201
|
+
export function getMemoryIntegration() {
|
|
202
|
+
return integration;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=memory-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-integration.js","sourceRoot":"","sources":["../../../src/memory/memory-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Memory Bridge (Phase 5)
|
|
3
|
+
*
|
|
4
|
+
* Links gateway sessions to memory systems:
|
|
5
|
+
* - Generative Agents (memory stream)
|
|
6
|
+
* - Perennial Memory (embeddings)
|
|
7
|
+
* - User Profile (learning/preferences)
|
|
8
|
+
*/
|
|
9
|
+
import { eventBus } from "../event-bus";
|
|
10
|
+
import { getSessionStore } from "./session-store";
|
|
11
|
+
class SessionMemoryBridge {
|
|
12
|
+
store = getSessionStore();
|
|
13
|
+
/**
|
|
14
|
+
* Get or create a memory context for a session
|
|
15
|
+
*/
|
|
16
|
+
async getMemoryContext(sessionKey) {
|
|
17
|
+
let session = this.store.get(sessionKey);
|
|
18
|
+
// Create new session if doesn't exist
|
|
19
|
+
if (!session) {
|
|
20
|
+
session = this.createSession(sessionKey);
|
|
21
|
+
}
|
|
22
|
+
// Ensure memory thread exists
|
|
23
|
+
if (!session.memoryThreadId) {
|
|
24
|
+
session.memoryThreadId = this.generateMemoryThreadId();
|
|
25
|
+
this.store.set(sessionKey, session);
|
|
26
|
+
}
|
|
27
|
+
// Get previous runs from this session
|
|
28
|
+
const previousRuns = await this.getPreviousRuns(session);
|
|
29
|
+
return {
|
|
30
|
+
sessionKey,
|
|
31
|
+
memoryThreadId: session.memoryThreadId,
|
|
32
|
+
userProfileId: session.userProfileId,
|
|
33
|
+
previousRuns,
|
|
34
|
+
conversationSummary: session.conversationSummary,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Link a gateway session to an agent run
|
|
39
|
+
*/
|
|
40
|
+
async linkRunToSession(sessionKey, runId) {
|
|
41
|
+
const session = this.store.get(sessionKey);
|
|
42
|
+
if (!session)
|
|
43
|
+
return;
|
|
44
|
+
session.lastRunId = runId;
|
|
45
|
+
session.updatedAt = Date.now();
|
|
46
|
+
session.messageCount++;
|
|
47
|
+
this.store.set(sessionKey, session);
|
|
48
|
+
// Emit event for memory systems to track
|
|
49
|
+
eventBus.emit("session.run.linked", {
|
|
50
|
+
sessionKey,
|
|
51
|
+
runId,
|
|
52
|
+
memoryThreadId: session.memoryThreadId,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get memory-enriched context for an agent
|
|
57
|
+
*/
|
|
58
|
+
async getEnrichedSession(sessionKey) {
|
|
59
|
+
const session = this.store.get(sessionKey);
|
|
60
|
+
if (!session)
|
|
61
|
+
return undefined;
|
|
62
|
+
// Load recent memories from generative agents
|
|
63
|
+
const recentMemories = await this.loadRecentMemories(session.memoryThreadId);
|
|
64
|
+
// Load user preferences
|
|
65
|
+
const userPreferences = await this.loadUserPreferences(session.userProfileId);
|
|
66
|
+
// Generate relevant context
|
|
67
|
+
const relevantContext = await this.generateContext(session, recentMemories);
|
|
68
|
+
return {
|
|
69
|
+
...session,
|
|
70
|
+
recentMemories,
|
|
71
|
+
userPreferences,
|
|
72
|
+
relevantContext,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Update conversation summary (compaction)
|
|
77
|
+
*/
|
|
78
|
+
async updateSummary(sessionKey, summary) {
|
|
79
|
+
const session = this.store.get(sessionKey);
|
|
80
|
+
if (!session)
|
|
81
|
+
return;
|
|
82
|
+
session.conversationSummary = summary;
|
|
83
|
+
session.updatedAt = Date.now();
|
|
84
|
+
this.store.set(sessionKey, session);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Associate user profile with session
|
|
88
|
+
*/
|
|
89
|
+
async setUserProfile(sessionKey, userProfileId) {
|
|
90
|
+
const session = this.store.get(sessionKey);
|
|
91
|
+
if (!session)
|
|
92
|
+
return;
|
|
93
|
+
session.userProfileId = userProfileId;
|
|
94
|
+
session.updatedAt = Date.now();
|
|
95
|
+
this.store.set(sessionKey, session);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get all active sessions with memory context
|
|
99
|
+
*/
|
|
100
|
+
async getActiveMemorySessions() {
|
|
101
|
+
const sessions = this.store.getActiveSessions();
|
|
102
|
+
return Promise.all(sessions.map(async (session) => ({
|
|
103
|
+
sessionKey: session.sessionKey,
|
|
104
|
+
memoryThreadId: session.memoryThreadId || this.generateMemoryThreadId(),
|
|
105
|
+
userProfileId: session.userProfileId,
|
|
106
|
+
previousRuns: await this.getPreviousRuns(session),
|
|
107
|
+
conversationSummary: session.conversationSummary,
|
|
108
|
+
})));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Resume a session from a memory thread ID
|
|
112
|
+
*/
|
|
113
|
+
async resumeFromMemoryThread(threadId) {
|
|
114
|
+
const session = this.store.getByMemoryThread(threadId);
|
|
115
|
+
if (!session)
|
|
116
|
+
return undefined;
|
|
117
|
+
return {
|
|
118
|
+
sessionKey: session.sessionKey,
|
|
119
|
+
memoryThreadId: threadId,
|
|
120
|
+
userProfileId: session.userProfileId,
|
|
121
|
+
previousRuns: await this.getPreviousRuns(session),
|
|
122
|
+
conversationSummary: session.conversationSummary,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// Private helpers
|
|
126
|
+
createSession(sessionKey) {
|
|
127
|
+
const now = Date.now();
|
|
128
|
+
const session = {
|
|
129
|
+
sessionId: `sess_${now}_${Math.random().toString(36).slice(2, 6)}`,
|
|
130
|
+
sessionKey,
|
|
131
|
+
createdAt: now,
|
|
132
|
+
updatedAt: now,
|
|
133
|
+
memoryThreadId: this.generateMemoryThreadId(),
|
|
134
|
+
messageCount: 0,
|
|
135
|
+
};
|
|
136
|
+
this.store.set(sessionKey, session);
|
|
137
|
+
return session;
|
|
138
|
+
}
|
|
139
|
+
generateMemoryThreadId() {
|
|
140
|
+
return `thread_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
141
|
+
}
|
|
142
|
+
async getPreviousRuns(session) {
|
|
143
|
+
// This would query the agent registry for runs associated with this session
|
|
144
|
+
// For now, return empty or last run
|
|
145
|
+
return session.lastRunId ? [session.lastRunId] : [];
|
|
146
|
+
}
|
|
147
|
+
async loadRecentMemories(threadId) {
|
|
148
|
+
if (!threadId)
|
|
149
|
+
return [];
|
|
150
|
+
// TODO: Query generative agents memory_stream table
|
|
151
|
+
// For now, return empty
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
async loadUserPreferences(userProfileId) {
|
|
155
|
+
if (!userProfileId)
|
|
156
|
+
return {};
|
|
157
|
+
// TODO: Load from user-profile.ts
|
|
158
|
+
return {};
|
|
159
|
+
}
|
|
160
|
+
async generateContext(session, memories) {
|
|
161
|
+
const parts = [];
|
|
162
|
+
if (session.conversationSummary) {
|
|
163
|
+
parts.push(`Previous context: ${session.conversationSummary}`);
|
|
164
|
+
}
|
|
165
|
+
if (memories.length > 0) {
|
|
166
|
+
const recent = memories.slice(-5).map((m) => m.content).join("\n");
|
|
167
|
+
parts.push(`Recent activity:\n${recent}`);
|
|
168
|
+
}
|
|
169
|
+
return parts.join("\n\n");
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Singleton
|
|
173
|
+
const bridge = new SessionMemoryBridge();
|
|
174
|
+
export function getSessionMemoryBridge() {
|
|
175
|
+
return bridge;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=session-memory-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-memory-bridge.js","sourceRoot":"","sources":["../../../src/memory/session-memory-bridge.ts"],"names":[],"mappings":"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"}
|