> ## 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.

# ADK 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)`                                    |
| Non-partial event with content    | `TaskArtifactUpdateEvent(STREAM_DELTA, last_chunk=true)` + `TaskStatusUpdateEvent(working, message=...)` |
| Non-partial event without content | `TaskArtifactUpdateEvent(STREAM_DELTA, last_chunk=true)`                                                 |

> `STREAM_DELTA` close events are only emitted if at least one partial event was sent beforehand.

## 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)`                                                   |
