//! Operations runtime — typed verbs that mutate authoritative state.
//!
//! Entry point for ADR-024 (operations as the only agent action path) and
//! ADR-026 (validation architecture). Each operation declares precondition
//! loading, validators, effects, render paths, and witness shape; the
//! runtime threads them through a strict pipeline and emits a signed
//! witness on completion.
//!
//! The runtime is built incrementally per the operations-layer plan. O0
//! introduces the [`precondition::ondaod`] reusable loader used by
//! `propose_adr`, `transition_adr`, and any analysis that requires the
//! ondaod (ontoref Dao Discipline) procedure. O1.7 adds the [`validation`]
//! framework — the Validator trait, ValidatorEntry registry, and dispatch
//! by id.

// The `#[onto_validator]` / `#[onto_operation]` proc-macros emit absolute
// paths beginning `::ontoref_ops::...`. Inside this crate the alias is
// established explicitly so the same macros are usable from our own tests.
extern crate self as ontoref_ops;

pub mod capabilities;
pub mod config_reload;
pub mod context;
pub mod dispatch;
pub mod error;
pub mod ops;
pub mod output;
pub mod precondition;
pub mod reconcile;
pub mod registry;
pub mod runtime;
pub mod tier;
pub mod tier_guard;
pub mod tier_transition;
pub mod validation;
pub mod witness;

pub use context::OpContext;
pub use dispatch::{dispatch_op, registered_op_ids};
pub use error::OpError;
pub use output::{EffectRecord, OpOutput};
pub use registry::{OpFn, OperationEntry};
pub use runtime::{execute_op, PipelineMetrics, PipelineResult};
pub use witness::{sign_witness, PipelineWitness};
