mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-05-05 23:42:03 +00:00
Introduce a small easter egg. Woof. (#412)
Also changes auto-completion and /help to skip over slash commands that don't contain a description to avoid spoiling the surprise.
This commit is contained in:
parent
9749fcb425
commit
13a6a9a690
6 changed files with 43 additions and 9 deletions
|
|
@ -48,6 +48,7 @@ describe('useSlashCommandProcessor', () => {
|
|||
let mockOpenThemeDialog: ReturnType<typeof vi.fn>;
|
||||
let mockPerformMemoryRefresh: ReturnType<typeof vi.fn>;
|
||||
let mockConfig: Config;
|
||||
let mockCorgiMode: ReturnType<typeof vi.fn>;
|
||||
|
||||
beforeEach(() => {
|
||||
mockAddItem = vi.fn();
|
||||
|
|
@ -58,6 +59,7 @@ describe('useSlashCommandProcessor', () => {
|
|||
mockOpenThemeDialog = vi.fn();
|
||||
mockPerformMemoryRefresh = vi.fn().mockResolvedValue(undefined);
|
||||
mockConfig = { getDebugMode: vi.fn(() => false) } as unknown as Config;
|
||||
mockCorgiMode = vi.fn();
|
||||
|
||||
// Clear mocks for fsPromises if they were used directly or indirectly
|
||||
vi.mocked(fsPromises.readFile).mockClear();
|
||||
|
|
@ -89,6 +91,7 @@ describe('useSlashCommandProcessor', () => {
|
|||
mockOnDebugMessage,
|
||||
mockOpenThemeDialog,
|
||||
mockPerformMemoryRefresh,
|
||||
mockCorgiMode,
|
||||
),
|
||||
);
|
||||
return result.current;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import { addMemoryEntry } from '../../config/memoryUtils.js';
|
|||
export interface SlashCommand {
|
||||
name: string;
|
||||
altName?: string;
|
||||
description: string;
|
||||
description?: string;
|
||||
action: (mainCommand: string, subCommand?: string, args?: string) => void;
|
||||
}
|
||||
|
||||
|
|
@ -31,6 +31,7 @@ export const useSlashCommandProcessor = (
|
|||
onDebugMessage: (message: string) => void,
|
||||
openThemeDialog: () => void,
|
||||
performMemoryRefresh: () => Promise<void>, // Add performMemoryRefresh prop
|
||||
toggleCorgiMode: () => void,
|
||||
) => {
|
||||
const addMessage = useCallback(
|
||||
(message: Message) => {
|
||||
|
|
@ -131,6 +132,12 @@ export const useSlashCommandProcessor = (
|
|||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'corgi',
|
||||
action: (_mainCommand, _subCommand, _args) => {
|
||||
toggleCorgiMode();
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'quit',
|
||||
altName: 'exit',
|
||||
|
|
@ -151,6 +158,7 @@ export const useSlashCommandProcessor = (
|
|||
showMemoryAction,
|
||||
addMemoryAction,
|
||||
addMessage,
|
||||
toggleCorgiMode,
|
||||
],
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ export function useCompletion(
|
|||
(altNameMatch && cmd.altName && cmd.altName.length > 1)
|
||||
);
|
||||
})
|
||||
.filter((cmd) => cmd.description)
|
||||
.map((cmd) => ({
|
||||
label: cmd.name, // Always show the main name as label
|
||||
value: cmd.name, // Value should be the main command name for execution
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue