"""FastAPI entry point for Red Button v2. Run locally: uvicorn server.app:app --host 0.0.0.0 --port 8000 The Environment *class* (not an instance) is passed to ``create_app`` so ``SUPPORTS_CONCURRENT_SESSIONS = True`` can spawn one fresh environment per WebSocket session — required for parallel GRPO rollouts (PROJECT.md §13). """ from openenv.core.env_server import create_app from redbutton_v2.environment import RedButtonV2Environment from redbutton_v2.models import RedButtonV2Action, RedButtonV2Observation app = create_app( RedButtonV2Environment, RedButtonV2Action, RedButtonV2Observation, env_name="redbutton_v2", max_concurrent_envs=32, ) if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)