59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
package domain
|
|
|
|
// RequirementKind classifies how a prompt may depend on an input or variable.
|
|
type RequirementKind string
|
|
|
|
const (
|
|
RequirementRequired RequirementKind = "required"
|
|
RequirementConditional RequirementKind = "conditional"
|
|
RequirementOptional RequirementKind = "optional"
|
|
)
|
|
|
|
// InputRequirement describes one declared or template-referenced input.
|
|
type InputRequirement struct {
|
|
Name string
|
|
Kind RequirementKind
|
|
Declared bool
|
|
ContentType *string
|
|
Description *string
|
|
Explanation string
|
|
}
|
|
|
|
// VariableRequirement describes one caller variable referenced by a prompt.
|
|
type VariableRequirement struct {
|
|
Name string
|
|
Kind RequirementKind
|
|
Supplied bool
|
|
Explanation string
|
|
}
|
|
|
|
// RequirementIssueCode identifies a limit that may affect requirement
|
|
// discovery.
|
|
type RequirementIssueCode string
|
|
|
|
const (
|
|
RequirementIssueMissingVariable RequirementIssueCode = "missing_variable"
|
|
RequirementIssueInputContent RequirementIssueCode = "input_content"
|
|
RequirementIssueDynamicInputName RequirementIssueCode = "dynamic_input_name"
|
|
RequirementIssueUnsupportedConstruct RequirementIssueCode = "unsupported_construct"
|
|
)
|
|
|
|
// RequirementIssue describes one limitation on requirement discovery.
|
|
type RequirementIssue struct {
|
|
Code RequirementIssueCode
|
|
InputName string
|
|
VariableName string
|
|
Description string
|
|
}
|
|
|
|
// RequirementInspection contains the inventories discovered for one prompt.
|
|
type RequirementInspection struct {
|
|
PromptID string
|
|
PromptVersion *string
|
|
ProfileID string
|
|
Inputs []InputRequirement
|
|
Variables []VariableRequirement
|
|
Complete bool
|
|
Issues []RequirementIssue
|
|
}
|