Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
polychrome-a2a — an A2A v1.0 edge that puts an agent-to-agent peer in front of a polychrome conversation.
A2A (Agent2Agent) is the open protocol agents use to discover and call one
another. The wire is the v1.0 (lf.a2a.v1) ProtoJSON dialect
([types]) — PascalCase methods, SCREAMING_SNAKE enums, field-presence
unions — mirroring the canonical Rust SDK (a2aproject/a2a-rs) so the edge
interops with any v1.0 peer.
Both halves live here:
- Server — serves a domain-signed Agent Card at
/.well-known/agent-card.json([card]) and implements the capability-ungated method set over JSON-RPC ([rpc]):SendMessagemaps a message onto a single polychrome turn ([task]) and records the resulting task durably ([store]);GetTask/CancelTask/ListTasksread it back. The record lives in the state plane and this edge reaches it the same way it reaches a turn: an RPC into the control plane. - Client ([
client]) — fetches + verifies a peer's card and drivesSendMessage/GetTaskagainst it.
The load-bearing mapping
A2A's input-required task state and polychrome's human-in-the-loop
approval gate are the same idea: a task cannot proceed until a human
decides. A turn that pauses on an approval
([polyc_rpc_client::TurnEvent::ApprovalPending]) becomes a
TASK_STATE_INPUT_REQUIRED task ([task::outcome_from_events] →
[rpc]), so an A2A peer is told, in its own protocol, that the work is
blocked on a decision.
Identity provisioning (follow-up)
For this foundation slice the signing key is derived from a configured seed
(the convention polyc_crypto's signers use for dev/test). Wiring the
deployment principal to a secret store — so the card is signed by the same
durable key that backs the rest of the deployment's provenance — is a
follow-up.