Enumerate prompt input and variable dependencies

This commit is contained in:
2026-10-08 20:25:17 +00:00
parent bf472dad8a
commit cc0b6183bf
6 changed files with 758 additions and 3 deletions

View File

@@ -0,0 +1,58 @@
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
}