diff --git a/packages/ui/src/components/chat/ChatInput.tsx b/packages/ui/src/components/chat/ChatInput.tsx index 46f7e428..df3aa230 100644 --- a/packages/ui/src/components/chat/ChatInput.tsx +++ b/packages/ui/src/components/chat/ChatInput.tsx @@ -1288,7 +1288,7 @@ const ChatInputComponent: React.FC = ({ onOpenSettings, scrollTo const availableSkills = useSkillsStore((s) => s.skills); const knownSlashNames = React.useMemo(() => { const names = new Set([ - 'init', 'review', 'undo', 'redo', 'timeline', 'compact', 'summary', 'workspace-review', 'plan-feature', 'craft-goal', 'catch-up', 'debug', 'weigh', 'explore', + 'init', 'review', 'undo', 'redo', 'timeline', 'compact', 'summary', 'workspace-review', 'plan-feature', 'craft-goal', 'schedule-task', 'catch-up', 'debug', 'weigh', 'explore', ]); if (!isMobile && !isVSCodeRuntime()) names.add('handoff-review'); for (const command of availableCommands) names.add(command.name.toLowerCase()); @@ -2257,6 +2257,32 @@ const ChatInputComponent: React.FC = ({ onOpenSettings, scrollTo } return; } + else if (commandName === 'schedule-task' && (currentSessionId || newSessionDraftOpen)) { + try { + await sessionActions.waitForConnectionOrThrow(); + const idea = normalizedCommand.replace(/^\/schedule-task\b/i, '').trim(); + const visibleText = await renderMagicPrompt('session.scheduleTask.visible', { + idea_block: idea ? `\n\nHere is my initial idea:\n${idea}` : '', + }); + const instructionsText = await renderMagicPrompt('session.scheduleTask.instructions'); + await sendMessage( + visibleText, + providerIdToSend, + modelIdToSend, + agentNameToSend, + [], + agentMentionName, + [{ text: instructionsText, synthetic: true }], + variantToSend, + inputMode, + sendMessageOptions, + ); + scrollToBottom?.(); + } catch (error) { + toast.error(error instanceof Error ? error.message : t('chat.chatInput.toast.scheduleTaskFailed')); + } + return; + } else if (commandName === 'catch-up' && (currentSessionId || newSessionDraftOpen)) { try { await sessionActions.waitForConnectionOrThrow(); diff --git a/packages/ui/src/components/chat/CommandAutocomplete.tsx b/packages/ui/src/components/chat/CommandAutocomplete.tsx index 6b950364..c4fe39bc 100644 --- a/packages/ui/src/components/chat/CommandAutocomplete.tsx +++ b/packages/ui/src/components/chat/CommandAutocomplete.tsx @@ -170,6 +170,10 @@ export const CommandAutocomplete = React.forwardRef