use clap::{Args, Subcommand};
#[derive(Subcommand, Debug, Clone)]
pub enum ExecSubcommand {
#[command(
long_about = "Resume a previous exec session with a follow-up prompt.\n\nExamples:\n vtcode exec resume session-123 \"continue from the prior investigation\"\n vtcode exec resume --last \"continue from the prior investigation\"\n echo \"continue from stdin\" | vtcode exec resume --last"
)]
Resume(ExecResumeArgs),
#[command(
long_about = "Run an evaluation suite against the agent. Each task in the suite is\n\
executed autonomously, then verified with environment probes.\n\
Results are aggregated into a report with pass@k and pass^k metrics.\n\n\
Examples:\n vtcode exec eval --suite my-suite.json\n vtcode exec eval --suite suite.json --output report.md"
)]
Eval(ExecEvalArgs),
}
#[derive(Args, Debug, Clone)]
pub struct ExecEvalArgs {
#[arg(long, value_name = "FILE")]
pub suite: String,
#[arg(long, value_name = "FILE")]
pub output: Option<String>,
}
#[derive(Args, Debug, Clone)]
pub struct ExecResumeArgs {
#[arg(long)]
pub last: bool,
#[arg(long)]
pub all: bool,
#[arg(value_name = "SESSION_ID_OR_PROMPT", required_unless_present = "last")]
pub session_or_prompt: Option<String>,
#[arg(value_name = "PROMPT")]
pub prompt: Option<String>,
}