Skip to main content

agent_action_capsule/
lib.rs

1//! Reference verification for the Agent Action Capsule
2//! (`draft-mih-scitt-agent-action-capsule`): the Rust sibling of the Python
3//! reference and the Go and TypeScript implementations in
4//! [action-state-group/agent-action-capsule], checked against the same
5//! conformance vectors.
6//!
7//! | Module | Draft | Go package |
8//! |---|---|---|
9//! | [`canonical`] | JCS, JSON-DIGEST and `capsule_id` (§2, §5.1) | `go/canonical` |
10//! | [`registries`] | profile registries (§12) | `go/registries` |
11//! | [`verify`] | Class 1 verification, checks 1-9 and the store checks (§6) | `go/verify` |
12//! | [`envelope`] | Producer Envelope | `go/envelope` |
13//! | `bundle` (feature `bundle`) | Evidence Bundle v2; strict verification with feature `strict` | `go/bundle` |
14//! | `witness` (feature `strict`) | witness receipts in `checkpoint.witnesses` | (Python `witness`) |
15//! | `settlement` (feature `settlement`) | two-party settlement records (`draft-mih-agent-settlement-records-00`) | (Python `settlement`) |
16//!
17//! Decode capsules with [`verify::decode_capsule_json`], not `serde_json`'s
18//! own decoder: it keeps each number's source text (`arbitrary_precision`)
19//! without `serde_json`'s private number token turning an object into a
20//! number.
21//!
22//! [action-state-group/agent-action-capsule]: https://github.com/action-state-group/agent-action-capsule
23
24pub mod canonical;
25pub mod envelope;
26mod json;
27mod references;
28pub mod registries;
29pub mod verify;
30
31#[cfg(feature = "bundle")]
32pub mod bundle;
33#[cfg(feature = "bundle")]
34mod disclosure;
35#[cfg(feature = "settlement")]
36pub mod settlement;
37#[cfg(feature = "strict")]
38pub mod witness;