diff options
Diffstat (limited to 'packages/core/src/tools')
| -rw-r--r-- | packages/core/src/tools/memoryTool.test.ts | 8 | ||||
| -rw-r--r-- | packages/core/src/tools/memoryTool.ts | 20 |
2 files changed, 25 insertions, 3 deletions
diff --git a/packages/core/src/tools/memoryTool.test.ts b/packages/core/src/tools/memoryTool.test.ts index 612a08dc..aff0cc2e 100644 --- a/packages/core/src/tools/memoryTool.test.ts +++ b/packages/core/src/tools/memoryTool.test.ts @@ -9,6 +9,7 @@ import { MemoryTool, setGeminiMdFilename, getCurrentGeminiMdFilename, + getAllGeminiMdFilenames, DEFAULT_CONTEXT_FILENAME, } from './memoryTool.js'; import * as fs from 'fs/promises'; @@ -74,6 +75,13 @@ describe('MemoryTool', () => { setGeminiMdFilename(''); expect(getCurrentGeminiMdFilename()).toBe(initialName); }); + + it('should handle an array of filenames', () => { + const newNames = ['CUSTOM_CONTEXT.md', 'ANOTHER_CONTEXT.md']; + setGeminiMdFilename(newNames); + expect(getCurrentGeminiMdFilename()).toBe('CUSTOM_CONTEXT.md'); + expect(getAllGeminiMdFilenames()).toEqual(newNames); + }); }); describe('performAddMemoryEntry (static method)', () => { diff --git a/packages/core/src/tools/memoryTool.ts b/packages/core/src/tools/memoryTool.ts index a0c62eae..2c6f41c8 100644 --- a/packages/core/src/tools/memoryTool.ts +++ b/packages/core/src/tools/memoryTool.ts @@ -51,18 +51,32 @@ export const MEMORY_SECTION_HEADER = '## Gemini Added Memories'; // This variable will hold the currently configured filename for GEMINI.md context files. // It defaults to DEFAULT_CONTEXT_FILENAME but can be overridden by setGeminiMdFilename. -let currentGeminiMdFilename = DEFAULT_CONTEXT_FILENAME; +let currentGeminiMdFilename: string | string[] = DEFAULT_CONTEXT_FILENAME; -export function setGeminiMdFilename(newFilename: string): void { - if (newFilename && newFilename.trim() !== '') { +export function setGeminiMdFilename(newFilename: string | string[]): void { + if (Array.isArray(newFilename)) { + if (newFilename.length > 0) { + currentGeminiMdFilename = newFilename.map((name) => name.trim()); + } + } else if (newFilename && newFilename.trim() !== '') { currentGeminiMdFilename = newFilename.trim(); } } export function getCurrentGeminiMdFilename(): string { + if (Array.isArray(currentGeminiMdFilename)) { + return currentGeminiMdFilename[0]; + } return currentGeminiMdFilename; } +export function getAllGeminiMdFilenames(): string[] { + if (Array.isArray(currentGeminiMdFilename)) { + return currentGeminiMdFilename; + } + return [currentGeminiMdFilename]; +} + interface SaveMemoryParams { fact: string; } |
