Frenti field note · System One AI

Jev + Next.js: Typed Decisions for Adaptive UI

We put Jev in front of a tiny Next.js finance app to test a different AI architecture: the model decides, ordinary code acts, and React presents.

Peter WD||7 min read|Generative UI
#Jev#Next.js#Generative UI#Tool Calling#System One AI

A semantic classifier for deterministic UI routing

Most AI interfaces make a large language model interpret the request, choose a tool, generate arguments, explain the result, and often decide what the interface should look like. That works, but it makes every interaction inherit the cost, latency, and unpredictability of generation.

TypeSafe's Jev model suggests another primitive: fast semantic decisions that normal software can use directly.

Instead of generating arbitrary text, Jev evaluates typed questions against application state. A Choiceselects from known options, a Score places the state on a defined scale, and a Noul returns the probability that a proposition is true.

state → Jev → typed decisions + probabilities

tool:               getOutstandingInvoices  0.94
surface:            bar_chart               0.91
needs_confirmation: false                   0.98
needs_reasoning:     false                   0.93

The questions are evaluated independently against the same state. The surrounding application owns the workflow, thresholds, permissions, and side effects.

The model chooses. The tool does the work.

In this proof of concept, Jev can route to registered tools for revenue, outstanding invoices, customer lookup, or a refund preview. It simultaneously chooses one trusted React surface and estimates whether the request needs confirmation or a slower reasoning model.

User intentJevToolReact

No React is generated. No HTML is invented. Jev picks from a component registry that already meets the product's design, accessibility, and security constraints.

We think adaptive UI is a more useful name for this than generative UI.

Interactive prototype

Ask the interface.

Try a read, a protected mutation preview, and a request that needs deeper reasoning.

Choose an example or enter a request. No financial system is connected.

Run a prompt to watch the application choose a tool, a trusted surface, and a safety path.

The interesting part is control.

“Who owes us the most?” can take the fast path: Jev to tool to chart. “Refund Acme's latest invoice” must stop at a deterministic confirmation boundary. “Why is revenue declining?” can escalate because the answer needs analysis rather than routing.

if (
  decision.needsConfirmation > 0.8 ||
  decision.tool.choice === "refundInvoice"
) {
  return renderConfirmationPreview();
}

That separation matters. Jev can classify the request and propose a surface, but application code owns the policy boundary. Schema validation guarantees an allowed decision shape; it does not make the model's judgment authoritative.

What this small demo teaches quickly

  • Whether closed-set tool routing is accurate enough for your domain.
  • How probabilities behave near ambiguous requests.
  • Where confidence thresholds should trigger review or confirmation.
  • Which interactions can skip a large language model entirely.
  • How a trusted component registry changes the feel of AI software.

TypeSafe reports roughly 70–500 ms end-to-end latency and much lower cost for appropriate System One workloads. These are vendor-reported early-access claims, not independently verified Frenti benchmarks. The next step is measurement on your own traffic.

Source material

TypeSafe: Introducing System One Models & Jev TypeSafe documentation TypeSafe HTTP API quick start

Build adaptive AI into your product

Frenti turns model decisions into controlled, testable product workflows with interfaces your team already trusts.

Start a conversation