ctx_management: summarize on command button (#2479)

This commit is contained in:
Lily Delalande
2025-05-08 10:43:53 -07:00
committed by GitHub
parent 85dd6375b5
commit 01e28423ff
18 changed files with 390 additions and 74 deletions
+24 -8
View File
@@ -22,8 +22,8 @@ import { Recipe } from '../recipe';
import {
ChatContextManagerProvider,
useChatContextManager,
} from './context_management/ContextManager';
import { ContextLengthExceededHandler } from './context_management/ContextLengthExceededHandler';
} from './context_management/ChatContextManager';
import { ContextHandler } from './context_management/ContextHandler';
import { LocalMessageStorage } from '../utils/localMessageStorage';
import {
Message,
@@ -105,7 +105,8 @@ function ChatContent({
resetMessagesWithSummary,
closeSummaryModal,
updateSummary,
hasContextLengthExceededContent,
hasContextHandlerContent,
getContextHandlerType,
} = useChatContextManager();
useEffect(() => {
@@ -521,16 +522,29 @@ function ChatContent({
data-testid="message-container"
>
{isUserMessage(message) ? (
<UserMessage message={message} />
) : (
<>
{/* Only render GooseMessage if it's not a CLE message */}
{hasContextLengthExceededContent(message) ? (
<ContextLengthExceededHandler
{hasContextHandlerContent(message) ? (
<ContextHandler
messages={messages}
messageId={message.id ?? message.created.toString()}
chatId={chat.id}
workingDir={window.appConfig.get('GOOSE_WORKING_DIR') as string}
contextType={getContextHandlerType(message)}
/>
) : (
<UserMessage message={message} />
)}
</>
) : (
<>
{/* Only render GooseMessage if it's not a message invoking some context management */}
{hasContextHandlerContent(message) ? (
<ContextHandler
messages={messages}
messageId={message.id ?? message.created.toString()}
chatId={chat.id}
workingDir={window.appConfig.get('GOOSE_WORKING_DIR') as string}
contextType={getContextHandlerType(message)}
/>
) : (
<GooseMessage
@@ -587,6 +601,8 @@ function ChatContent({
hasMessages={hasMessages}
numTokens={sessionTokenCount}
droppedFiles={droppedFiles}
messages={messages}
setMessages={setMessages}
/>
</div>
</Card>