protocol_droid/domain/acp/mod.rs
1//! `domain::acp` — the protocol-neutral ACP value objects.
2//!
3//! The ACP v1.25.0 schema is the wire format this module
4//! speaks, but the value objects here are *protocol-neutral
5//! IR* — they are the consumer's view of an ACP peer, not
6//! the wire types the per-revision codec generates. The wire
7//! types come from
8//! `crates/protocol-droid-schema` (the vendored schema is
9//! digested in
10//! `crates/protocol-droid-schema/spec/MANIFEST.toml`).
11//!
12//! This module currently ships:
13//!
14//! - [`version::AcpVersion`] — the pinned ACP release,
15//! ordered by `(major, minor, patch)`. Unknown future
16//! releases are `Unknown { major, minor, patch }`.
17//! - [`protocol_version::AcpProtocolVersion`] — the
18//! wire-level `u16` `initialize` exchanges.
19//! - [`implementation::Implementation`] — the
20//! `clientInfo` / `agentInfo` block.
21//! - [`initialize::InitializeRequest`] and
22//! [`initialize::InitializeResponse`] — the
23//! `initialize` round-trip, plus the
24//! `ClientCapabilities` / `AgentCapabilities`
25//! shapes the request/response carry.
26//! - [`method::AcpMethod`] — the 25 methods the v1.25.0
27//! `meta.json` lists (13 agent, 11 client, 1 protocol).
28//! - [`feature::AcpFeature`] and [`feature::AcpFeatureProfile`]
29//! — the per-feature bitset the dispatcher gates against.
30//!
31//! What is not yet here:
32//!
33//! - The session lifecycle types (`session/new`,
34//! `session/load`, `session/prompt`, `session/cancel`,
35//! `session/list`, `session/delete`, `session/resume`,
36//! `session/close`, `logout`).
37//! - The slash-separated method params and the streaming
38//! update model.
39//! - The `SessionCapabilities`, `ClientSessionCapabilities`,
40//! `ElicitationCapabilities`, and the rest of the
41//! capability sub-types the schema names.
42//! - The application-layer dispatch and the per-revision
43//! wire codec.
44//! - The stdio transport adapter.
45//!
46//! This module is feature-gated behind `acp-experimental` at
47//! the crate level. The ACP module is post-MVP and
48//! experimental; the gate keeps the protocol-neutral core
49//! lean for consumers who never touch ACP.
50
51#![cfg(feature = "acp-experimental")]
52
53pub mod content;
54pub mod feature;
55pub mod implementation;
56pub mod initialize;
57pub mod method;
58pub mod notification;
59pub mod protocol_version;
60pub mod session;
61pub mod tool_call;
62pub mod version;