Jev Router Lab

Jev picks the best option from a fixed list and reports how sure it is. It never calls a tool and never generates text. Jev decides, your code executes.

Checking API key…
1 · Request
⌘/Ctrl + Enter
2 · Options (tools)4 options · Jev may only pick one of these ids

Required fallback option. The router throws if this id is missing from the list.

API key○ none · demo mode

Use your own TypeSafe key without editing .env.local. It is saved in this browser only, sent to this app's server as a header on each routing call, and forwarded to TypeSafe. It is never shown on screen, so the UI stays safe to stream.

3 · Decision

Run a routing decision to see Jev's pick, its confidence, the full score breakdown, and what your code would execute.

How the boundary works
  1. The app posts the input and the option list to /api/route.
  2. createRouter checks that the fallback option is present, then asks Jev one choice question whose options are exactly the option ids.
  3. Jev returns a pick, a probability per option, and a confidence. Anything not in the list is rejected as an invalid route.
  4. Below the threshold, the fallback policy runs: safe default (model) or ask the user (tool). The decision is logged.
  5. The library returns an option id. Executing it is your code's job. This demo only prints what it would do.
4 · Routing history

No routing decisions yet. Every run is logged here: input, options, pick, confidence, fallback.

Built on TypeSafe's Jev. Unofficial demo. Source in lib/, UI in components/.