use clap::Args;
use super::repoprompt::RepoPromptMode;
#[derive(Args, Clone, Debug, Default)]
pub struct RunnerCliArgs {
#[arg(long)]
pub output_format: Option<String>,
#[arg(long)]
pub verbosity: Option<String>,
#[arg(long)]
pub approval_mode: Option<String>,
#[arg(long)]
pub sandbox: Option<String>,
#[arg(long)]
pub plan_mode: Option<String>,
#[arg(long)]
pub unsupported_option_policy: Option<String>,
}
#[derive(Args, Clone, Debug, Default)]
pub struct AgentArgs {
#[arg(long)]
pub runner: Option<String>,
#[arg(long)]
pub model: Option<String>,
#[arg(short = 'e', long)]
pub effort: Option<String>,
#[arg(long = "repo-prompt", value_enum, value_name = "MODE")]
pub repo_prompt: Option<RepoPromptMode>,
#[command(flatten)]
pub runner_cli: RunnerCliArgs,
}
#[derive(Args, Clone, Debug, Default)]
pub struct RunAgentArgs {
#[arg(long, value_name = "NAME")]
pub profile: Option<String>,
#[arg(long)]
pub runner: Option<String>,
#[arg(long)]
pub model: Option<String>,
#[arg(short = 'e', long)]
pub effort: Option<String>,
#[command(flatten)]
pub runner_cli: RunnerCliArgs,
#[arg(long, value_parser = clap::value_parser!(u8).range(1..=3))]
pub phases: Option<u8>,
#[arg(long, conflicts_with = "phases")]
pub quick: bool,
#[arg(long = "repo-prompt", value_enum, value_name = "MODE")]
pub repo_prompt: Option<RepoPromptMode>,
#[arg(long, value_parser = ["ask", "enabled", "disabled"])]
pub git_revert_mode: Option<String>,
#[arg(
long,
value_name = "MODE",
value_parser = ["off", "commit", "commit_and_push"]
)]
pub git_publish_mode: Option<String>,
#[arg(long)]
pub include_draft: bool,
#[arg(long, conflicts_with = "no_notify")]
pub notify: bool,
#[arg(long, conflicts_with = "notify")]
pub no_notify: bool,
#[arg(long, conflicts_with = "no_notify_fail")]
pub notify_fail: bool,
#[arg(long, conflicts_with = "notify_fail")]
pub no_notify_fail: bool,
#[arg(long)]
pub notify_sound: bool,
#[arg(long)]
pub lfs_check: bool,
#[arg(long)]
pub no_progress: bool,
#[arg(long, value_name = "RUNNER")]
pub runner_phase1: Option<String>,
#[arg(long, value_name = "MODEL")]
pub model_phase1: Option<String>,
#[arg(long, value_name = "EFFORT")]
pub effort_phase1: Option<String>,
#[arg(long, value_name = "RUNNER")]
pub runner_phase2: Option<String>,
#[arg(long, value_name = "MODEL")]
pub model_phase2: Option<String>,
#[arg(long, value_name = "EFFORT")]
pub effort_phase2: Option<String>,
#[arg(long, value_name = "RUNNER")]
pub runner_phase3: Option<String>,
#[arg(long, value_name = "MODEL")]
pub model_phase3: Option<String>,
#[arg(long, value_name = "EFFORT")]
pub effort_phase3: Option<String>,
}