//! Auto-stub generation for `tools/list` catalogs.
//!
//! When a developer first points mcptest at a server, hand-authoring a YAML
//! test for every advertised tool is tedious. This module takes a parsed
//! `tools/list` response and emits runnable YAML: one stub file per tool
//! ([`tool_stubs`]) or one self-contained suite document ([`suite`]). Both
//! renderers share the schema-aware argument synthesis in [`synthesis`], so
//! happy-path values honor enums, formats, bounds, local `$ref`, and
//! `allOf`/`anyOf`/`oneOf` composition, and tools that declare an
//! `outputSchema` get a structured-output conformance test. The CLI wiring
//! lives in the `mcptest` binary (`generate stubs`, `generate suite`).

pub mod conformance;
mod emit;
pub mod eval;
pub mod probe;
pub mod redteam;
mod resolve;
pub mod suite;
pub mod synthesis;
pub mod tool_stubs;

pub use conformance::{render_conformance_suite, ConformanceOptions, DEFAULT_SPEC_VERSION};
pub use eval::{render_eval_suite, EvalOptions, DEFAULT_EVAL_MODEL};
pub use probe::{ProbeOptions, DEFAULT_PROBE_SEED, PROBE_CASE_CAP};
pub use redteam::{render_redteam_suite, RedteamOptions, DEFAULT_REDTEAM_MODEL};
pub use suite::{render_suite, SuiteOptions, DEFAULT_MODELS};
pub use synthesis::{
    mismatch_value, required_properties, synthesize_args, synthesize_value, SynthesisResult,
};
pub use tool_stubs::{generate, generate_with, StubGenError, StubOptions, ToolStub};
