From 2f112ccf65617b79c0b939e76177db38a46bd514 Mon Sep 17 00:00:00 2001 From: James Grugett Date: Wed, 13 May 2026 21:49:04 -0700 Subject: [PATCH] Add model aliases for mode commands --- cli/src/commands/__tests__/router-input.test.ts | 16 ++++++++++++++++ cli/src/commands/command-registry.ts | 1 + cli/src/data/slash-commands.ts | 1 + 3 files changed, 18 insertions(+) diff --git a/cli/src/commands/__tests__/router-input.test.ts b/cli/src/commands/__tests__/router-input.test.ts index c4589477b1..8d870581d9 100644 --- a/cli/src/commands/__tests__/router-input.test.ts +++ b/cli/src/commands/__tests__/router-input.test.ts @@ -210,6 +210,10 @@ describe('command-registry', () => { expect(credits).toBeDefined() expect(credits?.name).toBe('usage') + const modelDefault = findCommand('model:default') + expect(modelDefault).toBeDefined() + expect(modelDefault?.name).toBe('mode:default') + const quit = findCommand('quit') expect(quit).toBeDefined() expect(quit?.name).toBe('exit') @@ -270,6 +274,18 @@ describe('command-registry', () => { } }) + test('mode commands expose model aliases for slash suggestions', () => { + const modeCommands = SLASH_COMMANDS.filter((cmd) => + cmd.id.startsWith('mode:'), + ) + expect(modeCommands.length).toBeGreaterThan(0) + + for (const command of modeCommands) { + const modeName = command.id.slice('mode:'.length) + expect(command.aliases).toContain(`model:${modeName}`) + } + }) + test('connect command is not available in codebuff (freebuff-only)', () => { const hasConnectSlashCommand = SLASH_COMMANDS.some( (cmd) => cmd.id === 'connect', diff --git a/cli/src/commands/command-registry.ts b/cli/src/commands/command-registry.ts index 6c034cddac..45747ae7ab 100644 --- a/cli/src/commands/command-registry.ts +++ b/cli/src/commands/command-registry.ts @@ -396,6 +396,7 @@ const ALL_COMMANDS: CommandDefinition[] = [ ...(IS_FREEBUFF ? [] : AGENT_MODES).map((mode) => defineCommandWithArgs({ name: `mode:${mode.toLowerCase()}`, + aliases: [`model:${mode.toLowerCase()}`], handler: (params, args) => { const trimmedArgs = args.trim() diff --git a/cli/src/data/slash-commands.ts b/cli/src/data/slash-commands.ts index dcb6266368..644fae9e07 100644 --- a/cli/src/data/slash-commands.ts +++ b/cli/src/data/slash-commands.ts @@ -29,6 +29,7 @@ const MODE_COMMANDS: SlashCommand[] = IS_FREEBUFF id: `mode:${mode.toLowerCase()}`, label: `mode:${mode.toLowerCase()}`, description: `Switch to ${mode} mode`, + aliases: [`model:${mode.toLowerCase()}`], })) const FREEBUFF_REMOVED_COMMAND_IDS = new Set([