"""Contracts for BR-61..65; no client supplied identity, domain or release state.""" from typing import Literal from pydantic import BaseModel, ConfigDict, Field class Input(BaseModel): model_config = ConfigDict(extra='forbid') class QueryInput(Input): mode: Literal['filters', 'natural', 'sql'] = 'filters' text: str = Field(default='', max_length=4000) filters: dict = Field(default_factory=dict) class SelectionInput(Input): preview_id: str = Field(min_length=1, max_length=180) selected_ids: list[str] | None = Field(default=None, max_length=240) class ExtractionInput(Input): project_id: str = Field(min_length=1, max_length=180) selection_id: str = Field(min_length=1, max_length=180) kind: Literal['skill', 'rule_set'] requirement: str = Field(default='', max_length=2000) class PackageFile(Input): path: str = Field(min_length=1, max_length=512) content_base64: str = Field(max_length=2800000) class PackageInput(Input): project_id: str = Field(min_length=1, max_length=180) required_field: str | None = Field(default=None, max_length=180) files: list[PackageFile] = Field(min_length=1, max_length=100) class Proposal(Input): title: str = Field(min_length=1, max_length=200) description: str = Field(min_length=1, max_length=2000) action: str = Field(min_length=1, max_length=2000) exceptions: str = Field(min_length=1, max_length=2000) field: str = Field(min_length=1, max_length=180) operator: Literal['lt', 'lte', 'gt', 'gte', 'eq'] = 'lt' threshold: str | None = Field(default=None, max_length=40)