mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
Co-authored-by: openhands <openhands@all-hands.dev> Co-authored-by: rohitvinodmalhotra@gmail.com <rohitvinodmalhotra@gmail.com>
67 lines
1.4 KiB
Python
67 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
|
|
|
|
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
|