Migrate PromptKit reports to shared rendering
This commit is contained in:
@@ -11,14 +11,13 @@ import (
|
||||
type validationCommandInput[I any] struct {
|
||||
promptID string
|
||||
request ValidationRequest
|
||||
format string
|
||||
captured commandkit.FlagValues[I]
|
||||
selected I
|
||||
}
|
||||
|
||||
type requestValidationReport struct {
|
||||
PromptID string `yaml:"prompt_id"`
|
||||
Valid bool `yaml:"valid"`
|
||||
PromptID string `json:"prompt_id"`
|
||||
Valid bool `json:"valid"`
|
||||
}
|
||||
|
||||
func newValidationCommand[I, S any](suite Suite[I, S]) commandkit.Command {
|
||||
@@ -45,10 +44,6 @@ func newValidationCommand[I, S any](suite Suite[I, S]) commandkit.Command {
|
||||
func(input **validationCommandInput[I], value commandkit.Supplied[string]) {
|
||||
(*input).request.Request.SessionID = value.Value
|
||||
}),
|
||||
commandkit.ValueFlag(commandkit.FlagMeta{Name: "format", Usage: "Confirmation format: yaml.", Completion: completionChoices("yaml")}, stringDefault("yaml"), parseDefinitionString,
|
||||
func(input **validationCommandInput[I], value commandkit.Supplied[string]) {
|
||||
(*input).format = value.Value
|
||||
}),
|
||||
commandkit.RepeatFlag(commandkit.FlagMeta{Name: "var", Usage: "Caller variable assignment KEY=VALUE."}, []variableAssignment(nil), parseVariableAssignment,
|
||||
func(input **validationCommandInput[I], value commandkit.Supplied[[]variableAssignment]) {
|
||||
variables := make(map[string]string, len(value.Value))
|
||||
@@ -71,7 +66,7 @@ func newValidationCommand[I, S any](suite Suite[I, S]) commandkit.Command {
|
||||
Name: "validate",
|
||||
Summary: "Validate a concrete PromptKit request without executing it.",
|
||||
NewInput: func() *validationCommandInput[I] {
|
||||
return &validationCommandInput[I]{format: "yaml"}
|
||||
return &validationCommandInput[I]{}
|
||||
},
|
||||
Flags: flags,
|
||||
Arguments: []commandkit.Argument[*validationCommandInput[I]]{
|
||||
@@ -85,9 +80,6 @@ func newValidationCommand[I, S any](suite Suite[I, S]) commandkit.Command {
|
||||
if input == nil {
|
||||
return errors.New("PromptKit validation input must not be nil")
|
||||
}
|
||||
if err := checkRequirementsFormat(input.format); err != nil {
|
||||
return err
|
||||
}
|
||||
selected, err := prepareSuiteInput(suite, input.request.Selection, input.captured)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -121,7 +113,6 @@ func runRequestValidation[I, S any](invocation commandkit.Invocation, suite Suit
|
||||
if err := promptKitContextError(invocation.Context); err != nil {
|
||||
return definitionFailure(fmt.Sprintf("Validation of the PromptKit request for prompt %q was canceled.", input.promptID), acquired.Explanation, err)
|
||||
}
|
||||
return renderPreparedPromptReport(invocation, acquired.Explanation, func() ([]byte, error) {
|
||||
return encodePromptYAMLBytes(requestValidationReport{PromptID: input.promptID, Valid: true})
|
||||
})
|
||||
_ = invocation.Reporter().Report(commandkit.Report{Value: requestValidationReport{PromptID: input.promptID, Valid: true}})
|
||||
return commandkit.Success()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user