mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
57 lines
1.4 KiB
Python
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
|