1use agcodex_common::ApprovalModeCliArg;
2use agcodex_common::CliConfigOverrides;
3use clap::Parser;
4use std::path::PathBuf;
5
6#[derive(Parser, Debug)]
7#[command(version)]
8pub struct Cli {
9 pub prompt: Option<String>,
11
12 #[arg(long = "image", short = 'i', value_name = "FILE", value_delimiter = ',', num_args = 1..)]
14 pub images: Vec<PathBuf>,
15
16 #[arg(long, short = 'm')]
18 pub model: Option<String>,
19
20 #[arg(long = "oss", default_value_t = false)]
24 pub oss: bool,
25
26 #[arg(long = "profile", short = 'p')]
28 pub config_profile: Option<String>,
29
30 #[arg(long = "mode", value_name = "MODE")]
32 pub mode: Option<String>,
33
34 #[arg(long = "sandbox", short = 's')]
37 pub sandbox_mode: Option<agcodex_common::SandboxModeCliArg>,
38
39 #[arg(long = "ask-for-approval", short = 'a')]
41 pub approval_policy: Option<ApprovalModeCliArg>,
42
43 #[arg(long = "full-auto", default_value_t = false)]
45 pub full_auto: bool,
46
47 #[arg(
50 long = "dangerously-bypass-approvals-and-sandbox",
51 alias = "yolo",
52 default_value_t = false,
53 conflicts_with_all = ["approval_policy", "full_auto"]
54 )]
55 pub dangerously_bypass_approvals_and_sandbox: bool,
56
57 #[clap(long = "cd", short = 'C', value_name = "DIR")]
59 pub cwd: Option<PathBuf>,
60
61 #[clap(skip)]
62 pub config_overrides: CliConfigOverrides,
63}