Spaces:
Running
a11oy operator console (SPA)
A small, self-contained operator console for a11oy with 5 working routes,
each backed by a real a11oy serve HTTP endpoint.
| Route | Label | a11oy endpoint |
|---|---|---|
/ |
Health | GET /healthz + GET /readyz |
/ledger |
Proof Ledger | GET /v1/ledger?limit=N |
/receipt/:hash |
Receipt | GET /v1/ledger/{hash} |
/verify |
Verify | POST /v1/verify |
/policy |
Policy | POST /v1/policy/evaluate |
Why this exists
The mining audit recorded that a11oy's existing web surface (web/src/App.tsx,
~470 lazy imports) depends on ~30 platform workspace packages that are not part
of this repository, so it cannot build here. The audit's instruction was to
give the SPA the 5 working routes from the mined route surface rather than
resurrect the dead-import surface.
This console is that deliverable. The 5 routes are derived from the mined a11oy
MCP/CLI route surface and wired to the HTTP endpoints a11oy actually serves
(see packages/receipt-substrate/src/serve.ts, the a11oy serve subcommand).
The legacy surface in web/src/ is left in place (Operating Principle #10:
annotate stale content, do not silently delete). This console is additive and
self-contained: its only dependencies are react, react-dom, and wouter.
Run
# 1. start a11oy's HTTP server (the data source)
a11oy serve --port 8080
# 2. start the console (dev proxies /v1, /healthz, /readyz to :8080)
cd web/console && npm install && npm run dev
Point at a remote substrate with VITE_A11OY_BASE_URL=https://a11oy.example.
Test
npm test # node --experimental-strip-types src/a11oyClient.test.ts
The test boots a real node:http server matching the a11oy serve route
contract and exercises every route's backing call over real TCP via Node's
global fetch — no transport mock.
License
Apache-2.0 © 2026 SZL Holdings (Stephen P. Lutar Jr., ORCID 0009-0001-0110-4173)