Tools & Plugins / Tools
TypeSafe Jev
TypeSafe Jev is an evaluation model.
It takes state plus typed questions and returns calibrated probabilities. It
cannot chat, write text, or call tools, so it is not a chat model in Genesis.
The bundled typesafe plugin uses it in three opt-in ways:
- Tool router. Inside a browser or computer-use loop (the latest tool result
came from
browseror a computer-use style MCP server such ascomputer-use,desktop, orclaude-in-chrome), Jev checks whether the next step can run without an LLM call. One request decides the whole step.- Browser: Jev reads the numbered elements (
[ref=eN]) from the latest snapshot and picks a fresh snapshot or the element to click. - Computer use: MCP use tools whose arguments are all enum, const, or boolean (for example a screenshot) run with Jev-picked arguments. Coordinate clicks, typing, and navigation stay with the main model.
- Otherwise, and on low confidence, errors, or timeouts, the main model is
called exactly as it would be without the router. The router never
changes
tool_choice, thinking, or the tool list, so provider prompt caches keep hitting. Outside use loops Jev is not called at all.
- Browser: Jev reads the numbered elements (
- Exec safeguard. Before every
execcall, Jev rates the command's system impact as high, medium, or low. A high verdict at or aboveblockConfidenceblocks the command; medium (or a less certain high) asks for approval; low leaves it alone. It runs alongside the built-intools.exec.safeguardheuristics and approvals and only ever tightens them. On Jev errors or timeouts the command runs under the normal exec rules. jev_evaluatetool. Lets the agent ask Jev boolean, choice, and score questions directly.
Backends
| Backend | Endpoint | Key |
|---|---|---|
typesafe |
https://api.typesafe.ai/v1/systemone |
apiKey in plugin config, or TYPESAFE_API_KEY |
vercel-ai-gateway |
https://ai-gateway.vercel.sh/v4/ai/evaluation-model |
Vercel AI Gateway provider key |
openrouter |
https://openrouter.ai/api/alpha/decisions (alpha) |
OpenRouter provider key |
backend: "auto" (default) uses the first backend with a key, in the order
above. Vercel and OpenRouter reuse the keys you already configured for those
providers.
Configure
In the Control UI, open Config → Plugins → TypeSafe Jev, pick the backend,
and switch Enable Jev tool router on or off. Turning the router on needs a
gateway restart (the Control UI offers one when you apply). Turning it off,
switching backends, and changing thresholds apply to the next model call.
Enable Jev exec safeguard works the same way: on needs a restart, off and
threshold edits apply to the next exec call.
{
plugins: {
entries: {
typesafe: {
config: {
backend: "auto", // or "typesafe" | "vercel-ai-gateway" | "openrouter"
jevRouter: {
enabled: true,
minConfidence: 0.6, // below this, the model decides
maxConsecutiveDirectCalls: 8, // model-free tool calls in a row per run
timeoutMs: 3000,
},
jevSafeguard: {
enabled: true,
blockConfidence: 0.8, // below this, a high verdict asks for approval instead
timeoutMs: 5000,
},
},
},
},
},
// jev_evaluate is optional, so allowlist it explicitly.
tools: { alsoAllow: ["jev_evaluate"] },
}
The router works with any main model and provider.
Tool results (for example web page text) become part of the state Jev reads, and
Jev does not treat that content as untrusted. Model-free calls are limited to
closed-set arguments and snapshot elements, and still pass through tool policy,
before_tool_call hooks, and approvals. A browser click is a side effect: a
hostile page can steer which element looks right. Keep approvals on for tools
with side effects and lower maxConsecutiveDirectCalls for untrusted sites.