Represents individual Server-Sent Events (SSE) streamed when stream: true. Each event is a JSON object on a data: line and carries an event field naming its type. Clients filter on the event name to drive UI. The stream always ends with a terminal data: [DONE] line.
Every event is delivered as one SSE frame:
data: {"event":"response.content_delta","delta":"Hello"}A response stream proceeds roughly as: response.processing → response.created → (response.context) → content/tool/reasoning events → response.completed (or response.cancelled / response.error) → data: [DONE].
response.processing
The very first event, emitted immediately as the stream opens (before setup completes) so clients can show activity right away.
Show properties
event string - Always response.processing
status string - Always processing
thread_id string - Thread identifier
message string - Human-readable setup message
response.created
Emitted once after setup completes (authentication, organization resolution, turn lock). Marks the real start of generation.
Show properties
event string - Always response.created
status string - Always in_progress
thread_id string - Thread identifier
user_id string - Authenticated user ID
org_id string - Organization ID
user_message_id string - ID of the stored user message
trace_id string - Request trace ID
assistant_id string optional - Assistant ID if the thread has one
response.context
Emitted after response.created with the resolved request context (organization, timezone, location) used for grounding the response.
Show properties
event string - Always response.context
user_id, org_id, org_name string - Identity context
timezone, country, location_source string - Resolved locale context
profile_timezone, detected_timezone, suggested_timezone string optional - Timezone resolution detail
timezone_mismatch boolean optional - Whether the profile and detected timezones differ
response.heartbeat
Periodic keepalive (about every 30 seconds) sent during long pauses (tool execution, reasoning) to keep the connection open. Carries no content.
Show properties
event string - Always response.heartbeat
status string - Always in_progress
response.completed
Emitted when the response finishes successfully. The final, content-bearing event before [DONE].
Show properties
event string - Always response.completed
status string - completed, or awaiting_approval when a tool call needs user approval
thread_id string - Thread identifier
response_id string - Unique response identifier
user_message_id string - ID of the stored user message
response array - Final response content blocks
stop_reason string - Why generation stopped (e.g. end_turn)
is_summarized boolean - Whether conversation history was summarized
response_blocks array optional - Structured blocks (in structured mode or when tools are used)
assistant_id, reasoning_content, usage, cost, context_window, performance, annotations, invoked_skills, loaded_skins, skin_catalog, task_list, tools, available_tools, rules, system_messages optional - Present depending on the request's include parameter and what the turn produced
response.cancelled
Emitted when an in-progress stream is cancelled via Cancel stream. Followed by [DONE]. response.completed is not emitted on a cancelled turn.
Show properties
event string - Always response.cancelled
status string - Always cancelled
thread_id string - Thread identifier
partial_content_length integer - Characters generated before cancellation
response.error
Emitted when an error occurs during generation. Followed by [DONE].
Show properties
event string - Always response.error
error object optional - Standard error envelope (code, message, system_message, type, status, details, trace_id, timestamp). Some error paths emit these fields at the top level instead of nested.
response.content_delta
Emitted for each chunk of generated text.
Show properties
event string - Always response.content_delta
delta string - Text chunk
task_list_id string optional - Present when the delta is task-list markup
response.output_text.delta
Provider-passthrough text delta (see Provider passthrough events). Carries an incremental text fragment forwarded verbatim from the upstream model stream.
response.block
Emitted for a structured response block that has no dedicated event (fallback). Rarely seen.
Show properties
event string - Always response.block
block object - The raw block object (e.g. text, tool_call, tool_result). Tool call blocks may include an optional icon_url string with the tool's brand icon.
response.reasoning.started
Emitted once when the model enters its reasoning phase.
Show properties
event string - Always response.reasoning.started
status string - Always in_progress
response.reasoning.delta
Emitted for each chunk of reasoning content (models that stream thinking in real time).
Show properties
event string - Always response.reasoning.delta
delta string - Reasoning text chunk
response.reasoning.completed
Emitted when the reasoning phase completes. Includes the full reasoning content.
Show properties
event string - Always response.reasoning.completed
status string - Always completed
reasoning_content string - Complete reasoning text
response.tool.started
A tool/connector invocation begins.
Show properties
event string - Always response.tool.started
id string - Tool call ID
type string - Always mcp_tool
name string - Tool name
status string - Always in_progress
input object - Tool arguments
response.tool.progress
A long-running tool is still executing (emitted about every 3 seconds, e.g. image generation).
Show properties
event string - Always response.tool.progress
id, name string - Tool identity
type string - Always mcp_tool
status string - Always in_progress
elapsed_ms integer - Elapsed execution time
response.tool.completed
A tool finished executing (raw completion marker).
Show properties
event string - Always response.tool.completed
id, name string - Tool identity
type string - Always mcp_tool
status string - Always completed
input object - Tool arguments
output object - Tool result
response.tool.done
The finalized tool result, including success/failure and timing.
Show properties
event string - Always response.tool.done
id, name string - Tool identity
type string - Always mcp_tool
status string - completed or failed
success boolean - Whether the tool succeeded
execution_time_ms integer - Execution duration
error string optional - Error detail when failed
result, result_metadata, auth_failed, tool_key optional - Additional result context
response.function_call
A function-tool invocation (user/LLM-callable function, distinct from server-side tools).
Show properties
event string - Always response.function_call
tool_call_id string - Call ID
name string - Function name
arguments object - Call arguments
response.connector.auth_required
A connector's authorization is expired or invalid; the user must reconnect. Emitted alongside the failed tool's response.tool.done.
Show properties
event string - Always response.connector.auth_required
tool_key string - Connector identifier
tool_name string - Tool that failed
tool_call_id string - Call ID
message string - Explanation
action_name, icon_url string optional - Display detail
response.web_search.started
A web search is initiated.
Show properties
event string - Always response.web_search.started
id string - Search ID
type string - Always web_search
name string - Always web_search
status string - Always searching
input object - The query
response.web_search.searching
A per-query update while results are being retrieved. Same payload shape as response.web_search.started (event, id, type, name, status, input).
response.web_search.page_fetch.started
Deep-search only — fetching the full content of one result page.
Show properties
event string - Always response.web_search.page_fetch.started
id string - Search ID
type string - Always web_search
name string - Always web_search
status string - Always fetching
url, title string - Page being fetched
page_index, page_total integer optional - Progress counters
response.web_search.page_fetch.completed
Deep-search only — a page fetch finished.
Show properties
event string - Always response.web_search.page_fetch.completed
id string - Search ID
type string - Always web_search
name string - Always web_search
status string - Always fetched
url, title string - The page
ok boolean - Whether the fetch succeeded
duration_ms integer - Fetch duration
page_index, page_total, bytes, engine, truncated, reason, error optional - Additional fetch detail
response.web_search.completed
All search results retrieved.
Show properties
event string - Always response.web_search.completed
id string - Search ID
type string - Always web_search
name string - Always web_search
status string - Always completed
input object - Original query
output object - Results
result_metadata object optional - Enriched citation metadata
response.deep_research.status
A phase update during a multi-phase deep-research run.
Show properties
event string - Always response.deep_research.status
phase string - Current research phase
Additional phase-specific fields are passed through alongside phase.
response.rag_search.completed
A knowledge (vector store) search finished.
Show properties
event string - Always response.rag_search.completed
status string - Always completed
store_count integer optional - Knowledge stores queried
source_count integer optional - Documents retrieved
response.image_analysis.started
Image analysis (vision) begins.
Show properties
event string - Always response.image_analysis.started
status string - Always analyzing
images array - Images being analyzed
count integer - Number of images
response.image.partial
A progressive preview frame during image generation (zero or more before the final image).
Show properties
event string - Always response.image.partial
id string - Tool call ID
type string - Always mcp_tool
name string - Always generate_image
partial_index, partial_count integer - Preview frame position
b64 string - Base64-encoded preview image
content_type string - Image MIME type (e.g. image/png)
status string - Always in_progress
width, height integer optional - Preview dimensions
response.artifact_created
A document/artifact was created (e.g. by the create_document tool). Fires alongside response.tool.done.
Show properties
event string - Always response.artifact_created
artifact_type string - Always document
item_id, smoc_entity_id, team_space_id, thread_id, tool_call_id string - Artifact identity
artifact_token string optional - Access token for the artifact
response.skin_activated
A page skin (theme/template) was activated on the thread.
Show properties
event string - Always response.skin_activated
thread_id, kind, activated_by, source, activated_at - Activation context
response.skin_loaded
A page skin became available for rendering.
Show properties
event string - Always response.skin_loaded
thread_id, skin_id, skin_name, scope - Skin identity
entry_type string - Always skin
response.skill_loaded
A skill/behavior was loaded into the response.
Show properties
event string - Always response.skill_loaded
skill_id, skill_name, display_name, scope, thread_id - Skill identity
response.task.created
A live task checklist was created.
Show properties
event string - Always response.task.created
thread_id string - Thread identifier
task_list object - The new task list (id, title, items)
response.task.updated
A single task's status changed.
Show properties
event string - Always response.task.updated
thread_id string - Thread identifier
list_id string - Task list ID
task object - The updated task
response.task.snapshot
A full snapshot of the task list's current state. Also emitted as a terminal snapshot if the stream errors mid-task-list.
Show properties
event string - Always response.task.snapshot
thread_id string - Thread identifier
task_list object - Full task list
terminal boolean optional - Present (true) only on the error path
response.summary
Emitted before response.completed only when conversation history was summarized for this turn.
Show properties
event string - Always response.summary
summary string - The summary text
messages_summarized, messages_kept, original_token_count, optimized_token_count integer - Summarization stats
usage object - Token usage for the summarization itself
response.performance
Emitted once when the first content token arrives, carrying the time-to-first-token measurement.
Show properties
event string - Always response.performance
ttft_ms number - Time to first token, in milliseconds
response.annotations
Emitted before response.completed only when generated images were annotated by relevance.
Show properties
event string - Always response.annotations
annotations array - Annotation objects with image metadata
When the request routes to a provider whose native stream is forwarded transparently, a small family of provider-native events is passed through verbatim. They mirror the upstream provider's deltas and do not need separate handling — clients that only consume Aitronos events can ignore them:
response.output_item.added,response.output_item.done— provider item lifecycleresponse.function_call_arguments.delta,response.function_call_arguments.done— provider tool-argument deltasresponse.reasoning_text.delta,response.reasoning_summary_text.delta— provider reasoning deltasresponse.web_search_call.in_progress,response.web_search_call.searching,response.web_search_call.completed— provider web-search call lifecycle
The stream always ends with:
data: [DONE]This terminal line follows response.completed, response.cancelled, or response.error.
{
"event": "response.processing",
"status": "processing",
"thread_id": "thrd_xyz789",
"message": "Setting up response stream..."
}- Create response - Generate streaming responses
- Cancel stream - Cancel an in-progress stream
- Streaming events - Quick event-type overview
- Response Object - Non-streaming response format