mod cli;
mod commands;
mod render;
use clap::Parser;
use crate::cli::{Args, Command};
fn main() {
let args = Args::parse();
let exit_code = dispatch(args);
std::process::exit(exit_code);
}
fn dispatch(args: Args) -> i32 {
let globals = args.globals();
match args.command {
Command::Summary(sub) => commands::summary::run(&globals, sub),
Command::Hotspots(sub) => commands::hotspots::run(&globals, sub),
Command::Overhead(args) => commands::overhead::run(&globals, args),
Command::Compare(args) => commands::compare::run(&globals, args),
Command::Run(args) => commands::run::run(&globals, args),
Command::State(args) => commands::state::run(&globals, args),
Command::Ingest(args) => commands::ingest::run(&globals, args),
Command::McpServer(args) => commands::mcp_server::run(&globals, args),
}
}