Spaces:
Sleeping
Sleeping
| """Kilo.ai provider implementation.""" | |
| from free_claude_code.application.model_metadata import ProviderModelInfo | |
| 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.openai_chat import ( | |
| OpenAIChatProfile, | |
| OpenAIChatProvider, | |
| OpenAIChatRequestPolicy, | |
| ReasoningObject, | |
| apply_reasoning_details_replay, | |
| validate_extra_body_does_not_override_canonical_fields, | |
| ) | |
| from .models import extract_kilo_model_infos | |
| _PROFILE = OpenAIChatProfile( | |
| OpenAIChatRequestPolicy( | |
| provider_name="KILO", | |
| reasoning_replay=ReasoningReplayMode.REASONING_CONTENT, | |
| include_extra_body=True, | |
| extra_body_validator=validate_extra_body_does_not_override_canonical_fields, | |
| ), | |
| ReasoningObject(tuple((effort, effort.value) for effort in ReasoningEffort)), | |
| postprocessors=(apply_reasoning_details_replay,), | |
| reasoning_delta_field="reasoning", | |
| structured_reasoning_details=True, | |
| ) | |
| class KiloProvider(OpenAIChatProvider): | |
| """Kilo gateway adapter with capability-aware discovery and reasoning.""" | |
| def __init__( | |
| self, config: ProviderConfig, *, admission: ProviderAdmissionController | |
| ) -> None: | |
| super().__init__(config, profile=_PROFILE, admission=admission) | |
| async def list_model_infos(self) -> frozenset[ProviderModelInfo]: | |
| """Advertise Kilo chat models that can execute FCC agent requests.""" | |
| payload = await self._list_models_payload() | |
| return extract_kilo_model_infos( | |
| payload, | |
| provider_name=self._provider_name, | |
| ) | |