Spaces:
Running
Running
| from __future__ import annotations | |
| from pydantic import BaseModel, ConfigDict, Field | |
| from app.generation.domain.enums import GenerationModality | |
| class GenerationModelCapability(BaseModel): | |
| """An explicitly implemented model contract. | |
| ``input_schema`` is descriptive only; request validation remains owned by | |
| the adapter's typed Pydantic input model. It lets future transports build | |
| capability-driven UIs without accepting arbitrary provider payloads. | |
| """ | |
| model_config = ConfigDict(extra="forbid") | |
| id: str = Field(min_length=1, max_length=255) | |
| name: str = Field(min_length=1, max_length=255) | |
| modality: GenerationModality | |
| input_asset_supported: bool = False | |
| input_schema: dict[str, object] = Field(default_factory=dict) | |
| class GenerationProviderCapabilities(BaseModel): | |
| """Public, non-secret provider discovery metadata.""" | |
| model_config = ConfigDict(extra="forbid") | |
| provider: str = Field(pattern=r"^[a-z][a-z0-9_-]{0,63}$") | |
| name: str = Field(min_length=1, max_length=255) | |
| models: list[GenerationModelCapability] = Field(default_factory=list) | |
| implementation_status: str = Field(default="foundation", max_length=64) | |
| supports_cancellation: bool = False | |
| supports_status_reconciliation: bool = False | |