pub fn parse_agent_block(
header_name: Option<&str>,
content: &str,
) -> Result<AgentDef, ConfigError>Expand description
Parses an agent YAML block and converts it into an AgentDef.
The function deserializes content as an AgentConfig, resolves the agent name by
preferring header_name when present (and returns an error on conflict), and maps
capabilities, constraints, and permissions into an AgentDef.
§Errors
Returns ConfigError::YamlParse if the YAML cannot be deserialized,
ConfigError::NameConflict if both header_name and the payload specify a name,
and ConfigError::MissingName if no name is provided in either place.
§Examples
use cellstate_pipeline::parse_agent_block;
let yaml = r#"
name: my-agent
capabilities:
- read
- write
constraints:
max_concurrent: 4
timeout_ms: 10000
permissions:
read: [ "resource_a" ]
write: [ "resource_b" ]
lock: []
"#;
let def = parse_agent_block(None, yaml).unwrap();
assert_eq!(def.name, "my-agent");
assert_eq!(def.capabilities, vec!["read".to_string(), "write".to_string()]);
assert_eq!(def.constraints.max_concurrent, 4);