use clap::Subcommand;
#[derive(Subcommand, Debug)]
pub enum CLICommand {
Init {
#[arg(long, default_value = ".leankg")]
path: String,
},
Index {
path: Option<String>,
#[arg(long, short)]
incremental: bool,
#[arg(long, short)]
lang: Option<String>,
#[arg(long)]
exclude: Option<String>,
#[arg(long, short)]
verbose: bool,
},
Query {
query: String,
#[arg(long, default_value = "name")]
kind: String,
},
Generate {
#[arg(long, short)]
template: Option<String>,
},
Serve {
#[arg(long, default_value = "8080")]
web_port: u16,
},
McpStdio {
#[arg(long)]
watch: bool,
},
Impact {
file: String,
#[arg(long, default_value = "3")]
depth: u32,
},
Install,
Status,
Watch,
Quality {
#[arg(long, default_value = "50")]
min_lines: u32,
#[arg(long)]
lang: Option<String>,
},
Export {
#[arg(long, default_value = "graph.html")]
output: String,
},
Annotate {
element: String,
#[arg(long, short)]
description: String,
#[arg(long)]
user_story: Option<String>,
#[arg(long)]
feature: Option<String>,
},
Link {
element: String,
id: String,
#[arg(long, default_value = "story")]
kind: String,
},
SearchAnnotations {
query: String,
},
ShowAnnotations {
element: String,
},
Trace {
#[arg(long)]
feature: Option<String>,
#[arg(long)]
user_story: Option<String>,
#[arg(long, short)]
all: bool,
},
FindByDomain {
domain: String,
},
Benchmark {
#[arg(long)]
category: Option<String>,
#[arg(long, default_value = "kilo")]
cli: String,
},
}