summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/python/src/opencode_ai/models/config.py
diff options
context:
space:
mode:
authorKevin King <[email protected]>2025-10-28 19:32:45 -0400
committerGitHub <[email protected]>2025-10-28 18:32:45 -0500
commit0e60f666043910afb96e9de2f84b0b8a68c7e4d6 (patch)
tree6ca20af712e2faca6262f029d6d8499c9888eb50 /packages/sdk/python/src/opencode_ai/models/config.py
parentfc8db6cdf9cb81e29c5dda69c8646aa52e453a9c (diff)
downloadopencode-0e60f666043910afb96e9de2f84b0b8a68c7e4d6.tar.gz
opencode-0e60f666043910afb96e9de2f84b0b8a68c7e4d6.zip
ignore: python sdk (#2779)
Co-authored-by: Aiden Cline <[email protected]>
Diffstat (limited to 'packages/sdk/python/src/opencode_ai/models/config.py')
-rw-r--r--packages/sdk/python/src/opencode_ai/models/config.py411
1 files changed, 411 insertions, 0 deletions
diff --git a/packages/sdk/python/src/opencode_ai/models/config.py b/packages/sdk/python/src/opencode_ai/models/config.py
new file mode 100644
index 000000000..38b97637e
--- /dev/null
+++ b/packages/sdk/python/src/opencode_ai/models/config.py
@@ -0,0 +1,411 @@
+from collections.abc import Mapping
+from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
+
+from attrs import define as _attrs_define
+
+from ..models.config_share import ConfigShare
+from ..models.layout_config import LayoutConfig
+from ..types import UNSET, Unset
+
+if TYPE_CHECKING:
+ from ..models.config_agent import ConfigAgent
+ from ..models.config_command import ConfigCommand
+ from ..models.config_experimental import ConfigExperimental
+ from ..models.config_formatter import ConfigFormatter
+ from ..models.config_lsp import ConfigLsp
+ from ..models.config_mcp import ConfigMcp
+ from ..models.config_mode import ConfigMode
+ from ..models.config_permission import ConfigPermission
+ from ..models.config_provider import ConfigProvider
+ from ..models.config_tools import ConfigTools
+ from ..models.config_tui import ConfigTui
+ from ..models.config_watcher import ConfigWatcher
+ from ..models.keybinds_config import KeybindsConfig
+
+
+T = TypeVar("T", bound="Config")
+
+
+@_attrs_define
+class Config:
+ """
+ Attributes:
+ schema (Union[Unset, str]): JSON schema reference for configuration validation
+ theme (Union[Unset, str]): Theme name to use for the interface
+ keybinds (Union[Unset, KeybindsConfig]): Custom keybind configurations
+ tui (Union[Unset, ConfigTui]): TUI specific settings
+ command (Union[Unset, ConfigCommand]): Command configuration, see https://opencode.ai/docs/commands
+ watcher (Union[Unset, ConfigWatcher]):
+ plugin (Union[Unset, list[str]]):
+ snapshot (Union[Unset, bool]):
+ share (Union[Unset, ConfigShare]): Control sharing behavior:'manual' allows manual sharing via commands, 'auto'
+ enables automatic sharing, 'disabled' disables all sharing
+ autoshare (Union[Unset, bool]): @deprecated Use 'share' field instead. Share newly created sessions
+ automatically
+ autoupdate (Union[Unset, bool]): Automatically update to the latest version
+ disabled_providers (Union[Unset, list[str]]): Disable providers that are loaded automatically
+ model (Union[Unset, str]): Model to use in the format of provider/model, eg anthropic/claude-2
+ small_model (Union[Unset, str]): Small model to use for tasks like title generation in the format of
+ provider/model
+ username (Union[Unset, str]): Custom username to display in conversations instead of system username
+ mode (Union[Unset, ConfigMode]): @deprecated Use `agent` field instead.
+ agent (Union[Unset, ConfigAgent]): Agent configuration, see https://opencode.ai/docs/agent
+ provider (Union[Unset, ConfigProvider]): Custom provider configurations and model overrides
+ mcp (Union[Unset, ConfigMcp]): MCP (Model Context Protocol) server configurations
+ formatter (Union[Unset, ConfigFormatter]):
+ lsp (Union[Unset, ConfigLsp]):
+ instructions (Union[Unset, list[str]]): Additional instruction files or patterns to include
+ layout (Union[Unset, LayoutConfig]): @deprecated Always uses stretch layout.
+ permission (Union[Unset, ConfigPermission]):
+ tools (Union[Unset, ConfigTools]):
+ experimental (Union[Unset, ConfigExperimental]):
+ """
+
+ schema: Union[Unset, str] = UNSET
+ theme: Union[Unset, str] = UNSET
+ keybinds: Union[Unset, "KeybindsConfig"] = UNSET
+ tui: Union[Unset, "ConfigTui"] = UNSET
+ command: Union[Unset, "ConfigCommand"] = UNSET
+ watcher: Union[Unset, "ConfigWatcher"] = UNSET
+ plugin: Union[Unset, list[str]] = UNSET
+ snapshot: Union[Unset, bool] = UNSET
+ share: Union[Unset, ConfigShare] = UNSET
+ autoshare: Union[Unset, bool] = UNSET
+ autoupdate: Union[Unset, bool] = UNSET
+ disabled_providers: Union[Unset, list[str]] = UNSET
+ model: Union[Unset, str] = UNSET
+ small_model: Union[Unset, str] = UNSET
+ username: Union[Unset, str] = UNSET
+ mode: Union[Unset, "ConfigMode"] = UNSET
+ agent: Union[Unset, "ConfigAgent"] = UNSET
+ provider: Union[Unset, "ConfigProvider"] = UNSET
+ mcp: Union[Unset, "ConfigMcp"] = UNSET
+ formatter: Union[Unset, "ConfigFormatter"] = UNSET
+ lsp: Union[Unset, "ConfigLsp"] = UNSET
+ instructions: Union[Unset, list[str]] = UNSET
+ layout: Union[Unset, LayoutConfig] = UNSET
+ permission: Union[Unset, "ConfigPermission"] = UNSET
+ tools: Union[Unset, "ConfigTools"] = UNSET
+ experimental: Union[Unset, "ConfigExperimental"] = UNSET
+
+ def to_dict(self) -> dict[str, Any]:
+ schema = self.schema
+
+ theme = self.theme
+
+ keybinds: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.keybinds, Unset):
+ keybinds = self.keybinds.to_dict()
+
+ tui: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.tui, Unset):
+ tui = self.tui.to_dict()
+
+ command: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.command, Unset):
+ command = self.command.to_dict()
+
+ watcher: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.watcher, Unset):
+ watcher = self.watcher.to_dict()
+
+ plugin: Union[Unset, list[str]] = UNSET
+ if not isinstance(self.plugin, Unset):
+ plugin = self.plugin
+
+ snapshot = self.snapshot
+
+ share: Union[Unset, str] = UNSET
+ if not isinstance(self.share, Unset):
+ share = self.share.value
+
+ autoshare = self.autoshare
+
+ autoupdate = self.autoupdate
+
+ disabled_providers: Union[Unset, list[str]] = UNSET
+ if not isinstance(self.disabled_providers, Unset):
+ disabled_providers = self.disabled_providers
+
+ model = self.model
+
+ small_model = self.small_model
+
+ username = self.username
+
+ mode: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.mode, Unset):
+ mode = self.mode.to_dict()
+
+ agent: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.agent, Unset):
+ agent = self.agent.to_dict()
+
+ provider: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.provider, Unset):
+ provider = self.provider.to_dict()
+
+ mcp: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.mcp, Unset):
+ mcp = self.mcp.to_dict()
+
+ formatter: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.formatter, Unset):
+ formatter = self.formatter.to_dict()
+
+ lsp: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.lsp, Unset):
+ lsp = self.lsp.to_dict()
+
+ instructions: Union[Unset, list[str]] = UNSET
+ if not isinstance(self.instructions, Unset):
+ instructions = self.instructions
+
+ layout: Union[Unset, str] = UNSET
+ if not isinstance(self.layout, Unset):
+ layout = self.layout.value
+
+ permission: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.permission, Unset):
+ permission = self.permission.to_dict()
+
+ tools: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.tools, Unset):
+ tools = self.tools.to_dict()
+
+ experimental: Union[Unset, dict[str, Any]] = UNSET
+ if not isinstance(self.experimental, Unset):
+ experimental = self.experimental.to_dict()
+
+ field_dict: dict[str, Any] = {}
+
+ field_dict.update({})
+ if schema is not UNSET:
+ field_dict["$schema"] = schema
+ if theme is not UNSET:
+ field_dict["theme"] = theme
+ if keybinds is not UNSET:
+ field_dict["keybinds"] = keybinds
+ if tui is not UNSET:
+ field_dict["tui"] = tui
+ if command is not UNSET:
+ field_dict["command"] = command
+ if watcher is not UNSET:
+ field_dict["watcher"] = watcher
+ if plugin is not UNSET:
+ field_dict["plugin"] = plugin
+ if snapshot is not UNSET:
+ field_dict["snapshot"] = snapshot
+ if share is not UNSET:
+ field_dict["share"] = share
+ if autoshare is not UNSET:
+ field_dict["autoshare"] = autoshare
+ if autoupdate is not UNSET:
+ field_dict["autoupdate"] = autoupdate
+ if disabled_providers is not UNSET:
+ field_dict["disabled_providers"] = disabled_providers
+ if model is not UNSET:
+ field_dict["model"] = model
+ if small_model is not UNSET:
+ field_dict["small_model"] = small_model
+ if username is not UNSET:
+ field_dict["username"] = username
+ if mode is not UNSET:
+ field_dict["mode"] = mode
+ if agent is not UNSET:
+ field_dict["agent"] = agent
+ if provider is not UNSET:
+ field_dict["provider"] = provider
+ if mcp is not UNSET:
+ field_dict["mcp"] = mcp
+ if formatter is not UNSET:
+ field_dict["formatter"] = formatter
+ if lsp is not UNSET:
+ field_dict["lsp"] = lsp
+ if instructions is not UNSET:
+ field_dict["instructions"] = instructions
+ if layout is not UNSET:
+ field_dict["layout"] = layout
+ if permission is not UNSET:
+ field_dict["permission"] = permission
+ if tools is not UNSET:
+ field_dict["tools"] = tools
+ if experimental is not UNSET:
+ field_dict["experimental"] = experimental
+
+ return field_dict
+
+ @classmethod
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
+ from ..models.config_agent import ConfigAgent
+ from ..models.config_command import ConfigCommand
+ from ..models.config_experimental import ConfigExperimental
+ from ..models.config_formatter import ConfigFormatter
+ from ..models.config_lsp import ConfigLsp
+ from ..models.config_mcp import ConfigMcp
+ from ..models.config_mode import ConfigMode
+ from ..models.config_permission import ConfigPermission
+ from ..models.config_provider import ConfigProvider
+ from ..models.config_tools import ConfigTools
+ from ..models.config_tui import ConfigTui
+ from ..models.config_watcher import ConfigWatcher
+ from ..models.keybinds_config import KeybindsConfig
+
+ d = dict(src_dict)
+ schema = d.pop("$schema", UNSET)
+
+ theme = d.pop("theme", UNSET)
+
+ _keybinds = d.pop("keybinds", UNSET)
+ keybinds: Union[Unset, KeybindsConfig]
+ if isinstance(_keybinds, Unset):
+ keybinds = UNSET
+ else:
+ keybinds = KeybindsConfig.from_dict(_keybinds)
+
+ _tui = d.pop("tui", UNSET)
+ tui: Union[Unset, ConfigTui]
+ if isinstance(_tui, Unset):
+ tui = UNSET
+ else:
+ tui = ConfigTui.from_dict(_tui)
+
+ _command = d.pop("command", UNSET)
+ command: Union[Unset, ConfigCommand]
+ if isinstance(_command, Unset):
+ command = UNSET
+ else:
+ command = ConfigCommand.from_dict(_command)
+
+ _watcher = d.pop("watcher", UNSET)
+ watcher: Union[Unset, ConfigWatcher]
+ if isinstance(_watcher, Unset):
+ watcher = UNSET
+ else:
+ watcher = ConfigWatcher.from_dict(_watcher)
+
+ plugin = cast(list[str], d.pop("plugin", UNSET))
+
+ snapshot = d.pop("snapshot", UNSET)
+
+ _share = d.pop("share", UNSET)
+ share: Union[Unset, ConfigShare]
+ if isinstance(_share, Unset):
+ share = UNSET
+ else:
+ share = ConfigShare(_share)
+
+ autoshare = d.pop("autoshare", UNSET)
+
+ autoupdate = d.pop("autoupdate", UNSET)
+
+ disabled_providers = cast(list[str], d.pop("disabled_providers", UNSET))
+
+ model = d.pop("model", UNSET)
+
+ small_model = d.pop("small_model", UNSET)
+
+ username = d.pop("username", UNSET)
+
+ _mode = d.pop("mode", UNSET)
+ mode: Union[Unset, ConfigMode]
+ if isinstance(_mode, Unset):
+ mode = UNSET
+ else:
+ mode = ConfigMode.from_dict(_mode)
+
+ _agent = d.pop("agent", UNSET)
+ agent: Union[Unset, ConfigAgent]
+ if isinstance(_agent, Unset):
+ agent = UNSET
+ else:
+ agent = ConfigAgent.from_dict(_agent)
+
+ _provider = d.pop("provider", UNSET)
+ provider: Union[Unset, ConfigProvider]
+ if isinstance(_provider, Unset):
+ provider = UNSET
+ else:
+ provider = ConfigProvider.from_dict(_provider)
+
+ _mcp = d.pop("mcp", UNSET)
+ mcp: Union[Unset, ConfigMcp]
+ if isinstance(_mcp, Unset):
+ mcp = UNSET
+ else:
+ mcp = ConfigMcp.from_dict(_mcp)
+
+ _formatter = d.pop("formatter", UNSET)
+ formatter: Union[Unset, ConfigFormatter]
+ if isinstance(_formatter, Unset):
+ formatter = UNSET
+ else:
+ formatter = ConfigFormatter.from_dict(_formatter)
+
+ _lsp = d.pop("lsp", UNSET)
+ lsp: Union[Unset, ConfigLsp]
+ if isinstance(_lsp, Unset):
+ lsp = UNSET
+ else:
+ lsp = ConfigLsp.from_dict(_lsp)
+
+ instructions = cast(list[str], d.pop("instructions", UNSET))
+
+ _layout = d.pop("layout", UNSET)
+ layout: Union[Unset, LayoutConfig]
+ if isinstance(_layout, Unset):
+ layout = UNSET
+ else:
+ layout = LayoutConfig(_layout)
+
+ _permission = d.pop("permission", UNSET)
+ permission: Union[Unset, ConfigPermission]
+ if isinstance(_permission, Unset):
+ permission = UNSET
+ else:
+ permission = ConfigPermission.from_dict(_permission)
+
+ _tools = d.pop("tools", UNSET)
+ tools: Union[Unset, ConfigTools]
+ if isinstance(_tools, Unset):
+ tools = UNSET
+ else:
+ tools = ConfigTools.from_dict(_tools)
+
+ _experimental = d.pop("experimental", UNSET)
+ experimental: Union[Unset, ConfigExperimental]
+ if isinstance(_experimental, Unset):
+ experimental = UNSET
+ else:
+ experimental = ConfigExperimental.from_dict(_experimental)
+
+ config = cls(
+ schema=schema,
+ theme=theme,
+ keybinds=keybinds,
+ tui=tui,
+ command=command,
+ watcher=watcher,
+ plugin=plugin,
+ snapshot=snapshot,
+ share=share,
+ autoshare=autoshare,
+ autoupdate=autoupdate,
+ disabled_providers=disabled_providers,
+ model=model,
+ small_model=small_model,
+ username=username,
+ mode=mode,
+ agent=agent,
+ provider=provider,
+ mcp=mcp,
+ formatter=formatter,
+ lsp=lsp,
+ instructions=instructions,
+ layout=layout,
+ permission=permission,
+ tools=tools,
+ experimental=experimental,
+ )
+
+ return config