use clap::{ArgAction, Args};
use super::util::{llm_model_completion_parser, llm_provider_completion_parser};
#[derive(Debug, Args)]
pub(crate) struct ModelInfoArgs {
#[arg(long)]
pub verify: bool,
#[arg(long)]
pub warm: bool,
#[arg(long = "keep-alive", value_name = "VALUE")]
pub keep_alive: Option<String>,
#[arg(
value_parser = llm_model_completion_parser(),
hide_possible_values = true
)]
pub model: String,
}
#[derive(Debug, Args)]
pub(crate) struct ProviderCatalogArgs {
#[arg(long)]
pub available_only: bool,
}
#[derive(Debug, Args)]
pub(crate) struct ProviderReadyArgs {
#[arg(
value_parser = llm_provider_completion_parser(),
hide_possible_values = true
)]
pub provider: String,
#[arg(
long,
value_parser = llm_model_completion_parser(),
hide_possible_values = true
)]
pub model: Option<String>,
#[arg(long = "base-url")]
pub base_url: Option<String>,
#[arg(long, default_value_t = false, action = ArgAction::SetTrue)]
pub json: bool,
}