use clap::Subcommand;
use super::agent::*;
use super::audio::*;
use super::config::*;
use super::conversation::*;
use super::design::*;
use super::dialogue::*;
use super::dubbing::*;
use super::history::*;
use super::knowledge::*;
use super::library::*;
use super::models::*;
use super::music::*;
use super::native::*;
use super::phone::*;
use super::projects::*;
use super::pronunciation::*;
use super::rag::*;
use super::samples::*;
use super::stt::*;
use super::tools::*;
use super::tts::*;
use super::update::*;
use super::usage::*;
use super::user::*;
use super::voice::*;
use super::webhook::*;
use super::workspace::*;
#[derive(Subcommand)]
pub enum Commands {
#[command(name = "tts", alias = "speak")]
TextToSpeech(TextToSpeechArgs),
#[command(name = "stt", alias = "transcribe")]
SpeechToText(SpeechToTextArgs),
#[command(name = "voice")]
Voice(VoiceArgs),
#[command(name = "isolate")]
AudioIsolation(AudioIsolationArgs),
#[command(name = "sfx")]
SoundEffects(SoundEffectsArgs),
#[command(name = "voice-changer", alias = "vc")]
VoiceChanger(VoiceChangerArgs),
#[command(name = "dub")]
Dubbing(DubbingArgs),
#[command(name = "history")]
History(HistoryArgs),
#[command(name = "user")]
User(UserArgs),
#[command(name = "models")]
Models(ModelsArgs),
#[command(name = "config")]
Config(ConfigArgs),
#[command(name = "library", alias = "lib")]
VoiceLibrary(VoiceLibraryArgs),
#[command(name = "pronunciation", alias = "pronounce")]
Pronunciation(PronunciationArgs),
#[command(name = "usage")]
Usage(UsageArgs),
#[command(name = "voice-design", alias = "design")]
VoiceDesign(VoiceDesignArgs),
#[command(name = "audio-native")]
AudioNative(AudioNativeArgs),
#[command(name = "samples")]
Samples(SamplesArgs),
#[command(name = "workspace", alias = "ws")]
Workspace(WorkspaceArgs),
#[command(name = "tts-timestamps", alias = "tts-ts")]
TtsWithTimestamps(TtsTimestampsArgs),
#[command(name = "tts-stream")]
TtsStream(TtsStreamArgs),
#[command(name = "realtime-tts", alias = "rtts")]
RealtimeTts(RealtimeTtsArgs),
#[command(name = "agent")]
Agent(AgentArgs),
#[command(name = "converse", alias = "chat")]
Conversation(ConversationArgs),
#[command(name = "knowledge", alias = "kb")]
Knowledge(KnowledgeArgs),
#[command(name = "rag")]
Rag(RagArgs),
#[command(name = "webhook")]
Webhook(WebhookArgs),
#[command(name = "dialogue")]
Dialogue(DialogueArgs),
#[command(name = "tools")]
Tools(ToolsArgs),
#[command(name = "projects")]
Projects(ProjectsArgs),
#[command(name = "music")]
Music(MusicArgs),
#[command(name = "phone")]
Phone(PhoneArgs),
#[command(name = "completions")]
Completions {
#[arg(value_enum)]
shell: clap_complete::Shell,
},
#[command(name = "update")]
Update(UpdateArgs),
#[command(name = "interactive", alias = "repl")]
Interactive,
#[cfg(feature = "mcp")]
#[command(name = "mcp")]
Mcp {
#[arg(long)]
enable_tools: Option<String>,
#[arg(long)]
disable_tools: Option<String>,
#[arg(long)]
disable_admin: bool,
#[arg(long)]
disable_destructive: bool,
#[arg(long)]
read_only: bool,
},
}