rite_model/lib.rs
1//! Core domain model and IR for the Rite ceremony DSL.
2//!
3//! `rite-model` defines the Intermediate Representation (IR): the fully resolved
4//! ceremony data consumed by the executor. The YAML schema (parser input) lives in
5//! `rite-resolver`; this crate contains only the runtime-facing types.
6//!
7//! # Module structure
8//!
9//! - [`ir`]: IR types: [`Ceremony`], [`Step`], [`Role`], etc. and typed ID newtypes
10//! - [`expression`]: Expression parsing for `${artifact.name | sha256 | hex}` syntax
11//! - [`transcript`]: Persisted transcript schema (`StepFact` + friends)
12//! - `types` (private): Shared semantic enums: [`ActionType`], [`DutyType`], etc.
13//!
14//! # `BackendConfig`
15//!
16//! Re-exported from `rite-sdk` for convenience. The canonical definition lives there.
17
18#![warn(missing_docs)]
19
20pub mod expression;
21pub mod ir;
22mod material;
23pub mod transcript;
24mod types;
25
26pub use rite_sdk::BackendConfig;
27
28pub use material::MaterialSource;
29
30pub use types::{
31 ActionType, DutyType, Metadata, OutputType, ParameterType, derive_role_name, derive_step_name,
32 role_type,
33};
34
35pub use ir::{
36 Act, ActId, ArtifactId, ArtifactRef, Ceremony, Material, MaterialId, MaterialKind, Output,
37 OutputId, ParamId, Parameter, PostCeremonyDuty, Role, RoleId, Section, SectionId, Step, StepId,
38 StepInputs, SymbolTable,
39};
40
41pub use transcript::{ErrorRecord, Prompt, ResponseRecord, StepFact, StepOutcome, ValidatorSpec};