//! Composition domain types shared across crates.
/// Structured result of composing a subagent, including validation outcomes.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct CompositionResult {
pub agent_name: String,
pub validated_skills: Vec<String>,
pub missing_skills: Vec<String>,
pub auto_created_skills: Vec<String>,
pub warnings: Vec<String>,
}
impl CompositionResult {
/// Returns true if all requested skills were validated (none missing).
pub fn is_complete(&self) -> bool {
self.missing_skills.is_empty()
}
}