Human
Prepare release notes from the latest changes, but show me the file before you write it.
Pattern / overview
The smallest credible agentic surface: a human request, visible thinking, a successful read, a bounded write proposal, and a question that resumes the work.
# agent-ui / recipe / agent-flow
recipe: agent-flow
purpose: End-to-end composition proving honest state, bounded approval, and resumable questions.
proves:
- honest_state: Thinking, tool success, waiting, approval, and question states stay local to the object they describe.
- bounded_action: Proposed file/action is visible before approval. Host still owns execution.
- resumable_flow: Question is a native form. Server-rendered response can continue the same conversation.
- no_js_baseline: Messages, tool output, approval controls, and the question remain readable without runtime.
compose:
- chat-message
- loading-state
- reasoning
- tool-call
- approval-gate
- ask-user-question
- chat-input
rules:
- Judgement pause = approval-gate + ask-user-question.
- Do not invent larger components or undocumented state names.
- Focused recipes: chat-streaming, tool-approval, question-resume.This overview composes `chat-message`, `loading-state`, `reasoning`, `tool-call`, `approval-gate`, `ask-user-question`, and `chat-input`. Each surface keeps its own CSS contract; the focused recipes isolate the state families.
Chat streaming · Tool approval · Question resume. Each page keeps the no-JS path visible and includes a state matrix.
A judgement pause is approval-gate + ask-user-question. Message copy / regenerate footers are host button slots on chat-message, not new inventory.
Composition-only: copy the listed component stylesheets plus host chrome. The host owns execution, authorization, and state transitions.
<link rel="stylesheet" href="tokens.css">
<link rel="stylesheet" href="themes.css">
<link rel="stylesheet" href="components/button/button.css">
<link rel="stylesheet" href="components/chat-thread/chat-thread.css">
<link rel="stylesheet" href="components/chat-message/chat-message.css">
<link rel="stylesheet" href="components/chat-input/chat-input.css">
<link rel="stylesheet" href="components/chat-input/chat-input-features.css">
<link rel="stylesheet" href="components/loading-state/loading-state.css">
<link rel="stylesheet" href="components/reasoning/reasoning.css">
<link rel="stylesheet" href="components/tool-call/tool-call.css">
<link rel="stylesheet" href="components/approval-gate/approval-gate.css">
<link rel="stylesheet" href="components/ask-user-question/ask-user-question.css">
<link rel="stylesheet" href="host-chrome.css">