From 21c6480b65528a98ac0e1e3855f3c78c1f9b7cbe Mon Sep 17 00:00:00 2001 From: Yuki Okita Date: Wed, 20 Aug 2025 10:55:47 +0900 Subject: Refac: Centralize storage file management (#4078) Co-authored-by: Taylor Mullen --- packages/core/src/tools/ls.test.ts | 1 + packages/core/src/tools/memoryTool.test.ts | 14 +++++++++++++- packages/core/src/tools/memoryTool.ts | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) (limited to 'packages/core/src/tools') diff --git a/packages/core/src/tools/ls.test.ts b/packages/core/src/tools/ls.test.ts index 2fbeb37a..c0b553e1 100644 --- a/packages/core/src/tools/ls.test.ts +++ b/packages/core/src/tools/ls.test.ts @@ -17,6 +17,7 @@ vi.mock('fs', () => ({ }, statSync: vi.fn(), readdirSync: vi.fn(), + mkdirSync: vi.fn(), })); import { LSTool } from './ls.js'; import { Config } from '../config/config.js'; diff --git a/packages/core/src/tools/memoryTool.test.ts b/packages/core/src/tools/memoryTool.test.ts index 0e382325..dfcdd300 100644 --- a/packages/core/src/tools/memoryTool.test.ts +++ b/packages/core/src/tools/memoryTool.test.ts @@ -18,7 +18,19 @@ import * as os from 'os'; import { ToolConfirmationOutcome } from './tools.js'; // Mock dependencies -vi.mock('fs/promises'); +vi.mock(import('fs/promises'), async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + mkdir: vi.fn(), + readFile: vi.fn(), + }; +}); + +vi.mock('fs', () => ({ + mkdirSync: vi.fn(), +})); + vi.mock('os'); const MEMORY_SECTION_HEADER = '## Gemini Added Memories'; diff --git a/packages/core/src/tools/memoryTool.ts b/packages/core/src/tools/memoryTool.ts index 74efc25e..77d84216 100644 --- a/packages/core/src/tools/memoryTool.ts +++ b/packages/core/src/tools/memoryTool.ts @@ -15,7 +15,7 @@ import { import { FunctionDeclaration } from '@google/genai'; import * as fs from 'fs/promises'; import * as path from 'path'; -import { homedir } from 'os'; +import { Storage } from '../config/storage.js'; import * as Diff from 'diff'; import { DEFAULT_DIFF_OPTIONS } from './diffOptions.js'; import { tildeifyPath } from '../utils/paths.js'; @@ -96,7 +96,7 @@ interface SaveMemoryParams { } function getGlobalMemoryFilePath(): string { - return path.join(homedir(), GEMINI_CONFIG_DIR, getCurrentGeminiMdFilename()); + return path.join(Storage.getGlobalGeminiDir(), getCurrentGeminiMdFilename()); } /** -- cgit v1.2.3