vibe.runtime_models.definitions

Handler definition validation models.

Provides Pydantic models for validating: - Question definitions from config.yml - Field type metadata (enum options, structured field schemas, etc.) - Handler-specific parameters and constraints - Definition inheritance and references

These models are used when loading template configurations and instantiating DataTypeHandlers to ensure handler definitions are well-formed.

BaseDefinitionModel

Base validation model for question definitions.

Uses FlexibleModel to allow handler-specific extensions while validating common fields present in all question definitions.

validate_label

validate_label(v: str) -> str

Ensure label is non-empty.

EnumDefinitionModel

Validation model for enum/choice question definitions.

Validates that enum questions have well-formed options.

validate_options_structure

validate_options_structure() -> EnumDefinitionModel

Ensure each option has required 'value' and 'label' keys.

MultichoiceDefinitionModel

Validation model for multichoice question definitions.

Similar to enum but allows multiple selections.

validate_options_structure

validate_options_structure() -> MultichoiceDefinitionModel

Ensure each option has required keys.

StructuredDefinitionModel

Validation model for structured question definitions.

Structured questions reference a definition that specifies nested fields.

validate_definition_ref

validate_definition_ref(v: str) -> str

Ensure definition reference is non-empty.

ListDefinitionModel

Validation model for list question definitions.

List questions allow repeating instances of a structured type.

validate_uses_ref

validate_uses_ref(v: str | None) -> str | None

Ensure uses reference is non-empty if provided.

NumberDefinitionModel

Validation model for number question definitions.

Validates numeric constraints like min/max values.

validate_min_max

validate_min_max() -> NumberDefinitionModel

Ensure min <= max if both are specified.

AmountDefinitionModel

Validation model for amount/currency question definitions.

DateDefinitionModel

Validation model for date question definitions.

ComputableDefinitionModel

Validation model for computable question definitions.

Computable questions compute their values from formulas.

validate_formula

validate_formula(v: str) -> str

Ensure formula is non-empty.

AssistedDefinitionModel

Validation model for AI-assisted question definitions.

Assisted questions use LLM to help generate field values.