use clap::Subcommand;
#[derive(Subcommand, Debug, Clone)]
pub enum PachaCommand {
Pull {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
force: bool,
#[arg(short, long)]
quant: Option<String>,
},
List {
#[arg(short, long)]
verbose: bool,
#[arg(short, long, default_value = "table")]
format: String,
},
Rm {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
all: bool,
#[arg(short = 'y', long)]
yes: bool,
},
Show {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
full: bool,
},
Search {
#[arg(value_name = "QUERY")]
query: String,
#[arg(short, long, default_value = "10")]
limit: usize,
},
Aliases {
#[arg(value_name = "PATTERN")]
pattern: Option<String>,
},
Alias {
#[arg(value_name = "NAME")]
name: String,
#[arg(value_name = "TARGET")]
target: String,
},
Stats,
Prune {
#[arg(short, long, default_value = "30")]
days: u64,
#[arg(short = 'n', long)]
dry_run: bool,
},
Pin {
#[arg(value_name = "MODEL")]
model: String,
},
Unpin {
#[arg(value_name = "MODEL")]
model: String,
},
Run {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
system: Option<String>,
#[arg(short, long, value_name = "FILE")]
modelfile: Option<String>,
#[arg(long, default_value = "0.7")]
temperature: f32,
#[arg(long)]
max_tokens: Option<usize>,
#[arg(long, default_value = "4096")]
context: usize,
#[arg(short, long)]
verbose: bool,
},
Keygen {
#[arg(short, long)]
output: Option<String>,
#[arg(short, long)]
identity: Option<String>,
#[arg(short, long)]
force: bool,
},
Sign {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
key: Option<String>,
#[arg(short, long)]
output: Option<String>,
#[arg(short, long)]
identity: Option<String>,
},
Verify {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
signature: Option<String>,
#[arg(short, long)]
key: Option<String>,
},
Encrypt {
#[arg(value_name = "MODEL")]
model: String,
#[arg(short, long)]
output: Option<String>,
#[arg(long, value_name = "VAR")]
password_env: Option<String>,
},
Decrypt {
#[arg(value_name = "FILE")]
file: String,
#[arg(short, long)]
output: Option<String>,
#[arg(long, value_name = "VAR")]
password_env: Option<String>,
},
}