"""OpenCode Zen provider implementation (OpenAI-compatible Chat Completions).""" from __future__ import annotations from typing import Any from providers.base import ProviderConfig from providers.defaults import OPENCODE_DEFAULT_BASE from providers.openai_compat import OpenAIChatTransport from .request import build_request_body class OpenCodeProvider(OpenAIChatTransport): """OpenCode Zen provider using ``https://opencode.ai/zen/v1/chat/completions``.""" def __init__(self, config: ProviderConfig): super().__init__( config, provider_name="OPENCODE", base_url=config.base_url or OPENCODE_DEFAULT_BASE, api_key=config.api_key, ) def _build_request_body( self, request: Any, thinking_enabled: bool | None = None ) -> dict: return build_request_body( request, thinking_enabled=self._is_thinking_enabled(request, thinking_enabled), )