Summarise the kickoff, highlight the blockers, and leave me with a crisp next-step table.
Thread
Thread shells for empty states, mapped transcripts, and toolbars.
ChatView owns the thread surface while routes decide how to provide toolbars,
composers, and custom-part rendering.
Empty state
Title, description, suggestions, and composer can all be provided without any messages.
Start a thread
A route can pair the empty state with its own prompt suggestions.
Start a new conversation
Choose a suggestion or type your own prompt below.
Summarise this brief and leave a handoff note.Render a task card for the current run.Show an embedded custom status card.
Mapped transcript
Text, markdown, attachments, task cards, and custom parts can all coexist in the same thread.
Agent thread
A mapped message array stays small and stable even as the app adds custom UI.