ResponseExecution Class

Lightweight pipeline state for one response execution.

This type intentionally does not own persisted stream history. Stream replay concerns are modeled separately in StreamReplayState.

Constructor

ResponseExecution(*, response_id: str, mode_flags: ResponseModeFlags, created_at: datetime | None = None, updated_at: datetime | None = None, completed_at: datetime | None = None, status: ResponseStatus = 'in_progress', response: ResponseObject | None = None, execution_task: asyncio.Task[Any] | None = None, cancel_requested: bool = False, client_disconnected: bool = False, response_created_seen: bool = False, subject: _ResponseEventSubject | None = None, cancel_signal: asyncio.Event | None = None, input_items: list[OutputItem] | None = None, previous_response_id: str | None = None, response_context: ResponseContext | None = None, initial_model: str | None = None, initial_agent_reference: AgentReference | dict[str, Any] | None = None, agent_session_id: str | None = None, conversation_id: str | None = None, chat_isolation_key: str | None = None)

Keyword-Only Parameters

Name Description
response_id
Required
mode_flags
Required
created_at
Default value: None
updated_at
Default value: None
completed_at
Default value: None
status
Default value: in_progress
response
Default value: None
execution_task
Default value: None
cancel_requested
Default value: False
client_disconnected
Default value: False
response_created_seen
Default value: False
subject
Default value: None
cancel_signal
Default value: None
input_items
Default value: None
previous_response_id
Default value: None
response_context
Default value: None
initial_model
Default value: None
initial_agent_reference
Default value: None
agent_session_id
Default value: None
conversation_id
Default value: None
chat_isolation_key
Default value: None

Methods

apply_event

Apply a normalised stream event — updates self.response and self.status.

Does nothing if the execution is already "cancelled".

set_response_snapshot

Replace the current response snapshot from handler-emitted events.

transition_to

Transition this execution to a valid lifecycle status.

Updates status, updated_at, and completed_at (for terminal states). Re-entering the current status is a no-op that only refreshes updated_at.

apply_event

Apply a normalised stream event — updates self.response and self.status.

Does nothing if the execution is already "cancelled".

apply_event(normalized: ResponseStreamEvent, all_events: list[azure.ai.agentserver.responses.models._generated.sdk.models.models._models.ResponseStreamEvent]) -> None

Parameters

Name Description
normalized
Required

The normalised event (ResponseStreamEvent model instance).

all_events
Required

The full ordered list of handler events seen so far (used to extract the latest response snapshot).

set_response_snapshot

Replace the current response snapshot from handler-emitted events.

set_response_snapshot(response: ResponseObject) -> None

Parameters

Name Description
response
Required

The latest response snapshot to store.

transition_to

Transition this execution to a valid lifecycle status.

Updates status, updated_at, and completed_at (for terminal states). Re-entering the current status is a no-op that only refreshes updated_at.

transition_to(next_status: Literal['queued', 'in_progress', 'completed', 'failed', 'cancelled', 'incomplete']) -> None

Parameters

Name Description
next_status
Required
<xref:ResponseStatus>

The target lifecycle status.

Exceptions

Type Description

If the requested transition is not allowed.

Attributes

agent_reference

Extract agent_reference from the stored response snapshot.

Returns

Type Description

The agent reference model or dict, or empty dict if no response snapshot is set.

is_terminal

Return whether the execution has reached a terminal state.

Returns

Type Description

True if the status is one of completed, failed, cancelled, or incomplete.

model

Extract model name from the stored response snapshot.

Returns

Type Description
str | None

The model name, or None if no response snapshot is set.

replay_enabled

SSE replay is only available for background+stream+store responses.

Returns

Type Description

True if this execution supports SSE replay.

visible_via_get

Non-streaming stored responses are retrievable via GET after completion.

For background non-stream responses, visibility is deferred until response.created is processed (FR-001: response not accessible before the handler emits response.created).

Returns

Type Description

True if this execution can be retrieved via GET.