MVP / recipes
Choose the state you need.
Each recipe is a complete, copyable agentic moment. The HTML remains useful without JavaScript; the small host-owned script only demonstrates state changes in the docs.
Start with a complete flow
Use the starter for a broad first screen. Use a focused recipe when you need to model one state family precisely.
The recipe rule
Streaming belongs to the message, tool status belongs to the tool call, and approval belongs to the immutable action. A host can replace the demo script with server-rendered HTML or its own event layer.
Compose before inventing
Policy or support-style “paused for review” screens are compositions of existing primitives, documented on the tool approval recipe. Synthesis and verdict layouts compose thinking-steps, tool-call, and card. Message footers (copy, regenerate) are host button slots on chat-message.