"""OpenEnv FastAPI application entry point. This is the file the hackathon judges' OpenEnv client (and any other EnvClient consumer) will talk to. It builds a FastAPI app via :func:`openenv.core.create_app`, which wires up: * ``/health`` — liveness check. * ``/reset`` — start a new episode. * ``/step`` — apply an action. * ``/state`` — inspect current episode state. * ``/schema`` — JSON schemas for action / observation / state. * ``/metadata`` — environment metadata (name, description, version). * WebSocket ``/ws`` — interactive session protocol. * (Optional) ``/web`` — Gradio debug UI when ``ENABLE_WEB_INTERFACE=true``. Run with:: uvicorn app:app --host 0.0.0.0 --port 8000 Or via the Docker default ``CMD``:: docker build -t hospital-env . docker run --rm -p 8000:8000 hospital-env Override the scenario per container by setting the ``HOSPITAL_SCENARIO`` env var (one of ``normal_day``, ``surge``, ``mass_casualty``, ``night_shift``, ``ventilator_crisis``):: docker run --rm -p 8000:8000 -e HOSPITAL_SCENARIO=surge hospital-env """ from __future__ import annotations from openenv.core import create_app from hospital_env import ( HospitalAction, HospitalObservation, hospital_env_factory, ) # The OpenEnv framework discovers the app via the ASGI standard # ``app:app`` import path, so this name is required. app = create_app( env=hospital_env_factory, action_cls=HospitalAction, observation_cls=HospitalObservation, env_name="hospital-resource-allocator", )