OpenHands/openhands/server/settings.py
Xingyao Wang c2f46200c0
chore(lint): Apply comprehensive linting and formatting fixes (#10287)
Co-authored-by: openhands <openhands@all-hands.dev>
2025-08-13 21:13:19 +02:00

57 lines
1.4 KiB
Python

from __future__ import annotations
from pydantic import (
BaseModel,
ConfigDict,
SecretStr,
)
from openhands.core.config.mcp_config import MCPConfig
from openhands.integrations.provider import CustomSecret, ProviderToken
from openhands.integrations.service_types import ProviderType
from openhands.storage.data_models.settings import Settings
class POSTProviderModel(BaseModel):
"""Settings for POST requests"""
mcp_config: MCPConfig | None = None
provider_tokens: dict[ProviderType, ProviderToken] = {}
class POSTCustomSecrets(BaseModel):
"""Adding new custom secret"""
custom_secrets: dict[str, CustomSecret] = {}
class GETSettingsModel(Settings):
"""Settings with additional token data for the frontend"""
provider_tokens_set: dict[ProviderType, str | None] | None = (
None # provider + base_domain key-value pair
)
llm_api_key_set: bool
search_api_key_set: bool = False
model_config = ConfigDict(use_enum_values=True)
class CustomSecretWithoutValueModel(BaseModel):
"""Custom secret model without value"""
name: str
description: str | None = None
class CustomSecretModel(CustomSecretWithoutValueModel):
"""Custom secret model with value"""
value: SecretStr
class GETCustomSecrets(BaseModel):
"""Custom secrets names"""
custom_secrets: list[CustomSecretWithoutValueModel] | None = None