use serde::{Deserialize, Serialize};
use std::collections::HashMap;
pub use crate::agents::{AgentConfig, AgentOverrideConfig, AgentOverrides};
pub type AgentDefinitions = HashMap<String, AgentDefinitionEntry>;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AgentDefinitionEntry {
pub description: String,
pub prompt: String,
pub tools: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
}
impl From<AgentConfig> for AgentDefinitionEntry {
fn from(config: AgentConfig) -> Self {
Self {
description: config.description,
prompt: config.prompt,
tools: config.tools,
model: config.model.map(|m| m.to_string()),
}
}
}