Spaces:
Running
Running
| from __future__ import annotations | |
| import argparse | |
| from typing import Any | |
| import requests | |
| from fastapi.testclient import TestClient | |
| from email_triage_env.baseline import run_baseline | |
| from email_triage_env.server.app import app | |
| def _validate_local() -> dict[str, Any]: | |
| client = TestClient(app) | |
| health = client.get("/health") | |
| health.raise_for_status() | |
| reset = client.post("/reset", json={"task_id": 1, "seed": 7}) | |
| reset.raise_for_status() | |
| manifest = client.get("/manifest") | |
| manifest.raise_for_status() | |
| baseline_response = client.get("/baseline") | |
| baseline_response.raise_for_status() | |
| baseline = run_baseline().model_dump() | |
| return { | |
| "mode": "local", | |
| "health": health.json(), | |
| "reset_ok": True, | |
| "manifest": manifest.json(), | |
| "baseline_endpoint": baseline_response.json(), | |
| "baseline": baseline, | |
| } | |
| def _validate_remote(base_url: str) -> dict[str, Any]: | |
| session = requests.Session() | |
| health = session.get(f"{base_url}/health", timeout=30) | |
| health.raise_for_status() | |
| reset = session.post(f"{base_url}/reset", json={"task_id": 1, "seed": 7}, timeout=30) | |
| reset.raise_for_status() | |
| tasks = session.get(f"{base_url}/tasks", timeout=30) | |
| tasks.raise_for_status() | |
| manifest = session.get(f"{base_url}/manifest", timeout=30) | |
| manifest.raise_for_status() | |
| baseline = session.get(f"{base_url}/baseline", timeout=30) | |
| baseline.raise_for_status() | |
| return { | |
| "mode": "remote", | |
| "health": health.json(), | |
| "reset_ok": True, | |
| "tasks": tasks.json(), | |
| "manifest": manifest.json(), | |
| "baseline": baseline.json(), | |
| } | |
| def main() -> int: | |
| parser = argparse.ArgumentParser(description="Validate the OpenEnv email triage submission.") | |
| parser.add_argument("--base-url", help="Optional live base URL to validate instead of the local app.") | |
| args = parser.parse_args() | |
| result = _validate_remote(args.base_url.rstrip("/")) if args.base_url else _validate_local() | |
| print(result) | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |