use std::path::PathBuf;
use clap::{Subcommand, ValueEnum};
use crate::memory::procedure::ProcedureExportFormat;
#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum)]
pub(in crate::cli) enum ProcedureExportFormatArg {
ClaudeSkill,
CodexPrompt,
RunbookMd,
}
impl From<ProcedureExportFormatArg> for ProcedureExportFormat {
fn from(value: ProcedureExportFormatArg) -> Self {
match value {
ProcedureExportFormatArg::ClaudeSkill => ProcedureExportFormat::ClaudeSkill,
ProcedureExportFormatArg::CodexPrompt => ProcedureExportFormat::CodexPrompt,
ProcedureExportFormatArg::RunbookMd => ProcedureExportFormat::RunbookMd,
}
}
}
#[derive(Subcommand)]
pub(in crate::cli) enum ProcedureAction {
List {
#[arg(long, short)]
project: Option<String>,
#[arg(long, short = 'n', default_value = "50")]
limit: i64,
#[arg(long, default_value = "0")]
offset: i64,
#[arg(long)]
json: bool,
},
Export {
memory_id: i64,
#[arg(long, value_enum)]
format: ProcedureExportFormatArg,
#[arg(long)]
out: Option<PathBuf>,
#[arg(long)]
overwrite_generated: bool,
},
}