Skip to content

Commit 7772a10

Browse files
authored
BREAKING: Split RequiredArgs into RequiredValueArgs and RequiredBoolArgs (#105)
This change provides more granular control over argument validation by separating value-based arguments (e.g., --config=value) from boolean flags (e.g., --verbose). BREAKING CHANGE: The TOML configuration structure has changed. - `required_args` is now split into `required_args` (value args) and `required_args_bool` (boolean flags) - Existing .mcpd.toml files using `required_args` will need to be updated Changes: - Split ServerEntry.RequiredArgs into RequiredValueArgs and RequiredBoolArgs - Add VariableTypeArgBool constant for boolean argument classification - Add ValueArgument and BoolArgument predicate functions - Update cmd/add.go to use new argument filtering logic - Add comprehensive test coverage for new argument types - Add validation methods for both argument types in runtime.Server - Update daemon validation to use new Server.Validate() method - Update printer to display both argument types appropriately - Enhance registry to properly detect boolean vs value arguments
1 parent 6e34f09 commit 7772a10

File tree

8 files changed

+471
-86
lines changed

8 files changed

+471
-86
lines changed

cmd/add.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -236,14 +236,16 @@ func parseServerEntry(
236236
runtimePackageVersion := fmt.Sprintf("%s::%s@%s", selectedRuntime, runtimeSpecificName, v)
237237

238238
envs := packages.FilterArguments(pkg.Arguments, packages.EnvVar, packages.Required)
239-
args := packages.FilterArguments(pkg.Arguments, packages.Argument, packages.Required)
239+
args := packages.FilterArguments(pkg.Arguments, packages.ValueArgument, packages.Required)
240+
boolArgs := packages.FilterArguments(pkg.Arguments, packages.BoolArgument, packages.Required)
240241

241242
return config.ServerEntry{
242-
Name: pkg.ID,
243-
Package: runtimePackageVersion,
244-
Tools: requestedTools,
245-
RequiredArgs: args.Names(),
246-
RequiredEnvVars: envs.Names(),
243+
Name: pkg.ID,
244+
Package: runtimePackageVersion,
245+
Tools: requestedTools,
246+
RequiredValueArgs: args.Names(),
247+
RequiredBoolArgs: boolArgs.Names(),
248+
RequiredEnvVars: envs.Names(),
247249
}, nil
248250
}
249251

0 commit comments

Comments
 (0)