Noul
Check a reply.
A Noul question asks a yes/no question and returns the probability of yes. Here it checks one narrow thing: does a draft reply address every explicit request in the customer's message?
Noul
Check a reply
Probability: 0.95
Likely addresses all requestsJev Guide's label, not TypeSafe's
- Yes95.0%
Jev returns only the probability above; the plain-language label is this page's own reading of it, not an official threshold. This checks explicit requests only. It does not verify facts in the reply, confirm that any described action was actually taken, or explain what, if anything, was missed — Jev returns a probability, not a generated explanation.
Not a live or recorded response — shown to illustrate the shape of an answer.
Build this
import { noul, TypeSafeClient } from "@typesafe-ai/sdk"; const client = new TypeSafeClient(); // reads TYPESAFE_API_KEY, defaults to jev-latest const customerMessage = "Can you refund my last payment and send me a confirmation email once it's done?";const draftReply = "I've processed a refund for your last payment. You'll receive a confirmation email at the address on file within the next few minutes."; const { answers } = await client.systemOne({ state: { customer_message: customerMessage, draft_reply: draftReply }, model: "jev-latest", questions: { addresses_requests: noul( "Does the draft reply address every explicit request the customer made in their message?", { true: "The reply responds to each specific thing the customer explicitly asked for", false: "The reply ignores, skips, or only partly addresses one or more of the customer's explicit requests", }, ), },}); const { noul: coverage } = answers.addresses_requests; // A value near 1 is a strong yes, near 0 a strong no, near 0.5 means Jev is unsure.if (coverage >= 0.7) { console.log("Likely addresses all requests.", coverage);} else if (coverage <= 0.3) { console.log("Likely misses a request.", coverage);} else { console.log("Unclear — check both messages yourself.", coverage);}Type-checked against @typesafe-ai/sdk 0.6.0 as part of this site's build. Not executed against the live API by this guide.
npm install @typesafe-ai/sdk — requires Node.js 20+. Set TYPESAFE_API_KEY in your environment.
Keep TYPESAFE_API_KEY on the server. Never embed it in client code or ship it in a browser bundle.
What this does and does not check
The returned probability says whether the reply engages with each thing the customer explicitly asked for — not whether the reply is factually correct, whether it is polite, or whether the action it describes was actually taken. The “Action taken, detail missing” sample above is written to show that gap: the reply fixes the underlying problem but never states the specific number the customer asked for. Whether Jev actually scores that as partial coverage is what the probability above reports — illustrative values are hand-authored guesses at that pattern, not measured output.
Jev returns a single number, not a list of what was missed. This page does not generate one either — inventing an explanation the model did not produce would be misleading. If coverage looks incomplete, read both messages yourself.
A narrow check, not a gate
Treat this as one signal among several before a reply goes out automatically — combine it with your own rules for anything customer-facing, refund-related, or otherwise high-stakes.