Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| from auditenv.models import AuditAction, AuditObservation, EnvState, StepResult, TaskId | |
| from auditenv.state import AuditEnvRuntime | |
| app = FastAPI(title="AuditEnv", version="0.1.0") | |
| runtime = AuditEnvRuntime(default_seed=42) | |
| class ResetRequest(BaseModel): | |
| task_id: TaskId = "easy" | |
| seed: int = 42 | |
| def health() -> dict[str, str]: | |
| return {"status": "ok"} | |
| def reset(req: ResetRequest) -> AuditObservation: | |
| return runtime.reset(task_id=req.task_id, seed=req.seed) | |
| def step(action: AuditAction) -> StepResult: | |
| try: | |
| return runtime.step(action) | |
| except RuntimeError as exc: | |
| raise HTTPException(status_code=400, detail=str(exc)) from exc | |
| except ValueError as exc: | |
| raise HTTPException(status_code=422, detail=str(exc)) from exc | |
| def state() -> EnvState: | |
| try: | |
| return runtime.state() | |
| except RuntimeError as exc: | |
| raise HTTPException(status_code=400, detail=str(exc)) from exc | |