@@ -169,18 +169,19 @@ export const PromptInput = React.memo(function PromptInput({
169169 const showFileMentionMenu =
170170 ! showSkillsDropdown &&
171171 ! showModelDropdown &&
172+ ! openRawModelDropdown &&
172173 fileMentionToken !== null &&
173174 fileMentionKey !== dismissedFileMentionKey ;
174175 const slashItems = React . useMemo ( ( ) => buildSlashCommands ( skills ) , [ skills ] ) ;
175176 const slashToken = getCurrentSlashToken ( buffer ) ;
176177 const slashMenu = React . useMemo (
177178 ( ) =>
178- showSkillsDropdown || showModelDropdown || showFileMentionMenu
179+ showSkillsDropdown || showModelDropdown || openRawModelDropdown || showFileMentionMenu
179180 ? [ ]
180181 : slashToken
181182 ? filterSlashCommands ( slashItems , slashToken )
182183 : [ ] ,
183- [ showSkillsDropdown , showModelDropdown , showFileMentionMenu , slashToken , slashItems ]
184+ [ showSkillsDropdown , showModelDropdown , openRawModelDropdown , showFileMentionMenu , slashToken , slashItems ]
184185 ) ;
185186 const showMenu = slashMenu . length > 0 ;
186187 const promptHistoryKey = React . useMemo ( ( ) => promptHistory . join ( "\0" ) , [ promptHistory ] ) ;
@@ -315,6 +316,9 @@ export const PromptInput = React.memo(function PromptInput({
315316 }
316317
317318 if ( key . escape ) {
319+ if ( openRawModelDropdown ) {
320+ return ;
321+ }
318322 if ( showFileMentionMenu ) {
319323 return ;
320324 }
@@ -325,6 +329,13 @@ export const PromptInput = React.memo(function PromptInput({
325329 return ;
326330 }
327331
332+ if ( isRawModeShortcut ( input , key ) ) {
333+ setShowSkillsDropdown ( false ) ;
334+ setShowModelDropdown ( false ) ;
335+ setOpenRawModelDropdown ( true ) ;
336+ return ;
337+ }
338+
328339 if ( key . ctrl && ( input === "o" || input === "O" ) ) {
329340 if ( runningProcesses && runningProcesses . size > 0 && onToggleProcessStdout ) {
330341 onToggleProcessStdout ( ) ;
@@ -887,6 +898,10 @@ export function isClearImageAttachmentsShortcut(input: string, key: Pick<InputKe
887898 return key . ctrl && ( input === "x" || input === "X" ) ;
888899}
889900
901+ export function isRawModeShortcut ( input : string , key : Pick < InputKey , "ctrl" > ) : boolean {
902+ return key . ctrl && ( input === "r" || input === "R" ) ;
903+ }
904+
890905export type PromptReturnKeyAction = "submit" | "newline" | null ;
891906
892907export function getPromptReturnKeyAction ( key : Pick < InputKey , "return" | "shift" | "meta" > ) : PromptReturnKeyAction {
0 commit comments