feat: canonicalize ecc2 harness aliases

This commit is contained in:
Affaan Mustafa
2026-04-10 08:03:25 -07:00
parent a4aaa30e93
commit d84c64fa0e
3 changed files with 126 additions and 10 deletions

View File

@@ -79,6 +79,13 @@ impl HarnessKind {
}
}
pub fn canonical_agent_type(agent_type: &str) -> String {
match Self::from_agent_type(agent_type) {
Self::Unknown => agent_type.trim().to_ascii_lowercase(),
harness => harness.as_str().to_string(),
}
}
fn project_markers(self) -> &'static [&'static str] {
match self {
Self::Claude => &[".claude"],
@@ -505,4 +512,18 @@ mod tests {
assert_eq!(harness.detected, vec![HarnessKind::Gemini]);
Ok(())
}
#[test]
fn canonical_agent_type_normalizes_known_aliases() {
assert_eq!(HarnessKind::canonical_agent_type("claude-code"), "claude");
assert_eq!(HarnessKind::canonical_agent_type("gemini-cli"), "gemini");
assert_eq!(
HarnessKind::canonical_agent_type("factory-droid"),
"factory_droid"
);
assert_eq!(
HarnessKind::canonical_agent_type(" custom-runner "),
"custom-runner"
);
}
}