greentic-designer 0.6.0

Greentic Designer — orchestrator that powers Adaptive Card design via the adaptive-card-mcp toolkit
Documentation
use clap::{Args, Parser, Subcommand};
use std::path::PathBuf;

#[derive(Parser)]
#[command(name = "greentic-designer")]
#[command(version)]
#[command(
    about = "Greentic Designer — orchestrator + web UI for LLM-driven Adaptive Card design",
    long_about = None
)]
pub struct Cli {
    #[command(subcommand)]
    pub command: Commands,
}

#[derive(Subcommand)]
pub enum Commands {
    /// Launch the web UI with LLM-powered card generation.
    Ui(UiArgs),
}

#[derive(Args, Debug)]
pub struct UiArgs {
    /// LLM provider to use.
    #[arg(long, default_value = "openai")]
    pub provider: Provider,

    /// OpenAI API key (required when provider=openai).
    #[arg(long, env = "OPENAI_API_KEY")]
    pub openai_api_key: Option<String>,

    /// Anthropic API key (required when provider=anthropic).
    #[arg(long, env = "ANTHROPIC_API_KEY")]
    pub anthropic_api_key: Option<String>,

    /// Port to listen on (default: random available port).
    #[arg(long)]
    pub port: Option<u16>,

    /// LLM model to use (provider-specific default if omitted).
    #[arg(long)]
    pub model: Option<String>,

    /// Directory for persistent storage (uploaded images, etc.).
    #[arg(long, default_value = "./greentic-designer-data")]
    pub storage_dir: PathBuf,
}

#[derive(Clone, Debug, clap::ValueEnum)]
pub enum Provider {
    Openai,
    Anthropic,
}