import React from 'react'; import type { Message, Part, ToolPart } from '@opencode-ai/sdk'; interface SimpleMessageRendererProps { message: { info: Message; parts: Part[] }; } export function SimpleMessageRenderer({ message }: SimpleMessageRendererProps) { const { info, parts } = message; const isUser = info.role === 'user'; // Extract text content from parts const textContent = parts .filter((part): part is Part & { type: 'text' } => part.type === 'text') .map((part) => part.text) .join('\n'); // Check for tool calls const toolParts = parts.filter((part): part is ToolPart => part.type === 'tool'); return (
{/* Role indicator for assistant */} {!isUser && (
Assistant
)} {/* Text content */} {textContent && (
{textContent}
)} {/* Tool activity indicator */} {toolParts.length > 0 && (
{toolParts.map((part, idx) => ( ))}
)} {/* Empty message placeholder */} {!textContent && toolParts.length === 0 && (
...
)}
); } function ToolPartRenderer({ part }: { part: ToolPart }) { const toolName = typeof part.tool === 'string' ? part.tool : 'tool'; const status = typeof part.state?.status === 'string' ? part.state.status : 'pending'; return (
{status === 'running' || status === 'pending' ? ( ) : status === 'completed' ? ( ) : ( )} {toolName}
); }