Skip to main content

awp_types/
lib.rs

1//! # awp-types
2//!
3//! Shared protocol types for the Agentic Web Protocol (AWP).
4//!
5//! This crate provides pure protocol types with **zero `adk-*` dependencies**,
6//! making it importable by any Rust project that needs to work with AWP messages.
7//!
8//! ## Types
9//!
10//! - [`AwpVersion`] / [`CURRENT_VERSION`] — protocol version with compatibility checks
11//! - [`TrustLevel`] — request trust classification (Anonymous, Known, Partner, Internal)
12//! - [`RequesterType`] — human vs. agent requester distinction
13//! - [`AwpError`] — structured error codes with HTTP status mapping
14//! - [`AwpRequest`] / [`AwpResponse`] — protocol request/response envelopes
15//! - [`A2aMessage`] / [`A2aMessageType`] — agent-to-agent communication
16//! - [`AwpDiscoveryDocument`] — well-known discovery endpoint payload
17//! - [`CapabilityManifest`] / [`CapabilityEntry`] — JSON-LD capability descriptions
18//! - [`BusinessContext`] / [`BusinessCapability`] / [`BusinessPolicy`] — site configuration
19//!
20//! ## Serialization
21//!
22//! All wire types use `#[serde(rename_all = "camelCase")]` for JSON serialization.
23//! [`BusinessContext`] uses standard snake_case for TOML configuration files.
24
25mod a2a;
26mod business;
27mod capability;
28mod discovery;
29mod error;
30mod payment;
31mod request;
32mod requester;
33mod response;
34mod trust;
35mod version;
36
37pub use a2a::{A2aMessage, A2aMessageType, AwpMessageType, AwpTypedMessage};
38pub use business::{
39    BrandVoice, BusinessCapability, BusinessContext, BusinessIdentity, BusinessPolicy,
40    ChannelConfig, ContentConfig, OutreachConfig, PaymentConfig, Product, ReviewConfig,
41    SupportConfig,
42};
43pub use capability::{CapabilityEntry, CapabilityManifest};
44pub use discovery::AwpDiscoveryDocument;
45pub use error::AwpError;
46pub use payment::{PaymentIntent, PaymentIntentState, PaymentPolicy, PaymentPolicyDecision};
47pub use request::AwpRequest;
48pub use requester::RequesterType;
49pub use response::AwpResponse;
50pub use trust::TrustLevel;
51pub use version::{AwpVersion, CURRENT_VERSION, ParseVersionError};