pub mod ask;
pub mod chat;
pub mod config;
pub mod daemon;
#[cfg(feature = "desktop")]
pub mod desktop;
pub mod md;
pub mod memory;
pub mod sandbox;
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "localgpt")]
#[command(author, version, about = "A lightweight, local-only AI assistant")]
#[command(propagate_version = true)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
#[arg(short, long, global = true)]
pub verbose: bool,
#[arg(short, long, global = true, env = "LOCALGPT_CONFIG")]
pub config: Option<String>,
#[arg(
short,
long,
global = true,
default_value = "main",
env = "LOCALGPT_AGENT"
)]
pub agent: String,
}
#[derive(Subcommand)]
pub enum Commands {
Chat(chat::ChatArgs),
Ask(ask::AskArgs),
#[cfg(feature = "desktop")]
Desktop(desktop::DesktopArgs),
Daemon(daemon::DaemonArgs),
Memory(memory::MemoryArgs),
Config(config::ConfigArgs),
Md(md::MdArgs),
Sandbox(sandbox::SandboxArgs),
}