summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/commands/directoryCommand.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/commands/directoryCommand.tsx')
-rw-r--r--packages/cli/src/ui/commands/directoryCommand.tsx34
1 files changed, 33 insertions, 1 deletions
diff --git a/packages/cli/src/ui/commands/directoryCommand.tsx b/packages/cli/src/ui/commands/directoryCommand.tsx
index 18f7e78f..6c667f44 100644
--- a/packages/cli/src/ui/commands/directoryCommand.tsx
+++ b/packages/cli/src/ui/commands/directoryCommand.tsx
@@ -8,6 +8,7 @@ import { SlashCommand, CommandContext, CommandKind } from './types.js';
import { MessageType } from '../types.js';
import * as os from 'os';
import * as path from 'path';
+import { loadServerHierarchicalMemory } from '@google/gemini-cli-core';
export function expandHomeDir(p: string): string {
if (!p) {
@@ -16,7 +17,7 @@ export function expandHomeDir(p: string): string {
let expandedPath = p;
if (p.toLowerCase().startsWith('%userprofile%')) {
expandedPath = os.homedir() + p.substring('%userprofile%'.length);
- } else if (p.startsWith('~')) {
+ } else if (p === '~' || p.startsWith('~/')) {
expandedPath = os.homedir() + p.substring(1);
}
return path.normalize(expandedPath);
@@ -90,6 +91,37 @@ export const directoryCommand: SlashCommand = {
}
}
+ try {
+ if (config.shouldLoadMemoryFromIncludeDirectories()) {
+ const { memoryContent, fileCount } =
+ await loadServerHierarchicalMemory(
+ config.getWorkingDir(),
+ [
+ ...config.getWorkspaceContext().getDirectories(),
+ ...pathsToAdd,
+ ],
+ config.getDebugMode(),
+ config.getFileService(),
+ config.getExtensionContextFilePaths(),
+ context.services.settings.merged.memoryImportFormat || 'tree', // Use setting or default to 'tree'
+ config.getFileFilteringOptions(),
+ context.services.settings.merged.memoryDiscoveryMaxDirs,
+ );
+ config.setUserMemory(memoryContent);
+ config.setGeminiMdFileCount(fileCount);
+ context.ui.setGeminiMdFileCount(fileCount);
+ }
+ addItem(
+ {
+ type: MessageType.INFO,
+ text: `Successfully added GEMINI.md files from the following directories if there are:\n- ${added.join('\n- ')}`,
+ },
+ Date.now(),
+ );
+ } catch (error) {
+ errors.push(`Error refreshing memory: ${(error as Error).message}`);
+ }
+
if (added.length > 0) {
const gemini = config.getGeminiClient();
if (gemini) {