| from __future__ import annotations | |
| from fastapi import FastAPI, HTTPException | |
| from .environment import V3DeliveryDispatchEnv | |
| from .models import V3Action | |
| from .task_adapter import PUBLIC_TASK_IDS, is_public_task_id | |
| def create_app() -> FastAPI: | |
| app = FastAPI(title="Fleetmind V3 Benchmark") | |
| env = V3DeliveryDispatchEnv() | |
| def health() -> dict[str, str]: | |
| return {"status": "ok"} | |
| def reset(task_id: str | None = None, seed: int | None = None, pool_name: str = "test") -> dict: | |
| if task_id is not None and not is_public_task_id(task_id): | |
| raise HTTPException( | |
| status_code=400, | |
| detail=f"Unknown task_id '{task_id}'. Expected one of: {', '.join(PUBLIC_TASK_IDS)}", | |
| ) | |
| return env.reset(task_id=task_id, seed=seed, pool_name=pool_name).model_dump(mode="json") | |
| def state() -> dict: | |
| return env.state().model_dump(mode="json") | |
| def step(action: V3Action) -> dict: | |
| return env.step(action).model_dump(mode="json") | |
| return app | |
| app = create_app() | |