"""DevOps Arena FastAPI server.""" from fastapi import FastAPI from pydantic import BaseModel from arena_environment import ArenaEnvironment from models import DevAction app = FastAPI(title="DevOps Arena Environment API") env = ArenaEnvironment() class StepRequest(BaseModel): action: dict @app.get("/health") def health(): return {"status": "healthy", "environment": "devops-arena", "tasks": 9} @app.post("/reset") def reset(): obs = env.reset() return {"observation": obs.model_dump(), "reward": 0.0, "done": False} @app.post("/step") def step(req: StepRequest): action = DevAction(**req.action) obs = env.step(action) return {"observation": obs.model_dump(), "reward": obs.reward, "done": obs.done} @app.get("/state") def state(): s = env.state if s is None: return {"error": "No active episode. Call /reset first."} return s.model_dump()