use std::path::PathBuf;
use clap::Args;
use super::{
KijiDistilbertPrecision, OpenAiFilterOperatingPoint, SafetyNetBackend, SafetyNetFallback,
SafetyNetMode,
};
#[derive(Args, Debug)]
pub(crate) struct OpenAiFilterSubprocessArgs {
#[arg(long)]
pub(crate) openai_filter_command: Option<PathBuf>,
#[arg(long)]
pub(crate) openai_filter_checkpoint: Option<PathBuf>,
#[arg(long, value_enum)]
pub(crate) openai_filter_operating_point: Option<OpenAiFilterOperatingPoint>,
}
#[derive(Args, Debug)]
pub(crate) struct SafetyNetLimitArgs {
#[arg(long, default_value_t = super::DEFAULT_SAFETY_NET_TIMEOUT_MS)]
pub(crate) safety_net_timeout_ms: u64,
#[arg(long, default_value_t = super::DEFAULT_SAFETY_NET_INPUT_LIMIT_BYTES)]
pub(crate) safety_net_input_limit_bytes: usize,
#[arg(long, value_enum, default_value_t = SafetyNetMode::Resolve)]
pub(crate) safety_net_mode: SafetyNetMode,
#[arg(long, value_enum, default_value_t = SafetyNetFallback::Redact)]
pub(crate) safety_net_fallback: SafetyNetFallback,
}
#[derive(Args, Debug)]
pub(crate) struct SafetyNetRegistryArgs {
#[arg(long)]
pub(crate) safety_net_registry: bool,
#[arg(long, value_enum)]
pub(crate) safety_net_add: Vec<SafetyNetBackend>,
}
#[derive(Args, Debug)]
pub(crate) struct OpfRegistryArgs {
#[arg(long, value_delimiter = ',')]
pub(crate) opf_locales: Vec<String>,
#[arg(long)]
pub(crate) opf_command: Option<PathBuf>,
#[arg(long)]
pub(crate) opf_checkpoint: Option<PathBuf>,
}
#[derive(Args, Debug)]
pub(crate) struct KijiPrecisionArgs {
#[arg(long, value_enum, default_value_t = KijiDistilbertPrecision::Fp32)]
pub(crate) kiji_distilbert_precision: KijiDistilbertPrecision,
}
#[derive(Args, Debug)]
pub(crate) struct RulepackOverrideArgs {
#[arg(long, value_delimiter = ',')]
pub(crate) rulepack_bundled: Vec<String>,
#[arg(long = "rulepack-path")]
pub(crate) rulepack_paths: Vec<PathBuf>,
}