Skip to main content

waitprims_core/
lib.rs

1//! Types, errors, validation, digest, and time helpers for waitprims.
2//!
3//! This is the foundation crate. It has no async runtime and does not
4//! open sockets. Public JSON is exactly the six `agent-wait/v0` message
5//! kinds: `registration_set`, `live_wait_request`, `live_wait_outcome`,
6//! `poll_cycle_request`, `poll_cycle_outcome`, `poll_cycle_ack`.
7//! Runtime-only types, including caller-owned delivery/activation
8//! evidence, must not serialize as that contract.
9//!
10//! Pin: [`CAPABILITY`] at Crucible [`PINNED_CRUCIBLE_SHA`]. Resolve
11//! through vendored `contract.json`, then the relative `entry_schema`.
12//! Schema `$id` is not the contract-entry mechanism.
13//!
14//! Contract admission is only [`validate_message`] / [`validate_raw_documents`].
15//! [`serde_json::from_str`] on [`AgentWaitMessage`] is not admission.
16//! RFC3339 comparison pads and truncates fractions to six digits.
17
18pub mod contract;
19pub mod digest;
20pub mod error;
21pub mod jcs;
22pub mod receipts;
23pub mod refs;
24pub mod rfc3339;
25pub mod types;
26pub mod validate;
27
28pub use contract::{
29    bundled_entry_schema, bundled_message_schema, resolve_bundled, resolve_from_dir,
30    ResolvedContract, CAPABILITY, PINNED_CRUCIBLE_SHA,
31};
32pub use digest::registration_digest;
33pub use error::{Error, NormativeReason, Result, ValidationError};
34pub use receipts::{attach_event_refs, ActivationEvidence, DeliveryEvidence};
35pub use refs::{ActorRef, CapabilityToken, IdToken, OpaqueRef, PredicateRef};
36pub use rfc3339::Timestamp;
37pub use types::{
38    AgentWaitMessage, Anchor, AnchorKind, ArmStatus, AuthnMode, BaselinePolicy, Canonicalization,
39    ContentDigest, CoverageArm, DigestAlgorithm, JcsDigest, LiveWaitOutcome, LiveWaitRequest,
40    MessageType, OutcomeKind, PayloadRef, PollBound, PollCycleAck, PollCycleOutcome,
41    PollCycleRequest, Registration, RegistrationSet, ReplayStatus, WaitBound, WaitEvent,
42};
43pub use validate::{validate_message, validate_raw_documents, AdmittedMessage};