summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/commands/chatCommand.ts
diff options
context:
space:
mode:
authorHiroaki Mitsuyoshi <[email protected]>2025-07-28 07:18:12 +0900
committerGitHub <[email protected]>2025-07-27 22:18:12 +0000
commitbce6eb501462b32fc629b6febb357ab679b6bd05 (patch)
treea8981f709434ad79d4142e7680af2bcc7bba64a6 /packages/cli/src/ui/commands/chatCommand.ts
parent9ca48c00a6bfbf8fd25bebfb703ef299c0e38ae2 (diff)
feat(chat): Implement /chat delete command (#2401)
Diffstat (limited to 'packages/cli/src/ui/commands/chatCommand.ts')
-rw-r--r--packages/cli/src/ui/commands/chatCommand.ts42
1 files changed, 41 insertions, 1 deletions
diff --git a/packages/cli/src/ui/commands/chatCommand.ts b/packages/cli/src/ui/commands/chatCommand.ts
index 739097e3..a5fa13da 100644
--- a/packages/cli/src/ui/commands/chatCommand.ts
+++ b/packages/cli/src/ui/commands/chatCommand.ts
@@ -206,9 +206,49 @@ const resumeCommand: SlashCommand = {
},
};
+const deleteCommand: SlashCommand = {
+ name: 'delete',
+ description: 'Delete a conversation checkpoint. Usage: /chat delete <tag>',
+ kind: CommandKind.BUILT_IN,
+ action: async (context, args): Promise<MessageActionReturn> => {
+ const tag = args.trim();
+ if (!tag) {
+ return {
+ type: 'message',
+ messageType: 'error',
+ content: 'Missing tag. Usage: /chat delete <tag>',
+ };
+ }
+
+ const { logger } = context.services;
+ await logger.initialize();
+ const deleted = await logger.deleteCheckpoint(tag);
+
+ if (deleted) {
+ return {
+ type: 'message',
+ messageType: 'info',
+ content: `Conversation checkpoint '${tag}' has been deleted.`,
+ };
+ } else {
+ return {
+ type: 'message',
+ messageType: 'error',
+ content: `Error: No checkpoint found with tag '${tag}'.`,
+ };
+ }
+ },
+ completion: async (context, partialArg) => {
+ const chatDetails = await getSavedChatTags(context, true);
+ return chatDetails
+ .map((chat) => chat.name)
+ .filter((name) => name.startsWith(partialArg));
+ },
+};
+
export const chatCommand: SlashCommand = {
name: 'chat',
description: 'Manage conversation history.',
kind: CommandKind.BUILT_IN,
- subCommands: [listCommand, saveCommand, resumeCommand],
+ subCommands: [listCommand, saveCommand, resumeCommand, deleteCommand],
};