summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useGeminiStream.ts
diff options
context:
space:
mode:
authoranj-s <[email protected]>2025-07-11 07:55:03 -0700
committerGitHub <[email protected]>2025-07-11 14:55:03 +0000
commitc9e1e6d3bdfe1fa1582f278d6f1a606353313642 (patch)
treec6a78c450431d5fca390b1448d0f12e99da13ccc /packages/cli/src/ui/hooks/useGeminiStream.ts
parent0151a9e1a3451221faf52e883b2c9d6a49eb1b5c (diff)
Add support for specifying maxSessionTurns via the settings configuration (#3507)
Diffstat (limited to 'packages/cli/src/ui/hooks/useGeminiStream.ts')
-rw-r--r--packages/cli/src/ui/hooks/useGeminiStream.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/useGeminiStream.ts b/packages/cli/src/ui/hooks/useGeminiStream.ts
index b82b0cb2..a9326528 100644
--- a/packages/cli/src/ui/hooks/useGeminiStream.ts
+++ b/packages/cli/src/ui/hooks/useGeminiStream.ts
@@ -431,6 +431,20 @@ export const useGeminiStream = (
[addItem, config],
);
+ const handleMaxSessionTurnsEvent = useCallback(
+ () =>
+ addItem(
+ {
+ type: 'info',
+ text:
+ `The session has reached the maximum number of turns: ${config.getMaxSessionTurns()}. ` +
+ `Please update this limit in your setting.json file.`,
+ },
+ Date.now(),
+ ),
+ [addItem, config],
+ );
+
const processGeminiStreamEvents = useCallback(
async (
stream: AsyncIterable<GeminiEvent>,
@@ -467,6 +481,9 @@ export const useGeminiStream = (
case ServerGeminiEventType.ToolCallResponse:
// do nothing
break;
+ case ServerGeminiEventType.MaxSessionTurns:
+ handleMaxSessionTurnsEvent();
+ break;
default: {
// enforces exhaustive switch-case
const unreachable: never = event;
@@ -485,6 +502,7 @@ export const useGeminiStream = (
handleErrorEvent,
scheduleToolCalls,
handleChatCompressionEvent,
+ handleMaxSessionTurnsEvent,
],
);