hermesinho
Initial import of grok2api with Dockerfile for HF Spaces
bdc2878
"""ProxyRuntime — thin hot-path wrapper around ProxyDirectory.
Delegates acquisition and feedback to the control-plane ProxyDirectory.
Kept as a thin shim so callers in the dataplane need not import control
modules directly.
"""
from app.control.proxy import ProxyDirectory, get_proxy_directory
from app.control.proxy.models import (
ProxyLease, ProxyFeedback, ProxyScope, RequestKind,
)
class ProxyRuntime:
"""Hot-path facade around ProxyDirectory."""
def __init__(self, directory: ProxyDirectory) -> None:
self._dir = directory
async def acquire(
self,
*,
scope: ProxyScope = ProxyScope.APP,
kind: RequestKind = RequestKind.HTTP,
resource: bool = False,
clearance_origin: str | None = None,
) -> ProxyLease:
return await self._dir.acquire(
scope=scope,
kind=kind,
resource=resource,
clearance_origin=clearance_origin,
)
async def feedback(self, lease: ProxyLease, result: ProxyFeedback) -> None:
await self._dir.feedback(lease, result)
@property
def has_proxy(self) -> bool:
from app.control.proxy.models import EgressMode
return self._dir.egress_mode != EgressMode.DIRECT
_runtime: ProxyRuntime | None = None
async def get_proxy_runtime() -> ProxyRuntime:
global _runtime
directory = await get_proxy_directory()
if _runtime is None:
_runtime = ProxyRuntime(directory)
return _runtime
__all__ = ["ProxyRuntime", "get_proxy_runtime"]