# A2A v0.3.0 - Table of Contents

> Elixir implementation of the Agent-to-Agent (A2A) protocol

## Pages

- [A2A](readme.md)
- [Changelog](changelog.md)
- [Contributing](contributing.md)
- [Elixir A2A — Roadmap](spec.md)
- [LICENSE](license.md)

## Modules

- [A2A.Agent](A2A.Agent.md): Behaviour for defining A2A agents.
- [A2A.AgentCard](A2A.AgentCard.md): Decoded agent card from the A2A discovery endpoint.
- [A2A.AgentExtension](A2A.AgentExtension.md): Declaration of a protocol extension supported by an agent.
- [A2A.AgentSupervisor](A2A.AgentSupervisor.md): Supervisor for a fleet of A2A agents with an integrated registry.
- [A2A.Artifact](A2A.Artifact.md): An output produced by an agent in response to a task.
- [A2A.Event](A2A.Event.md): Streaming events emitted during task execution.
- [A2A.Event.ArtifactUpdate](A2A.Event.ArtifactUpdate.md): A streaming event indicating an artifact was produced or appended.

- [A2A.Event.StatusUpdate](A2A.Event.StatusUpdate.md): A streaming event indicating a task status change.

- [A2A.Extension](A2A.Extension.md): Behaviour for A2A v1.0 protocol extensions.
- [A2A.Extension.Timestamp](A2A.Extension.Timestamp.md): Reference `A2A.Extension` that timestamps requests and responses.
- [A2A.FileContent](A2A.FileContent.md): Represents file content with either inline bytes or a URI reference.
- [A2A.JSON](A2A.JSON.md): Codec for converting between Elixir structs and the A2A v1.0 camelCase JSON wire format.
- [A2A.JSONRPC](A2A.JSONRPC.md): Transport-agnostic JSON-RPC 2.0 dispatch layer for the A2A protocol.
- [A2A.JSONRPC.Error](A2A.JSONRPC.Error.md): JSON-RPC 2.0 error with A2A-specific error codes.
- [A2A.Message](A2A.Message.md): A single turn of communication between user and agent.
- [A2A.Part](A2A.Part.md): Typed content parts used in messages and artifacts.
- [A2A.Part.Data](A2A.Part.Data.md): A structured data content part.

- [A2A.Part.File](A2A.Part.File.md): A file content part.

- [A2A.Part.Text](A2A.Part.Text.md): A text content part.

- [A2A.PushNotificationConfig](A2A.PushNotificationConfig.md): Webhook configuration for push notifications on a task.
- [A2A.PushNotificationSender](A2A.PushNotificationSender.md): Behaviour for delivering push notification payloads to a client's webhook.
- [A2A.PushNotificationSender.HTTP](A2A.PushNotificationSender.HTTP.md): Default `A2A.PushNotificationSender`, POSTing payloads with `Req`.
- [A2A.Registry](A2A.Registry.md): Agent discovery registry backed by ETS.
- [A2A.SecurityScheme](A2A.SecurityScheme.md): Union type over the five A2A security scheme types.
- [A2A.SecurityScheme.APIKey](A2A.SecurityScheme.APIKey.md): API key security scheme.
- [A2A.SecurityScheme.HTTPAuth](A2A.SecurityScheme.HTTPAuth.md): HTTP authentication security scheme (e.g. Bearer, Basic, Digest).

- [A2A.SecurityScheme.MutualTLS](A2A.SecurityScheme.MutualTLS.md): Mutual TLS (mTLS) security scheme.

- [A2A.SecurityScheme.OAuth2](A2A.SecurityScheme.OAuth2.md): OAuth 2.0 security scheme.

- [A2A.SecurityScheme.OpenIDConnect](A2A.SecurityScheme.OpenIDConnect.md): OpenID Connect security scheme.

- [A2A.Task](A2A.Task.md): A unit of work managed by an agent runtime.
- [A2A.Task.Status](A2A.Task.Status.md): The current status of a task, including state, optional message, and timestamp.

- [A2A.Telemetry](A2A.Telemetry.md): Telemetry events emitted by the A2A library.
- [A2A.Version](A2A.Version.md): Helpers for the `A2A-Version` HTTP header (A2A v1.0 spec §3.6).

- Core
  - [A2A](A2A.md): Elixir implementation of the Agent-to-Agent (A2A) protocol.

- Storage
  - [A2A.TaskStore](A2A.TaskStore.md): Behaviour for pluggable task persistence.
  - [A2A.TaskStore.ETS](A2A.TaskStore.ETS.md): ETS-backed task store implementation.

- HTTP
  - [A2A.Client](A2A.Client.md): HTTP client for consuming remote A2A agents.
  - [A2A.Plug](A2A.Plug.md): Plug for serving A2A agents over HTTP.
  - [A2A.Plug.Auth](A2A.Plug.Auth.md): Plug middleware for A2A agent authentication.
  - [A2A.Plug.JWTVerifier](A2A.Plug.JWTVerifier.md): JWT verification utilities for A2A principal authentication.

