Files
temp/docs/reference/contracts/stubs/ai_models_data_models.py
T

233 lines
6.3 KiB
Python

"""Auto-generated Python stubs from Go contracts."""
from dataclasses import dataclass, field
from typing import Any, Dict, List, Optional
from datetime import datetime
from enum import Enum
class ModelOutputFormat(str, Enum):
"""Enum for ModelOutputFormat."""
ModelOutputFormatToolCallJson = "ModelOutputFormatToolCallJson"
ModelOutputFormatXml = "ModelOutputFormatXml"
class ReasoningEffort(str, Enum):
"""Enum for ReasoningEffort."""
ReasoningEffortLow = "ReasoningEffortLow"
ReasoningEffortMedium = "ReasoningEffortMedium"
ReasoningEffortHigh = "ReasoningEffortHigh"
ModelOutputFormat = str
ModelName = str
ModelId = str
ModelTag = str
VariantTag = str
ReasoningEffort = str
RoleJSON = Any
@dataclass
class ModelCompatibility:
"""Data contract for ModelCompatibility."""
hasImageSupport: bool
@dataclass
class BaseModelShared:
"""Data contract for BaseModelShared."""
defaultMaxConvoTokens: int
maxTokens: int
maxOutputTokens: int
reservedOutputTokens: int
preferredOutputFormat: ModelOutputFormat
systemPromptDisabled: bool = None
roleParamsDisabled: bool = None
stopDisabled: bool = None
predictedOutputEnabled: bool = None
reasoningEffortEnabled: bool = None
reasoningEffort: ReasoningEffort = None
includeReasoning: bool = None
hideReasoning: bool = None
reasoningBudget: int = None
supportsCacheControl: bool = None
singleMessageNoSystemPrompt: bool = None
tokenEstimatePaddingPct: float = None
@dataclass
class BaseModelProviderConfig:
"""Data contract for BaseModelProviderConfig."""
modelName: ModelName
@dataclass
class BaseModelConfig:
"""Data contract for BaseModelConfig."""
modelTag: ModelTag
modelId: ModelId
publisher: ModelPublisher = None
basemodelshared: BaseModelProviderConfig
@dataclass
class BaseModelUsesProvider:
"""Data contract for BaseModelUsesProvider."""
provider: ModelProvider
customProvider: Optional[str] = None
modelName: ModelName
@dataclass
class BaseModelConfigSchema:
"""Data contract for BaseModelConfigSchema."""
modelTag: ModelTag
modelId: ModelId
publisher: ModelPublisher
description: str
requiresVariantOverrides: List[str] = field(default_factory=list)
variants: List[BaseModelConfigVariant] = field(default_factory=list)
providers: List[BaseModelUsesProvider] = field(default_factory=list)
@dataclass
class BaseModelConfigVariant:
"""Data contract for BaseModelConfigVariant."""
isBaseVariant: bool
variantTag: VariantTag
description: str
overrides: BaseModelShared
variants: List[BaseModelConfigVariant] = field(default_factory=list)
requiresVariantOverrides: List[str] = field(default_factory=list)
isDefaultVariant: bool
@dataclass
class AvailableModel:
"""Data contract for AvailableModel."""
id: str
description: str
defaultMaxConvoTokens: int
createdAt: Time
updatedAt: Time
@dataclass
class PlannerModelConfig:
"""Data contract for PlannerModelConfig."""
maxConvoTokens: int
@dataclass
class ModelRoleConfig:
"""Data contract for ModelRoleConfig."""
role: ModelRole
# new in 2.2.0 refactor — uses provider lookup instead of BaseModelConfig and MissingKeyFallback
modelId: ModelId
baseModelConfig: Optional[BaseModelConfig] = None
temperature: float
topP: float
reservedOutputTokens: int
largeContextFallback: Optional[ModelRoleConfig] = None
largeOutputFallback: Optional[ModelRoleConfig] = None
# MissingKeyFallback *ModelRoleConfig // removed in 2.2.0 refactor —
errorFallback: Optional[ModelRoleConfig] = None
strongModel: Optional[ModelRoleConfig] = None
localProvider: ModelProvider = None
@dataclass
class ModelRoleModelConfig:
"""Data contract for ModelRoleModelConfig."""
provider: ModelProvider
customProvider: Optional[str] = None
modelTag: ModelTag
@dataclass
class ModelRoleConfigSchema:
"""Data contract for ModelRoleConfigSchema."""
modelId: ModelId
temperature: Optional[float] = None
topP: Optional[float] = None
reservedOutputTokens: Optional[int] = None
maxConvoTokens: Optional[int] = None
largeContextFallback: Optional[ModelRoleConfigSchema] = None
largeOutputFallback: Optional[ModelRoleConfigSchema] = None
errorFallback: Optional[ModelRoleConfigSchema] = None
strongModel: Optional[ModelRoleConfigSchema] = None
@dataclass
class PlannerRoleConfig:
"""Data contract for PlannerRoleConfig."""
modelroleconfig: PlannerModelConfig
@dataclass
class ClientModelPackSchemaRoles:
"""Data contract for ClientModelPackSchemaRoles."""
$schema: SchemaUrl = None
# in the JSON, these can either be a role as a string or a ModelRoleConfigSchema object for more complex config
localProvider: ModelProvider = None
planner: RoleJSON
architect: RoleJSON = None
coder: RoleJSON = None
summarizer: RoleJSON
builder: RoleJSON
wholeFileBuilder: RoleJSON = None
names: RoleJSON
commitMessages: RoleJSON
autoContinue: RoleJSON
@dataclass
class ModelPackSchemaRoles:
"""Data contract for ModelPackSchemaRoles."""
localProvider: ModelProvider = None
planner: ModelRoleConfigSchema
coder: Optional[ModelRoleConfigSchema] = None
planSummary: ModelRoleConfigSchema
builder: ModelRoleConfigSchema
# optional, defaults to builder model — access via GetWholeFileBuilder()
wholeFileBuilder: Optional[ModelRoleConfigSchema] = None
namer: ModelRoleConfigSchema
commitMsg: ModelRoleConfigSchema
execStatus: ModelRoleConfigSchema
contextLoader: Optional[ModelRoleConfigSchema] = None
@dataclass
class ModelPackSchema:
"""Data contract for ModelPackSchema."""
name: str
description: str
@dataclass
class ModelPack:
"""Data contract for ModelPack."""
id: str
name: str
localProvider: ModelProvider = None
description: str
planner: PlannerRoleConfig
coder: Optional[ModelRoleConfig] = None
planSummary: ModelRoleConfig
builder: ModelRoleConfig
# optional, defaults to builder model — access via GetWholeFileBuilder()
wholeFileBuilder: Optional[ModelRoleConfig] = None
namer: ModelRoleConfig
commitMsg: ModelRoleConfig
execStatus: ModelRoleConfig
contextLoader: Optional[ModelRoleConfig] = None