use serde::{Deserialize, Serialize};
use systemprompt_identifiers::ExternalAgentId;
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum ExternalAgentKind {
DesktopApp,
CliTool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ExternalAgentConfig {
pub id: ExternalAgentId,
pub display_name: String,
pub kind: ExternalAgentKind,
pub enabled: bool,
#[serde(default)]
pub description: String,
#[serde(default)]
pub platforms: Vec<String>,
#[serde(default)]
pub docs_url: Option<String>,
}