summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useGeminiStream.ts
diff options
context:
space:
mode:
authorJacob MacDonald <[email protected]>2025-06-13 21:21:40 -0700
committerGitHub <[email protected]>2025-06-14 04:21:40 +0000
commitd5c6bb9740a52d87b71d812e698d0e88abf10caa (patch)
tree7cb990c0adbd1d76d60a655d3dfa15e22db033e3 /packages/cli/src/ui/hooks/useGeminiStream.ts
parent1452bb4ca4ffe3b5c13aab81baaf510d4c45f06f (diff)
Add `/compress` command to force a compression of the context (#986)
Related to https://b.corp.google.com/issues/423605555 - I figured this might be a simpler solution to start with, while still also being useful on its own even if we do implement that.
Diffstat (limited to 'packages/cli/src/ui/hooks/useGeminiStream.ts')
-rw-r--r--packages/cli/src/ui/hooks/useGeminiStream.ts10
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/cli/src/ui/hooks/useGeminiStream.ts b/packages/cli/src/ui/hooks/useGeminiStream.ts
index 920ec490..bff38a2b 100644
--- a/packages/cli/src/ui/hooks/useGeminiStream.ts
+++ b/packages/cli/src/ui/hooks/useGeminiStream.ts
@@ -13,6 +13,7 @@ import {
ServerGeminiStreamEvent as GeminiEvent,
ServerGeminiContentEvent as ContentEvent,
ServerGeminiErrorEvent as ErrorEvent,
+ ServerGeminiChatCompressedEvent,
getErrorMessage,
isNodeError,
MessageSenderType,
@@ -368,11 +369,14 @@ export const useGeminiStream = (
);
const handleChatCompressionEvent = useCallback(
- () =>
+ (eventValue: ServerGeminiChatCompressedEvent['value']) =>
addItem(
{
type: 'info',
- text: `IMPORTANT: this conversation approached the input token limit for ${config.getModel()}. We'll send a compressed context to the model for any future messages.`,
+ text:
+ `IMPORTANT: This conversation approached the input token limit for ${config.getModel()}. ` +
+ `A compressed context will be sent for future messages (compressed from: ` +
+ `${eventValue.originalTokenCount} to ${eventValue.newTokenCount} tokens).`,
},
Date.now(),
),
@@ -406,7 +410,7 @@ export const useGeminiStream = (
handleErrorEvent(event.value, userMessageTimestamp);
break;
case ServerGeminiEventType.ChatCompressed:
- handleChatCompressionEvent();
+ handleChatCompressionEvent(event.value);
break;
case ServerGeminiEventType.UsageMetadata:
addUsage(event.value);