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.
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.93The 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.
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.
Ask the interface.
Try a read, a protected mutation preview, and a request that needs deeper reasoning.
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.