use clap::{Args, ValueEnum};
#[derive(Debug, Args)]
pub(crate) struct InitArgs {
pub name: Option<String>,
#[arg(long, value_enum, default_value_t = ProjectTemplate::Basic)]
pub template: ProjectTemplate,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum)]
pub(crate) enum ProjectTemplate {
Basic,
Agent,
#[value(name = "mcp-server")]
McpServer,
Eval,
#[value(name = "pipeline-lab")]
PipelineLab,
Package,
Connector,
}
#[derive(Debug, Args)]
pub(crate) struct NewArgs {
pub first: Option<String>,
pub second: Option<String>,
#[arg(long, value_enum)]
pub template: Option<ProjectTemplate>,
}