Skip to main content

Module a2a

Module a2a 

Source
Expand description

A2A domain — the version negotiation model, the per-revision A2aFeatureProfile, and the value objects that the wire codecs (T28) lower into.

§Where this fits in the protocol-neutral core

The protocol-neutral core in domain/jsonrpc and application/session already speaks JSON-RPC 2.0 — the same envelope A2A uses. T27 is a feature on top of that core: a per-revision codec (T08-style) and a per-revision A2aFeatureProfile (T05-style) that mirrors the MCP gating model. A future MCP↔A2A bridge (T28) is the consumer of both profiles; this module is what the bridge translates between.

§The seam

A2aVersion is the only thing this module re-exports at the top level. The A2aFeatureProfile lives in a2a::feature and the per-revision wire types live under a2a::wire::v1_0. A codec for v1.0 implements the protocol-neutral application/jsonrpc::Codec trait so the dispatcher routes the same way it does for MCP.

Re-exports§

pub use agent_card::AgentCapabilities;
pub use agent_card::AgentCard;
pub use agent_card::AgentCardBuilder;
pub use agent_card::AgentCardError;
pub use agent_card::AgentInterface;
pub use agent_card::AgentSkill;
pub use agent_card::GRPC;
pub use agent_card::HTTP_JSON;
pub use agent_card::JSONRPC;
pub use agent_card::ProtocolBinding;
pub use extended_agent_card::GetExtendedAgentCardRequest;
pub use extended_agent_card::GetExtendedAgentCardResponse;
pub use list_tasks::ListTasksRequest;
pub use list_tasks::ListTasksResponse;
pub use message::DataPart;
pub use message::FileContent;
pub use message::FilePart;
pub use message::Message;
pub use message::MessageRole;
pub use message::Part;
pub use message::TextPart;
pub use push_notification::PushNotificationAuthenticationInfo;
pub use push_notification::TaskPushNotificationConfig;
pub use push_notification_methods::CreateTaskPushNotificationConfigRequest;
pub use push_notification_methods::CreateTaskPushNotificationConfigResponse;
pub use push_notification_methods::DeleteTaskPushNotificationConfigRequest;
pub use push_notification_methods::DeleteTaskPushNotificationConfigResponse;
pub use push_notification_methods::GetTaskPushNotificationConfigRequest;
pub use push_notification_methods::GetTaskPushNotificationConfigResponse;
pub use push_notification_methods::ListTaskPushNotificationConfigsRequest;
pub use push_notification_methods::ListTaskPushNotificationConfigsResponse;
pub use send_message::MessageSendConfiguration;
pub use send_message::SendMessageRequest;
pub use send_message::SendMessageResponse;
pub use streaming_events::StreamingEvent;
pub use streaming_events::TaskArtifactUpdateEvent;
pub use streaming_events::TaskStatusUpdateEvent;
pub use task::Artifact;
pub use task::Task;
pub use task::TaskState;
pub use task::TaskStatus;
pub use task_lifecycle::CancelTaskRequest;
pub use task_lifecycle::CancelTaskResponse;
pub use task_lifecycle::GetTaskRequest;
pub use task_lifecycle::GetTaskResponse;
pub use version::A2aVersion;
pub use version::ParseA2aVersionError;
pub use well_known::AGENT_CARD_WELL_KNOWN_PATH;
pub use well_known::is_agent_card_well_known_path;

Modules§

agent_card
The A2A AgentCard — the self-describing manifest an agent publishes at /.well-known/agent-card.json.
extended_agent_card
A2A GetExtendedAgentCard typed envelopes.
feature
A2aFeatureProfile — the per-revision capability bitset, derived from the same four inputs as the MCP profile.
list_tasks
A2A ListTasks typed envelopes.
message
A2A Message and Part value objects.
push_notification
A2A push-notification configuration value objects — the wire form.
push_notification_methods
A2A push-notification method envelopes — the four methods that read and write a task’s push-notification configurations.
send_message
A2A SendMessage typed envelopes — the request, the configuration, and the response.
streaming_events
A2A streaming event value objects — the TaskStatusUpdateEvent and TaskArtifactUpdateEvent types that flow over a Server-Sent Events connection.
task
A2A Task, TaskStatus, TaskState, and Artifact value objects.
task_lifecycle
A2A GetTask and CancelTask typed envelopes.
version
A2aVersion — the negotiated A2A revision, as a value object.
well_known
The A2A AgentCard well-known URI.