//! Model-compatibility engine (W8, ADR 0026).
//!
//! Three pieces compose into the rollout gate for model upgrades:
//! [`capture`] writes a baseline snapshot, [`diff`] compares two
//! baselines and classifies every assertion as `PASS`, `DRIFT`, or
//! `FAIL`, and [`invariants`] evaluates the model-agnostic guardrails
//! that always classify as `FAIL` on violation.
//!
//! The library is transport-free. The runner crate composes capture
//! with an actual MCP transport; the unit tests inject a stub runner
//! so the shape stays exercised even before the live runner lands.

pub mod capture;
pub mod diff;
pub mod fingerprint;
pub mod invariants;
pub mod model;

mod diff_pair;
mod error;

pub use capture::{capture_baseline, CaptureOptions, CaptureRunner};
pub use diff::{diff_baselines, BaselineDiff, ChangeCategory, DiffEntry, DiffSummary, Severity};
pub use error::ModelCompatError;
pub use fingerprint::{BehavioralFingerprint, FingerprintDelta};
pub use invariants::{
    check_invariants, Invariant, InvariantCondition, InvariantKind, InvariantResult,
};
pub use model::{
    BaselineFile, CapturedExchange, CapturedRun, ConfigFingerprint, ContentBlock, FinishReason,
    McpMessage, ToolCall,
};
