parse_agent_block

Function parse_agent_block 

Source
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);