Showcase / 05
Compose rich objects. Do not invent inventory.
The Orbit / Chorus dump is inspiration, not a backlog. MVP already covers agentic chat.
Extract only when a pattern is reusable across hosts; otherwise compose. Reject Tailwind,
Iconify, decorative glass, and spring physics — they conflict with design.md.
Extend now: chat-message model meta, native expand, and host action buttons.
Compose now: synthesis → thinking-steps; verdict / refund / transfer → card + button + approval-gate; status row / attachments / diff / matrix → host markup in this showcase.
Defer to v1 (jobs.yaml): agent-status-pill, attachment, code-block, markdown.
Reject: Document Preview / Video Player as library components; DoorDash-specific outcome inventory; Apple spring/glass chrome; multi-model Chorus synthesis as MVP surface.
Message actions + expand
Superior patterns from the dump, adapted to agent-ui: model label, Copy / Regenerate as host buttons, native details for long turns.
Synthesis progress = thinking-steps
Do not ship a second timeline. Label the steps for synthesis and keep states on each step.
While one draft stresses security, the other stresses performance…
Analyzed 3 components
Collapsible reasoning stays native details — no new accordion component.
Provider status row (host chrome)
Preview of deferred agent-status-pill. Until v1, keep this as host markup beside the thread.
Attachments (host chrome)
Preview of deferred attachment. Labels only — no remote images, no video player in the library.
Verdict = card with Next / Verification
Typed sections with a CTA. Host owns take-action; the card never executes.
verdict
Goodwill credit is appropriate
Issue a $12 credit. Fraud signals are weak and delivery is confirmed.
Next action
Confirm the amount, then approve the exact credit action.
Verification
- Data integrity preserved
- One prior goodwill credit in 90 days
Support outcomes = card + approval-gate
Refund, credits, merchant deduction, transfer — domain content slots, not separate components. Bind consequential work to an immutable action ID.
refund credit
$12.00 to original payment
Order DD-48291 · reason missing item · posts in a few minutes after approval.
approval required
Issue refund credit?
issue-credit · $12.00 · actionId=refund-credit-48291 · exact action shown
Why this is safe
Order delivered; no open disputes. Host still owns the final decision.
Suggested prompts = host buttons
Not a component. Concrete starters beside chat-input.
Diff view (host chrome → future code-block)
Plain escaped text with add/delete styling. Defer a real code-block / diff part to v1.
- Close the case without notifying the customer. + Close the case and send a short summary email. Keep the order ID visible in the audit trail.
Comparison matrix = table in card
Criteria × providers. Escape every cell. No Markdown parser in core.
compare
Merge criteria
| Criteria | Provider A | Provider B |
|---|---|---|
| Policy fit | Strong | Moderate |
| Customer clarity | Moderate | Strong |
| Risk | Low | Low |
<link rel="stylesheet" href="tokens.css">
<link rel="stylesheet" href="components/button/button.css">
<link rel="stylesheet" href="components/card/card.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/thinking-steps/thinking-steps.css">
<link rel="stylesheet" href="components/approval-gate/approval-gate.css">
<link rel="stylesheet" href="host-chrome.css">
Document Preview and Video Player stay out of agent-ui. Hosts can iframe or mount media behind their own CSP. Countdown chrome never implies silent approval — the host owns the decision.