use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(
name = "turnlog",
version,
about = "Lightweight agent provenance recorder"
)]
pub struct Cli {
#[arg(long, short = 'C', global = true, value_name = "DIR")]
pub cwd: Option<std::path::PathBuf>,
#[command(subcommand)]
pub command: Command,
}
#[derive(Debug, Subcommand)]
pub enum Command {
Init,
Start {
#[arg(long)]
ticket: Option<String>,
#[arg(long)]
goal: String,
},
Record {
#[arg(long)]
session: Option<String>,
#[arg(long)]
model: Option<String>,
#[arg(long)]
summary: Option<String>,
#[arg(long = "verification")]
verification: Vec<String>,
#[arg(long)]
attach_diff: bool,
},
Current,
Use { id: String },
Status,
Log {
#[arg(long)]
session: Option<String>,
#[arg(long)]
ticket: Option<String>,
#[arg(long)]
grep: Option<String>,
#[arg(long)]
changed: Option<String>,
},
Show {
id: String,
#[arg(long)]
json: bool,
},
Grep { pattern: String },
Report {
id: String,
#[arg(long)]
stdout: bool,
},
}