use clap::Args;
use crate::agent;
use crate::cli::task::args::types::TaskEditFieldArg;
#[derive(Args)]
pub struct TaskFieldArgs {
pub key: String,
pub value: String,
#[arg(value_name = "TASK_ID...")]
pub task_ids: Vec<String>,
#[arg(long, value_name = "TAG")]
pub tag_filter: Vec<String>,
#[arg(long)]
pub dry_run: bool,
}
#[derive(Args)]
pub struct TaskEditArgs {
#[arg(value_enum)]
pub field: TaskEditFieldArg,
pub value: String,
#[arg(value_name = "TASK_ID...")]
pub task_ids: Vec<String>,
#[arg(long, value_name = "TAG")]
pub tag_filter: Vec<String>,
#[arg(long)]
pub dry_run: bool,
#[arg(long)]
pub no_auto_archive: bool,
}
#[derive(Args)]
pub struct TaskUpdateArgs {
#[arg(long, default_value = "")]
pub fields: String,
#[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<agent::RepoPromptMode>,
#[command(flatten)]
pub runner_cli: agent::RunnerCliArgs,
#[arg(value_name = "TASK_ID")]
pub task_id: Option<String>,
#[arg(long)]
pub dry_run: bool,
}