diff options
| author | Taylor Mullen <[email protected]> | 2025-04-21 14:32:18 -0400 |
|---|---|---|
| committer | N. Taylor Mullen <[email protected]> | 2025-04-21 14:47:17 -0400 |
| commit | 738c2692fb9bdeda7c801e7b4e773f81ebc1ded0 (patch) | |
| tree | 5647ea34e0c18d790b54d7e5f2663a18688823cc /packages/cli/src/ui/App.tsx | |
| parent | 618f8a43cf9402aba7d441341a46a229c92502dd (diff) | |
Fix confirmations.
- This fixes what it means to get confirmations in GC. Prior to this they had just been accidentally unwired as part of all of the refactorings to turns + to server/core.
- The key piece of this is that we wrap the onConfirm in the gemini stream hook in order to resubmit function responses. This isn't 100% ideal but gets the job done for now.
- Fixed history not updating properly with confirmations.
Fixes https://b.corp.google.com/issues/412323656
Diffstat (limited to 'packages/cli/src/ui/App.tsx')
| -rw-r--r-- | packages/cli/src/ui/App.tsx | 70 |
1 files changed, 30 insertions, 40 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index 42b0ae5b..724036e2 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -52,15 +52,7 @@ export const App = ({ config }: AppProps) => { [history], ); - const isWaitingForToolConfirmation = history.some( - (item) => - item.type === 'tool_group' && - item.tools.some((tool) => tool.confirmationDetails !== undefined), - ); - const isInputActive = - streamingState === StreamingState.Idle && - !initError && - !isWaitingForToolConfirmation; + const isInputActive = streamingState === StreamingState.Idle && !initError; const { query, handleSubmit: handleHistorySubmit } = useInputHistory({ userMessages, @@ -88,39 +80,37 @@ export const App = ({ config }: AppProps) => { </Box> )} - {initError && - streamingState !== StreamingState.Responding && - !isWaitingForToolConfirmation && ( - <Box - borderStyle="round" - borderColor={Colors.AccentRed} - paddingX={1} - marginBottom={1} - > - {history.find( - (item) => item.type === 'error' && item.text?.includes(initError), - )?.text ? ( + {initError && streamingState !== StreamingState.Responding && ( + <Box + borderStyle="round" + borderColor={Colors.AccentRed} + paddingX={1} + marginBottom={1} + > + {history.find( + (item) => item.type === 'error' && item.text?.includes(initError), + )?.text ? ( + <Text color={Colors.AccentRed}> + { + history.find( + (item) => + item.type === 'error' && item.text?.includes(initError), + )?.text + } + </Text> + ) : ( + <> <Text color={Colors.AccentRed}> - { - history.find( - (item) => - item.type === 'error' && item.text?.includes(initError), - )?.text - } + Initialization Error: {initError} </Text> - ) : ( - <> - <Text color={Colors.AccentRed}> - Initialization Error: {initError} - </Text> - <Text color={Colors.AccentRed}> - {' '} - Please check API key and configuration. - </Text> - </> - )} - </Box> - )} + <Text color={Colors.AccentRed}> + {' '} + Please check API key and configuration. + </Text> + </> + )} + </Box> + )} <Box flexDirection="column"> <HistoryDisplay history={history} onSubmit={submitQuery} /> |
