> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aion.to/llms.txt
> Use this file to discover all available pages before exploring further.

# Client Events Reference

> Reference for A2A events emitted to clients during ADK agent execution.

This page lists all A2A events that Aion Server emits to clients during ADK agent execution,
organized by event category.

## Streaming

`STREAM_DELTA` is a transitory artifact — it is not persisted to the Task's durable state.
The client uses it for live display only.

| ADK Event                         | Client Receives                                                                                                                                                          |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Partial event with content        | `TaskArtifactUpdateEvent(STREAM_DELTA, append=..., last_chunk=false)`, with the messaging extension's `…#StreamDeltaPayload` schema marker on the event's own `metadata` |
| Non-partial event with content    | `TaskStatusUpdateEvent(working, message=...)`                                                                                                                            |
| Non-partial event without content | Artifacts from `artifact_delta`, if any                                                                                                                                  |

> A `STREAM_DELTA` sequence ends with the next durable message
> (`TaskStatusUpdateEvent(working, message=...)`) or with the terminal task status. Every
> `STREAM_DELTA` update carries content, and the next partial event after a durable message opens a
> new section with `append=false`.

## Artifacts

| ADK Event                               | Client Receives                        |
| --------------------------------------- | -------------------------------------- |
| `artifact_delta` entry in event actions | `TaskArtifactUpdateEvent` per artifact |

## Outbox

| `a2a_outbox` value                 | Client Receives                                   |
| ---------------------------------- | ------------------------------------------------- |
| `Message`                          | `TaskStatusUpdateEvent(working, message=...)`     |
| `Task` patch with metadata         | `TaskStatusUpdateEvent(working)` *(for metadata)* |
| `Task` patch with history messages | N × `TaskStatusUpdateEvent(working, message=...)` |
| `Task` patch with artifacts        | M × `TaskArtifactUpdateEvent`                     |

## Terminal

Every execution ends with exactly one terminal event.

| Outcome                                       | Client Receives                                                                   |
| --------------------------------------------- | --------------------------------------------------------------------------------- |
| Agent finishes, no outbox, delta text present | `TaskStatusUpdateEvent(working, delta text)` + `TaskStatusUpdateEvent(completed)` |
| Agent finishes, no outbox, no delta text      | `TaskStatusUpdateEvent(completed)`                                                |
| Agent finishes with `a2a_outbox`              | *(outbox events)* + `TaskStatusUpdateEvent(completed)`                            |
| Unhandled exception                           | `TaskStatusUpdateEvent(failed)`                                                   |

## Related Pages

* [Streaming Delta Semantics](/sdk/python/streaming/stream-delta) — `append`, `lastChunk`, and how a chunked reply ends
* [Streaming and Artifacts](/sdk/google-adk/guides/streaming)
* [Message Mapping](/sdk/google-adk/api/message-mapping)
