diff --git a/server/app.py b/server/app.py index 1c233b1..160ec33 100644 --- a/server/app.py +++ b/server/app.py @@ -12,6 +12,9 @@ uv run --project . server """ +from pathlib import Path + +from fastapi.responses import HTMLResponse from openenv.core.env_server import create_app from openenv.core.env_server.mcp_types import CallToolAction, CallToolObservation @@ -25,6 +28,12 @@ ) +@app.get("/", response_class=HTMLResponse, include_in_schema=False) +async def ui() -> HTMLResponse: + """Browser UI for interacting with the QED Math environment.""" + return HTMLResponse((Path(__file__).parent / "ui.html").read_text()) + + @app.get("/healthz") async def health() -> dict[str, str]: """Lightweight service health endpoint for basic orchestration checks.""" diff --git a/server/ui.html b/server/ui.html new file mode 100644 index 0000000..3ccc30a --- /dev/null +++ b/server/ui.html @@ -0,0 +1,327 @@ + + + + + + QED Math Environment + + + + + + +
+
+ + QED Math Environment +
+ Connecting… +
+ + +
+ + +
+ + +
+

Current Problem

+
+ No problem loaded. Click Reset or Get Problem. +
+
+ + +
+

Your Proof

+ +
+ + +
+ + + + +
+ + + + + +
+

Current State

+
+
+ Status + +
+
+ Episode ID + +
+
+ Step Count + 0 +
+
+ Attempt + +
+
+
+ +
+ + +
+ +

State Observer

+ + +
+

Current Observation

+
+ Awaiting first action… +
+
+ + +
+

Action History

+
+

No actions taken yet.

+
+
+ +
+ +
+ + + +