//! Arguments for `mcptest distill` (WOR-1263).

use std::path::PathBuf;

use clap::Args;

/// Arguments for `mcptest distill`.
///
/// Deliberately tiny: the cassette is the input, the suite is the output,
/// and the only knob is the server key the generated suite uses. Every
/// derivation decision (assertions, review flags, replay wiring) lives in
/// `mcptest_core::distill` so the MCP-server surface can reuse it later.
#[derive(Debug, Args)]
pub struct DistillArgs {
    /// Cassette to distill: a server cassette (recorded JSON-RPC
    /// exchanges) or an agent cassette (recorded model loop).
    #[arg(value_name = "CASSETTE")]
    pub cassette: PathBuf,

    /// Write the distilled suite to this file instead of stdout.
    #[arg(long, value_name = "FILE")]
    pub output: Option<PathBuf>,

    /// Server key used in the generated `servers:` block and tests.
    /// Agent-cassette tool calls that recorded their own server key keep
    /// it; this name covers everything else.
    #[arg(long = "server-name", value_name = "NAME", default_value = "recorded")]
    pub server_name: String,
}
