from __future__ import annotations

from enum import Enum

from pydantic import BaseModel, Field


class ExecutionMode(str, Enum):
    RETRIEVAL = "retrieval"
    WORKFLOW = "workflow"
    AGENT = "agent"


class RouteDecision(BaseModel):
    mode: ExecutionMode
    reason: str = Field(default="", max_length=240)
    confidence: float = Field(default=0.0, ge=0.0, le=1.0)
    required_tool_groups: list[str] = Field(default_factory=list)

