(template: TaskTemplateSpec)
| 186 | |
| 187 | |
| 188 | def _validate_template(template: TaskTemplateSpec) -> None: |
| 189 | if not template.template_id.strip(): |
| 190 | raise ValueError("Template id cannot be empty.") |
| 191 | if not template.template_type.strip(): |
| 192 | raise ValueError("Template type cannot be empty.") |
| 193 | if not template.slots: |
| 194 | raise ValueError("Template must define at least one slot.") |
| 195 | for slot in template.slots: |
| 196 | if slot.group_hint not in _ALLOWED_GROUP_HINTS: |
| 197 | raise ValueError(f"Unsupported slot group hint: {slot.group_hint}") |
| 198 | if slot.min_count < 0 or slot.max_count < slot.min_count: |
| 199 | raise ValueError(f"Invalid count range for slot '{slot.slot_name}'.") |
| 200 | if template.primary_goal_relation not in template.allowed_relations: |
| 201 | raise ValueError("Template primary_goal_relation must be present in allowed_relations.") |
| 202 | |
| 203 | |
| 204 | def _validate_draft(template: TaskTemplateSpec, draft: TaskDraftSpec) -> None: |
no outgoing calls
no test coverage detected