//! Directive subcommand - directive orchestration commands.
use clap::Args;
use uuid::Uuid;
/// Common arguments for directive commands.
#[derive(Args, Debug, Clone)]
pub struct DirectiveArgs {
/// API URL
#[arg(long, env = "MAKIMA_API_URL", default_value = "https://api.makima.jp", global = true)]
pub api_url: String,
/// API key for authentication
#[arg(long, env = "MAKIMA_API_KEY", global = true)]
pub api_key: String,
/// Directive ID
#[arg(long, env = "MAKIMA_DIRECTIVE_ID", global = true)]
pub directive_id: Uuid,
}
/// Arguments for chain command (get specific chain).
#[derive(Args, Debug)]
pub struct ChainArgs {
#[command(flatten)]
pub common: DirectiveArgs,
/// Chain ID to retrieve
pub chain_id: Uuid,
}
/// Arguments for update-status command.
#[derive(Args, Debug)]
pub struct UpdateStatusArgs {
#[command(flatten)]
pub common: DirectiveArgs,
/// New status (draft, planning, active, paused, completed, archived, failed)
pub status: String,
}
/// Arguments for evaluate command (trigger manual evaluation).
#[derive(Args, Debug)]
pub struct EvaluateArgs {
#[command(flatten)]
pub common: DirectiveArgs,
/// Step ID to evaluate
pub step_id: Uuid,
}
/// Arguments for evaluations command (list evaluation history).
#[derive(Args, Debug)]
pub struct EvaluationsArgs {
#[command(flatten)]
pub common: DirectiveArgs,
/// Step ID to list evaluations for
pub step_id: Uuid,
}