Spaces:
Sleeping
Sleeping
| from environment.server import CannonWallEnvironment | |
| import uvicorn | |
| from fastapi import FastAPI | |
| from fastapi.responses import RedirectResponse | |
| # Import Gradio and mount it | |
| import gradio as gr | |
| from ui.demo import demo as gradio_demo | |
| api = FastAPI(title="Cannon & Wall β RedBlue Arena") | |
| env = CannonWallEnvironment() | |
| # ββ Environment API routes ββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| def reset(stage: int = 1): | |
| return env.reset(stage=stage) | |
| def step(action: dict): | |
| return env.step(action) | |
| def state(): | |
| return env.state | |
| def health(): | |
| return {"status": "ok"} | |
| # Redirect bare root to /ui/ so judges land on the demo | |
| def root(): | |
| return RedirectResponse(url="/ui/") | |
| # ββ Mount Gradio at /ui βββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| api = gr.mount_gradio_app(api, gradio_demo, path="/ui") | |
| if __name__ == "__main__": | |
| uvicorn.run(api, host="0.0.0.0", port=7860) |