From 29b3dd601e3d0cf1b43172f4f4a7af9ada7e6cfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=ADas=20Ventura?= Date: Fri, 20 Mar 2026 12:35:15 +0100 Subject: [PATCH] Add command for deselecting site --- apps/cli/ai/slash-commands.ts | 2 ++ apps/cli/ai/ui.ts | 2 +- apps/cli/commands/ai.ts | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/cli/ai/slash-commands.ts b/apps/cli/ai/slash-commands.ts index 76eabb5e54..319ff8c9c6 100644 --- a/apps/cli/ai/slash-commands.ts +++ b/apps/cli/ai/slash-commands.ts @@ -9,10 +9,12 @@ export const AI_CHAT_LOGIN_COMMAND = '/login'; export const AI_CHAT_LOGOUT_COMMAND = '/logout'; export const AI_CHAT_MODEL_COMMAND = '/model'; export const AI_CHAT_PROVIDER_COMMAND = '/provider'; +export const AI_CHAT_DESELECT_COMMAND = '/deselect'; export const AI_CHAT_EXIT_COMMAND = '/exit'; export const AI_CHAT_SLASH_COMMANDS: SlashCommandDef[] = [ { name: 'browser', description: 'Open the active site in the browser' }, + { name: 'deselect', description: 'Deselect the active site' }, { name: 'api-key', description: 'Set or update the Anthropic API key' }, { name: 'login', description: 'Log in to WordPress.com' }, { name: 'logout', description: 'Log out of WordPress.com' }, diff --git a/apps/cli/ai/ui.ts b/apps/cli/ai/ui.ts index 08e513c0cb..892f864368 100644 --- a/apps/cli/ai/ui.ts +++ b/apps/cli/ai/ui.ts @@ -901,7 +901,7 @@ export class AiChatUI { this.tui.requestRender(); } - private clearActiveSite(): void { + clearActiveSite(): void { this._activeSite = null; this._activeSiteData = null; this.editor.activeSiteName = null; diff --git a/apps/cli/commands/ai.ts b/apps/cli/commands/ai.ts index c2479a8f3c..78f6f04831 100644 --- a/apps/cli/commands/ai.ts +++ b/apps/cli/commands/ai.ts @@ -13,6 +13,7 @@ import { AI_PROVIDERS, type AiProviderId } from 'cli/ai/providers'; import { AI_CHAT_API_KEY_COMMAND, AI_CHAT_BROWSER_COMMAND, + AI_CHAT_DESELECT_COMMAND, AI_CHAT_EXIT_COMMAND, AI_CHAT_LOGIN_COMMAND, AI_CHAT_LOGOUT_COMMAND, @@ -193,6 +194,15 @@ export async function runCommand(): Promise< void > { continue; } + if ( trimmedPrompt === AI_CHAT_DESELECT_COMMAND ) { + if ( ui.activeSite ) { + ui.clearActiveSite(); + } else { + ui.showInfo( 'No site selected.' ); + } + continue; + } + if ( trimmedPrompt === AI_CHAT_API_KEY_COMMAND ) { try { await prepareProviderSelection( 'anthropic-api-key', { force: true } );