mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 13:52:43 +08:00
68 lines
1.4 KiB
Python
68 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from pydantic import (
|
|
BaseModel,
|
|
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 = {'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
|