//! Declarative tool-call pipelines for `mcptest pipe` and the
//! cumulative budget controls layered on top.
//!
//! A pipeline is an ordered list of steps, each calling one MCP tool and
//! feeding values extracted from earlier steps into later ones. This module
//! tree owns the whole feature:
//!
//! - [`model`]: the YAML document shape, loader, and schema validation.
//! - [`jsonpath`]: JSONPath extraction and projection (shared with the
//!   `tools call` primitives in [`crate::commands::tools_call`]).
//! - [`mod@reference`]: `${step.field}` / `${env.X}` / `${var.X}` resolution
//!   and the `when:` guard language.
//! - [`conn`]: the MCP connection helper.
//! - [`executor`]: the sequential run loop with `on_error` and budget gating.
//! - [`plan`]: dry-run planning and cost projection.
//! - [`pricing`]: the data-file-driven provider pricing table.
//! - [`budget`]: the cumulative cost/token/duration ledger.
//! - [`report`]: pretty/JSON output and the per-step breakdown.
//!
//! The CLI handler in [`crate::cli::handlers`] wires the flags to these
//! pieces; the engine here stays free of clap so it is unit-testable.

pub mod budget;
pub mod conn;
pub mod executor;
pub mod jsonpath;
pub mod model;
pub mod plan;
pub mod pricing;
pub mod reference;
pub mod report;
