Concrete
surface
Component

Message

Role-aware message wrapper with avatars, plain or bubble surfaces, metadata, and subtle action toolbars.

Message keeps transcript structure portable: role, author, avatar, status, meta, surface, actions, and body. It does not own transport or persistence.

RL
Rubricnow
The eval runner is failing during schema hydration. I found one stale fixture and a missing tool permission edge.
Playground

Props in the URL.

Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.

Loading playground.
States

Rendered matrix.

Every state maps to the same component render route through the `state` query param.

RL
Rubricnow
The eval runner is failing during schema hydration. I found one stale fixture and a missing tool permission edge.
Assistant

Assistant response with metadata and actions.

/render state
DS
Dexter
Can you inspect the failing run and summarize the blocker?
User

Outbound user message treatment.

/render state
System
Context window compacted. Latest workspace state and render routes are available.
System

System note for constraints, memory, or run context.

/render state
Props

Public contract.

NameTypeDefaultDescription
messageRole'assistant' | 'system' | 'tool' | 'user'assistantTranscript role controlling alignment and tone.
surface'bubble' | 'plain'bubbleBubble chat surface or stronger plain answer surface.
status'complete' | 'error' | 'pending' | 'streaming'completeOptional status badge for live or failed messages.
authorReactNode-Author label shown above the bubble.
avatarReactNode-Custom avatar slot for multiplayer or multi-agent transcripts.
avatarInitialsstring-Convenience initials for the built-in Avatar primitive.
avatarSrcstring-Convenience image source for the built-in Avatar primitive.
showAvatarbooleanfalseForces built-in avatar rendering.
showStatusbooleantrueShows non-complete status badges.
groupedbooleanfalseTucks consecutive messages into a tighter transcript rhythm.
metaReactNode-Timestamp or secondary metadata.
actionsReactNode-Subtle toolbar-like action slot below the message body.
childrenReactNode-Message content.