use clap::{Args, Subcommand};
use std::path::PathBuf;
#[derive(Debug, Args)]
pub(crate) struct LlmArgs {
#[command(subcommand)]
pub command: LlmCommand,
}
#[derive(Debug, Subcommand)]
pub(crate) enum LlmCommand {
Evaluate(LlmEvaluateArgs),
}
#[derive(Debug, Args)]
pub(crate) struct LlmEvaluateArgs {
#[arg(long, conflicts_with_all = ["model", "state_file", "questions", "policy"])]
pub request: Option<PathBuf>,
#[arg(long, required_unless_present = "request")]
pub model: Option<String>,
#[arg(long, required_unless_present = "request")]
pub state_file: Option<PathBuf>,
#[arg(long, required_unless_present = "request")]
pub questions: Option<PathBuf>,
#[arg(long)]
pub policy: Option<PathBuf>,
#[arg(long, default_value = "cli.evaluate.v1")]
pub site_id: String,
#[arg(long)]
pub json: bool,
}