ai-agent 0.13.4

Idiomatic agent sdk inspired by the claude code source leak
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Theme {
    pub name: String,
    pub colors: ThemeColors,
    pub is_dark: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ThemeColors {
    pub background: String,
    pub foreground: String,
    pub primary: String,
    pub secondary: String,
    pub accent: String,
    pub error: String,
    pub warning: String,
    pub success: String,
}

impl Theme {
    pub fn default_light() -> Self {
        Self {
            name: "light".to_string(),
            colors: ThemeColors {
                background: "#ffffff".to_string(),
                foreground: "#000000".to_string(),
                primary: "#0066cc".to_string(),
                secondary: "#666666".to_string(),
                accent: "#00cc66".to_string(),
                error: "#cc0000".to_string(),
                warning: "#cc8800".to_string(),
                success: "#00cc00".to_string(),
            },
            is_dark: false,
        }
    }

    pub fn default_dark() -> Self {
        Self {
            name: "dark".to_string(),
            colors: ThemeColors {
                background: "#1e1e1e".to_string(),
                foreground: "#d4d4d4".to_string(),
                primary: "#4fc3f7".to_string(),
                secondary: "#9e9e9e".to_string(),
                accent: "#81c784".to_string(),
                error: "#f44336".to_string(),
                warning: "#ffb74d".to_string(),
                success: "#66bb6a".to_string(),
            },
            is_dark: true,
        }
    }
}