All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Any model can name another model as its backup. The gateway tries the backup when the model is offline, rate limited, or its upstream fails before the client has received anything. The response reports the requested model, so the client sees no switch. The request log records each failed attempt and the address that served the request, and the cost uses the backup's prices.
LMR dashboard
The management UI for the gateway. Vite + React + TypeScript, styled with
Tailwind utilities and a small set of component classes in src/index.css.
Develop
npm install
npm run dev # http://localhost:5173, proxies /api, /v1 and /auth to :8080
Run the Go server next to it, or use make dev from backend/.
Build
npm run build # type-checks, then writes ../internal/web/dist for go:embed
Layout
| Path | Purpose |
|---|---|
src/lib/api.ts |
Typed API client, token storage, OIDC re-login on 401 |
src/lib/format.ts |
Number, cost, time and token formatting |
src/components/ui.tsx |
Shared primitives: cards, buttons, inputs, badges, modal, toasts |
src/components/VolumeChart.tsx |
Request volume line chart with hover tooltip |
src/components/Layout.tsx |
Sidebar, header, health indicator |
src/pages/ |
One file per route |