diff options
| author | Billy Biggs <[email protected]> | 2025-06-15 11:40:39 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-15 11:40:39 -0700 |
| commit | b67806ae9a99e5a3c449c60457933b47d14ba66c (patch) | |
| tree | f1334ae7d120c3ba39e5725d5e1f56db8ad443ff /packages/cli/src/ui/hooks/slashCommandProcessor.ts | |
| parent | 6d772a30c0540ad83c99a794c820af635961694a (diff) | |
Support completion of checkpoint names in /resume (#1063)
Diffstat (limited to 'packages/cli/src/ui/hooks/slashCommandProcessor.ts')
| -rw-r--r-- | packages/cli/src/ui/hooks/slashCommandProcessor.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts index a4b13d0a..dfefc562 100644 --- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts +++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts @@ -44,6 +44,7 @@ export interface SlashCommand { name: string; altName?: string; description?: string; + completion?: () => Promise<string[]>; action: ( mainCommand: string, subCommand?: string, @@ -643,6 +644,25 @@ Add any other context about the problem here. name: 'resume', description: 'resume from conversation checkpoint. Usage: /resume [tag]', + completion: async () => { + const geminiDir = config?.getGeminiDir(); + if (!geminiDir) { + return []; + } + try { + const files = await fs.readdir(geminiDir); + return files + .filter( + (file) => + file.startsWith('checkpoint-') && file.endsWith('.json'), + ) + .map((file) => + file.replace('checkpoint-', '').replace('.json', ''), + ); + } catch (_err) { + return []; + } + }, action: async (_mainCommand, subCommand, _args) => { const tag = (subCommand || '').trim(); const logger = new Logger(config?.getSessionId() || ''); |
