import * as React from 'react' import { BLACK_CIRCLE } from '../constants/figures.js' import { Box, Text } from '@anthropic/ink' import type { Screen } from '../screens/REPL.js' import type { NormalizedUserMessage } from '../types/message.js' import { getUserMessageText } from '../utils/messages.js' import { ConfigurableShortcutHint } from './ConfigurableShortcutHint.js' import { MessageResponse } from './MessageResponse.js' type Props = { message: NormalizedUserMessage screen: Screen } export function CompactSummary({ message, screen }: Props): React.ReactNode { const isTranscriptMode = screen === 'transcript' const textContent = getUserMessageText(message) || '' const metadata = message.summarizeMetadata as { messagesSummarized?: number direction?: string userContext?: string } | undefined // "Summarize from here" with metadata if (metadata) { return ( {BLACK_CIRCLE} Summarized conversation {!isTranscriptMode && ( Summarized {metadata.messagesSummarized} messages{' '} {metadata.direction === 'up_to' ? 'up to this point' : 'from this point'} {metadata.userContext && ( Context: {'\u201c'} {metadata.userContext} {'\u201d'} )} )} {isTranscriptMode && ( {textContent} )} ) } // Default compact summary (auto-compact) return ( {BLACK_CIRCLE} Compact summary {!isTranscriptMode && ( {' '} )} {isTranscriptMode && ( {textContent} )} ) }