use std::path::PathBuf;
use anyhow::{Context, Result};
use bzzz_core::{AgentSpecParser, SwarmFileParser};
pub async fn execute(file: PathBuf) -> Result<()> {
println!("✅ Validating: {}", file.display());
let filename = file
.file_name()
.map(|n| n.to_string_lossy().to_string())
.unwrap_or_default();
let is_swarm =
filename.contains(".swarm.") || file.extension().map(|e| e == "swarm").unwrap_or(false);
if is_swarm {
let swarm = SwarmFileParser::from_yaml_file(&file)
.with_context(|| format!("SwarmFile validation failed: {}", file.display()))?;
println!(" Type: SwarmFile");
println!(" ID: {}", swarm.id.as_str());
println!(" Workers: {}", swarm.workers.len());
println!(" Status: ✅ Valid");
} else {
let spec = AgentSpecParser::from_yaml_file(&file)
.with_context(|| format!("Agent Spec validation failed: {}", file.display()))?;
println!(" Type: Agent Spec");
println!(" ID: {}", spec.id.as_str());
println!(" Runtime: {:?}", spec.runtime.kind);
println!(" Status: ✅ Valid");
}
Ok(())
}