#![recursion_limit = "512"]
pub mod client;
pub mod commands;
pub mod config;
pub mod error;
pub mod git;
pub mod mcp;
pub mod models;
pub mod output;
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "clickup", version, about = "CLI for the ClickUp API")]
pub struct Cli {
#[arg(long, global = true)]
pub token: Option<String>,
#[arg(long, global = true)]
pub workspace: Option<String>,
#[arg(long, global = true, default_value = "table")]
pub output: String,
#[arg(long, global = true)]
pub fields: Option<String>,
#[arg(long, global = true)]
pub no_header: bool,
#[arg(long, global = true)]
pub all: bool,
#[arg(long, global = true)]
pub limit: Option<usize>,
#[arg(long, global = true)]
pub page: Option<u32>,
#[arg(short, long, global = true)]
pub quiet: bool,
#[arg(long, global = true, default_value = "30")]
pub timeout: u64,
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
Setup(commands::setup::SetupArgs),
Auth {
#[command(subcommand)]
command: commands::auth::AuthCommands,
},
Workspace {
#[command(subcommand)]
command: commands::workspace::WorkspaceCommands,
},
Space {
#[command(subcommand)]
command: commands::space::SpaceCommands,
},
Folder {
#[command(subcommand)]
command: commands::folder::FolderCommands,
},
List {
#[command(subcommand)]
command: commands::list::ListCommands,
},
Task {
#[command(subcommand)]
command: commands::task::TaskCommands,
},
Checklist {
#[command(subcommand)]
command: commands::checklist::ChecklistCommands,
},
Comment {
#[command(subcommand)]
command: commands::comment::CommentCommands,
},
Tag {
#[command(subcommand)]
command: commands::tag::TagCommands,
},
Field {
#[command(subcommand)]
command: commands::field::FieldCommands,
},
#[command(name = "task-type")]
TaskType {
#[command(subcommand)]
command: commands::task_type::TaskTypeCommands,
},
Attachment {
#[command(subcommand)]
command: commands::attachment::AttachmentCommands,
},
Time {
#[command(subcommand)]
command: commands::time::TimeCommands,
},
Goal {
#[command(subcommand)]
command: commands::goal::GoalCommands,
},
View {
#[command(subcommand)]
command: commands::view::ViewCommands,
},
Member {
#[command(subcommand)]
command: commands::member::MemberCommands,
},
User {
#[command(subcommand)]
command: commands::user::UserCommands,
},
Chat {
#[command(subcommand)]
command: commands::chat::ChatCommands,
},
Doc {
#[command(subcommand)]
command: commands::doc::DocCommands,
},
Webhook {
#[command(subcommand)]
command: commands::webhook::WebhookCommands,
},
Template {
#[command(subcommand)]
command: commands::template::TemplateCommands,
},
Guest {
#[command(subcommand)]
command: commands::guest::GuestCommands,
},
Group {
#[command(subcommand)]
command: commands::group::GroupCommands,
},
Role {
#[command(subcommand)]
command: commands::role::RoleCommands,
},
Shared {
#[command(subcommand)]
command: commands::shared::SharedCommands,
},
#[command(name = "audit-log")]
AuditLog {
#[command(subcommand)]
command: commands::audit_log::AuditLogCommands,
},
Acl {
#[command(subcommand)]
command: commands::acl::AclCommands,
},
#[command(name = "agent-config")]
AgentConfig {
#[command(subcommand)]
command: commands::agent_config::AgentConfigCommands,
},
Mcp {
#[command(subcommand)]
command: commands::mcp_cmd::McpCommands,
},
Status,
Completions {
shell: clap_complete::Shell,
},
}