Add scoped PromptKit flag aliases
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user