from pydantic import BaseModel, Field class QueryRequest(BaseModel): query: str client: str class MetricResult(BaseModel): passed: bool score: float = Field(ge=0.0, le=1.0) detail: str class EvaluationResult(BaseModel): overall_pass: bool metrics: dict[str, MetricResult] class Source(BaseModel): id: str title: str score: float = Field(ge=0.0, le=1.0) class QueryResponse(BaseModel): query: str client: str client_display: str answer: str sources: list[Source] evaluation: EvaluationResult class ClientInfo(BaseModel): id: str display: str class ConfigResponse(BaseModel): domains: dict[str, list[ClientInfo]]