a2a.compat.v0_3.rest_transport module

class a2a.compat.v0_3.rest_transport.CompatRestTransport(httpx_client: AsyncClient, agent_card: AgentCard | None, url: str, subscribe_method_override: str | None = None)

Bases: ClientTransport

A backward compatible REST transport for A2A v0.3.

async cancel_task(request: CancelTaskRequest, *, context: ClientCallContext | None = None) Task

Requests the agent to cancel a specific task.

async close() None

Closes the httpx client.

async create_task_push_notification_config(request: TaskPushNotificationConfig, *, context: ClientCallContext | None = None) TaskPushNotificationConfig

Sets or updates the push notification configuration for a specific task.

async delete_task_push_notification_config(request: DeleteTaskPushNotificationConfigRequest, *, context: ClientCallContext | None = None) None

Deletes the push notification configuration for a specific task.

async get_extended_agent_card(request: GetExtendedAgentCardRequest, *, context: ClientCallContext | None = None) AgentCard

Retrieves the Extended AgentCard.

async get_task(request: GetTaskRequest, *, context: ClientCallContext | None = None) Task

Retrieves the current state and history of a specific task.

async get_task_push_notification_config(request: GetTaskPushNotificationConfigRequest, *, context: ClientCallContext | None = None) TaskPushNotificationConfig

Retrieves the push notification configuration for a specific task.

async list_task_push_notification_configs(request: ListTaskPushNotificationConfigsRequest, *, context: ClientCallContext | None = None) ListTaskPushNotificationConfigsResponse

Lists push notification configurations for a specific task.

async list_tasks(request: ListTasksRequest, *, context: ClientCallContext | None = None) ListTasksResponse

Retrieves tasks for an agent.

async send_message(request: SendMessageRequest, *, context: ClientCallContext | None = None) SendMessageResponse

Sends a non-streaming message request to the agent.

send_message_streaming(request: SendMessageRequest, *, context: ClientCallContext | None = None) AsyncGenerator[StreamResponse]

Sends a streaming message request to the agent and yields responses as they arrive.

subscribe(request: SubscribeToTaskRequest, *, context: ClientCallContext | None = None) AsyncGenerator[StreamResponse]

Reconnects to get task updates.

This method implements backward compatibility logic for the subscribe endpoint. It first attempts to use POST, which is the official method for A2A subscribe endpoint. If the server returns 405 Method Not Allowed, it falls back to GET and remembers this preference for future calls on this transport instance. If both fail with 405, it will default back to POST for next calls but will not retry again.