Skip to main content

protocol_droid/application/acp/
mod.rs

1//! ACP's application layer — use cases the wire
2//! codec routes into.
3//!
4//! Each handler is the *consumer* of a narrow port
5//! trait declared here. The port trait's return
6//! type is a domain error, not an infrastructure
7//! one, so the handler can be tested without a
8//! socket and the adapter can map `tokio` /
9//! serialization failures into the domain shape
10//! at the boundary.
11//!
12//! Today: the dispatch trait and its typed
13//! wrappers — the consumer's extension point for
14//! running an ACP agent. Future increments slot
15//! in here: a per-revision wire codec that turns
16//! a `Value` payload into a typed
17//! `Envelope` (the `domain::acp::Envelope` work is
18//! already underway as part of T29's
19//! "per-revision wire codec" follow-on), a
20//! conformance runner modelled on
21//! [`application::a2a::conformance`](super::a2a::conformance),
22//! and an `acp_agent` example.
23
24pub(crate) mod dispatch;
25pub(crate) mod typed_dispatch;
26
27pub use dispatch::{AcpError, AcpRequestContext, AcpRequestHandler};
28pub use typed_dispatch::AcpRequestHandlerExt;