@xfabric/memory 0.2.10 → 0.2.11

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.
@@ -0,0 +1,42 @@
1
+ /**
2
+ * LLM Memory Flush Agent
3
+ * Extracts durable memories from session history before compaction
4
+ */
5
+ import type { FlushAgentParams, FlushResult, MemoryFlushConfig, FlushSessionEntry, MemoryWriteOptions, MemoryWriteResult } from "../types.js";
6
+ /**
7
+ * Default memory flush configuration
8
+ */
9
+ export declare const DEFAULT_MEMORY_FLUSH_CONFIG: MemoryFlushConfig;
10
+ /**
11
+ * Resolve memory flush settings with defaults
12
+ */
13
+ export declare function resolveMemoryFlushConfig(config?: Partial<MemoryFlushConfig>): MemoryFlushConfig | null;
14
+ /**
15
+ * Check if memory flush should run based on token thresholds
16
+ */
17
+ export declare function shouldRunMemoryFlush(params: {
18
+ entry?: FlushSessionEntry;
19
+ contextWindowTokens: number;
20
+ reserveTokensFloor: number;
21
+ softThresholdTokens: number;
22
+ }): boolean;
23
+ /**
24
+ * Run the memory flush agent with LLM extraction
25
+ *
26
+ * This function either:
27
+ * 1. Uses a provided LLM chat function to extract memories
28
+ * 2. Falls back to tool-based extraction if no LLM is provided
29
+ */
30
+ export declare function runMemoryFlushAgent(params: FlushAgentParams): Promise<FlushResult>;
31
+ /**
32
+ * Create a simple memory write function for use with the flush agent
33
+ */
34
+ export declare function createMemoryWriter(memoryDir: string): (content: string, options?: MemoryWriteOptions) => Promise<MemoryWriteResult>;
35
+ /**
36
+ * Extract session history from messages for flush context
37
+ */
38
+ export declare function formatSessionHistoryForFlush(messages: Array<{
39
+ role: string;
40
+ content: string;
41
+ }>): string;
42
+ //# sourceMappingURL=flush-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flush-agent.d.ts","sourceRoot":"","sources":["../../src/flush/flush-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAGjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAarB;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAMzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,iBAAiB,GAAG,IAAI,CAc1B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CA4BV;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,WAAW,CAAC,CAqCtB;AA6HD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAChB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAmD/E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACjD,MAAM,CAQR"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * LLM Memory Flush Agent
3
+ * Extracts durable memories from session history before compaction
4
+ */
5
+ import { DEFAULT_FLUSH_SOFT_THRESHOLD_TOKENS, DEFAULT_FLUSH_RESERVE_TOKENS_FLOOR, } from "../types.js";
6
+ import { DEFAULT_MEMORY_FLUSH_PROMPT, DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT, buildFlushContext, isSilentReply, generateMemoryFilename, } from "./prompts.js";
7
+ /**
8
+ * Default memory flush configuration
9
+ */
10
+ export const DEFAULT_MEMORY_FLUSH_CONFIG = {
11
+ enabled: true,
12
+ softThresholdTokens: DEFAULT_FLUSH_SOFT_THRESHOLD_TOKENS,
13
+ reserveTokensFloor: DEFAULT_FLUSH_RESERVE_TOKENS_FLOOR,
14
+ prompt: DEFAULT_MEMORY_FLUSH_PROMPT,
15
+ systemPrompt: DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT,
16
+ };
17
+ /**
18
+ * Resolve memory flush settings with defaults
19
+ */
20
+ export function resolveMemoryFlushConfig(config) {
21
+ if (config?.enabled === false) {
22
+ return null;
23
+ }
24
+ return {
25
+ enabled: config?.enabled ?? true,
26
+ softThresholdTokens: config?.softThresholdTokens ?? DEFAULT_FLUSH_SOFT_THRESHOLD_TOKENS,
27
+ reserveTokensFloor: config?.reserveTokensFloor ?? DEFAULT_FLUSH_RESERVE_TOKENS_FLOOR,
28
+ prompt: config?.prompt?.trim() || DEFAULT_MEMORY_FLUSH_PROMPT,
29
+ systemPrompt: config?.systemPrompt?.trim() || DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT,
30
+ };
31
+ }
32
+ /**
33
+ * Check if memory flush should run based on token thresholds
34
+ */
35
+ export function shouldRunMemoryFlush(params) {
36
+ const totalTokens = params.entry?.totalTokens;
37
+ if (!totalTokens || totalTokens <= 0) {
38
+ return false;
39
+ }
40
+ const contextWindow = Math.max(1, Math.floor(params.contextWindowTokens));
41
+ const reserveTokens = Math.max(0, Math.floor(params.reserveTokensFloor));
42
+ const softThreshold = Math.max(0, Math.floor(params.softThresholdTokens));
43
+ // Threshold = contextWindow - reserveTokens - softThreshold
44
+ const threshold = Math.max(0, contextWindow - reserveTokens - softThreshold);
45
+ if (threshold <= 0) {
46
+ return false;
47
+ }
48
+ if (totalTokens < threshold) {
49
+ return false;
50
+ }
51
+ // Don't flush twice for same compaction cycle
52
+ const compactionCount = params.entry?.compactionCount ?? 0;
53
+ const lastFlushAt = params.entry?.memoryFlushCompactionCount;
54
+ if (typeof lastFlushAt === "number" && lastFlushAt === compactionCount) {
55
+ return false;
56
+ }
57
+ return true;
58
+ }
59
+ /**
60
+ * Run the memory flush agent with LLM extraction
61
+ *
62
+ * This function either:
63
+ * 1. Uses a provided LLM chat function to extract memories
64
+ * 2. Falls back to tool-based extraction if no LLM is provided
65
+ */
66
+ export async function runMemoryFlushAgent(params) {
67
+ const { sessionHistory, writeMemory, llmChat, onProgress } = params;
68
+ if (!sessionHistory.trim()) {
69
+ return {
70
+ success: true,
71
+ memoriesWritten: 0,
72
+ bytesWritten: 0,
73
+ noReply: true,
74
+ };
75
+ }
76
+ onProgress?.("Building extraction context...");
77
+ // Build the context for the LLM
78
+ const context = buildFlushContext({
79
+ sessionHistory,
80
+ });
81
+ // If we have an LLM chat function, use it for extraction
82
+ if (llmChat) {
83
+ return runWithLLM({
84
+ context,
85
+ llmChat,
86
+ writeMemory,
87
+ onProgress,
88
+ });
89
+ }
90
+ // Fallback: Just return a prompt-based result
91
+ // The caller (plugin) will inject this as context
92
+ return {
93
+ success: false,
94
+ memoriesWritten: 0,
95
+ bytesWritten: 0,
96
+ error: "No LLM provider available for extraction",
97
+ };
98
+ }
99
+ /**
100
+ * Run extraction with LLM chat function
101
+ */
102
+ async function runWithLLM(params) {
103
+ const { context, llmChat, writeMemory, onProgress } = params;
104
+ onProgress?.("Extracting memories with LLM...");
105
+ let memoriesWritten = 0;
106
+ let totalBytesWritten = 0;
107
+ // Define the memory_write tool for the LLM
108
+ const memoryWriteTool = {
109
+ name: "memory_write",
110
+ description: "Write content to a memory file for durable storage. " +
111
+ "Content is stored as markdown and will be searchable via semantic search.",
112
+ parameters: {
113
+ type: "object",
114
+ properties: {
115
+ content: {
116
+ type: "string",
117
+ description: "The content to write (markdown format recommended)",
118
+ },
119
+ filename: {
120
+ type: "string",
121
+ description: "Filename to write to (default: YYYY-MM-DD.md based on current date)",
122
+ },
123
+ append: {
124
+ type: "boolean",
125
+ description: "If true, append to existing file (default: true)",
126
+ },
127
+ },
128
+ required: ["content"],
129
+ },
130
+ };
131
+ try {
132
+ // Call the LLM with tool support
133
+ const response = await llmChat({
134
+ messages: [
135
+ { role: "system", content: context.systemPrompt },
136
+ { role: "user", content: context.userPrompt },
137
+ ],
138
+ tools: [memoryWriteTool],
139
+ maxTokens: 4096,
140
+ });
141
+ // Check for silent reply
142
+ if (response.content && isSilentReply(response.content)) {
143
+ onProgress?.("No memories to save (NO_REPLY)");
144
+ return {
145
+ success: true,
146
+ memoriesWritten: 0,
147
+ bytesWritten: 0,
148
+ noReply: true,
149
+ };
150
+ }
151
+ // Process tool calls
152
+ if (response.toolCalls && response.toolCalls.length > 0) {
153
+ for (const toolCall of response.toolCalls) {
154
+ if (toolCall.name === "memory_write") {
155
+ const args = toolCall.arguments;
156
+ if (args.content) {
157
+ onProgress?.(`Writing memory to ${args.filename || "default file"}...`);
158
+ const result = await writeMemory(args.content, {
159
+ filename: args.filename,
160
+ append: args.append,
161
+ });
162
+ if (result.success) {
163
+ memoriesWritten++;
164
+ totalBytesWritten += result.bytesWritten ?? 0;
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ // If LLM returned content without tool calls, treat it as memory content
171
+ if (response.content && !isSilentReply(response.content) && memoriesWritten === 0) {
172
+ onProgress?.("Writing extracted content as memory...");
173
+ const result = await writeMemory(response.content, {
174
+ filename: generateMemoryFilename(),
175
+ append: true,
176
+ });
177
+ if (result.success) {
178
+ memoriesWritten++;
179
+ totalBytesWritten += result.bytesWritten ?? 0;
180
+ }
181
+ }
182
+ onProgress?.(`Flush complete: ${memoriesWritten} memories written`);
183
+ return {
184
+ success: true,
185
+ memoriesWritten,
186
+ bytesWritten: totalBytesWritten,
187
+ };
188
+ }
189
+ catch (error) {
190
+ return {
191
+ success: false,
192
+ memoriesWritten,
193
+ bytesWritten: totalBytesWritten,
194
+ error: error instanceof Error ? error.message : String(error),
195
+ };
196
+ }
197
+ }
198
+ /**
199
+ * Create a simple memory write function for use with the flush agent
200
+ */
201
+ export function createMemoryWriter(memoryDir) {
202
+ return async (content, options) => {
203
+ const { writeFile, readFile, mkdir } = await import("node:fs/promises");
204
+ const { join, dirname } = await import("node:path");
205
+ try {
206
+ // Determine filename
207
+ let filename = options?.filename?.trim();
208
+ if (!filename) {
209
+ filename = generateMemoryFilename();
210
+ }
211
+ // Ensure it's in memory subdirectory if no path specified
212
+ if (!filename.includes("/")) {
213
+ filename = `memory/${filename}`;
214
+ }
215
+ const absPath = join(memoryDir, filename);
216
+ // Ensure directory exists
217
+ await mkdir(dirname(absPath), { recursive: true });
218
+ // Default to append mode
219
+ const shouldAppend = options?.append !== false;
220
+ let finalContent = content;
221
+ if (shouldAppend) {
222
+ try {
223
+ const existing = await readFile(absPath, "utf-8");
224
+ // Add separator if file has content
225
+ if (existing.trim()) {
226
+ finalContent = existing.trimEnd() + "\n\n---\n\n" + content;
227
+ }
228
+ }
229
+ catch {
230
+ // File doesn't exist, just use new content
231
+ }
232
+ }
233
+ await writeFile(absPath, finalContent, "utf-8");
234
+ return {
235
+ success: true,
236
+ path: filename,
237
+ bytesWritten: Buffer.byteLength(finalContent, "utf-8"),
238
+ };
239
+ }
240
+ catch (error) {
241
+ return {
242
+ success: false,
243
+ error: error instanceof Error ? error.message : String(error),
244
+ };
245
+ }
246
+ };
247
+ }
248
+ /**
249
+ * Extract session history from messages for flush context
250
+ */
251
+ export function formatSessionHistoryForFlush(messages) {
252
+ return messages
253
+ .filter((m) => m.role === "user" || m.role === "assistant")
254
+ .map((m) => {
255
+ const label = m.role === "user" ? "User" : "Assistant";
256
+ return `### ${label}\n${m.content}`;
257
+ })
258
+ .join("\n\n---\n\n");
259
+ }
260
+ //# sourceMappingURL=flush-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flush-agent.js","sourceRoot":"","sources":["../../src/flush/flush-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Memory flush module exports
3
+ */
4
+ export { DEFAULT_MEMORY_FLUSH_PROMPT, DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT, buildFlushContext, isSilentReply, ensureNoReplyHint, generateMemoryFilename, } from "./prompts.js";
5
+ export { DEFAULT_MEMORY_FLUSH_CONFIG, resolveMemoryFlushConfig, shouldRunMemoryFlush, runMemoryFlushAgent, createMemoryWriter, formatSessionHistoryForFlush, } from "./flush-agent.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flush/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Memory flush module exports
3
+ */
4
+ export { DEFAULT_MEMORY_FLUSH_PROMPT, DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT, buildFlushContext, isSilentReply, ensureNoReplyHint, generateMemoryFilename, } from "./prompts.js";
5
+ export { DEFAULT_MEMORY_FLUSH_CONFIG, resolveMemoryFlushConfig, shouldRunMemoryFlush, runMemoryFlushAgent, createMemoryWriter, formatSessionHistoryForFlush, } from "./flush-agent.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/flush/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Memory flush prompts for LLM extraction
3
+ * These prompts guide the LLM to extract durable memories from session history
4
+ */
5
+ /**
6
+ * Default user prompt for memory flush
7
+ * This is sent as the user message to trigger extraction
8
+ */
9
+ export declare const DEFAULT_MEMORY_FLUSH_PROMPT: string;
10
+ /**
11
+ * Default system prompt for memory flush
12
+ * This sets up the LLM's role and behavior
13
+ */
14
+ export declare const DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT: string;
15
+ /**
16
+ * Ensure the prompt contains the NO_REPLY hint
17
+ */
18
+ export declare function ensureNoReplyHint(text: string): string;
19
+ /**
20
+ * Check if response indicates nothing to save
21
+ */
22
+ export declare function isSilentReply(text: string | undefined): boolean;
23
+ /**
24
+ * Build the full context for memory extraction
25
+ */
26
+ export declare function buildFlushContext(params: {
27
+ sessionHistory: string;
28
+ customPrompt?: string;
29
+ customSystemPrompt?: string;
30
+ }): {
31
+ systemPrompt: string;
32
+ userPrompt: string;
33
+ };
34
+ /**
35
+ * Generate a default memory filename based on current date
36
+ */
37
+ export declare function generateMemoryFilename(): string;
38
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/flush/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAgBhC,CAAC;AAET;;;GAGG;AACH,eAAO,MAAM,kCAAkC,QA4BvC,CAAC;AAET;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAe/D;AASD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAaA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Memory flush prompts for LLM extraction
3
+ * These prompts guide the LLM to extract durable memories from session history
4
+ */
5
+ import { SILENT_REPLY_TOKEN } from "../types.js";
6
+ /**
7
+ * Default user prompt for memory flush
8
+ * This is sent as the user message to trigger extraction
9
+ */
10
+ export const DEFAULT_MEMORY_FLUSH_PROMPT = `
11
+ Pre-compaction memory flush.
12
+
13
+ Analyze the conversation history above and extract important information that should persist:
14
+ - User preferences, settings, and stated requirements
15
+ - Key decisions made during the session
16
+ - Important facts learned about the project, codebase, or domain
17
+ - TODOs, action items, and pending tasks
18
+ - Context that would be useful in future sessions
19
+ - Technical choices and their rationale
20
+
21
+ Write extracted memories to memory files using the memory_write tool.
22
+ Format memories as markdown with clear headings.
23
+ Each memory should be self-contained with enough context to be understood standalone.
24
+
25
+ If nothing important needs to be saved, reply with ${SILENT_REPLY_TOKEN}.
26
+ `.trim();
27
+ /**
28
+ * Default system prompt for memory flush
29
+ * This sets up the LLM's role and behavior
30
+ */
31
+ export const DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT = `
32
+ You are a memory extraction agent. The session is approaching context limits and will be compacted.
33
+ Your job is to identify and persist durable memories before context is lost.
34
+
35
+ Guidelines:
36
+ - Focus on information that would be lost without explicit storage
37
+ - Use clear, searchable language (memories will be vector-indexed for semantic search)
38
+ - Include enough context for each memory to be understood standalone
39
+ - Organize related information together with descriptive headings
40
+ - Skip ephemeral information that can be easily re-derived
41
+ - Skip tool outputs and code that already exists in files
42
+ - Prioritize: user preferences > decisions > facts > context
43
+
44
+ Format memories as:
45
+ ## [Topic or Date]
46
+ [Content with context]
47
+
48
+ Example:
49
+ ## User Preferences
50
+ - Prefers TypeScript over JavaScript
51
+ - Uses pnpm as package manager
52
+ - Likes concise code without excessive comments
53
+
54
+ ## Project Decisions (2024-01-15)
55
+ - Chose SQLite for storage due to zero-config deployment
56
+ - Using vitest for testing (faster than jest)
57
+
58
+ If no important memories need saving, reply with ${SILENT_REPLY_TOKEN}.
59
+ `.trim();
60
+ /**
61
+ * Ensure the prompt contains the NO_REPLY hint
62
+ */
63
+ export function ensureNoReplyHint(text) {
64
+ if (text.includes(SILENT_REPLY_TOKEN)) {
65
+ return text;
66
+ }
67
+ return `${text}\n\nIf no user-visible reply is needed, start with ${SILENT_REPLY_TOKEN}.`;
68
+ }
69
+ /**
70
+ * Check if response indicates nothing to save
71
+ */
72
+ export function isSilentReply(text) {
73
+ if (!text)
74
+ return false;
75
+ const trimmed = text.trim();
76
+ // Check if response starts with or is just the silent token
77
+ if (trimmed === SILENT_REPLY_TOKEN)
78
+ return true;
79
+ if (trimmed.startsWith(SILENT_REPLY_TOKEN))
80
+ return true;
81
+ // Check for token at word boundary at start
82
+ const prefixRegex = new RegExp(`^\\s*${escapeRegex(SILENT_REPLY_TOKEN)}(?=$|\\W)`);
83
+ if (prefixRegex.test(text))
84
+ return true;
85
+ // Check for token at end
86
+ const suffixRegex = new RegExp(`\\b${escapeRegex(SILENT_REPLY_TOKEN)}\\b\\W*$`);
87
+ return suffixRegex.test(text);
88
+ }
89
+ /**
90
+ * Escape special regex characters
91
+ */
92
+ function escapeRegex(str) {
93
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
94
+ }
95
+ /**
96
+ * Build the full context for memory extraction
97
+ */
98
+ export function buildFlushContext(params) {
99
+ const systemPrompt = ensureNoReplyHint(params.customSystemPrompt ?? DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT);
100
+ const userPrompt = ensureNoReplyHint(params.customPrompt ?? DEFAULT_MEMORY_FLUSH_PROMPT);
101
+ return {
102
+ systemPrompt,
103
+ userPrompt: `## Session History\n\n${params.sessionHistory}\n\n---\n\n${userPrompt}`,
104
+ };
105
+ }
106
+ /**
107
+ * Generate a default memory filename based on current date
108
+ */
109
+ export function generateMemoryFilename() {
110
+ const now = new Date();
111
+ const yyyy = now.getFullYear();
112
+ const mm = String(now.getMonth() + 1).padStart(2, "0");
113
+ const dd = String(now.getDate()).padStart(2, "0");
114
+ return `memory/${yyyy}-${mm}-${dd}.md`;
115
+ }
116
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/flush/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;qDAeU,kBAAkB;CACtE,CAAC,IAAI,EAAE,CAAC;AAET;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA2BC,kBAAkB;CACpE,CAAC,IAAI,EAAE,CAAC;AAET;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,IAAI,sDAAsD,kBAAkB,GAAG,CAAC;AAC5F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAwB;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE5B,4DAA4D;IAC5D,IAAI,OAAO,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,4CAA4C;IAC5C,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,QAAQ,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACnF,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChF,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAIjC;IAIC,MAAM,YAAY,GAAG,iBAAiB,CACpC,MAAM,CAAC,kBAAkB,IAAI,kCAAkC,CAChE,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAClC,MAAM,CAAC,YAAY,IAAI,2BAA2B,CACnD,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,UAAU,EAAE,yBAAyB,MAAM,CAAC,cAAc,cAAc,UAAU,EAAE;KACrF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,UAAU,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACzC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type { MemoryConfig, MemorySearchResult, SearchOptions, MemoryFileEntry, MemoryChunk, StoredChunk, MemorySource, VectorSearchResult, KeywordSearchResult, HybridSearchOptions, MemorySearchParams, MemoryGetParams, MemorySearchResponse, MemoryGetResponse, MemoryIndexMeta, FileChangeEvent, SessionEvent, EmbeddingProviderType, SyncProgress, MemoryStatus, ProbeResult, SessionChunk, SessionFileState, BatchConfig, BatchJob, ExtendedMemoryConfig, ExtendedBatchConfig, OpenAiBatchRequest, OpenAiBatchStatus, OpenAiBatchOutputLine, GeminiBatchRequest, GeminiBatchStatus, GeminiBatchOutputLine, OpenAiEmbeddingClient, GeminiEmbeddingClient, } from "./types.js";
2
- export { DEFAULT_CONFIG, BATCH_FAILURE_LIMIT, SESSION_DIRTY_DEBOUNCE_MS, EMBEDDING_RETRY_MAX_ATTEMPTS, EMBEDDING_RETRY_BASE_DELAY_MS, EMBEDDING_RETRY_MAX_DELAY_MS, OPENAI_BATCH_MAX_REQUESTS, GEMINI_BATCH_MAX_REQUESTS, OPENAI_BATCH_ENDPOINT, OPENAI_BATCH_COMPLETION_WINDOW, } from "./types.js";
1
+ export type { MemoryConfig, MemorySearchResult, SearchOptions, MemoryFileEntry, MemoryChunk, StoredChunk, MemorySource, VectorSearchResult, KeywordSearchResult, HybridSearchOptions, MemorySearchParams, MemoryGetParams, MemorySearchResponse, MemoryGetResponse, MemoryIndexMeta, FileChangeEvent, SessionEvent, EmbeddingProviderType, SyncProgress, MemoryStatus, ProbeResult, SessionChunk, SessionFileState, BatchConfig, BatchJob, ExtendedMemoryConfig, ExtendedBatchConfig, OpenAiBatchRequest, OpenAiBatchStatus, OpenAiBatchOutputLine, GeminiBatchRequest, GeminiBatchStatus, GeminiBatchOutputLine, OpenAiEmbeddingClient, GeminiEmbeddingClient, MemoryFlushConfig, FlushAgentParams, FlushResult, MemoryWriteOptions, MemoryWriteResult, FlushSessionEntry, LLMChatParams, LLMChatResponse, LLMTool, OpenCodeMessage, OpenCodeContentPart, OpenCodeSessionEntry, SessionFormat, ExtendedSyncConfig, SessionSyncConfig, } from "./types.js";
2
+ export { DEFAULT_CONFIG, BATCH_FAILURE_LIMIT, SESSION_DIRTY_DEBOUNCE_MS, EMBEDDING_RETRY_MAX_ATTEMPTS, EMBEDDING_RETRY_BASE_DELAY_MS, EMBEDDING_RETRY_MAX_DELAY_MS, OPENAI_BATCH_MAX_REQUESTS, GEMINI_BATCH_MAX_REQUESTS, OPENAI_BATCH_ENDPOINT, OPENAI_BATCH_COMPLETION_WINDOW, DEFAULT_FLUSH_SOFT_THRESHOLD_TOKENS, DEFAULT_FLUSH_RESERVE_TOKENS_FLOOR, SILENT_REPLY_TOKEN, } from "./types.js";
3
3
  export { MemoryManager } from "./memory-manager.js";
4
4
  export { memorySearch, memoryGet, createMemorySearchToolDef, createMemoryGetToolDef, } from "./tools/index.js";
5
5
  export type { EmbeddingProvider, EmbeddingProviderResult, ProviderConfig } from "./providers/index.js";
@@ -12,6 +12,8 @@ export { FileWatcher, type FileWatcherOptions } from "./sync/index.js";
12
12
  export { SessionMonitor, type SessionMonitorOptions } from "./sync/index.js";
13
13
  export { minimatch } from "./sync/index.js";
14
14
  export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, getSessionListenerCount, type SessionTranscriptUpdate, type SessionTranscriptListener, } from "./sync/index.js";
15
+ export { scanOpenCodeSessions, buildOpenCodeSessionEntry, extractOpenCodeText, getOpenCodeSessionHistory, watchOpenCodeSessions, } from "./sync/index.js";
16
+ export { DEFAULT_MEMORY_FLUSH_PROMPT, DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT, DEFAULT_MEMORY_FLUSH_CONFIG, buildFlushContext, isSilentReply, ensureNoReplyHint, generateMemoryFilename, resolveMemoryFlushConfig, shouldRunMemoryFlush, runMemoryFlushAgent, createMemoryWriter, formatSessionHistoryForFlush, } from "./flush/index.js";
15
17
  export { searchVector, searchVectorWithSqliteVec, syncVectorTable, searchFts, mergeHybridResults, buildFtsQuery, bm25RankToScore, } from "./search/index.js";
16
18
  export { hashText, hashFile } from "./utils/index.js";
17
19
  export { retry, RetryError, type RetryOptions } from "./utils/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  // Main exports for @vibestudio/memory
2
2
  export { DEFAULT_CONFIG,
3
3
  // Constants
4
- BATCH_FAILURE_LIMIT, SESSION_DIRTY_DEBOUNCE_MS, EMBEDDING_RETRY_MAX_ATTEMPTS, EMBEDDING_RETRY_BASE_DELAY_MS, EMBEDDING_RETRY_MAX_DELAY_MS, OPENAI_BATCH_MAX_REQUESTS, GEMINI_BATCH_MAX_REQUESTS, OPENAI_BATCH_ENDPOINT, OPENAI_BATCH_COMPLETION_WINDOW, } from "./types.js";
4
+ BATCH_FAILURE_LIMIT, SESSION_DIRTY_DEBOUNCE_MS, EMBEDDING_RETRY_MAX_ATTEMPTS, EMBEDDING_RETRY_BASE_DELAY_MS, EMBEDDING_RETRY_MAX_DELAY_MS, OPENAI_BATCH_MAX_REQUESTS, GEMINI_BATCH_MAX_REQUESTS, OPENAI_BATCH_ENDPOINT, OPENAI_BATCH_COMPLETION_WINDOW,
5
+ // Flush constants
6
+ DEFAULT_FLUSH_SOFT_THRESHOLD_TOKENS, DEFAULT_FLUSH_RESERVE_TOKENS_FLOOR, SILENT_REPLY_TOKEN, } from "./types.js";
5
7
  // Memory Manager
6
8
  export { MemoryManager } from "./memory-manager.js";
7
9
  // Tools
@@ -20,6 +22,9 @@ export { FileWatcher } from "./sync/index.js";
20
22
  export { SessionMonitor } from "./sync/index.js";
21
23
  export { minimatch } from "./sync/index.js";
22
24
  export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, getSessionListenerCount, } from "./sync/index.js";
25
+ export { scanOpenCodeSessions, buildOpenCodeSessionEntry, extractOpenCodeText, getOpenCodeSessionHistory, watchOpenCodeSessions, } from "./sync/index.js";
26
+ // Flush module
27
+ export { DEFAULT_MEMORY_FLUSH_PROMPT, DEFAULT_MEMORY_FLUSH_SYSTEM_PROMPT, DEFAULT_MEMORY_FLUSH_CONFIG, buildFlushContext, isSilentReply, ensureNoReplyHint, generateMemoryFilename, resolveMemoryFlushConfig, shouldRunMemoryFlush, runMemoryFlushAgent, createMemoryWriter, formatSessionHistoryForFlush, } from "./flush/index.js";
23
28
  // Search
24
29
  export { searchVector, searchVectorWithSqliteVec, syncVectorTable, searchFts, mergeHybridResults, buildFtsQuery, bm25RankToScore, } from "./search/index.js";
25
30
  // Utilities
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AA6CtC,OAAO,EACL,cAAc;AACd,YAAY;AACZ,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAEpB,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ;AACR,OAAO,EACL,YAAY,EACZ,SAAS,EACT,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB;AAClB,oBAAoB;AACpB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,UAAU;AACV,OAAO,EACL,aAAa,EACb,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3F,WAAW;AACX,OAAO,EACL,aAAa,EACb,YAAY,EACZ,wBAAwB,GAGzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO;AACP,OAAO,EAAE,WAAW,EAA2B,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,cAAc,EAA8B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,iBAAiB,CAAC;AAEzB,SAAS;AACT,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,kCAAkC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAoC,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAE1B,gEAAgE;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AA8DtC,OAAO,EACL,cAAc;AACd,YAAY;AACZ,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B;AAC9B,kBAAkB;AAClB,mCAAmC,EACnC,kCAAkC,EAClC,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ;AACR,OAAO,EACL,YAAY,EACZ,SAAS,EACT,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB;AAClB,oBAAoB;AACpB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,UAAU;AACV,OAAO,EACL,aAAa,EACb,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3F,WAAW;AACX,OAAO,EACL,aAAa,EACb,YAAY,EACZ,wBAAwB,GAGzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO;AACP,OAAO,EAAE,WAAW,EAA2B,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,cAAc,EAA8B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,eAAe;AACf,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,2BAA2B,EAC3B,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,kCAAkC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAoC,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAE1B,gEAAgE;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { MemoryConfig, MemorySearchResult, SearchOptions, MemoryFileEntry, MemorySource, MemoryStatus, ProbeResult, ExtendedMemoryConfig } from "./types.js";
1
+ import type { MemoryConfig, MemorySearchResult, SearchOptions, MemoryFileEntry, MemorySource, MemoryStatus, ProbeResult, ExtendedMemoryConfig, MemoryWriteOptions, MemoryWriteResult, FlushResult, MemoryFlushConfig, LLMChatParams, LLMChatResponse } from "./types.js";
2
2
  /**
3
3
  * Memory manager for indexing and searching workspace content
4
4
  */
@@ -267,5 +267,42 @@ export declare class MemoryManager {
267
267
  * Mark session files as dirty (for external triggers)
268
268
  */
269
269
  markSessionsDirty(files?: string[]): void;
270
+ /**
271
+ * Sync OpenCode format sessions (JSON files per message)
272
+ */
273
+ private syncOpenCodeSessions;
274
+ /**
275
+ * Index a single OpenCode session
276
+ */
277
+ private indexOpenCodeSession;
278
+ /**
279
+ * Get session history for a specific session (for flush context)
280
+ */
281
+ getSessionHistory(sessionId: string, options?: {
282
+ maxMessages?: number;
283
+ }): Promise<string>;
284
+ /**
285
+ * Write content to a memory file
286
+ * This is the primary method for durable memory storage
287
+ */
288
+ writeMemory(content: string, options?: MemoryWriteOptions): Promise<MemoryWriteResult>;
289
+ /**
290
+ * Flush memories from session history using LLM extraction
291
+ *
292
+ * @param params.sessionHistory - Full session history text (optional, will fetch if not provided)
293
+ * @param params.sessionId - Session ID to fetch history from (if sessionHistory not provided)
294
+ * @param params.llmChat - LLM chat function for extraction
295
+ * @param params.onProgress - Progress callback
296
+ */
297
+ flushMemories(params?: {
298
+ sessionHistory?: string;
299
+ sessionId?: string;
300
+ llmChat?: (params: LLMChatParams) => Promise<LLMChatResponse>;
301
+ onProgress?: (status: string) => void;
302
+ }): Promise<FlushResult>;
303
+ /**
304
+ * Get flush configuration
305
+ */
306
+ getFlushConfig(): MemoryFlushConfig | null;
270
307
  }
271
308
  //# sourceMappingURL=memory-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../src/memory-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-manager.d.ts","sourceRoot":"","sources":["../src/memory-manager.ts"],"names":[],"mappings":"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"}