Add scoped PromptKit flag aliases

This commit is contained in:
2026-11-07 04:27:28 +00:00
parent 644e6c365b
commit 0183022a28
13 changed files with 237 additions and 38 deletions

View File

@@ -23,7 +23,7 @@ type requestValidationReport struct {
Valid bool `json:"valid"`
}
func newConcreteRequestSpec[I, S any](suite Suite[I, S]) commandkit.CommandSpec[*concreteRequestInput[I]] {
func newConcreteRequestSpec[I, S any](suite Suite[I, S], path string, aliases *[]commandkit.Declaration) commandkit.CommandSpec[*concreteRequestInput[I]] {
flags := commandkit.CaptureFlags(suite.Selectors, func(input **concreteRequestInput[I]) *commandkit.FlagValues[I] {
if input == nil || *input == nil {
return nil
@@ -44,11 +44,17 @@ func newConcreteRequestSpec[I, S any](suite Suite[I, S]) commandkit.CommandSpec[
resources := NewResourceFlags(func(input **concreteRequestInput[I]) *ResourceInput { return &(*input).resources })
execution := NewExecutionFlags(func(input **concreteRequestInput[I]) *ExecutionInput { return &(*input).execution })
inputs := NewPromptInputFlags(func(input **concreteRequestInput[I]) *PromptInputs { return &(*input).inputs })
flags = append(flags, resources.Profile, resources.SessionID, inputs.Variable, inputs.Text, inputs.File)
flags = append(flags, execution.All()...)
flags = appendRequestBindings(flags, path, aliases,
requestBinding[*concreteRequestInput[I]]{resources.Profile, requestFlags.Profile},
requestBinding[*concreteRequestInput[I]]{resources.SessionID, requestFlags.SessionID},
requestBinding[*concreteRequestInput[I]]{inputs.Variable, requestFlags.Var},
requestBinding[*concreteRequestInput[I]]{inputs.Text, requestFlags.InputText},
requestBinding[*concreteRequestInput[I]]{inputs.File, requestFlags.InputFile},
)
flags = appendRequestBindings(flags, path, aliases, execution.bindings()...)
if suite.namespaces != nil {
flags = append(flags, namespaceFlags(func(input **concreteRequestInput[I]) *namespaceInput { return &(*input).namespaces }, "prompt", "profile", "backend")...)
flags = appendRequestBindings(flags, path, aliases, namespaceFlags(func(input **concreteRequestInput[I]) *namespaceInput { return &(*input).namespaces }, "prompt", "profile", "backend")...)
}
return commandkit.CommandSpec[*concreteRequestInput[I]]{
@@ -84,8 +90,8 @@ func newConcreteRequestSpec[I, S any](suite Suite[I, S]) commandkit.CommandSpec[
}
}
func newValidationCommand[I, S any](suite Suite[I, S]) commandkit.Command {
spec := newConcreteRequestSpec(suite)
func newValidationCommand[I, S any](suite Suite[I, S], aliases *[]commandkit.Declaration) commandkit.Command {
spec := newConcreteRequestSpec(suite, "promptkit requirements validate", aliases)
spec.Name = "validate"
spec.Summary = "Validate a concrete PromptKit request without executing it."
spec.Run = func(invocation commandkit.Invocation, input *concreteRequestInput[I]) commandkit.Outcome {