use crate::agent::identity::AgentRole;
use crate::agent::profile::metadata_types::AgentMetadata;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AgentConfig {
pub agent_id: String,
pub role: AgentRole,
#[serde(skip_serializing_if = "Option::is_none")]
pub system_prompt: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub system_prompt_path: Option<String>,
#[serde(default)]
pub metadata: AgentMetadata,
}
impl AgentConfig {
pub fn validate(
&self,
_providers: &HashMap<String, crate::provider::ProviderConfig>,
) -> Result<(), String> {
crate::agent::profile::validation::validate_agent_config(self, _providers)
}
}