rite-model 0.7.0

Domain model and intermediate representation for the Rite key ceremony DSL
Documentation
//! Core domain model and IR for the Rite ceremony DSL.
//!
//! `rite-model` defines the Intermediate Representation (IR): the fully resolved
//! ceremony data consumed by the executor. The YAML schema (parser input) lives in
//! `rite-resolver`; this crate contains only the runtime-facing types.
//!
//! # Module structure
//!
//! - [`ir`]: IR types: [`Ceremony`], [`Step`], [`Role`], etc. and typed ID newtypes
//! - [`expression`]: Expression parsing for `${artifact.name | sha256 | hex}` syntax
//! - [`transcript`]: Persisted transcript schema (`StepFact` + friends)
//! - [`safe_path`]: Confine untrusted, ceremony-derived names/paths to a directory
//! - `types` (private): Shared semantic enums: [`ActionType`], [`DutyType`], etc.
//!
//! # `BackendConfig`
//!
//! Re-exported from `rite-sdk` for convenience. The canonical definition lives there.

#![warn(missing_docs)]

pub mod bundle;
mod canonical;
pub mod commitment;
mod digest;
pub mod expression;
pub mod ir;
mod material;
pub mod params;
pub mod safe_path;
#[cfg(test)]
mod schema;
pub mod transcript;
mod types;

pub use rite_sdk::BackendConfig;

pub use canonical::{CanonicalJsonError, canonical_json, check_numbers};
pub use digest::{DigestFormatError, Sha256Digest};
pub use material::MaterialSource;

pub use safe_path::{PathSafetyError, confine, is_safe_component, safe_join, validate_component};

pub use types::{
    ActionType, BackendUsage, CertProfile, DutyType, ListInput, Metadata, OutputType,
    ParameterType, ReadsContract, SharingScheme, UnknownCertProfile, UnknownSharingScheme,
    derive_role_name, derive_step_name, role_type,
};

pub use ir::{
    Act, ActId, ArtifactId, ArtifactRef, Ceremony, Material, MaterialId, MaterialKind, NamedInput,
    Output, OutputId, ParamId, Parameter, PostCeremonyDuty, RetryPolicy, Role, RoleId, Section,
    SectionId, Step, StepId, StepInputs, SymbolTable,
};

pub use transcript::{
    ErrorClass, ErrorRecord, FACT_TYPES, FACT_VOCABULARY, Format, Level, PLACEHOLDER_LIMIT, Prompt,
    ResponseRecord, StepFact, StepOutcome, TRANSCRIPT_FORMAT, TRANSCRIPT_SCHEMA, TranscriptHeader,
    ValidatorSpec, compile_pattern,
};