use crate::error::Result;
use async_trait::async_trait;
use clap::Args;
#[derive(Debug, Clone, Args)]
pub struct AgentCommand {
#[command(subcommand)]
pub action: AgentAction,
}
#[derive(Debug, Clone, clap::Subcommand)]
pub enum AgentAction {
List,
Status { agent_id: String },
Create {
name: String,
#[arg(long)]
role: String,
},
}
#[async_trait]
impl super::Command for AgentCommand {
async fn execute(self) -> Result<()> {
match self.action {
AgentAction::List => {
tracing::info!("Listing all agents");
}
AgentAction::Status { agent_id } => {
tracing::info!("Getting status for agent: {}", agent_id);
}
AgentAction::Create { name, role } => {
tracing::info!("Creating agent {} with role {}", name, role);
}
}
Ok(())
}
}