from __future__ import annotations from typing import Literal from pydantic import BaseModel, Field class IntentDefinition(BaseModel): intent_id: str plugin_id: str domain: str risk_level: Literal["low", "medium", "high"] = "low" required_slots: list[str] = Field(default_factory=list) ask_templates: dict[str, str] = Field(default_factory=dict) keywords: list[str] = Field(default_factory=list) examples: list[str] = Field(default_factory=list)