dheraingoud's picture
feat: sync upstream commits up to f17c92bc
a1bab2d
Raw
History Blame Contribute Delete
1.79 kB
"""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,
)