From 544a6bbbbcf44c6c55b851e60f8dda6f2954934d Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Fri, 28 Aug 2026 12:22:21 -0600 Subject: [PATCH] feat(cli): rename mcp_config asset category to mcp-config with snake_case alias --- src/cli/mod.rs | 41 +++++++++++++++++++++++++++++++++++ src/config/install_remote.rs | 4 ++++ src/config/mod.rs | 12 +++++----- src/config/request_context.rs | 4 ++++ 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/cli/mod.rs b/src/cli/mod.rs index cc6df8a..848815c 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -590,12 +590,33 @@ mod tests { parse(&["--install-builtins", "agents"]).install_builtins, Some(AssetCategory::Agents) ); + assert_eq!( + parse(&["--install-builtins", "mcp-config"]).install_builtins, + Some(AssetCategory::McpConfig) + ); assert_eq!( parse(&["--install-builtins", "mcp_config"]).install_builtins, Some(AssetCategory::McpConfig) ); } + #[test] + fn mcp_config_canonical_value_is_kebab_case() { + use clap::ValueEnum; + + let category = AssetCategory::McpConfig.to_possible_value().unwrap(); + assert_eq!(category.get_name(), "mcp-config"); + assert!(category.get_name_and_aliases().any(|n| n == "mcp_config")); + assert!(AssetCategory::NAMES.contains(&"mcp-config")); + assert!(!AssetCategory::NAMES.contains(&"mcp_config")); + + let filter = InstallFilter::McpConfig.to_possible_value().unwrap(); + assert_eq!(filter.get_name(), "mcp-config"); + assert!(filter.get_name_and_aliases().any(|n| n == "mcp_config")); + assert!(InstallFilter::NAMES.contains(&"mcp-config")); + assert!(!InstallFilter::NAMES.contains(&"mcp_config")); + } + #[test] fn parse_install_builtins_conflicts_with_install() { assert!( @@ -633,6 +654,26 @@ mod tests { parse(&["--install", "https://github.com/x/y", "--filter", "agents"]).filter, Some(InstallFilter::Agents) ); + assert_eq!( + parse(&[ + "--install", + "https://github.com/x/y", + "--filter", + "mcp-config" + ]) + .filter, + Some(InstallFilter::McpConfig) + ); + assert_eq!( + parse(&[ + "--install", + "https://github.com/x/y", + "--filter", + "mcp_config" + ]) + .filter, + Some(InstallFilter::McpConfig) + ); } #[test] diff --git a/src/config/install_remote.rs b/src/config/install_remote.rs index 84c9d9e..9b8d0a8 100644 --- a/src/config/install_remote.rs +++ b/src/config/install_remote.rs @@ -4158,6 +4158,10 @@ mod tests { classify_install_target("agents", &owned_names(&["agents"])), InstallTarget::Category(AssetCategory::Agents) ); + assert_eq!( + classify_install_target("mcp-config", &[]), + InstallTarget::Category(AssetCategory::McpConfig) + ); assert_eq!( classify_install_target("mcp_config", &[]), InstallTarget::Category(AssetCategory::McpConfig) diff --git a/src/config/mod.rs b/src/config/mod.rs index 4d1a4f5..26b2eca 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -407,12 +407,12 @@ pub enum AssetCategory { Macros, Functions, Skills, - #[value(name = "mcp_config")] + #[value(name = "mcp-config", alias = "mcp_config")] McpConfig, } impl AssetCategory { - pub const NAMES: [&'static str; 5] = ["agents", "macros", "functions", "skills", "mcp_config"]; + pub const NAMES: [&'static str; 5] = ["agents", "macros", "functions", "skills", "mcp-config"]; pub fn parse(name: &str) -> Option { match name { @@ -420,7 +420,7 @@ impl AssetCategory { "macros" => Some(Self::Macros), "functions" => Some(Self::Functions), "skills" => Some(Self::Skills), - "mcp_config" => Some(Self::McpConfig), + "mcp-config" | "mcp_config" => Some(Self::McpConfig), _ => None, } } @@ -439,7 +439,7 @@ pub enum InstallFilter { Skills, Macros, Functions, - #[value(name = "mcp_config")] + #[value(name = "mcp-config", alias = "mcp_config")] McpConfig, } @@ -450,7 +450,7 @@ impl InstallFilter { "skills", "macros", "functions", - "mcp_config", + "mcp-config", ]; pub fn parse(name: &str) -> Option { @@ -460,7 +460,7 @@ impl InstallFilter { "skills" => Some(Self::Skills), "macros" => Some(Self::Macros), "functions" => Some(Self::Functions), - "mcp_config" => Some(Self::McpConfig), + "mcp-config" | "mcp_config" => Some(Self::McpConfig), _ => None, } } diff --git a/src/config/request_context.rs b/src/config/request_context.rs index 88a4c49..0242791 100644 --- a/src/config/request_context.rs +++ b/src/config/request_context.rs @@ -7871,6 +7871,10 @@ mod tests { AssetCategory::parse("functions"), Some(AssetCategory::Functions) ); + assert_eq!( + AssetCategory::parse("mcp-config"), + Some(AssetCategory::McpConfig) + ); assert_eq!( AssetCategory::parse("mcp_config"), Some(AssetCategory::McpConfig)