diff options
Diffstat (limited to 'packages/cli/src/ui/components/messages')
4 files changed, 28 insertions, 8 deletions
diff --git a/packages/cli/src/ui/components/messages/GeminiMessage.tsx b/packages/cli/src/ui/components/messages/GeminiMessage.tsx index b2c816a9..df8d0a87 100644 --- a/packages/cli/src/ui/components/messages/GeminiMessage.tsx +++ b/packages/cli/src/ui/components/messages/GeminiMessage.tsx @@ -11,9 +11,15 @@ import { Colors } from '../../colors.js'; interface GeminiMessageProps { text: string; + isPending: boolean; + availableTerminalHeight: number; } -export const GeminiMessage: React.FC<GeminiMessageProps> = ({ text }) => { +export const GeminiMessage: React.FC<GeminiMessageProps> = ({ + text, + isPending, + availableTerminalHeight, +}) => { const prefix = '✦ '; const prefixWidth = prefix.length; @@ -23,7 +29,11 @@ export const GeminiMessage: React.FC<GeminiMessageProps> = ({ text }) => { <Text color={Colors.AccentPurple}>{prefix}</Text> </Box> <Box flexGrow={1} flexDirection="column"> - <MarkdownDisplay text={text} /> + <MarkdownDisplay + text={text} + isPending={isPending} + availableTerminalHeight={availableTerminalHeight} + /> </Box> </Box> ); diff --git a/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx b/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx index b9b85dc7..da6e468a 100644 --- a/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx +++ b/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx @@ -10,6 +10,8 @@ import { MarkdownDisplay } from '../../utils/MarkdownDisplay.js'; interface GeminiMessageContentProps { text: string; + isPending: boolean; + availableTerminalHeight: number; } /* @@ -20,13 +22,19 @@ interface GeminiMessageContentProps { */ export const GeminiMessageContent: React.FC<GeminiMessageContentProps> = ({ text, + isPending, + availableTerminalHeight, }) => { const originalPrefix = '✦ '; const prefixWidth = originalPrefix.length; return ( <Box flexDirection="column" paddingLeft={prefixWidth}> - <MarkdownDisplay text={text} /> + <MarkdownDisplay + text={text} + isPending={isPending} + availableTerminalHeight={availableTerminalHeight} + /> </Box> ); }; diff --git a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx index 33460405..d0ad1c5f 100644 --- a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx @@ -29,7 +29,6 @@ export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({ const borderColor = hasPending ? Colors.AccentYellow : Colors.SubtleComment; const staticHeight = /* border */ 2 + /* marginBottom */ 1; - availableTerminalHeight -= staticHeight; return ( <Box @@ -58,7 +57,7 @@ export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({ resultDisplay={tool.resultDisplay} status={tool.status} confirmationDetails={tool.confirmationDetails} - availableTerminalHeight={availableTerminalHeight} + availableTerminalHeight={availableTerminalHeight - staticHeight} /> {tool.status === ToolCallStatus.Confirming && tool.confirmationDetails && ( diff --git a/packages/cli/src/ui/components/messages/ToolMessage.tsx b/packages/cli/src/ui/components/messages/ToolMessage.tsx index 220578de..091785f2 100644 --- a/packages/cli/src/ui/components/messages/ToolMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolMessage.tsx @@ -26,7 +26,6 @@ export const ToolMessage: React.FC<ToolMessageProps> = ({ const statusIndicatorWidth = 3; const hasResult = resultDisplay && resultDisplay.toString().trim().length > 0; const staticHeight = /* Header */ 1; - availableTerminalHeight -= staticHeight; let displayableResult = resultDisplay; let hiddenLines = 0; @@ -37,7 +36,7 @@ export const ToolMessage: React.FC<ToolMessageProps> = ({ const lines = resultDisplay.split('\n'); // Estimate available height for this specific tool message content area // This is a rough estimate; ideally, we'd have a more precise measurement. - const contentHeightEstimate = availableTerminalHeight - 5; // Subtracting lines for tool name, status, padding etc. + const contentHeightEstimate = availableTerminalHeight - staticHeight - 5; // Subtracting lines for tool name, status, padding etc. if (lines.length > contentHeightEstimate && contentHeightEstimate > 0) { displayableResult = lines.slice(0, contentHeightEstimate).join('\n'); hiddenLines = lines.length - contentHeightEstimate; @@ -83,7 +82,11 @@ export const ToolMessage: React.FC<ToolMessageProps> = ({ <Box flexDirection="column"> {typeof displayableResult === 'string' && ( <Box flexDirection="column"> - <MarkdownDisplay text={displayableResult} /> + <MarkdownDisplay + text={displayableResult} + isPending={false} + availableTerminalHeight={availableTerminalHeight} + /> </Box> )} {typeof displayableResult === 'object' && ( |
