use clap::{Parser, Subcommand};
use crate::commands;
#[derive(Parser)]
#[command(name = "llm", version, about = "Access large language models from the command line")]
pub struct Cli {
#[command(subcommand)]
pub command: Option<Commands>,
}
#[derive(Subcommand)]
pub enum Commands {
Prompt(commands::prompt::PromptArgs),
Chat(commands::chat::ChatArgs),
Keys {
#[command(subcommand)]
command: commands::keys::KeysCommand,
},
Models {
#[command(subcommand)]
command: commands::models::ModelsCommand,
},
Logs {
#[command(subcommand)]
command: commands::logs::LogsCommand,
},
Tools {
#[command(subcommand)]
command: commands::tools::ToolsCommand,
},
Schemas {
#[command(subcommand)]
command: commands::schemas::SchemasCommand,
},
Plugins {
#[command(subcommand)]
command: commands::plugins::PluginsCommand,
},
Options {
#[command(subcommand)]
command: commands::options::OptionsCommand,
},
Aliases {
#[command(subcommand)]
command: commands::aliases::AliasesCommand,
},
Agent {
#[command(subcommand)]
command: commands::agent::AgentCommand,
},
}