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 }