Spaces:
Sleeping
Sleeping
| """OpenRouter provider implementation.""" | |
| from free_claude_code.application.model_metadata import ProviderModelInfo | |
| from free_claude_code.config.constants import ANTHROPIC_DEFAULT_MAX_OUTPUT_TOKENS | |
| from free_claude_code.core.anthropic import ReasoningReplayMode | |
| from free_claude_code.core.reasoning import ReasoningEffort | |
| from free_claude_code.providers.admission import ProviderAdmissionController | |
| from free_claude_code.providers.base import ProviderConfig | |
| from free_claude_code.providers.model_listing import extract_tool_capable_model_infos | |
| from free_claude_code.providers.openai_chat import ( | |
| OpenAIChatProfile, | |
| OpenAIChatProvider, | |
| OpenAIChatRequestPolicy, | |
| ReasoningObject, | |
| apply_reasoning_details_replay, | |
| validate_extra_body_does_not_override_canonical_fields, | |
| ) | |
| _REQUEST_POLICY = OpenAIChatRequestPolicy( | |
| provider_name="OPENROUTER", | |
| reasoning_replay=ReasoningReplayMode.REASONING_CONTENT, | |
| include_extra_body=True, | |
| extra_body_validator=validate_extra_body_does_not_override_canonical_fields, | |
| default_max_tokens=ANTHROPIC_DEFAULT_MAX_OUTPUT_TOKENS, | |
| ) | |
| class OpenRouterProvider(OpenAIChatProvider): | |
| """OpenRouter provider using the OpenAI-compatible Chat Completions API.""" | |
| def __init__( | |
| self, config: ProviderConfig, *, admission: ProviderAdmissionController | |
| ): | |
| super().__init__( | |
| config, | |
| profile=_PROFILE, | |
| admission=admission, | |
| ) | |
| async def list_model_infos(self) -> frozenset[ProviderModelInfo]: | |
| """Advertise OpenRouter tool models with reasoning capability metadata.""" | |
| payload = await self._list_models_payload() | |
| return extract_tool_capable_model_infos( | |
| payload, provider_name=self._provider_name | |
| ) | |
| _PROFILE = OpenAIChatProfile( | |
| _REQUEST_POLICY, | |
| ReasoningObject(tuple((effort, effort.value) for effort in ReasoningEffort)), | |
| postprocessors=(apply_reasoning_details_replay,), | |
| structured_reasoning_details=True, | |
| ) | |