use serde::{Deserialize, Serialize};
use std::collections::HashMap;
fn default_acp_protocol() -> String {
"acp".to_string()
}
fn default_acp_type() -> String {
"coding".to_string()
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CustomAcpAgentActionConfig {
#[serde(default)]
pub command: Option<String>,
#[serde(default)]
pub description: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CustomAcpAgentConfig {
pub identity: String,
pub name: String,
pub short_name: String,
#[serde(default = "default_acp_protocol")]
pub protocol: String,
#[serde(default = "default_acp_type")]
pub r#type: String,
#[serde(default)]
pub active: Option<bool>,
pub run_command: HashMap<String, String>,
#[serde(default)]
pub env: HashMap<String, String>,
#[serde(default)]
pub ollama_context_length: Option<u32>,
#[serde(default)]
pub install_command: Option<String>,
#[serde(default)]
pub actions: HashMap<String, HashMap<String, CustomAcpAgentActionConfig>>,
}