Spaces:
Sleeping
Sleeping
| """Typed capabilities consumed by application use cases.""" | |
| from __future__ import annotations | |
| from collections.abc import AsyncIterator, Callable | |
| from dataclasses import dataclass | |
| from typing import Protocol | |
| from free_claude_code.config.settings import Settings | |
| from free_claude_code.core.anthropic import MessagesRequest | |
| from free_claude_code.core.reasoning import ReasoningPolicy | |
| from .model_metadata import ProviderModelInfo | |
| class ProviderPort(Protocol): | |
| """Minimal provider capability required to execute one request.""" | |
| def preflight_stream( | |
| self, | |
| request: MessagesRequest, | |
| *, | |
| reasoning: ReasoningPolicy, | |
| ) -> None: ... | |
| def stream_response( | |
| self, | |
| request: MessagesRequest, | |
| *, | |
| input_tokens: int, | |
| request_id: str, | |
| response_model: str, | |
| reasoning: ReasoningPolicy, | |
| ) -> AsyncIterator[str]: ... | |
| ProviderResolver = Callable[[str], ProviderPort] | |
| class RequestRuntimeLease(Protocol): | |
| """One provider generation retained for a complete API response.""" | |
| def generation_id(self) -> int: ... | |
| def settings(self) -> Settings: ... | |
| def is_provider_cached(self, provider_id: str) -> bool: ... | |
| def resolve_provider(self, provider_id: str) -> ProviderPort: ... | |
| async def release(self) -> None: ... | |
| class RequestRuntimePort(Protocol): | |
| """Provider generation and model metadata required by application requests.""" | |
| async def acquire(self) -> RequestRuntimeLease: ... | |
| def current_settings(self) -> Settings: ... | |
| def cached_model_supports_thinking( | |
| self, provider_id: str, model_id: str | |
| ) -> bool | None: ... | |
| def cached_prefixed_model_infos(self) -> tuple[ProviderModelInfo, ...]: ... | |
| class StopResult: | |
| """Implementation-neutral result retaining the existing ``/stop`` variants.""" | |
| cancelled_count: int | None = None | |
| source: str | None = None | |
| class TaskController(Protocol): | |
| """Stop managed work without exposing messaging or CLI resources.""" | |
| async def stop_all(self) -> StopResult | None: ... | |