What problem does it solve? Building a chat UI for AI agents involves tricky problems: rendering mixed message parts (text, tool calls, images, files), keeping streaming output performant, pairing tool calls with their results, and handling large thread histories without DOM bloat. This Skill provides production-grade React/Next.js component patterns that solve each of these problems. ## Core Features & Use Cases - Parts-Based Message Rendering: A MessageRenderer that dispatches each message part type (text, tool-call, tool-result, image, file) to the correct component, pairing tool calls and results by toolCallId into a single ToolCallCard. - Streaming & Performance Patterns: StreamingText with aria-live announcements, React.memo on every message component, and a virtualized MessageList using @tanstack/react-virtual for threads over 50 messages. - Complete Chat Building Blocks: MessageBubble with hover actions (copy, regenerate, feedback), FileUploadZone with drag-and-drop and progress tracking, and a full thread page layout with connection banner and sandbox status badge. - Use Case: You are building a Next.js dashboard where users converse with an AI agent that calls tools. Use these patterns to render streaming tokens, display tool execution status, and let users upload files, all with WCAG-conscious accessibility. ## Quick Start Ask the agent to build a streaming chat message list with tool-call cards for your Next.js app using these patterns.