use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
Init,
Add {
#[arg(short, long)]
title: String,
#[arg(short, long)]
description: Option<String>,
},
List,
Done {
id: usize,
},
Comment {
#[arg(short, long)]
task_id: usize,
#[arg(short, long)]
comment: String,
},
Show {
#[command(subcommand)]
what: ShowCommands,
},
AddOkr {
#[arg(short, long)]
objective: String,
#[arg(short, long, num_args = 1..)]
key_results: Vec<String>,
},
Log {
message: String,
},
Board,
Description {
description: String,
},
#[command(name = "add-agent")]
AddAgent {
#[arg(short, long)]
prompt: String,
#[arg(short, long, num_args = 1..)]
tools: Vec<String>,
#[arg(short, long)]
model: String,
},
Execute {
#[arg(short, long)]
task_id: usize,
},
Assign {
#[arg(short, long)]
task_id: usize,
#[arg(short, long)]
agent_id: usize,
},
#[command(name = "delete-agent")]
DeleteAgent {
#[arg(short, long)]
agent_id: usize,
},
}
#[derive(Subcommand)]
pub enum ShowCommands {
Description,
Okrs,
Logs,
Agents,
}