#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct AgentId(pub String);
impl AgentId {
pub fn new<S: Into<String>>(s: S) -> Result<Self, &'static str> {
let id = s.into();
if id.trim().is_empty() {
Err("AgentId cannot be empty")
} else {
Ok(Self(id))
}
}
}