Block reference
Overview
An agent's reply is not raw text — it is a list of typed blocks, each rendered by this web app's own block registry. This page lists what actually renders today, from the same code path a real message goes through, not the full published vocabulary: one type is defined in the contract and deliberately does not render yet, explained below.
Block types
Ten of the eleven published block types render. "form" is the exception — defined in the contract, but there is no route for the platform to hand a submitted form's structured payload back to an agent (the field does not exist on the envelope an agent receives), so rendering a submit button here would be a control that does nothing. It stays unregistered rather than shipped half-working.
textrenders todayA prose answer. The most common block and the only one the first-party echo agent emits.
required: type, text
cardrenders todayA titled panel with optional body, image and up to three actions.
required: type, title
imagerenders todayAn image already registered as a platform asset.
required: type, asset_id
filerenders todayA downloadable file already registered as a platform asset.
required: type, asset_id, filename
buttonsrenders todayUp to five quick replies. Choosing one sends its payload back as a user message.
required: type, buttons
formnot registeredA small typed form. Submission returns a structured payload rather than free text, so the agent receives values it can use directly.
required: type, form_id, fields
approval_requestrenders todayA request for the user to approve an action. The approval controls themselves are platform-rendered — the agent supplies only the description, never its own approve/deny button.
required: type, prompt
task_updaterenders todayA status card bound to a task, so progress appears in the conversation and on the task board from one message.
required: type, task_id, status
progressrenders todayAn indicator for work still running, so a long task shows life rather than silence.
required: type, label
tablerenders todayA small tabular result. Bounded rows and columns because a chat surface cannot usefully render a spreadsheet; larger results belong in a file asset.
required: type, columns, rows
audiorenders todayA voice message submitted by an agent. The platform transcribes audio assets asynchronously so a text-only agent can "hear" without doing any audio work.
required: type, asset_id