diff options
Diffstat (limited to 'packages/cli/src/ui/components/messages')
8 files changed, 18 insertions, 35 deletions
diff --git a/packages/cli/src/ui/components/messages/DiffRenderer.tsx b/packages/cli/src/ui/components/messages/DiffRenderer.tsx index a45efe2a..0e1f7828 100644 --- a/packages/cli/src/ui/components/messages/DiffRenderer.tsx +++ b/packages/cli/src/ui/components/messages/DiffRenderer.tsx @@ -85,7 +85,7 @@ interface DiffRendererProps { const DEFAULT_TAB_WIDTH = 4; // Spaces per tab for normalization -const DiffRenderer: React.FC<DiffRendererProps> = ({ +export const DiffRenderer: React.FC<DiffRendererProps> = ({ diffContent, tabWidth = DEFAULT_TAB_WIDTH, }) => { @@ -157,6 +157,9 @@ const DiffRenderer: React.FC<DiffRendererProps> = ({ dim = true; prefixSymbol = ' '; break; + default: + throw new Error(`Unknown line type: ${line.type}`); + break; } // Render the line content *after* stripping the calculated *minimum* baseIndentation. @@ -179,5 +182,3 @@ const DiffRenderer: React.FC<DiffRendererProps> = ({ </Box> ); }; - -export default DiffRenderer; diff --git a/packages/cli/src/ui/components/messages/ErrorMessage.tsx b/packages/cli/src/ui/components/messages/ErrorMessage.tsx index fb7f9fa5..325af44f 100644 --- a/packages/cli/src/ui/components/messages/ErrorMessage.tsx +++ b/packages/cli/src/ui/components/messages/ErrorMessage.tsx @@ -5,7 +5,7 @@ interface ErrorMessageProps { text: string; } -const ErrorMessage: React.FC<ErrorMessageProps> = ({ text }) => { +export const ErrorMessage: React.FC<ErrorMessageProps> = ({ text }) => { const prefix = '✕ '; const prefixWidth = prefix.length; @@ -22,5 +22,3 @@ const ErrorMessage: React.FC<ErrorMessageProps> = ({ text }) => { </Box> ); }; - -export default ErrorMessage; diff --git a/packages/cli/src/ui/components/messages/GeminiMessage.tsx b/packages/cli/src/ui/components/messages/GeminiMessage.tsx index ccccbfc6..96773358 100644 --- a/packages/cli/src/ui/components/messages/GeminiMessage.tsx +++ b/packages/cli/src/ui/components/messages/GeminiMessage.tsx @@ -6,7 +6,7 @@ interface GeminiMessageProps { text: string; } -const GeminiMessage: React.FC<GeminiMessageProps> = ({ text }) => { +export const GeminiMessage: React.FC<GeminiMessageProps> = ({ text }) => { const prefix = '✦ '; const prefixWidth = prefix.length; @@ -40,5 +40,3 @@ const GeminiMessage: React.FC<GeminiMessageProps> = ({ text }) => { </Box> ); }; - -export default GeminiMessage; diff --git a/packages/cli/src/ui/components/messages/InfoMessage.tsx b/packages/cli/src/ui/components/messages/InfoMessage.tsx index e6f24859..a0d0bfb6 100644 --- a/packages/cli/src/ui/components/messages/InfoMessage.tsx +++ b/packages/cli/src/ui/components/messages/InfoMessage.tsx @@ -5,7 +5,7 @@ interface InfoMessageProps { text: string; } -const InfoMessage: React.FC<InfoMessageProps> = ({ text }) => { +export const InfoMessage: React.FC<InfoMessageProps> = ({ text }) => { const prefix = 'ℹ '; const prefixWidth = prefix.length; @@ -22,5 +22,3 @@ const InfoMessage: React.FC<InfoMessageProps> = ({ text }) => { </Box> ); }; - -export default InfoMessage; diff --git a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx index 59c2cc42..15c99850 100644 --- a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx @@ -6,9 +6,9 @@ import { ToolEditConfirmationDetails, ToolConfirmationOutcome, ToolExecuteConfirmationDetails, -} from '../../types.js'; // Adjust path as needed +} from '../../types.js'; import { PartListUnion } from '@google/genai'; -import DiffRenderer from './DiffRenderer.js'; +import { DiffRenderer } from './DiffRenderer.js'; import { UI_WIDTH } from '../../constants.js'; export interface ToolConfirmationMessageProps { @@ -27,9 +27,9 @@ interface InternalOption { value: ToolConfirmationOutcome; } -const ToolConfirmationMessage: React.FC<ToolConfirmationMessageProps> = ({ - confirmationDetails, -}) => { +export const ToolConfirmationMessage: React.FC< + ToolConfirmationMessageProps +> = ({ confirmationDetails }) => { const { onConfirm } = confirmationDetails; useInput((_, key) => { @@ -42,14 +42,11 @@ const ToolConfirmationMessage: React.FC<ToolConfirmationMessageProps> = ({ onConfirm(item.value); }; - let title: string; let bodyContent: React.ReactNode | null = null; // Removed contextDisplay here let question: string; const options: InternalOption[] = []; if (isEditDetails(confirmationDetails)) { - title = 'Edit'; // Title for the outer box - // Body content is now the DiffRenderer, passing filename to it // The bordered box is removed from here and handled within DiffRenderer bodyContent = <DiffRenderer diffContent={confirmationDetails.fileDiff} />; @@ -69,7 +66,6 @@ const ToolConfirmationMessage: React.FC<ToolConfirmationMessageProps> = ({ } else { const executionProps = confirmationDetails as ToolExecuteConfirmationDetails; - title = 'Execute Command'; // Title for the outer box // For execution, we still need context display and description const commandDisplay = <Text color="cyan">{executionProps.command}</Text>; @@ -118,5 +114,3 @@ const ToolConfirmationMessage: React.FC<ToolConfirmationMessageProps> = ({ </Box> ); }; - -export default ToolConfirmationMessage; diff --git a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx index 6644cd5f..9e58651c 100644 --- a/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Box } from 'ink'; import { IndividualToolCallDisplay, ToolCallStatus } from '../../types.js'; -import ToolMessage from './ToolMessage.js'; +import { ToolMessage } from './ToolMessage.js'; import { PartListUnion } from '@google/genai'; -import ToolConfirmationMessage from './ToolConfirmationMessage.js'; +import { ToolConfirmationMessage } from './ToolConfirmationMessage.js'; interface ToolGroupMessageProps { toolCalls: IndividualToolCallDisplay[]; @@ -11,7 +11,7 @@ interface ToolGroupMessageProps { } // Main component renders the border and maps the tools using ToolMessage -const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({ +export const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({ toolCalls, onSubmit, }) => { @@ -44,5 +44,3 @@ const ToolGroupMessage: React.FC<ToolGroupMessageProps> = ({ </Box> ); }; - -export default ToolGroupMessage; diff --git a/packages/cli/src/ui/components/messages/ToolMessage.tsx b/packages/cli/src/ui/components/messages/ToolMessage.tsx index cd18dae2..4bb5ea94 100644 --- a/packages/cli/src/ui/components/messages/ToolMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolMessage.tsx @@ -3,7 +3,7 @@ import { Box, Text } from 'ink'; import Spinner from 'ink-spinner'; import { ToolCallStatus } from '../../types.js'; import { ToolResultDisplay } from '../../../tools/tools.js'; -import DiffRenderer from './DiffRenderer.js'; +import { DiffRenderer } from './DiffRenderer.js'; import { MarkdownRenderer } from '../../utils/MarkdownRenderer.js'; interface ToolMessageProps { @@ -13,7 +13,7 @@ interface ToolMessageProps { status: ToolCallStatus; } -const ToolMessage: React.FC<ToolMessageProps> = ({ +export const ToolMessage: React.FC<ToolMessageProps> = ({ name, description, resultDisplay, @@ -70,5 +70,3 @@ const ToolMessage: React.FC<ToolMessageProps> = ({ </Box> ); }; - -export default ToolMessage; diff --git a/packages/cli/src/ui/components/messages/UserMessage.tsx b/packages/cli/src/ui/components/messages/UserMessage.tsx index 08c0070f..574b11bf 100644 --- a/packages/cli/src/ui/components/messages/UserMessage.tsx +++ b/packages/cli/src/ui/components/messages/UserMessage.tsx @@ -5,7 +5,7 @@ interface UserMessageProps { text: string; } -const UserMessage: React.FC<UserMessageProps> = ({ text }) => { +export const UserMessage: React.FC<UserMessageProps> = ({ text }) => { const prefix = '> '; const prefixWidth = prefix.length; @@ -20,5 +20,3 @@ const UserMessage: React.FC<UserMessageProps> = ({ text }) => { </Box> ); }; - -export default UserMessage; |
