gestura_core_a2a/
lib.rs

1//! Agent-to-Agent protocol types, client, and server for Gestura.
2//!
3//! `gestura-core-a2a` implements Gestura's A2A domain: a transport-agnostic
4//! JSON-RPC server model, an HTTP client for remote agents, and the typed task
5//! lifecycle/provenance structures needed for cross-agent delegation.
6//!
7//! ## Main concepts
8//!
9//! - `A2AServer`: protocol server that shells can expose over HTTP/SSE
10//! - `A2AClient`: HTTP client for discovery, task creation, retries, status, and cancellation
11//! - `AgentCard` / `Skill`: remote capability advertisement
12//! - `A2ATask`, `TaskStatus`, `RemoteTaskContract`: typed remote-task lifecycle
13//! - `TaskProvenance` / `TaskAuditEvent`: provenance and audit metadata
14//!
15//! ## Architecture boundary
16//!
17//! This crate owns protocol logic and domain types. Listener setup, shell
18//! transport hosting, and GUI/CLI presentation concerns remain in the shell
19//! crates that embed it.
20//!
21//! ## Stable import paths
22//!
23//! Most code should import through `gestura_core::a2a::*`.
24
25mod client;
26mod server;
27mod types;
28
29pub use client::*;
30pub use server::*;
31pub use types::*;