System status
What is configured, not what it is configured to. No endpoints, key prefixes, or model names appear here.
Pricing — works without any key
Rate cards loaded
11 cards, 3 zoned. The calculator and agenda builder are fully functional on these alone.
Directions provider
No GOOGLE_MAPS_API_KEY. Everything still prices — ZIPs are entered manually instead of resolved. The app never guesses a ZIP, because on a zoned card the ZIP is the price.
Drafting — needs the router
9router configured
ROUTER_BASE_URL or ROUTER_API_KEY missing. Mint a key in the 9router UI and set both in .env.
Task models assigned
extract unset · analyze unset · draft unset. Names pass through to the router untouched.
Hermes agent reachable
Sidecar responding on the internal network. Proposal-only, no published port.
Deliberate design
- Pricing never calls a model. Rates come from the cards and the arithmetic is deterministic. A price in a bid is a binding offer.
- Rate tables stay server-side. The browser gets card names and vehicle lists; figures arrive only inside a quote you asked for.
- Liveness is separate from readiness. An unconfigured app still routes, so you can reach the page that tells you what is unconfigured.