Skip to content

Add offline SimBoard bridge example (Chrysalis)#70

Merged
rajeeja merged 1 commit into
mainfrom
rajeeja/simboard-bridge-example
Jul 8, 2026
Merged

Add offline SimBoard bridge example (Chrysalis)#70
rajeeja merged 1 commit into
mainfrom
rajeeja/simboard-bridge-example

Conversation

@rajeeja

@rajeeja rajeeja commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Adds a self-contained, runnable example of the SimBoard → uxarray-mcp workflow and commits the simboard_bridge prototype (which was previously untracked in git).

Context

The SimBoard REST API contract this bridge targets — the -api subdomain and /api/v1 prefix — is now documented upstream in E3SM-Project/simboard#246 (merged). This example showcases that contract end to end.

What's here

  • prototypes/simboard_bridge/example.pyoffline demo:
    1. simboard_list_simulations(machine="chrysalis", status="completed") — discovers a run (SimBoard responses mocked with the documented JSON shapes; no network).
    2. simboard_get_paths(sim_id) — resolves /lcrc/group/... artifact paths + machine identity (Chrysalis / ANL-LCRC / Slurm).
    3. run_analysis(operation="inspect_mesh") and calculate_area — runs locally on a synthetic healpix:2 grid, so no HPC endpoint or data files are needed.
  • README.md — links the upstream PR and documents the offline example next to the existing live smoke test.
  • client.py / tools.py / smoke.py — the prototype itself, now committed (reformatted by ruff on first commit).

The demo uses Chrysalis (an endpoint we can actually reach) as the target machine; nothing in the example requires Perlmutter or Chrysalis access to run.

Scope

This stays under prototypes/ and is not wired into the registry — it remains a proof of concept, consistent with the existing README.

Verification

  • uv run python -m prototypes.simboard_bridge.example — runs clean, offline.
  • uv run pre-commit run --files prototypes/... — ruff + format pass.
  • uv run mypy prototypes/simboard_bridge/ — no issues (5 files).

Commit the simboard_bridge prototype (previously untracked) and add a
self-contained, offline example of the SimBoard -> uxarray-mcp workflow.

The SimBoard REST API contract this bridge targets (the -api subdomain
and /api/v1 prefix) is documented upstream in E3SM-Project/simboard#246.

- example.py: mocks the SimBoard /cases and /simulations responses, walks
  simboard_list_simulations -> simboard_get_paths, then runs run_analysis
  (inspect_mesh + calculate_area) locally on a synthetic HEALPix grid.
  No network, no HPC, no data files required. The demo run targets
  Chrysalis (ANL/LCRC) with /lcrc/group paths.
- README.md: link the upstream PR and document the offline example
  alongside the existing live smoke test.
- client.py / tools.py / smoke.py: reformatted by ruff on first commit.
@rajeeja rajeeja merged commit c086642 into main Jul 8, 2026
7 checks passed
@rajeeja rajeeja deleted the rajeeja/simboard-bridge-example branch July 8, 2026 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant