use std::path::PathBuf;
use clap::Parser;
use super::JudgeArgs;
#[derive(Parser, Clone)]
pub struct RunArgs {
#[arg(long, default_value = "eval.yaml")]
pub config: PathBuf,
#[arg(long, default_value = ".eval/eval.db")]
pub db: PathBuf,
#[arg(long, default_value_t = 0)]
pub rerun_failures: u32,
#[arg(long, default_value = "warn")]
pub quarantine_mode: String,
#[arg(long)]
pub trace_file: Option<PathBuf>,
#[arg(long)]
pub redact_prompts: bool,
#[arg(long)]
pub baseline: Option<PathBuf>,
#[arg(long)]
pub export_baseline: Option<PathBuf>,
#[arg(long)]
pub strict: bool,
#[arg(long, default_value = "none")]
pub embedder: String,
#[arg(long, default_value = "text-embedding-3-small")]
pub embedding_model: String,
#[arg(long)]
pub refresh_embeddings: bool,
#[arg(long)]
pub incremental: bool,
#[arg(long)]
pub refresh_cache: bool,
#[arg(long)]
pub no_cache: bool,
#[arg(long)]
pub explain_skip: bool,
#[command(flatten)]
pub judge: JudgeArgs,
#[arg(long)]
pub replay_strict: bool,
#[arg(long)]
pub deny_deprecations: bool,
#[arg(long, value_enum, default_value_t, env = "ASSAY_EXIT_CODES")]
pub exit_codes: crate::exit_codes::ExitCodeVersion,
#[arg(long)]
pub no_verify: bool,
}
impl Default for RunArgs {
fn default() -> Self {
Self {
config: PathBuf::from("eval.yaml"),
db: PathBuf::from(".eval/eval.db"),
rerun_failures: 0,
quarantine_mode: "warn".to_string(),
trace_file: None,
redact_prompts: false,
baseline: None,
export_baseline: None,
strict: false,
embedder: "none".to_string(),
embedding_model: "text-embedding-3-small".to_string(),
refresh_embeddings: false,
incremental: false,
refresh_cache: false,
no_cache: false,
explain_skip: false,
judge: JudgeArgs::default(),
replay_strict: false,
deny_deprecations: false,
exit_codes: crate::exit_codes::ExitCodeVersion::default(),
no_verify: false,
}
}
}
#[derive(Parser, Clone)]
pub struct CiArgs {
#[arg(long, default_value = "eval.yaml")]
pub config: PathBuf,
#[arg(long, default_value = ".eval/eval.db")]
pub db: PathBuf,
#[arg(long, default_value = "junit.xml")]
pub junit: PathBuf,
#[arg(long, default_value = "sarif.json")]
pub sarif: PathBuf,
#[arg(long, default_value_t = 2)]
pub rerun_failures: u32,
#[arg(long, default_value = "warn")]
pub quarantine_mode: String,
#[arg(long)]
pub otel_jsonl: Option<PathBuf>,
#[arg(long)]
pub trace_file: Option<PathBuf>,
#[arg(long)]
pub redact_prompts: bool,
#[arg(long)]
pub baseline: Option<PathBuf>,
#[arg(long)]
pub export_baseline: Option<PathBuf>,
#[arg(long)]
pub strict: bool,
#[arg(long, default_value = "none")]
pub embedder: String,
#[arg(long, default_value = "text-embedding-3-small")]
pub embedding_model: String,
#[arg(long)]
pub refresh_embeddings: bool,
#[arg(long)]
pub incremental: bool,
#[arg(long)]
pub refresh_cache: bool,
#[arg(long)]
pub no_cache: bool,
#[arg(long)]
pub explain_skip: bool,
#[command(flatten)]
pub judge: JudgeArgs,
#[arg(long)]
pub replay_strict: bool,
#[arg(long)]
pub deny_deprecations: bool,
#[arg(long, value_enum, default_value_t, env = "ASSAY_EXIT_CODES")]
pub exit_codes: crate::exit_codes::ExitCodeVersion,
#[arg(long)]
pub no_verify: bool,
#[arg(long)]
pub pr_comment: Option<PathBuf>,
}