use clap::{Args, Parser, Subcommand};
use std::path::PathBuf;
#[derive(Parser, Debug)]
#[command(name = "atm-agent-mcp", version, about)]
pub struct Cli {
#[arg(long, global = true)]
pub config: Option<PathBuf>,
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Serve(ServeArgs),
Config(ConfigArgs),
Sessions(SessionsArgs),
Summary(SummaryArgs),
}
#[derive(Args, Debug)]
pub struct ServeArgs {
#[arg(long)]
pub identity: Option<String>,
#[arg(long)]
pub role: Option<String>,
#[arg(long)]
pub model: Option<String>,
#[arg(long)]
pub sandbox: Option<String>,
#[arg(long, name = "approval-policy")]
pub approval_policy: Option<String>,
#[arg(long)]
pub resume: Option<Option<String>>,
#[arg(long)]
pub fast: bool,
#[arg(long)]
pub subagents: bool,
#[arg(long, conflicts_with = "explore")]
pub readonly: bool,
#[arg(long)]
pub explore: bool,
#[arg(long)]
pub timeout: Option<u64>,
}
#[derive(Args, Debug)]
pub struct ConfigArgs {
#[arg(long)]
pub json: bool,
}
#[derive(Args, Debug)]
pub struct SessionsArgs {
#[arg(long)]
pub repo: Option<String>,
#[arg(long)]
pub identity: Option<String>,
#[arg(long)]
pub prune: bool,
}
#[derive(Args, Debug)]
pub struct SummaryArgs {
pub agent_id: String,
}