summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/ui/hooks/slashCommandProcessor.test.ts21
-rw-r--r--packages/cli/src/ui/hooks/slashCommandProcessor.ts7
2 files changed, 25 insertions, 3 deletions
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts
index d9712d6e..68dc3ea9 100644
--- a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts
+++ b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts
@@ -340,6 +340,27 @@ describe('useSlashCommandProcessor', () => {
expect(commandResult).toBe(true);
});
+ it('/clear should clear items, reset chat, and refresh static', async () => {
+ const mockResetChat = vi.fn();
+ mockConfig = {
+ ...mockConfig,
+ getGeminiClient: () => ({
+ resetChat: mockResetChat,
+ }),
+ } as unknown as Config;
+
+ const { handleSlashCommand } = getProcessor();
+ let commandResult: SlashCommandActionReturn | boolean = false;
+ await act(async () => {
+ commandResult = await handleSlashCommand('/clear');
+ });
+
+ expect(mockClearItems).toHaveBeenCalled();
+ expect(mockResetChat).toHaveBeenCalled();
+ expect(mockRefreshStatic).toHaveBeenCalled();
+ expect(commandResult).toBe(true);
+ });
+
it('/editor should open editor dialog and return true', async () => {
const { handleSlashCommand } = getProcessor();
let commandResult: SlashCommandActionReturn | boolean = false;
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
index 11e1247f..916af3e7 100644
--- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
@@ -181,10 +181,11 @@ export const useSlashCommandProcessor = (
},
{
name: 'clear',
- description: 'clear the screen',
- action: (_mainCommand, _subCommand, _args) => {
- onDebugMessage('Clearing terminal.');
+ description: 'clear the screen and conversation history',
+ action: async (_mainCommand, _subCommand, _args) => {
+ onDebugMessage('Clearing terminal and resetting chat.');
clearItems();
+ await config?.getGeminiClient()?.resetChat();
console.clear();
refreshStatic();
},