import { useState } from 'react' import { User, Bot, Wrench, CheckCircle, AlertCircle, Terminal, File, Image, FileText, Music, Video, Download, ChevronDown, ChevronRight, Copy, Check } from 'lucide-react' import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' import type { ChatMessage, Attachment, TaskToolResult } from '../../types/protocol' interface MessageBubbleProps { message: ChatMessage onNavigateToSubAgent?: (taskId: string, description: string) => void } function getAttachmentIcon(mediaType: string) { switch (mediaType) { case 'image': return case 'audio': return case 'video': return