use super::*;
#[derive(Subcommand)]
pub(crate) enum EvalCommand {
Run {
#[arg(long)]
workspace: Option<PathBuf>,
#[arg(long, conflicts_with = "workspace")]
project: Option<String>,
#[arg(long, default_value_t = 7)]
since_days: u64,
#[arg(long)]
dry_run: bool,
#[arg(long)]
json: bool,
},
List {
#[arg(long)]
workspace: Option<PathBuf>,
#[arg(long, conflicts_with = "workspace")]
project: Option<String>,
#[arg(long, default_value_t = 0.0)]
min_score: f64,
#[arg(long)]
json: bool,
},
Prompt {
#[arg(long)]
workspace: Option<PathBuf>,
#[arg(long, conflicts_with = "workspace")]
project: Option<String>,
session_id: String,
#[arg(long, default_value = "tool-efficiency-v1")]
rubric: String,
},
}
#[derive(Subcommand)]
pub(crate) enum CasesCommand {
Mine(SharedSinceJson),
Create {
#[arg(long)]
session: String,
#[arg(long)]
reason: String,
#[arg(long)]
label: Option<String>,
#[arg(long)]
json: bool,
#[command(flatten)]
ws: WorkspaceFlags,
},
List {
#[arg(long)]
status: Option<String>,
#[arg(long)]
json: bool,
#[command(flatten)]
ws: WorkspaceFlags,
},
Show(IdJson),
Archive(IdOnly),
}
#[derive(Subcommand)]
pub(crate) enum RulesCommand {
Create {
#[arg(long)]
name: String,
#[arg(long)]
filter: String,
#[arg(long)]
action: String,
#[arg(long)]
message: Option<String>,
#[command(flatten)]
ws: WorkspaceFlags,
},
List(JsonOnly),
Run {
#[arg(long)]
since: Option<String>,
#[arg(long)]
dry_run: bool,
#[arg(long)]
json: bool,
#[command(flatten)]
ws: WorkspaceFlags,
},
Enable(IdOnly),
Disable(IdOnly),
}
#[derive(Subcommand)]
pub(crate) enum AlertsCommand {
Check {
#[arg(long, default_value_t = 7)]
days: u64,
#[arg(long)]
json: bool,
#[command(flatten)]
ws: WorkspaceFlags,
},
}
#[derive(Subcommand)]
pub(crate) enum ReviewCommand {
List {
#[arg(long)]
status: Option<String>,
#[arg(long)]
json: bool,
#[command(flatten)]
ws: WorkspaceFlags,
},
Show(IdJson),
Resolve(IdOnly),
Dismiss(IdOnly),
}