use clap::{Parser, ValueEnum};
use std::path::PathBuf;
#[derive(Parser, Debug)]
#[command(name = "aiproof", version, about = "Static analyzer for AI prompts")]
pub struct Cli {
#[arg(default_value = ".")]
pub paths: Vec<PathBuf>,
#[arg(long, value_enum, default_value_t = Format::Pretty)]
pub format: Format,
#[arg(long)]
pub select: Vec<String>,
#[arg(long)]
pub ignore: Vec<String>,
#[arg(long = "target-model")]
pub target_models: Vec<String>,
#[arg(long)]
pub fix: bool,
#[arg(long, requires = "fix")]
pub unsafe_fixes: bool,
#[arg(long, value_enum, default_value_t = ColorMode::Auto)]
pub color: ColorMode,
#[arg(long, value_name = "CODE")]
pub explain: Option<String>,
#[arg(long)]
pub init: bool,
}
#[derive(Debug, Clone, Copy, ValueEnum)]
pub enum Format {
Pretty,
Json,
Sarif,
}
#[derive(Debug, Clone, Copy, ValueEnum)]
pub enum ColorMode {
Auto,
Always,
Never,
}