Spaces:
Running
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) | |