summaryrefslogtreecommitdiff
path: root/packages/core/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/tools')
-rw-r--r--packages/core/src/tools/memoryTool.test.ts8
-rw-r--r--packages/core/src/tools/memoryTool.ts20
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;
}