Spaces:
Sleeping
Sleeping
| """Kilo.ai model-catalog interpretation.""" | |
| from collections.abc import Mapping, Sequence | |
| from typing import Any | |
| from free_claude_code.application.model_metadata import ProviderModelInfo | |
| from free_claude_code.providers.model_listing import ( | |
| extract_tool_capable_model_infos, | |
| model_list_items, | |
| ) | |
| def extract_kilo_model_infos( | |
| payload: Any, *, provider_name: str | |
| ) -> frozenset[ProviderModelInfo]: | |
| """Return chat/tool Kilo models with their advertised reasoning support.""" | |
| tool_models = extract_tool_capable_model_infos( | |
| payload, | |
| provider_name=provider_name, | |
| ) | |
| excluded_ids = { | |
| model_id | |
| for item in model_list_items(payload, provider_name=provider_name) | |
| if (model_id := _model_id(item)) is not None | |
| and (_produces_images(item) or _requires_responses_api(item)) | |
| } | |
| return frozenset(info for info in tool_models if info.model_id not in excluded_ids) | |
| def _produces_images(item: Any) -> bool: | |
| architecture = _field(item, "architecture") | |
| modalities = _string_values(_field(architecture, "output_modalities")) | |
| return modalities is not None and "image" in modalities | |
| def _requires_responses_api(item: Any) -> bool: | |
| opencode = _field(item, "opencode") | |
| provider = _field(opencode, "ai_sdk_provider") | |
| return isinstance(provider, str) and provider.casefold() == "openai" | |
| def _model_id(item: Any) -> str | None: | |
| value = _field(item, "id") | |
| return value if isinstance(value, str) and value.strip() else None | |
| def _string_values(value: Any) -> set[str] | None: | |
| if not isinstance(value, Sequence) or isinstance(value, str | bytes | bytearray): | |
| return None | |
| return {item.casefold() for item in value if isinstance(item, str)} | |
| def _field(item: Any, name: str) -> Any: | |
| if isinstance(item, Mapping): | |
| return item.get(name) | |
| value = getattr(item, name, None) | |
| if value is not None: | |
| return value | |
| extra = getattr(item, "model_extra", None) | |
| return extra.get(name) if isinstance(extra, Mapping) else None | |