#![warn(clippy::all, clippy::pedantic)] #![allow( clippy::missing_errors_doc, clippy::missing_panics_doc, clippy::unnecessary_literal_bound, clippy::module_name_repetitions, clippy::struct_field_names, clippy::must_use_candidate, clippy::new_without_default, clippy::return_self_not_must_use, dead_code )] use clap::Subcommand; use serde::{Deserialize, Serialize}; pub mod agent; pub mod channels; pub mod config; pub mod cron; pub mod daemon; pub mod doctor; pub mod gateway; pub mod health; pub mod heartbeat; pub mod identity; pub mod integrations; pub mod memory; pub mod migration; pub mod observability; pub mod onboard; pub mod providers; pub mod runtime; pub mod security; pub mod service; pub mod skills; pub mod tools; pub mod tunnel; pub mod util; pub use config::Config; /// Service management subcommands #[derive(Subcommand, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub enum ServiceCommands { /// Install daemon service unit for auto-start and restart Install, /// Start daemon service Start, /// Stop daemon service Stop, /// Check daemon service status Status, /// Uninstall daemon service unit Uninstall, } /// Channel management subcommands #[derive(Subcommand, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub enum ChannelCommands { /// List all configured channels List, /// Start all configured channels (handled in main.rs for async) Start, /// Run health checks for configured channels (handled in main.rs for async) Doctor, /// Add a new channel configuration Add { /// Channel type (telegram, discord, slack, whatsapp, matrix, imessage, email) channel_type: String, /// Optional configuration as JSON config: String, }, /// Remove a channel configuration Remove { /// Channel name to remove name: String, }, } /// Skills management subcommands #[derive(Subcommand, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub enum SkillCommands { /// List all installed skills List, /// Install a new skill from a URL or local path Install { /// Source URL or local path source: String, }, /// Remove an installed skill Remove { /// Skill name to remove name: String, }, } /// Migration subcommands #[derive(Subcommand, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub enum MigrateCommands { /// Import memory from an `OpenClaw` workspace into this `ZeroClaw` workspace Openclaw { /// Optional path to `OpenClaw` workspace (defaults to ~/.openclaw/workspace) #[arg(long)] source: Option, /// Validate and preview migration without writing any data #[arg(long)] dry_run: bool, }, } /// Cron subcommands #[derive(Subcommand, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub enum CronCommands { /// List all scheduled tasks List, /// Add a new scheduled task Add { /// Cron expression expression: String, /// Command to run command: String, }, /// Remove a scheduled task Remove { /// Task ID id: String, }, } /// Integration subcommands #[derive(Subcommand, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub enum IntegrationCommands { /// Show details about a specific integration Info { /// Integration name name: String, }, }