style: applied different styling to agent functions

This commit is contained in:
Dark-Alex-17 committed 2026-09-12 01:37:20 -06:00
1 parent 1ec7916816
commit 442953ef7d
1 file changed
+24
+24
View File
@@ -77,6 +77,7 @@ fn validate_spawn_variables(
"Agent '{agent_name}' declares no variables; remove the 'variables' argument." "Agent '{agent_name}' declares no variables; remove the 'variables' argument."
)); ));
} }
let declared_list = declared let declared_list = declared
.iter() .iter()
.map(|v| format!("{} ({})", v.name, v.description)) .map(|v| format!("{} ({})", v.name, v.description))
@@ -91,6 +92,7 @@ fn merge_spawn_variables(inherited: &mut Option<AgentVariables>, provided: Agent
if provided.is_empty() { if provided.is_empty() {
return; return;
} }
inherited inherited
.get_or_insert_with(AgentVariables::new) .get_or_insert_with(AgentVariables::new)
.extend(provided); .extend(provided);
@@ -101,9 +103,11 @@ fn dispatch_spawn_args(agent: &str, prompt: &str, variables: Option<&AgentVariab
"agent": agent, "agent": agent,
"prompt": prompt, "prompt": prompt,
}); });
if let Some(variables) = variables { if let Some(variables) = variables {
spawn_args["variables"] = json!(variables); spawn_args["variables"] = json!(variables);
} }
spawn_args spawn_args
} }
@@ -3147,8 +3151,10 @@ mod tests {
#[test] #[test]
fn handle_task_create_rejects_non_object_variables() { fn handle_task_create_rejects_non_object_variables() {
let mut ctx = ctx_with_supervisor(4, 3); let mut ctx = ctx_with_supervisor(4, 3);
let result = let result =
handle_task_create(&mut ctx, &json!({"subject": "Bad", "variables": ["pr"]})).unwrap(); handle_task_create(&mut ctx, &json!({"subject": "Bad", "variables": ["pr"]})).unwrap();
assert_eq!(result["status"], "error"); assert_eq!(result["status"], "error");
assert!(result["message"].as_str().unwrap().contains("JSON object")); assert!(result["message"].as_str().unwrap().contains("JSON object"));
} }
@@ -3856,11 +3862,13 @@ mod tests {
#[test] #[test]
fn handle_spawn_non_object_variables_errors() { fn handle_spawn_non_object_variables_errors() {
let mut ctx = ctx_with_supervisor(4, 3); let mut ctx = ctx_with_supervisor(4, 3);
let result = run_async(handle_spawn( let result = run_async(handle_spawn(
&mut ctx, &mut ctx,
&json!({"agent": "x", "prompt": "p", "variables": "pr=1234"}), &json!({"agent": "x", "prompt": "p", "variables": "pr=1234"}),
)) ))
.unwrap(); .unwrap();
assert_eq!(result["status"], "error"); assert_eq!(result["status"], "error");
assert!(result["message"].as_str().unwrap().contains("JSON object")); assert!(result["message"].as_str().unwrap().contains("JSON object"));
} }
@@ -3868,11 +3876,13 @@ mod tests {
#[test] #[test]
fn handle_spawn_non_string_variable_value_errors() { fn handle_spawn_non_string_variable_value_errors() {
let mut ctx = ctx_with_supervisor(4, 3); let mut ctx = ctx_with_supervisor(4, 3);
let result = run_async(handle_spawn( let result = run_async(handle_spawn(
&mut ctx, &mut ctx,
&json!({"agent": "x", "prompt": "p", "variables": {"pr": 1234}}), &json!({"agent": "x", "prompt": "p", "variables": {"pr": 1234}}),
)) ))
.unwrap(); .unwrap();
assert_eq!(result["status"], "error"); assert_eq!(result["status"], "error");
assert!( assert!(
result["message"] result["message"]
@@ -3892,6 +3902,7 @@ mod tests {
let parsed = parse_variables_arg(&json!({"variables": {"pr": "1234", "repo": "coyote"}})) let parsed = parse_variables_arg(&json!({"variables": {"pr": "1234", "repo": "coyote"}}))
.unwrap() .unwrap()
.unwrap(); .unwrap();
assert_eq!(parsed.get("pr").map(String::as_str), Some("1234")); assert_eq!(parsed.get("pr").map(String::as_str), Some("1234"));
assert_eq!(parsed.get("repo").map(String::as_str), Some("coyote")); assert_eq!(parsed.get("repo").map(String::as_str), Some("coyote"));
} }
@@ -3903,7 +3914,9 @@ mod tests {
description: "PR number".into(), description: "PR number".into(),
..Default::default() ..Default::default()
}]; }];
let provided = AgentVariables::from([("typo".to_string(), "x".to_string())]); let provided = AgentVariables::from([("typo".to_string(), "x".to_string())]);
let err = validate_spawn_variables("coder", &declared, &provided).unwrap_err(); let err = validate_spawn_variables("coder", &declared, &provided).unwrap_err();
assert!(err.contains("typo")); assert!(err.contains("typo"));
assert!(err.contains("pr (PR number)")); assert!(err.contains("pr (PR number)"));
@@ -3912,7 +3925,9 @@ mod tests {
#[test] #[test]
fn validate_spawn_variables_none_declared_errors() { fn validate_spawn_variables_none_declared_errors() {
let provided = AgentVariables::from([("pr".to_string(), "1".to_string())]); let provided = AgentVariables::from([("pr".to_string(), "1".to_string())]);
let err = validate_spawn_variables("coder", &[], &provided).unwrap_err(); let err = validate_spawn_variables("coder", &[], &provided).unwrap_err();
assert!(err.contains("declares no variables")); assert!(err.contains("declares no variables"));
} }
@@ -3923,7 +3938,9 @@ mod tests {
description: "PR number".into(), description: "PR number".into(),
..Default::default() ..Default::default()
}]; }];
let provided = AgentVariables::from([("pr".to_string(), "1".to_string())]); let provided = AgentVariables::from([("pr".to_string(), "1".to_string())]);
assert!(validate_spawn_variables("coder", &declared, &provided).is_ok()); assert!(validate_spawn_variables("coder", &declared, &provided).is_ok());
} }
@@ -3933,10 +3950,12 @@ mod tests {
("pr".to_string(), "1".to_string()), ("pr".to_string(), "1".to_string()),
("repo".to_string(), "coyote".to_string()), ("repo".to_string(), "coyote".to_string()),
])); ]));
merge_spawn_variables( merge_spawn_variables(
&mut inherited, &mut inherited,
AgentVariables::from([("pr".to_string(), "2".to_string())]), AgentVariables::from([("pr".to_string(), "2".to_string())]),
); );
let merged = inherited.unwrap(); let merged = inherited.unwrap();
assert_eq!(merged.get("pr").map(String::as_str), Some("2")); assert_eq!(merged.get("pr").map(String::as_str), Some("2"));
assert_eq!(merged.get("repo").map(String::as_str), Some("coyote")); assert_eq!(merged.get("repo").map(String::as_str), Some("coyote"));
@@ -3945,17 +3964,21 @@ mod tests {
#[test] #[test]
fn merge_spawn_variables_seeds_when_nothing_inherited() { fn merge_spawn_variables_seeds_when_nothing_inherited() {
let mut inherited = None; let mut inherited = None;
merge_spawn_variables( merge_spawn_variables(
&mut inherited, &mut inherited,
AgentVariables::from([("pr".to_string(), "2".to_string())]), AgentVariables::from([("pr".to_string(), "2".to_string())]),
); );
assert_eq!(inherited.unwrap().get("pr").map(String::as_str), Some("2")); assert_eq!(inherited.unwrap().get("pr").map(String::as_str), Some("2"));
} }
#[test] #[test]
fn dispatch_spawn_args_includes_variables() { fn dispatch_spawn_args_includes_variables() {
let variables = AgentVariables::from([("pr".to_string(), "1234".to_string())]); let variables = AgentVariables::from([("pr".to_string(), "1234".to_string())]);
let args = dispatch_spawn_args("coder", "do it", Some(&variables)); let args = dispatch_spawn_args("coder", "do it", Some(&variables));
assert_eq!(args["agent"], "coder"); assert_eq!(args["agent"], "coder");
assert_eq!(args["prompt"], "do it"); assert_eq!(args["prompt"], "do it");
assert_eq!(args["variables"]["pr"], "1234"); assert_eq!(args["variables"]["pr"], "1234");
@@ -3964,6 +3987,7 @@ mod tests {
#[test] #[test]
fn dispatch_spawn_args_omits_absent_variables() { fn dispatch_spawn_args_omits_absent_variables() {
let args = dispatch_spawn_args("coder", "do it", None); let args = dispatch_spawn_args("coder", "do it", None);
assert!(args.get("variables").is_none()); assert!(args.get("variables").is_none());
} }