from __future__ import annotations from typing import Any import httpx from models import AdaptAction class AdaptEnvClient: def __init__(self, base_url: str = "http://localhost:7860") -> None: self.base_url = base_url.rstrip("/") self._client = httpx.Client(base_url=self.base_url, timeout=30.0) def close(self) -> None: self._client.close() def reset(self, **params: Any) -> dict[str, Any]: response = self._client.post("/reset", json=params) response.raise_for_status() return response.json() def step(self, code: str) -> dict[str, Any]: response = self._client.post("/step", json={"action": AdaptAction(code=code).model_dump()}) response.raise_for_status() return response.json() def state(self) -> dict[str, Any]: response = self._client.get("/state") response.raise_for_status() return response.json() __all__ = ["AdaptEnvClient"]