| Field | Value |
|---|---|
| Canonical URI | https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0 |
| Issuer | aion |
| Version | 1.0.0 |
| Activation | This page refines the Distribution extension. It does not introduce separate activation. |
| Related Extensions | Distribution, Event |
Overview
This page defines messaging-specific event types and payload schemas layered on top of the Distribution extension. The base Distribution page continues to define shared distribution metadata, request flow, and transport responsibilities. This page is narrower: it defines the payload families used when a distribution receives an inbound messaging event or returns a messaging-oriented response. The design goal is to keep provider-specific messaging integrations fluent while still normalizing their transport into stable A2A data parts. Key aliases used below:MessagingURI:https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0EventURI:https://docs.aion.to/a2a/extensions/aion/event/1.0.0
MessagingURI in message.extensions.
Events
All event types defined on this page are inbound to A2A request processing. The distribution is responsible for attaching the Event extension metadata; external callers should not construct these messages directly.Message
| Field | Value |
|---|---|
| Type | to.aion.distribution.message.1.0.0 |
| Required payloads | MessageEventPayload, SourceSystemEventPayload |
| Metadata | params.message.metadata[EventURI].type = "to.aion.distribution.message.1.0.0" |
| Details | Message-like user input such as a DM, mention, thread reply, or channel message. |
Reaction
| Field | Value |
|---|---|
| Type | to.aion.distribution.reaction.1.0.0 |
| Required payloads | ReactionEventPayload, SourceSystemEventPayload |
| Metadata | params.message.metadata[EventURI].type = "to.aion.distribution.reaction.1.0.0" |
| Details | Reaction or emoji-style activity applied to an existing message. |
Command
| Field | Value |
|---|---|
| Type | to.aion.distribution.command.1.0.0 |
| Required payloads | CommandEventPayload, SourceSystemEventPayload |
| Metadata | params.message.metadata[EventURI].type = "to.aion.distribution.command.1.0.0" |
| Details | Command-style invocation sent through a messaging provider. |
Payloads
This section defines both inbound event payloads and outbound data parts.Event Payloads
Event payload schema placement:params.message.parts[i].metadata[EventURI].schema
Event payload data placement:
params.message.parts[i].data
MessageEventPayload
Schema URI:https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0#MessageEventPayload
This payload is the normalized representation of an inbound message context. It is used when the
source event behaves like a message even if the provider has a more complex native model.
| Field | Type | Required | Description |
|---|---|---|---|
userId | String | required | Sender identifier on the source network. |
contextId | String | required | Source-network conversation, room, or thread id. |
parentContextId | String | optional | Parent context id when nested threads are used. |
messageId | String | required | Source-network message id. |
trajectory | String | required | Routing context for the message. |
| Trajectory | Definition |
|---|---|
direct-message | The agent received a direct message. |
reply | A user replied to an existing agent message. |
timeline | A user mentioned the agent in a feed or timeline context. |
conversation | The message arrived in a shared room or channel context. |
ReactionEventPayload
Schema URI:https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0#ReactionEventPayload
This payload represents a reaction-style activity. It is intentionally separate from a plain text
message payload because reactions may use provider-specific identifiers, custom emoji, or add/remove
semantics that do not fit cleanly into a text part.
| Field | Type | Required | Description |
|---|---|---|---|
userId | String | required | Actor who added or removed the reaction. |
contextId | String | required | Source-network conversation, room, or thread id. |
parentContextId | String | optional | Parent context id when nested threads are used. |
messageId | String | required | Target message id on the source network. |
reactionKey | String | required | Provider-stable reaction identifier. |
displayValue | String | optional | Human-readable emoji or provider label when available. |
action | String | required | Reaction transition, such as added or removed. |
isCustom | Boolean | optional | Whether the reaction is provider-specific rather than a standard emoji. |
CommandEventPayload
Schema URI:https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0#CommandEventPayload
This payload represents a command-style invocation from a messaging platform. It is intended for
slash commands, app commands, or similar provider-native command entry points.
| Field | Type | Required | Description |
|---|---|---|---|
userId | String | required | Actor who invoked the command. |
contextId | String | required | Room, channel, thread, or DM context where the command ran. |
parentContextId | String | optional | Parent context id when nested threads are used. |
command | String | required | Provider-visible command token such as /deploy. |
arguments | String | optional | Raw argument string supplied after the command token. |
invocationId | String | optional | Provider-native command invocation id when available. |
SourceSystemEventPayload
Schema URI:https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0#SourceSystemEventPayload
This payload preserves the original provider event so downstream logic can inspect provider-specific
fields when the normalized payload is not sufficient.
| Field | Type | Required | Description |
|---|---|---|---|
provider | String | required | Source provider name, such as slack or telegram. |
event | Object | required | Verbatim event payload from the source system. |
Outbound Payloads
Outbound payloads may appear either in a direct response to a distribution event or in any other agent-authored request sent directly to a distribution. Typical outbound payload schema placement:message.parts[i].metadata[MessagingURI].schema
Typical outbound payload data placement:
message.parts[i].data
Streaming delta markers may instead be attached to top-level
artifactUpdate.metadata.
StreamDeltaPayload
Schema URI:https://docs.aion.to/a2a/extensions/aion/distribution/messaging/1.0.0#StreamDeltaPayload
This payload represents incremental outbound text produced while a message is
still being streamed. It is intended for live provider updates such as partial
Slack or Telegram replies.
When Aion emits these deltas over streaming A2A transport, the preferred
representation is a TaskArtifactUpdateEvent. That is a better semantic fit
than TaskStatusUpdateEvent, because the task status is not necessarily
changing; only the outbound artifact is being appended.
For this payload, the schema marker can be attached at the top-level metadata
of the artifactUpdate object. The control plane can then interpret the
artifact as a live text-response channel and append each text part to the
provider-visible reply.
The current SDK implementation uses the artifact id
aion:stream-delta for this streaming channel.
Example StreamResponse carrying a TaskArtifactUpdateEvent: