Guide contents
Other resources

Research report · work in progress

Jev
probabilistic evaluations for software

Jev evaluates the application’s context and questions. It returns probabilities, with a selected option for Choice or a weighted score for Score; code decides what happens next.

Work in progress · Jev 1.14 and competitors included October 28, 2026 · No Jev API calls

Example: triaging a support ticket

  1. The application sends“I was charged 2 times.”
  2. It defines the optionsBilling · Technical · Other
  3. Jev evaluatesA probability for each option
  4. The code decidesRoute the ticket or request a review

The response is intended for the program. An LLM can then write the message for the customer. Illustrative example, with no real API call.

Key takeaways

Open the glossary

Terms with a dotted underline show their definition on hover, keyboard focus or tap.

I

Understanding Jev

01

The application asks questions, Jev returns values

Application → Jev → application: the program supplies the question and uses the answer.

An interface between software systems TypeSafe designs Jev for exchanges between models and software. Here, “machine to machine” means an application or agent calls an API and uses its response in code. A person may make the original request, define the rules or review a case; Jev’s response serves the program directly.

A person can write a ticket without making Jev their conversation partner. The software extracts the relevant context, calls Jev and reads the values. It can then display a suggestion to that person, trigger an authorized process or ask an LLM to draft a reply. This separation explains the product’s appeal: some steps need a category rather than a conversation.

To triage a GitHub issue, you can supply its contents and a list of categories. With Choice, Jev returns the selected option and the associated probabilities. Your application uses the result to suggest a destination. This is an example of using the API described by TypeSafe.

The call contains shared context, called the state, and 1 or more questions. The program specifies the expected form: a choice from a list, a rating on a scale or the probability of a yes answer. It can process the result without extracting a category from a paragraph.

One API request, shared context and independent questions. Probabilities and the predicted category are Jev outputs; rules, thresholds and the handling decision belong in code. Fictional answers. Measuring accuracy, calibration and the share of handled cases requires cases with reference answers.

These 4 original infographics take inspiration from Daniel Moka’s Jev Engineering 101, published September 22, 2026. They show one way to organize an application’s work, without describing Jev’s internal components. Images generated with OpenAI and reviewed; example values are fictional.

From the API result to an action

4 methods to compare
ApproachResultWhen to try itWhat to check
Rule or BM25 searchMatch or lexical scoreThe criterion can be written down and computed locally.Missed paraphrases, maintenance cost and local computation.
Supervised classifier with fixed classesClass and score, sometimes a probabilityLabeled examples are available and categories rarely change.Labeling, retraining, rare classes and calibration.
JevProbabilities and typed values: a Choice option, a Score rating or the probability of yes with NoulCriteria and options are supplied in each call.Missing options, errors, probabilities and total cost.
LLM with constrained outputStructured data and, if requested, textThe task also requires writing or open-ended extraction.Correctness, schema validation, cost and latency.
Jev supplies evaluations; code owns the decision policy, thresholds and permissions. An LLM can also classify and produce structured output. The program chooses which models to call and in what order.

An agent can use this API to choose a destination or assess a document, then hand the writing or investigation to another model. Using Jev for a specific step does not demonstrate that it can replace the model driving Claude Code.

On small screens, diagrams can scroll horizontally. Figures can be enlarged to read their labels.

02

Updated · Version 0.20.0

TypeSafe and Jev launch timeline

Jev entered early access on September 15, 2026. Platform availability dates are separate.

These details describe the company; they do not validate its model’s performance.

Dated milestones
DateEventSource and scope
2024TypeSafe’s stated founding year.Company press release distributed by Business Wire.
September 15, 2026Jev launches in early access.Launch post, by Diogo Almeida.
September 15, 2026$40 million funding round led by DCVC.Investor announcement, from a party with a stake in the product’s success.
September 16, 2026Jev announced on Vercel AI Gateway.Vercel changelog.
September 17, 2026Date of the ASSAY-001 responses; displayed update date for Jev 1.13’s known limitations.2 separate observations: a test run and a documentation page.
September 18, 2026Date displayed in the OpenRouter catalog.Platform listing, not the model’s initial release date.
September 21, 2026Research cutoff for the initial edition.Later versions, terms and results may change this report.
September 28, 2026Ollama 0.35 serves decision models through /v1/systemone, based on Jev’s API: Nimble from Bespoke Labs and Tev1 from Together AI.Ollama release note; these are not Jev’s weights.
October 1, 2026Cloudflare releases Clef and Clef-flash on Workers AI, with Apache 2.0 weights; Strands Labs, part of AWS’s Strands Agents SDK project, releases Strands Decider 2B.Cloudflare changelog; Strands Decider repository.
October 6, 2026OpenAI opens the Decisions API in beta with gpt-6-luna.OpenAI changelog.
October 9, 2026$870 million Series A at a $7.5 billion valuation, led by Andreessen Horowitz.TypeSafe announcement; the amount appears in a footnote.
October 9, 2026Cloudflare adds Clef-omni (audio and video) and cuts Clef-flash’s price.Cloudflare post.
October 14, 2026Jev 1.14 under jev-preview; images, the Box type and long context behind experimental headers.TypeSafe post.
October 22, 2026The Decisions API becomes generally available, with up to 400 questions per request.OpenAI changelog.
October 28, 2026Research cutoff for version 0.20.0.Aliases, prices and rankings cited here may change after this date.

Diogo Almeida is a coauthor of InstructGPT. The viral label “co-inventor of ChatGPT” reduces collective work to personal credit; the author list does not establish “lead author of InstructGPT” either. The relevant bibliographic fact is his contribution to this work on learning from human feedback.

These references explain the product’s name; they do not describe its neural layers. TypeSafe’s explanation of the names.

03

Updated · Version 0.20.0

Choice, Score and Noul

Choose a category, rate a result or ask a yes/no question.

Three independent questions and fictional values. Choice returns a predicted category with its probabilities; Score, a weighted mean and probabilities across levels; Noul, the probability of yes. Selecting an option in the answer triggers no business action. Code rules and thresholds determine how to handle the case.
The 3 response types
TypeSuitable questionResponse
ChoiceWhich of the supplied options should be selected?An option, the options’ probabilities and a separate confidence field. Documented maximum: 255 options.
ScoreWhich level on a scale where each level is described?Probabilities across levels, a weighted value in score, the levels in legend and a separate confidence field. The score is not a probability of yes.
NoulIs this proposition true?The probability of yes, between 0 and 1. No separate confidence field.

The documentation describes Choice, Score and Noul.

Same ticket, 3 different questions
Application needQuestion typeIllustrative example
Choose a teamChoiceBilling, account access, technical incident, other. Choice predicts a category. If several issues coexist, separate questions let code apply its handling priority.
Assess impactScore0: no impact described; 1: inconvenience with a workaround; 2: feature unavailable; 3: several users blocked. An average of 1.7 is still a rating on this scale.
Check a criterion independently of the othersNoulDoes the message mention a declined payment? Another question can separately ask about being unable to sign in.
Independent questions Several questions can share the same context. Within a single call, this does not mean the answer to question A will be passed to question B. If B depends on A, plan successive steps in your program.
DIAGRAM · An application queries Jev
Calling Jev and processing its response are exchanges between software systems. A person reviews the cases specified by the application’s rules.
Distinguish “other” from “insufficient information” An “other” category covers cases outside the taxonomy; “insufficient information” covers missing context. These are 2 different situations. Including them among the choices does not guarantee that Jev will select them at the right time. Detecting them is part of the test.
Box and images: experimental options since Jev 1.14 The October 14 post adds a box type that returns a rectangle (top, bottom, left, right, as fractions of the image) and a confidence. It has no “not found” answer: the documentation suggests pairing it with a Noul question. Box requires jev-1.14.0. Images, also accepted by jev-1.13.0, and Box require the TypeSafe-Danger-Zone-Images: true header. TypeSafe says they are not yet ready for production.
04

Probabilities and confidence

Jev can assign a high probability to a wrong answer.

An option’s probability and the confidence field answer 2 different questions.

To assess Choice calibration, take the cases where the selected option receives a probability close to 80%. Compare that number with the proportion of answers that are correct. This is an illustrative example: no Jev result is measured here. With Noul, instead check whether events to which Jev assigns a yes probability close to 80% occur in roughly 80% of cases.

3 numbers, 3 interpretations
Fictional numberWhat it expressesWhat it does not establish
P(billing) = 0.80Probability assigned to the billing option in this call.This specific ticket was routed correctly.
confidence = 0.80Value of a measure of distribution concentration.An 80% chance of being correct.
80 correct answers out of 100 at P ≈ 0.80Observed frequency consistent with the probability in this group, subject to sampling uncertainty.Good calibration across all classes, probability levels and domains.
DIAGRAM · Same prediction, different results
Fictional figures, no Jev result. The same probability level can be consistent in 1 domain and overestimate success in another. 100 cases do not provide an exact population frequency.

These comparisons require reference answers, enough examples and a test set that was not used for tuning. Guo et al., 2017 discusses calibration methods. A good average on 1 dataset guarantees neither each decision nor results in another domain.

DIAGRAM · 4 separate measures
4 distinct checks; none automatically follows from another. Format can be checked on a single response; calibration and the value of automation are assessed across a set of cases.

Also measure coverage: what share of cases does the application handle without review? A system that leaves almost everything to a person can make few errors while automating very little. SelectiveNet studies this tradeoff. Ovadia et al. examines what happens to uncertainty measures when the data changes. These studies are not about Jev.

TypeSafe’s “0 hallucination” claim The launch post initially claims that Jev cannot hallucinate. Yet its section on types specifies that the displayed 0 is not empirical: it represents the schema compliance claimed by the vendor. The figure therefore does not measure decision errors. A category allowed by the schema can be the wrong category.

TypeSafe also states in its launch post that higher confidence accompanies higher accuracy. This relationship can be tested: the ASSAY-001 responses allow accuracy and coverage to be measured after filtering by confidence. That does not turn this field into a probability of success; the measurement chapter details the 2 calculations.

The “Measured probabilities and confidence thresholds” chapter distinguishes 2 measures: calibration of the selected option’s probabilities and accuracy of answers retained by a confidence threshold. The ASSAY-001 data allows both to be recalculated; Agent Journal reports the second on a different task.

Videos sometimes lose this distinction: Fireship at 03:15 equates confidence with the frequency of correct answers. The video chapter corrects this explanation and retains the original passage.

05

What TypeSafe discloses about how Jev works

TypeSafe describes its training objective, but the documents found are not enough to reproduce the model.

An autoregressive generative LLM builds its response by predicting the next tokens from the context and what it has already produced. This is the process described in Hugging Face’s generation documentation. The output can be free text or JSON, potentially constrained by a schema.

TypeSafe announces a new architecture and parallel sampling in its launch post. The API receives a state and typed questions, then returns their results. According to the vendor, outputs are computed in parallel rather than generated token by token. The diagram compares this claimed behavior with an autoregressive LLM; it does not describe Jev’s internal components.

The stated distinction concerns intended use: Jev provides typed answers and probabilities that code uses in its decision logic. An LLM can also be called by software and produce structured output; in a conversation, a person reads its text. The recipient of the response and the way the model produces it are therefore separate considerations.

DIAGRAM · 2 ways to produce a response
Simplified comparison between a common generation loop and the Jev API’s inputs and outputs. The dashed block represents internal details not described by the sources reviewed. Arrows indicate neither computation time nor a number of passes through the neural network.

TypeSafe calls its training method RLCD, for Reinforcement Learning for Calibrated Decisions. Its technical introduction outlines the objective. “System One” names the model family; it does not describe a published architecture.

The research for this report found no publication with enough detail on the architecture, data and training objective to reproduce Jev. Other documents may exist beyond this scope. In the ThursdAI interview at 05:59, the TypeSafe representative discusses RLCD without disclosing the architecture. Describing Jev as a model “without internal reasoning” would go beyond the available information.

9 background publications, no recipe for Jev
PublicationContribution to testingRelation to Jev
Guo et al., ICML 2017Calibration and reliability diagramsMeasurement framework, not a Jev implementation
SelectiveNet, ICML 2019Error among accepted cases and coverageAbstention framework
Ovadia et al., 2019Uncertainty under distribution shiftReason to test in French, English and outside the target domain
BERT, NAACL 2019Text representation for classificationPrior work; no established link to Jev’s internal architecture
ModernBERT, 2024Model to compare for text processing and classificationIts task adaptation has a cost to include
RouteLLM, ICLR 2025Final quality and routing costRelated task
InstructGPT, 2022Diogo Almeida’s contribution to RLHF workBiographical context, not a Jev paper
SCX Router, 2026Routing without autoregressive generationAbstract only; PDF not acquired
Rewarding Doubt, v6Learning confidence through a logarithmic reward; PDF acquired and selected passages studiedBackground work, with no established lineage to Jev
How the publications were researched
  • The initial collection yielded 7 PDFs totaling 151 pages. Rewarding Doubt adds a 17-page PDF in this revision: 8 PDFs and 168 extracted pages in total.
  • The research logs identify the passages studied; not every page received an exhaustive reading.
  • SCX Router has still been consulted only as an abstract.

Paper Insights found no local result for Jev or TypeSafe in the corpus queried. Its remote arXiv searches failed; that failure is not a negative search result. The PDFs were acquired separately from their publishers or authors.

The abstracts of DeepSeek-R1 and Tülu 3 supplement this selection without counting as acquired PDFs. The next chapter explains their relation to Jev’s training.

Related resources from my work To place this type of decision in an agent workflow, my guide Designing an agent’s loops and steps (EN) explains where to define steps, stopping conditions and responsibilities.
06

RLCD compared with established training methods

The method’s name provides neither its recipe nor a guarantee about the probabilities returned.

DIAGRAM · What guides training?
Simplified comparison of signals and objectives. Dashed lines indicate that the sources reviewed do not detail the RLCD recipe. Whatever the method, calibration still needs to be measured on held-out test cases.
Different objectives
MethodSignal usedLimit of the comparison with Jev
Supervised learningLabeled examples; a loss function can train a probability distribution.Classifiers are not limited to maximizing the rate of correct classes. Their calibration still needs to be measured.
RLHFHuman feedback, often through preferences and a reward model.InstructGPT describes work to which Diogo Almeida contributed; it is not Jev’s published method.
RLVRReward based on verification, for example a checkable answer or outcome.DeepSeek-R1 and Tülu 3 provide context without describing TypeSafe’s model.
RLCDStated objective of calibrated decisions.The exact reward, data, ablations and internal components are not detailed in the sources reviewed.

A conventional loss function can already encourage correct probabilities. For an event with true probability q, the expected logarithmic score q·log(p) + (1−q)·log(1−p) is maximized at p = q. This theoretical result does not guarantee that a model trained on finite data will be calibrated in a new domain. The formula illustrates a principle; it is not attributed to RLCD.

The paper Rewarding Doubt, version 6 studies learning confidence expressed in text, using a logarithmic reward and PPO.

No published link to Jev has been established.

The abstracts and version histories of DeepSeek-R1 and Tülu 3 provide additional post-training context. Their experiments were not audited for this report. They provide no evidence about Jev’s parameter count, backbone or training data.

In the TechCrunch interview from September 18, Diogo Almeida says Jev is trained exclusively on synthetic data. This remains a reported claim: neither the corpus nor its generation procedure was audited here. Synthetic data can also derive from other models or existing sources; the label does not demonstrate that benchmarks are free from contamination.

Information still missing to reproduce Jev
ItemWhat a publication should specify
ArchitectureComponents, dimensions, parameter count and computation performed at inference.
TrainingReward, optimization, data and training stages.
CalibrationTarget event, metrics, held-out datasets and results by domain.
AblationsSeparate effects of the architecture, data and training method.
ReproductionWeights or versioned access, code and a sufficiently precise protocol.
No publication found in this research No paper detailing Jev or RLCD was identified in the searches and official sources reviewed as of September 21. A search engine with no results, an arXiv access error or no weights found in a Hugging Face search does not prove universal absence.
07

Calling the API and reading its responses

A complete HTTP example, followed by useful differences in the Python and TypeScript SDKs.

The HTTP reference documents POST https://api.typesafe.ai/v1/systemone, with a Bearer token and a JSON body containing model, state and questions. GET /v1/models lists models: /v1/systemone is therefore not the entire service’s only route.

Illustrative request and response

The ticket below mentions a failed payment and blocked account access. Choice evaluates the main category; its answer does not set the handling priority. To detect both issues and apply a priority in code, see the offline demonstration in the tutorial.

  • The 2 JSON objects were syntax-checked; this chapter’s SDK examples were reviewed against the client source code, without execution.
  • The First call tutorial uses a different Python script, executed with the installed SDK and a mock transport.
  • No Jev call produced the displayed values.
  • An API key must remain in the server environment.
JSON body: 3 questions about a ticket
JSON POST /v1/systemone · illustrative request 33 lines
{
  "model": "jev-1.13.0",
  "state": {
    "ticket": "The payment failed and I can no longer access my account.",
    "language": "en"
  },
  "questions": {
    "destination": {
      "type": "choice",
      "instructions": "Which category best describes the main subject of the ticket? Evaluate the categories using the supplied text.",
      "criteria": {
        "facturation": "Declined payment, invoice or refund.",
        "acces_compte": "Unable to sign in or account access blocked.",
        "incident_technique": "Outage or technical error unrelated to payment or account access.",
        "autre": "None of the preceding topics."
      }
    },
    "payment_failed": {
      "type": "noul",
      "instructions": "Does the message report a declined or failed payment?"
    },
    "impact": {
      "type": "score",
      "instructions": "Assess the impact described, based only on the text.",
      "criteria": [
        "No impact described.",
        "Inconvenience with a workaround.",
        "Feature unavailable to the person.",
        "Several users blocked."
      ]
    }
  }
}
Documented native fields
TypeResponseHow the program reads it
Choicetype, choice, probabilities, confidenceRead the choice and the distribution; maximum of 255 options.
Scoretype, score, legend, probabilities, confidenceScale of 2 to 10 levels; score can be fractional.
Noultype, noulnoul is a number between 0 and 1; converting it to a boolean depends on an application rule.
JSON response: the 3 answers in the same envelope

Structure matching the fields in the HTTP reference, with fictional values to illustrate how to read the response. The probabilities, confidence and token counts below are not Jev results. No confidence calculation is reproduced here.

JSON Illustrative response body · no API measurement 41 lines
{
  "model": "jev-1.13.0",
  "answers": {
    "destination": {
      "type": "choice",
      "choice": "facturation",
      "probabilities": {
        "facturation": 0.88,
        "acces_compte": 0.08,
        "incident_technique": 0.03,
        "autre": 0.01
      },
      "confidence": 0.81
    },
    "payment_failed": {
      "type": "noul",
      "noul": 0.97
    },
    "impact": {
      "type": "score",
      "score": 1.7,
      "legend": {
        "0": "No impact described.",
        "1": "Inconvenience with a workaround.",
        "2": "Feature unavailable to the person.",
        "3": "Several users blocked."
      },
      "probabilities": {
        "0": 0.0,
        "1": 0.3,
        "2": 0.7,
        "3": 0.0
      },
      "confidence": 0.6
    }
  },
  "usage": {
    "input_tokens": 500,
    "output_tokens": 80
  }
}
  • answers contains the 3 question identifiers.
  • In impact, the JSON keys “0” through “3” correspond to the positions in criteria: 0 × 0 + 1 × 0.3 + 2 × 0.7 + 3 × 0 = 1.7.
  • Noul directly provides a binary probability.
  • For Choice and Score, confidence summarizes how concentrated the distribution is; it does not give the rate of correct answers. Calibration is checked against labeled answers. Definition of confidence.

The envelope contains model, answers and usage.

Structures and error codes are listed in the native reference.

Python: reading a Choice response

The Python client exposes type-specific accessors, including response.choices. These accessors belong to the SDK; they are not keys in the native JSON response. The example includes only the destination question.

Python Python · example not executed 28 lines
"""Documentation example, not executed for this report.
Requires typesafe-sdk and TYPESAFE_API_KEY in the environment.
Example limited to the Choice question from request.json.
"""
from typesafe_sdk import Choice, TypeSafeClient

with TypeSafeClient() as client:
    response = client.system_one(
        model="jev-1.13.0",
        state={
            "ticket": "The payment failed and I can no longer access my account.",
            "language": "en",
        },
        questions={
            "destination": Choice(
                instructions="Which category best describes the main subject of the ticket? Evaluate the categories using the supplied text.",
                criteria={
                    "facturation": "Declined payment, invoice or refund.",
                    "acces_compte": "Unable to sign in or account access blocked.",
                    "incident_technique": "Outage or technical error unrelated to payment or account access.",
                    "autre": "None of the preceding topics.",
                },
            ),
        },
    )
    answer = response.choices["destination"]
    # No automatic action: thresholds need their own evaluation.
    print(response.model, answer.choice, answer.probabilities, answer.confidence)

Python SDK guide.

TypeScript: preserving options in the response type

The choice helper preserves option names in the response type: answer.choice can be facturation, acces_compte, incident_technique or autre, and probabilities has the same keys. Choice is already inferred in this example; the guard on answer.type only checks the label received at runtime. It does not validate the full response contents. The example logs a suggestion.

TypeScript TypeScript · example not executed 26 lines
// Documentation example, not executed for this report.
// Requires @typesafe-ai/sdk and TYPESAFE_API_KEY on the server.
// Example limited to the Choice question from request.json.
import { choice, TypeSafeClient } from "@typesafe-ai/sdk";

const client = new TypeSafeClient();
const response = await client.systemOne({
  model: "jev-1.13.0",
  state: {
    ticket: "The payment failed and I can no longer access my account.",
    language: "en",
  },
  questions: {
    destination: choice("Which category best describes the main subject of the ticket? Evaluate the categories using the supplied text.", {
      facturation: "Declined payment, invoice or refund.",
      acces_compte: "Unable to sign in or account access blocked.",
      incident_technique: "Outage or technical error unrelated to payment or account access.",
      autre: "None of the preceding topics.",
    }),
  },
});
const answer = response.answers.destination;
// Choice is already inferred here; this guard only checks the received type.
if (answer.type === "choice") {
  console.log(response.model, answer.choice, answer.probabilities, answer.confidence);
}

JavaScript v0.6.0 response types, choice helper.

Reproducibility and errors
ItemPractical guidance
VersionThe clients document jev-latest as the default. Request a versioned identifier such as jev-1.13.0, record the returned model and the test date. The documentation recommends pinning this way, but no commitment to immutable infrastructure was identified here.
Authentication or invalid requestDistinguish 401 and 422 from network errors. Fix the cause; repeating the same request does not necessarily resolve it.
Quota or overloadDocument 429/529, waiting and additional attempts. A transport error does not mean “no candidate.”
SDK timingTotal time may include several attempts; comparing it with server time alone would be misleading.
StabilityNo bit-for-bit guarantee was identified in the documents read. Test repetitions separately from wording variations.

These settings must accompany latency measurements. JavaScript retries, JavaScript options, Python retry policy.

Differences between the SDKs and the HTTP documentation
  • The JavaScript client permits missing or null instructions, while the HTTP reference describes them as required and non-null. The server’s acceptance of those values has not been tested; the examples avoid them.
  • The difference in usage also affects cost measurements: counters may be absent in the Python client.

Type declarations alone therefore do not establish the values actually received.

Related resources from my work My guide Routing, errors and human fallback (EN) shows how to use structured output to route processing, handle an error or request a review. A deterministic code branch does not guarantee that the model’s signal is correct.
08

Writing questions that code can use

Context, the answer list and the rules for combining results are part of the system being evaluated.

Consider this ticket: “The payment failed and I can no longer access my account.” Asking “Which team?” imposes an unwritten priority. An exhaustive list does not resolve the ambiguity. Define the business rule first: does 1 team own the incident, are multiple labels allowed, or should someone review the case?

Preparing the call
ElementPoor specificationSpecification to test
ContextOnly the title of an old issue.The title, description and evidence available at the time of the decision.
QuestionIs it important?Does the fix restore a feature used by customers, according to the supplied PR?
ChoicesFeature / Enhancement with no definitions.Categories described for classification; separate questions if issues overlap, then a handling priority applied in code.
ScaleA rating from 1 to 5 with no reference points.A description of each level with examples close to the real data.
Combining resultsThe model implicitly decides the entire policy.The code combines signals according to a written, checkable rule.

Breaking the task down can help: detect the topic, missing information and impact separately, then apply a rule. It also creates more opportunities for error.

Extraction with Choice remains limited to the candidate values. To select a date, the possible dates must already have been found or enumerated. Choosing among 3 dates does not prove that Jev can freely extract any value from a document. Check the quality of the candidate-generation step separately.

Draft an explanation from the case and check its citations An LLM can draft an explanation from the ticket, rules and proposed decision. That text does not reveal Jev’s internal reasoning. Ask the writer to cite evidence from the case, then check that the evidence is present.
II

Examining the results

09

Jev: interesting, revolutionary or a “scam”?

A service to test for specific evaluations. The scientific breakthrough remains unproven, commercial claims need comparison, and allegations of deception need evidence.

My assessment, based on sources reviewed as of September 22, 2026
DescriptionThis report’s assessmentWhy
Interesting for an applicationYes, worth testing on a specific task.Values directly usable in code and short response times can help with triage or routing. Published tests show mixed results. Errors and total cost need to be compared with rules, classifiers and LLMs suited to the same need.
Scientific revolutionNot demonstrated by the sources reviewed.Zero-shot classification already existed. TypeSafe has not published enough detail on the architecture and RLCD to establish what is new. That does not prove that nothing is new, either.
MarketingClaims that need explicit limits.The speed and price multipliers come from comparisons selected by TypeSafe. “0 hallucination” describes format compliance, not the absence of wrong decisions.
Scam / fraudAllegation not established.An API, SDKs and public tests exist. That is not enough to rule out any deception, but the criticisms collected here do not establish it. An old technique, a closed model or a wrong answer is not, by itself, evidence of fraud.
Provisional verdict as of September 21, 2026 Jev has a documented API, public SDKs and test reports accompanied by data. The sources reviewed neither establish deception that would justify the word “scam” nor confirm the claimed scientific breakthrough. Its practical value remains a measurable question: which evaluations can it provide, with what errors and at what total cost?
A classification example, followed by 2 ways to define categories. Zero-shot NLI is prior work, not a description of Jev’s architecture. Fictional result, no Jev call. Infographic generated with Gemini and reviewed; an allowed category can be incorrect.

Classification and categories supplied at call time already existed. A classifier maps an input to categories. With natural language inference, or NLI, a category can be turned into a proposition, then the model can be asked whether the text supports it. Categories therefore do not always need to be fixed in a head trained for a single task. Yin et al.’s 2019 work and the Hugging Face zero-shot pipeline provide concrete precedents to compare with Jev.

The Jev API combines Choice, Score and Noul questions over a shared state. This makes them easier to use in code without retraining a model for each set of options. The service can simplify application development even if the techniques it uses already existed. Ease of use alone does not prove a new architecture or better calibration.

Separate criticisms from facts to verify
ClaimWhat is documentedWhat remains to be established
“It’s just a classifier”Classification and zero-shot methods have precedents. Jev also returns ratings and probabilities for yes/no questions.Quality on new criteria, integration cost and the advantage over appropriate baselines.
“A new family of models”TypeSafe announces an architecture, parallel sampling and RLCD training.The full method, data and ablations needed to assess scientific novelty.
“0 hallucination”TypeSafe describes a schema-compliance guarantee and specifies that its 0% is not an empirical measurement.The rate of wrong decisions among compliant responses. An allowed option can be wrong.
“Up to 200 times faster”Launch multipliers depend on the workflows, competitors and settings chosen by TypeSafe.The gain on the reader’s workflow, at comparable quality and with the outputs their application needs.
“It’s a scam”Opacity and overly broad claims fuel criticism of the product. Published tests nevertheless allow its behavior to be examined.A specific instance of deception. An old technology, a closed model or an isolated poor result is not enough to demonstrate one.

TypeSafe’s launch post states limitations itself:

The adapter asks LLMs for probability distributions, which cost more to produce than a decision alone. Comparing the same outputs is useful for evaluating what the API returns; an application that needs only a category should also test that narrower requirement.

An API does not reveal its internal architecture The phrase “1 call” describes the interface. It does not demonstrate a single pass through a network, a parameter count or the use of ModernBERT. TypeSafe’s descriptions and open implementations inspired by Jev do not expose the same information. The lack of public detail limits the assessment of novelty; it does not demonstrate that no novelty exists.
Choose baselines that answer the same question
ApproachWhat it enablesWhat to account for
Rules and code graphCompute a relationship or apply an explicit policy. Pixel provides search, ranking and analysis based on its index.Index coverage, analysis limitations and rule maintenance. A deterministic result can still be incomplete.
Encoder and trained classifierLearn a stable task from labeled examples; also compare a lightweight head over frozen embeddings.Labeling, training, hardware, operations and changes to categories. Local operation does not have zero cost.
Zero-shot NLIEvaluate categories described at call time by constructing text/hypothesis pairs.Number and length of pairs, batch size and hardware. 77 categories do not necessarily mean 77 sequential calls.
JevSupply questions and criteria at call time, then receive typed values.Question design, local evaluation, input tokens, network, review and service dependency.
LLM with constrained outputInterpret instructions and produce fields that comply with a supported schema.Constraints actually enabled, refusals and truncation, generated tokens, reasoning settings and errors in the answer itself.
Open decision modelRun and adapt an inspectable implementation, such as Laya or an NLI engine.Quality of the exact checkpoint, fine-tuning data, calibration and local serving cost. A compatible interface does not reproduce Jev.

Claude’s structured outputs already constrain decoding according to supported schemas. The documentation details the limitations, including refusals, truncation and a casing exception for enum and const values. Distinguish an instruction to “respond in JSON,” a mode that guarantees JSON syntax and schema-constrained decoding. Portraying all LLMs as unable to follow a schema would distort the comparison. Format compliance does not guarantee a correct decision for any competitor.

Pixel is a project by Livio Gamassia. Like me, Livio is an active member of the DevWithAI community. The sources inspected are described in the chapter on community projects. Its routing, graph and explicit scores already support decisions within their scope. Embeddings add semantic search; they do not turn every result into exact evidence. No comparison run here establishes that Pixel and Jev handle all natural-language criteria with equal quality.

Public projects do not replace tests A repository shows that an author offers code. Its star count measures neither decision quality nor production use. A benchmark README is more informative when it provides the protocol, versions and raw responses. A project list, a comment and an experimental result do not count as 3 equivalent confirmations.

On Hacker News, the classifier description is accepted. On September 15, petesergeant describes Jev as a zero-shot classifier. CompleteSkeptic replies “exactly right!”. This account identifies itself as TypeSafe’s CEO in the same thread. The agreement concerns a functional description; it neither publishes the architecture nor validates the claimed performance.

The discussion also distinguishes a valid type from a correct answer. On publishing the architecture, the same account says the team has discussed a paper while keeping the details confidential. The comment provides neither a publication commitment nor a date.

The 5 Reddit threads reviewed
Public questions and reactions, consulted on September 21
Thread and communityDiscussion topicSource scope
JEV architecture · r/LocalLLaMAHypotheses about logits, architecture and the appeal of cost or speed.Participants’ interpretations; no access to Jev’s internal architecture.
Jev, generalized BERT? · r/LocalLLaMAComparison with encoders and links to classification work.Comparison leads. The thread belongs to LocalLLaMA, not accelerate.
45-second summary · r/accelerateReposts of X messages; disagreement about the classifier’s novelty.Post by stealthispost, not a test protocol.
Making it choose letters · r/accelerateReactions to using Choice to produce letters.Same posting account; a repurposed demonstration does not describe the model’s internal mechanism.
Classifying emails · r/accelerateDiscussion of the limits of the term classifier and of natural-language instructions.Same posting account; no corpus, code or measurement on the page consulted.

These 5 threads contain differing opinions and reposted material.

  • The 3 accelerate threads do not constitute 3 independent experiments.
  • The pages consulted do not allow a consensus to be estimated; their exact dates could not be confirmed from the relative ages displayed.
  • Quotations that could not be found on accessible pages were excluded.

An idea’s precedence and copying someone’s work are separate questions. Nandakishor M, the author of Laya, claims earlier work on non-autoregressive decisions. Preprint records from 2025 exist; his post also acknowledges that his first system did not handle new questions at runtime. These facts support a discussion of the claimed novelty. They do not demonstrate that TypeSafe copied his code or method. The abstracts were consulted, without auditing the PDFs.

The video analyses also compare favorable views with counterexamples: Theo’s checkers game, errors described by Gary Explains and Erwan’s comment triage. Fireship’s reservations about format are useful; his explanation of confidence needs correcting. None of these passages establishes fraud on its own.

A record round does not measure quality

On October 9, TypeSafe announced $870 million at a $7.5 billion valuation, 24 days after launch. The adoption figures are neither audited nor defined:

  • TypeSafe writes that a third of the Fortune 500 uses Jev;
  • Andreessen Horowitz, which led the round, writes that 25% have integrated it;
  • the Jack & Jill case study reports 88% lower token cost for the initial screening stage only, against Gemini 3.1 Flash Lite; the measured quality difference is not significant (90% CI from -0.4 to +1.8 points).

Open models that adopt the same interface also change the “scam” debate: the format is reproducible, and quality has to be compared task by task. See the competitors.

10

Announced pricing and speed

TypeSafe publishes a price and claims speed and cost improvements. Those gains depend on the tests and models compared.

Vendor figures and stated scope
FigureSource and conditionsWhat to measure for your use case
70 to 500 msTypeSafe's September 15 post; measurements generally taken from computers on the US West Coast, close to the service.Latency from your region, load, errors and p95.
40× to 200×; 193.6× faster and 444.6× cheaperThe post ties the last 2 ratios to the published workflows and places them at the upper end of the gains expected in practice.The same task, required outputs and resulting quality, with each comparator's settings.
$42 per billion input tokensDirect pricing, equivalent to $0.042 per million.All calls, retries and downstream processing.
Free outputsA zero output price is advertised. TypeSafe acknowledges that only time will tell whether this price is sustainable without subsidies.Pricing for the route used and current terms; no guaranteed unlimited duration has been established here.

The 150 ms figure appeared in the LinkedIn post that prompted this research. I found no primary source establishing it as a general service latency. The range in the launch post and dated trial measurements are more useful when planning a comparison.

Compare the same outputs An LLM asked to produce probabilities for every option does more work than one asked to return 1 label. Compare the outputs your application needs, together with their quality, cost and response time. The full-workflow comparison diagram shows what to count for rules, Jev and an LLM with constrained output.
Reconstructing a comparison
ItemQuestion to ask
TasksDoes each method receive the same cases and information?
Expected outputIs a label enough, or do you need a full distribution?
SettingsWhich model, version, reasoning level and API route?
ReferenceIndependent human annotations, verifiable rules or consensus from other models?
TimeMeasured from the same client, with the same concurrency and retries included?
CostList price, actual bill or estimates for competitors?
QualityWhat error rate, on which population, after what filtering?

The TypeSafe evaluations give equal weight to 4 workflows: security incidents, agent traces, invoices and support. Their reference answers come from GPT-6 Astra and Claude Fable 5.1 with high reasoning; the compared models use their default settings. The column named accuracy therefore measures agreement with these references, rather than with independent human annotations.

Agreement, price and duration published together by TypeSafe
Model, workflow modeMean agreementCost per caseTime per case
Jev67.8%$0.00040.4 s
sol74.1%$0.083623.3 s
Opus 573.1%$0.176137.8 s
terra67.9%$0.030410.1 s
Sonnet 567.8%$0.117478.1 s
luna66.8%$0.003312.9 s
DeepSeek v4 pro65.5%$0.041386.5 s
DeepSeek v4 flash64.4%$0.005951.9 s
Haiku 4.553.6%$0.019512.5 s

Rounded values read from the vendor's charts on September 21.

The launch multipliers cannot be recalculated by arbitrarily dividing 2 rounded cells in this table.

Vendor data, 4 equally weighted workflows. Cost and duration axes are logarithmic; values are displayed rounded figures. No personal testing or independent human ground truth.
Competitor prices on October 28 Clef-flash is listed at $0.038 per million input tokens, below Jev’s $0.042, but with a 24k hosted context. The offer comparison also covers Clef, Clef-omni and OpenAI’s Decisions API.
11

Calculating the cost of the whole workflow

Token pricing does not include context retrieval, subsequent calls or corrections.

The basic calculation is straightforward: billed input tokens × price per token. At the direct price cited in this report, 1,000 tokens cost $0.000042. 1 million calls of that size therefore cost $42 in input charges. This calculation assumes neither that every call is correct nor that 1 call is enough to finish a task.

Illustrative scenario, same list price
ItemAssumptionCalculated cost
Planned calls1,000,000 × 1,000 tokens$42.00
Retries50,000 extra calls of the same size, all billed in this example$2.10
Second decision100,000 cases requiring another call of the same size$4.20
Jev total1,150,000 calls, without caching or other adjustments$48.30
Other costsRetrieval, storage, text-generating LLM and reviewMeasure separately; not included in $48.30

Processing multiple questions and reusing context changes the billed volumes.

A solution that lowers model costs but requires more corrections can cost more overall.

Same expected decision, same useful information and same test cases. The LLM can return a structured category. Measure the whole workflow, including failures and reviewed cases, against the same quality target. Figures such as 200× or 400× do not describe this protocol: no result is assumed.
Lexical search remains a baseline BM25 can run locally. Calling Jev adds a network dependency, latency and data transfer. For skill suggestions, where a skill is a set of specialized instructions loaded by an agent, first measure the paraphrases BM25 misses and the cost of those errors.

In a sequential workflow, stage durations add up. Independent questions can run in parallel, but the gain depends on quotas and the response-time distribution. Measure the time from receiving a case to producing a suggestion the application can use, then calculate p50 and p95 for that full duration.

Related resources To build this measurement, see my guide Calculating cost per accepted task (EN): calls, retries, review time and cost per accepted result.
12

Benchmarks published by third parties

The reports below evaluate different tasks. I read them without reproducing their tests or auditing all their data.

The anisselbd phishing benchmark covers 2,000 emails with synthetic bodies. The first protocol asks Jev 9 questions and asks Haiku 4.5 for a direct verdict. Jev achieves 62.6% correct decisions, compared with 81.3%. These 2 configurations do not isolate the model's contribution.

A second protocol asks both models the same 5 questions, then trains a regression on their signals. On the 1,000 held-out test cases: 95.0% with Jev, 93.2% with Haiku, compared with 91.8% for the rule-based baseline. The Jev/Haiku gap is not significant at the conventional 5% level (McNemar p = 0.063). The authors also report Jev's cost and latency advantage with this decomposition.

Question wording and the way answers are combined are part of the evaluated system. Moving from a direct verdict to 5 signals changes the protocol; these results remain specific to this corpus.

5 other public benchmarks · Stars recorded on 24 September 2026 at 16:40 UTC
ReportGitHub starsResult or test objectiveConditions to retain
AbdelStark / jev-benchmarks17Classification compared with GLiNER.300 held-out examples, 100 per condition: AG News, Banking77-BTZSC with 72 categories, DAIR Emotion. Thresholds and criteria must remain tied to this pilot.
WallerChen / jev-measured0Jev: median of 352 ms, compared with 1,343 ms for Mistral and 877 ms for Gemini. The reported 1.4× and 1.7× factors concern cost.8 examples × 5 repetitions, or 40 calls per model, without ground truth in this part. Separate test with 27 annotated tickets and 6 ambiguous ones, 3 runs. Different access routes.
fstandhartinger / jevbench117534 decisions per system, including 220 difficult ones: 111 public and 109 held out.Synthetic cases written and reviewed by models, frozen before execution according to the author. Composite score across 4 equally weighted dimensions. Some latencies are adjusted using production assumptions.
anessbelbati / jev-rerank-bench78 English datasets, 1,617 evaluable queries: mean per-dataset nDCG@10 of 0.692 for Jev Rubric versus 0.691 for Cohere Pro. Difference: 0.001; 95% CI [−0.009; +0.012]. On MIRACL-fr: Jev Choice 0.700 versus Cohere Pro 0.764.Giving each English query equal weight produces 0.756 for Cohere and 0.738 for Jev. MIRACL-fr: 152 evaluable queries out of 269, with a relevant passage among the 30 BM25 candidates. Datasets and variants differ; this test does not isolate language.
RINNECODER / jev-behavior-study3Correct answer placed first: 95/108 correct responses. Placed last: 62/108.6 problems × 24 orders × 3 repetitions: 432 calls, 108 per position. These cases are related; option identifiers are not controlled separately. The result remains limited to these problems.

nDCG@10 measures ranking quality for the top 10 documents. A reranker reorders documents that have already been retrieved. The English results do not establish a winner; an interval containing 0 does not establish equivalence either. These tests alone do not measure the quality of an answer written from the documents.

Response times: 2 regions, 2 corpora · Stars recorded on 24 September 2026 at 16:40 UTC
TrialGitHub starsJev measurementScope
Phishing5Median: 239 msFrom France, according to the author; corpus and questions specific to this test.
ASSAY-001 / Banking770Median: 382.3 ms; p95: 553.7 ms3,080 successful first attempts. Network included, Plano, Texas region according to the metadata. Recalculated from published responses.
ASSAY-001 / CLINC150, same campaign0Median: 385.9 ms; p95: 615.3 ms5,492 successful first attempts. Failures and retries are excluded from these quantiles.

These observations do not support a comparison between regions: inputs, questions and protocols differ. They provide more precise reference points than a general latency of 150 ms.

Test decomposition too
  • Compare direct decisions and decomposed questions for each competitor, using the same data.
  • Choose thresholds and weights before the final evaluation.
  • Keep a baseline without an LLM.
A Banking77 trial with examples in the request

The simonmesmith report reports 2,846 correct answers out of 3,080, or 92.40%, with Jev 1.13.0.

  • Each request contains 24 annotated examples retrieved by BM25. This configuration is selected using development data, according to the published protocol.
  • The 93.66% BERT result is taken from a 2020 paper, without rerunning BERT.
  • This result concerns a method that uses examples, rather than a use case without labels. README reviewed; raw responses not re-audited and no inference reproduced here.
jgrep: code review, diversity and local models

The code-review diagnostic, run by the author on September 19, contains 20 hand-written Go cases, including 8 positives. Whole-hunk mode reports 80% precision and 100% recall. Questions and units change together, so their effects are not isolated. At a 250-token budget, selection without a diversity penalty keeps 5 positive functions; default diversity keeps 4 and adds a false positive. Variety can therefore retain a distinctive error.

Local comparison: same samples, different tasks
Corpus / metricJev 1.13DiffusionGemma / OpenJevLaya / MLX
2,000 SMS, F1 at threshold 0.590.81 %86.55 %69.18 %
2,000 AG News, top-1 accuracy86.75 %87.35 %92.45 %

The report published September 23 reuses September 21 Jev answers and compares them with September 22 local runs on an M3 Ultra with 96 GiB. Concurrency and dates differ, so timings do not isolate model speed. Corpora are public, training contamination is unknown and not all raw local outputs are committed. Rankings depend on the task. The local guide pins Laya-MLX before the September 22 correction.

Kiln: improve the information supplied to the model In its September 21 article, Kiln describes pinyin optimization through segmentation, a dictionary and targeted calls. It reports 316 errors before and 147 after over 61,750 positions, versus 285 for its DeepSeek configuration. The total includes development data; it is not a fully held-out test. Raw responses were not found in the examined links. The gain concerns the surrounding system, not Jev alone.
3 multi-model evaluations published in October Astronomer, AIMultiple and Leanmcp’s JevBench Index compare Jev with Clef, Strands Decider or the Decisions API. Their protocols, sample sizes and limits are summarized in Jev and its competitors.
13

Measured probabilities and confidence thresholds

ASSAY-001 publishes its raw responses. The 72.2% result comes from a different experiment.

The ASSAY-001 report evaluates Jev on Banking77 and CLINC150, 2 public intent-classification corpora. For this report, the published Banking77 and CLINC150 responses were retrieved and their hashes checked. The recalculation covers probabilities, decisions and the confidence field. It uses the published campaign without making new model calls.

Recalculation with the amended tolerance for probability sums
CorpusUsable responsesOptionsCorrect decisionsECE
Banking773,0807779.77%0.0936
CLINC1505,496151, including out of scope88.12%0.0204

ECE compares the probability of the returned option with the rate of correct decisions, grouped into bins.

ECE uses the probability of the selected option, even in the 3 cases where it differs from the displayed maximum; it does not use confidence here.

The protocol sets ECE ≤ 0.05 as the criterion for this study. CLINC150 meets it; Banking77 does not. This threshold is not a general standard. ECE also depends on the bin boundaries: using left-closed bins, [0, 0.1) through [0.9, 1], CLINC150's ECE changes from 0.0204 to 0.0209 on the same amended response set. Neither binning scheme changes the verdict at the 0.05 threshold. These results do not isolate the effect of class count; the corpus with more options has the lower ECE here.

The second amendment, described in the report, raises the tolerance for probability sums after measurement, from 0.001 to 0.02. It restores 145 Banking77 responses and 368 CLINC150 responses whose sums are 0.99 at the published precision. The Vercel documentation for the TypeSafe AI provider states that probabilities are rounded to 2 decimal places and may not sum to exactly 1. The data are consistent with this precision: 101 distinct hundredth values, excluding floating-point representation noise. This count alone does not reveal the internal rounding process. A sum of 0.99 is therefore not enough to establish a type error.

How tolerance affects which responses are retained
CorpusInitial tolerance: 0.001Amended tolerance: 0.02
Banking772,935 responses; accuracy 81.09%; ECE 0.09043,080 responses; accuracy 79.77%; ECE 0.0936
CLINC1505,128 responses; accuracy 89.43%; ECE 0.02095,496 responses; accuracy 88.12%; ECE 0.0204

Restoring these responses lowers accuracy on both corpora. It increases Banking77's ECE and slightly reduces CLINC150's. Changing the tolerance also changes the evaluated population; both sets of results are needed to understand its effect.

Another check finds 3 choices whose probabilities are 1 percentage point below the displayed maximum: 0.46 versus 0.47 and 0.47 versus 0.48 in Banking77; 0.48 versus 0.49 in CLINC150. The API reference describes choice as the most likely option. Monotonic rounding applied in the same way to each option cannot, by itself, reverse their order. These 3 discrepancies remain unexplained; the internal values before display are not published.

Conditions that limit generalization
PointImplication for interpretation
8,580 planned requests; 8,576 usable responses4 local network-resolution errors are excluded from model metrics.
Requests: jev-latest; 8,576 responses: jev-1.13.0The requested alias and the version actually returned are distinct. These results do not describe a later version.
Corpora and revisions recorded in PINS.txtBanking77 comes from the PolyAI repository; CLINC150 uses the plus/test set from clinc_oos. Whether these data appeared in training remains unknown.
Report dated September 18; responses from September 17, 20:57 to 21:45 UTCDate the observation using the response files and retain the difference from the stated test date.
Recalculation of the same filesReading the results a second time is not a second inference campaign.
A stated cost that does not match the published tokens The report states approximately $0.01. The responses contain 11,065,908 input tokens: at the list price of $0.042 per million, the calculated cost is $0.464768, excluding preliminary trials. This calculation does not replace an invoice. It does rule out repeating the stated cent as a verified cost.

The ASSAY files also let us check what a confidence ≥ 0.9 filter retains.

Results of the confidence ≥ 0.9 filter on ASSAY
CorpusResponses retainedCoverageCorrect responsesAccuracy after filtering
Banking772,137 out of 3,08069.38%1,979; 158 errors92.61%
CLINC1503,877 out of 5,49670.54%3,726; 151 errors96.11%

The 72.2% figure repeated in roundup articles comes from Agent Journal. The author describes 300 synthetic cases; 126 have confidence of at least 0.9, and 72.2% of their responses are correct. Raw responses were not found in the links or the targeted search. This remains an author-reported result, not recalculated in this report.

Agent Journal reports 42% coverage. The task requires combining weak signals in synthetic texts; it differs from Banking77 and CLINC150 intent classification. The author specifies the jev-latest alias, without a resolved version that can be verified in raw responses. These results can coexist: protocols, data and possibly versions differ. They do not isolate the cause of the gap.

All 3 experiments retain errors after selection by confidence. The accuracy and coverage of this selection are not ECE measures. Since confidence is not defined in the API as the probability of being correct, comparing the 0.9 threshold with 72.2%, 92.61% or 96.11% does not measure the calibration of option probabilities.

On October 8, Astronomer observed that each decision model has its own confidence scale: on the intermittent-heavy set, medians of 0.94 for Jev 1.13, 0.84 for decider-0.8b and 0.45 for GLiNER2.5-Decide. Jev’s confidence moved by up to 0.14 between 2 repeated calls. A threshold chosen for Jev therefore does not transfer to another compatible model.

Adapting the GitHub and Sentry pilots
  • Retain the raw distribution, name the variable used for the threshold and check results on the tickets you actually intend to process.
  • Set numerical tolerances before measurement.
  • Report any protocol change made after reading the results.
A calibration correction in Laya-MLX The local port clamped extreme temperatures on September 22. A safeguard against overly concentrated distributions is not a new calibration validation. Details and the adapter revision are in the local models chapter.
14

Jev as a judge of agent traces

A 100% result on 5 repeated traces measures agreement on those cases, not general reliability.

The tutorial, the article reporting the results and the benchmark serve different purposes.

The test uses 5 fixed traces, each repeated 100 times. 1 annotator supplies the reference labels: 4 successes and 1 failure. On the Dublin trace, asking for clarification seems reasonable but does not satisfy the rubric, which expects a search. The choice of rubric is therefore part of the result.

Published agreement with these 5 labels
JudgeAgreement across 500 repetitionsInterpretation
Jev100%No reported disagreement on these traces and their repetitions.
GPT-5.6 Terra99.8%1 reported disagreement across the 500 repetitions.
GPT-5.6 Luna96.4%Measured on the same traces, not an independent corpus of 500 situations.
Claude Sonnet 4.680%1 in 5 judgments differs from this reference.

These rates match the published per-case summaries. Individual decisions are absent from the archive reviewed, so they were not recounted. Any presentation of “100%” must keep the 5 traces and their repetitions visible.

The summaries in benchmark.json also give the mean of the quality variances calculated within each of the 5 traces. The table recalculates ratios from those summaries; individual judgments are unavailable for recalculating the variances themselves.

Variability of the quality score in the published summaries
JudgeMean within-trace varianceRatio to Jev
Jev0.000014941
Claude Sonnet 4.60.0013700791.68
GPT-5.6 Luna0.00646904432.90
GPT-5.6 Terra0.01364287912.96

These ratios describe the stability of a continuous score on the same traces. They do not multiply either the rate of correct decisions or the accuracy of the probabilities.

The metadata for this run are dated September 18.

Compare costs in the same units The reported totals of $28.17 for Claude Sonnet 4.6 and $0.34 for Jev give a ratio of roughly 83. Dividing a $28.17 total by $0.00035 per call artificially produces a ratio near 80,000. Costs remain author-reported: the public archive does not provide every call needed to reconstruct the bill.

The cost collection script queries LangSmith. The scope of the means and totals is not clearly limited to the 500 verdicts. Luna also appears close to Jev in cost in their table. The comparison therefore does not justify claiming that all LLMs cost several orders of magnitude more.

To test Jev as a judge, vary the tasks, tools, partial failures and rubrics, then have new traces annotated. Repeating a trace helps measure stability; adding different traces is necessary to test coverage of situations.

Theo at 12:40 criticizes choosing between implementations using a judge that does not explore the repository. This objection is a reminder to test a specific criterion with the context it needs. It does not establish that a model without written reasoning can never serve as a judge. The video analysis distinguishes these 2 claims.

Review integrations examined September 24 · Stars recorded on 24 September 2026 at 16:40 UTC
ProjectGitHub starsRoleEvidence boundary
jev-semantic-reviewer0Static facts about changed functions followed by optional Jev judgments on readability and responsibilities.Semantic judgments do not block review; duplication and conventions remain planned.
Supercov114Per-file quality questions combined with coverage measured by tests.A Jev score measures neither coverage nor whether an assertion checks the intended behavior.
NiazMorshed2007/jev-review221Per-dimension evaluation MCP; the primary agent interprets results and makes fixes.No independent validation of review quality found in the README.
devagrawal09/jev-review595Sequential questions about risk, evidence, mechanism and severity to direct review.Prototype; compiler and static-analysis integration still planned.

The JevGrep protocol added September 22 separates local performance with a mock provider from a semantic-retrieval pilot. It defines 30 questions across 3 small synthetic repositories, including 6 negatives. A published protocol does not establish a held-out final result or better agent task success.

15

Tracing articles back to the original experiments

Media coverage can draw attention to a test without adding new measurements.

Capital & Compute brings several results together, but their tasks, comparators and definitions of cost differ. The result on 18,514 emails is reported by Arize, which links to bitnovus. Counting it once for every article would artificially multiply the confirmations.

DIAGRAM · 1 test, several reports
The arrows follow the flow of information. They do not represent 4 independent benchmark campaigns.
Original experiments located · Stars recorded on 24 September 2026 at 16:40 UTC
Author and taskGitHub starsReported resultMain limitation
bitnovus, email filtering2In the 18,514-email experiment: 98.33% for Jev with detailed criteria, 98.39% for TF-IDF.Criteria were refined after reading labeled errors. The README contains several experiments; their denominators must not be mixed.
Near Here, event validationn/aJev 48/50 on cases used to choose the prompts; then 19/21 on additional cases, versus 20/21 for Gemini.Labels prepared by an assistant, without independent human adjudication. Generative models use high reasoning and provide explanations.
gemanor, small Python functions598% correct judgments of functional validity for Jev, 100% for Gemini and Fable; medians of 0.75 / 3.59 / 4.31 seconds.24 families × 5 variants × 3 repetitions per model. 4 rules applied to small functions, not real PRs.
paddo, product matchingn/a9,081 pairs, $0.32 and 13 min 22 s reported; 30% left without a verdict between the chosen thresholds.The author accepts 48 of the 50 reviewed verdicts. Results remain advisory and are not used by downstream systems.

These trials are more useful when their exact scope is retained.

Publish the result together with its limitations For a benchmark, give the task, denominator, models, label provenance and settings before the ratio. A calculated price remains a calculated price; repetition of the same case measures its stability; a result on development data does not become a result on a held-out test set.

The CounterProof analysis of consensus labels finds 8 disagreements among 19 cases where both its judges respond. These cases come from a selection of 20 vendor examples, not a random sample of the full evaluation. This check invites scrutiny of the labels; it neither replaces them with human ground truth nor reruns the full benchmark.

The MindStudio article on Jev and classifiers reports, among other figures, 93.2% for a 22-million-parameter encoder. The article body reviewed provides no link to the protocol or repository for that experiment. This figure is therefore not added to the table of results verified at their original source. The article also reports the opposite result on Yelp; it does not justify a general conclusion that a trained classifier would always win.

16

New · Version 0.20.0

Clef, Strands Decider, OpenAI: Jev and its competitors

Since October 1, several companies have released decision models. Most figures come from vendors; Jev’s interface is becoming a shared format.

Jev opened the category on September 15. Within 4 weeks, Cloudflare, Strands Labs, Perplexity and OpenAI released models that answer the same question types: yes or no, a choice among options, a score on a scale. They return probabilities, not text to parse.

Offers recorded on October 28, 2026 · price per million input tokens, outputs free
ModelWeights and basePriceHosted contextInputsInterface
Jev 1.13 / 1.14 (TypeSafe)Closed; architecture not published$0.04264k per request, 32k per question; 262k as an optionText; experimental imagesSystem One (/v1/systemone)
Clef (Cloudflare)Apache 2.0; 27B, from Qwen3.8-27B$0.2464kText, imageSystem One, compatibility announced
Clef-flashApache 2.0; 9B, from Qwen3.5-9B$0.038 since October 9 ($0.09 at launch)24k since October 9; weights trained for 256kText, imageSystem One
Clef-omniApache 2.0; 30B-A3B MoE, from Qwen3-Omni$0.15 (launch price)64kText, image, audio, videoSystem One
Strands Decider 2B (Strands Labs, AWS)Apache 2.0; LoRA on Qwen3.5-2B, training code publishedSelf-hosted: hardware costEvaluated on 4,096 tokensText; optional untrained image input/v1/systemone via strands-decider serve
pplx-decider v1.1 (Perplexity)Apache 2.0; from Qwen3.8-27BSelf-hosted; Perplexity API not reviewedNot reviewedText, imageInference code provided
Decisions API (OpenAI)Closed; gpt-6-luna$0.10; $0.01 cachedNot reviewedText, images, native JSONOwn format (/v1/decisions)

Two request formats coexist. System One, Jev’s interface, sends a state and named questions of type noul, choice or score. Clef, Strands Decider and Ollama 0.35 adopt it. OpenAI uses /v1/decisions: an input, an array of predicate, choice or score questions, up to 400 questions, and a possible refusal answer for each question. LiteLLM has served both routes since October 14.

Compatible does not mean interchangeable Changing the URL and model name is enough to send the same request. Probabilities, confidence and thresholds do not transfer. AIMultiple also reports that Cloudflare’s service read only the first 2,048 tokens for Clef and Clef-flash during its test, far below the listed context. Recalibrate every threshold and check truncation on your own data.
Excerpts from the benchmarks published by Cloudflare on October 1
MeasureClefClef-flashJevWhat it evaluates
BANKING77, macro-F194.2090.9379.74Banking intents
CLINC150+OOS, macro-F197.4366.7789.27Intents, including out-of-scope requests
When2Call, accuracy72.3765.5880.97Deciding whether to call a tool
BRIGHT, nDCG@1045.9139.2647.52Document retrieval
Agent traces (TypeSafe evals)68.569.871.6Trace observability
Median latency209.3 ms38.8 ms524.1 msModel only, Cloudflare measurement

Cloudflare presents Clef as the leader on the Jev Decision Index; its own table leaves Jev ahead on When2Call, BRIGHT and agent traces. The launch post also claims the Clef models beat other decision models on latency, except Laya. Yet its table shows a 51.4 ms median for Kev-9B and 84.4 ms for DiffusionGemma Jev, against 209.3 ms for Clef. On October 9, Cloudflare reported a 152 ms median for Clef on about 800 tokens, from a serving-layer change, without new weights. The same post says the project was decided on a Friday evening, trained over the weekend and launched on Thursday.

Laya in Cloudflare’s tables Laya has the lowest median there, 5.8 ms, but 3.19 macro-F1 on CLINC150+OOS, 14.29 on BANKING77 and 50.15% on PhishNChips, chance level for a binary decision. These figures from a competitor cover other tasks than our POCs: they point the same way without confirming them.

The evaluations by Perplexity (pplx-decider) and Strands Labs (Strands Decider) are also vendor measurements. The Strands Decider 2B v1-2610 card reports 180 correct answers on JevBench’s 231 public tasks, with a 4,096-token window.

3 evaluations published by third parties. None compares every model on the same task, and none was reproduced for this report.

Multi-model evaluations read on October 28, 2026
EvaluationTask and sampleMain resultStated limits
Astronomer, October 8Stop or retry a failed Airflow task; 400 errors from GitHub issues in 35 projects, 41 of them recoverableNo clear winner; Jev and decider-0.8b stay close at equal coverage (exact McNemar, p = 0.15)Errors from bug reports, not production; labels produced by LLMs; only 41 recoverable cases
AIMultiple, updated October 2259 models on 1,655 classification questions; 46 models on 50 browser tasksClassification average of 47.9 for Jev 1.13 and 51.0 for Clef; Strands Decider 62.6 on product recalls but 33.9 on vulnerability severity1 attempt per task; step format built for Jev; data contamination unverifiable; commercial publisher
JevBench Index, Leanmcp, October 1122 public sets, from 18 to 4,924 cases, in 6 clusterspplx-decider v1.1 78.0; Jev 1.13 76.5; Clef 76.1; Decisions API 73.4; Clef-flash 71.8Jev 1.14 and Strands absent; sets rejected by an API count as 0; author affiliations not published
What this changes for my tests
  • The Laya POC conclusions remain unchanged.
  • Strands Decider 2B becomes the next local candidate: open weights, pip installation, documented Apple Silicon support.
  • Clef-flash and the Decisions API replace Jev only after a comparison on the same held-out sets, with a threshold recalibrated for each model.
  • None of these models was called or run for this report.
17

Laya on my Mac: fast, but wrong on some simple cases

September 26 experiments: offline operation, timing and quality compared with rules.

The runtime works; task quality still needs evaluation Personal experiments on September 26, 2026 used multilingual Laya, not Jev. Across the 3 synthetic tasks compared, these settings show no quality improvement over lexical rules. They establish neither Laya’s quality on every task nor its performance against Jev.

The lab ran on an Apple M5 Max with 128 GiB, macOS 26.5.1, Python 3.12.13, Laya-MLX 0.2.0 and MLX 0.32.2, using the GPU in FP16. Model: aac6fef/laya-multilingual-mlx, revision f2b4faf51023039425946074e2cf1361d2db11d5. Compilation and prompt caching were disabled. All 11 manifest files were verified, including roughly 614 MiB of weights.

What was verified
CheckObservationEvidence limit
Program tests62 tests passed, with 6 subtests.Ordinary server tests use a substitute engine.
Offline inference2 fresh FR/EN processes, GPU; Choice, Score and Noul. Network probe refused with EPERM.Network denied for these processes; not proof that no connection was attempted.
Application with real model6 in-process experiments with network access denied.Checks responses and input guards, not semantic correctness.
Batch recovery3 entries preserved, 17 computed; 20 unique IDs.Graceful stop plus an injected partial record, not a forced GPU crash.
Browser6 forms, JSONL/CSV imports and input errors checked.JSON download unconfirmed; JSON remains readable on screen.

The data contains 72 synthetic development examples. The 3 tasks below use 20 each, for 60 predictions. Questions, labels and keywords were frozen before inference. The evaluator’s ordinal-score validation was strengthened before producing the reports; its final version is archived. This is neither a held-out real-world evaluation nor independent human annotation. Settings were not changed to erase the observed errors.

Quality on the same examples
TaskLayaLexical rules
Frustration2 of 10 positives found; 11 of 20 answers correct.7 of 10 positives found; 12 of 20 answers correct.
Triage team14 of 20 answers correct.15 of 20 answers correct.
Model releaseRecall 33.3%; precision 22.2%.Recall 33.3%; precision 66.7%.
Warm engine timings
Use caseMedianp95
Filter, 1 question8.55 ms11.05 ms
Triage, 3 questions9.58 ms83.74 ms

Timing protocol: 10 warm-up calls, then 100 sequential calls per configuration using the same short text. Timings include engine validation but exclude loading, HTTP and the browser. Measured loading: 5.45 s. Peak MLX allocation: roughly 822 MiB, not total process memory. This does not establish throughput for long documents. These timings cannot be directly compared with remote Jev calls or the M3 Max data in the local-model chapter.

Errors observed in the browser
One-off observations, without tuning after inspection
ExampleResultAssessment
Encore une erreur au paiement... J’en ai marre de recommencer !Match 0.11.Explicit frustration underdetected.
Reset a passwordGeneric advice 2.45/3; recovery procedure 1.89/3.Incorrect ranking.
Read a file and email it, simulated actionReading 0.24; external send 0.93.Reading underdetected.
Answer containing a concrete stepCriterion met: 0.0115.Simple criterion incorrectly rejected.

Network denial was not reapplied during the browser session; it belongs to the separate checks above. Tool actions were descriptions only: no file was sent.

What these experiments change Local operation is established on this machine; timings above concern short synthetic inputs. The Aristote issue pilot now provides a separate result: the triage configuration is rejected against current rules, with annotations still provisional. Ranking, tool checks and judging remain exploratory.

The data and measurements for this revision contain synthetic examples, questions, predictions, lexical baselines, timing samples and evidence hashes. They contain no customer data or private conversations.

18

Laya on 60 Aristote issues: reject the tested configuration

A pilot on real tickets, with 30 development cases, 60 test cases and provisional annotations.

Local operation is not enough The September 26 pilot, reviewed on September 27, does not show the required gain over Aristote’s triage rules. Laya emits 11 area suggestions, 8 of which match the provisional annotations, compared with 17 and 12 for the current rules. Decision: keep the rules and reject this configuration. This result does not reject every Laya use case or establish anything about Jev, whose API was not tested.

The question was narrow: which technical area owns the requested change? Options were tooling, backend, frontend, fullstack, multiple, other and unknown. The pilot does not assess duplicates, ticket completeness or request type. No GitHub label was changed and no automation was activated.

“Matching” means agreement with 2 agents 2 agents annotated the 90 tickets in separate contexts, before predictions and without access to each other’s results. They agreed on all 90 labels but belong to the same environment. There is no human validation and no established business ground truth. Precision below measures agreement with this provisional reference.
Results on the 60 held-out test tickets
Method and inputMatching / emittedPrecisionCoverage out of 60Wrong
Current rules · title only12 / 1770.6%28.3%5
Lexical variant · title + body40 / 5178.4%85.0%11
Laya EN · title + body8 / 1172.7%18.3%3

Precision divides matching suggestions by emitted suggestions. Coverage divides emitted suggestions by all 60 tickets, including oversized ones. 8 out of 60 is therefore not Laya’s precision. It leaves 49 tickets without a suggestion, compared with 43 for the current rules. These cases need another handling path; they are not all incorrect classifications.

The lexical variant reuses the same expressions and priority order on title and body. It is not the deployed workflow. It gives the rules more text, as Laya receives: its result must remain separate from the title-only baseline. Its 40 matching suggestions warrant human review, including examination of its 11 errors; no time saving was measured.

The 49 tickets without a Laya suggestion
ReasonTicketsHandling
Maximum score or margin below threshold35Abstention under the frozen policy.
Other domain or insufficient information65 other choices and 1 unknown choice; no area label.
Context overflow8Explicit rejection; no truncation, summary or removal from the denominator.

The model produced 52 valid structured outputs and 8 length rejections, with no other technical error observed in the test batch. Questions and options leave 896 tokens for serialized input within the 1,024-token total limit. The 8 overflows account for 13.3% of the test. All 8 matching Laya suggestions concern tooling; no suggestion for another domain matches its annotation in this sample.

How the pilot was prepared

600 snapshots of open or closed issues were exported without comments or labels. After excluding 17 Jev/Laya titles, 583 tickets were assigned to 369 heuristic groups. One representative per group and deterministic selection with a fixed seed produced 30 development tickets and 60 test tickets. Quotas are syntactic; they do not reproduce production class proportions.

The test contains 29 tooling, 14 backend, 11 frontend, 1 fullstack, 3 multiple, 1 other and 1 unknown cases. Classes with 1 or 3 examples remain poorly assessed. Texts are September 26 export snapshots, not reconstructed issue-opening content. A check of 67 explicit parent links found no conflict between selected groups; residual implicit relationships remain possible.

2 formulations, French and English, were tried on development. The English candidate was frozen before testing with a maximum score of at least 0.50 and a margin of at least 0.15 between the top 2 options. The score is not a probability of correctness. Issues are classification data, never instructions to execute. No threshold or question was adjusted on the 60 test tickets.

Why stop this candidate? Before testing, the protocol required at least 90% precision and 10 percentage points more coverage than the title-only rules, with no precision loss greater than 5 points. Laya reaches 72.7% precision and 10 points less coverage. Its 2.1-point precision advantage over the rules establishes no superiority with only 11 suggestions and provisional labels. These were exploratory thresholds, not business approval.
Errors and measurements to retain

One incorrect suggestion has a maximum score of 0.9019: a high score does not guarantee agreement with the label. The 3 Laya errors are retained in the private experiment folder with annotator rationales. Some cases spanning domains remain debatable and need human review.

Before threshold and margin filtering, the raw top choice matches the annotation on 25 of 60 tickets, or 25 of 52 accepted outputs. Lowering thresholds after reading this test would create another configuration requiring a new held-out set. Macro-F1 across 7 classes is 0.059 for Laya, 0.158 for title-only rules and 0.326 for the title-and-body variant. Abstentions count as false negatives.

Latency: keep measurement scopes separate
MeasurementResultIncluded scope
Engine on accepted tickets · median / p95131.2 / 508.9 msValidation and inference, 52 outputs, first call included; no per-ticket timing for the 8 rejections.
Complete test batch process15.74 sLoading, 60 attempts, validation, writes and process exit.
Warm chain on 1 synthetic case · median / p9542.4 / 92.5 ms10 warmups, then 30 measurements: serialization, engine, writes, flush and fsync, no HTTP.
Fresh load · separate measurement8.67 sWeight verification and loading; a single trial.

These timings are not interchangeable with the previous chapter’s 8.55 ms synthetic filter: inputs, question and measurement scope differ. Other Mac activity was not controlled. No remote inference API or cloud fallback was used; each compute process verified an EPERM network denial. The GitHub export required network access. Energy use and human correction effort were not measured.

Environment, checks and available evidence

Laya-MLX 0.2.0, MLX 0.32.2, Python 3.12.13 and float16 GPU inference on the lab’s M5 Max Mac. Multilingual weights: aac6fef/laya-multilingual-mlx, revision f2b4faf51023039425946074e2cf1361d2db11d5. Compilation and prompt caching disabled. The pilot reports 62 lab tests and 6 subtests, 7 pilot tests and 20 parity cases against the actual workflow JavaScript.

The aggregate results and configuration accompany this chapter. They expose denominators, thresholds and measurement scope. Issue texts, identifiers, private links and per-ticket annotations are not published. Hashes identify source files; they cannot by themselves reproduce a test whose corpus remains private. This editorial update did not rerun inference.

Further experiments remain separate from this verdict Keep the current rules for this triage and do not retune on the now-known test. A separate lexical-variant evaluation can start with human validation. The 3 Sentry, review and CI POCs announced at the first September 27 checkpoint have since run: their configurations are also rejected. Support triage remains pending.
19

Laya on Sentry, reviews and CI: 3 candidates rejected

120 test cases, 15 overflows and no gain justifying adoption. Annotations remain provisional.

Stop the 3 tested configurations The September 27 experiments show no useful gain for Sentry/GitHub matching, grouping review comments or classifying CI failures. All 3 verdicts are REJECT_CURRENT_CANDIDATE. Laya runs locally; these results do not justify adoption for these uses. They measure neither hosted Jev nor every possible Laya configuration.
Matches are provisional annotations, without human validation Sentry received 2 blind agent passes, agreeing on 59 of the 60 development and test cases. Reviews and CI were each annotated by 1 agent before prediction. No reference has human validation. A suggestion on an unknown reference is counted as unsupported in precision.
Suggestions across the 120 held-out test cases
POCCasesLaya matching / proposedLaya precisionNon-AI comparator
Sentry ↔ GitHub482 / 385.3%0 / 0 lexical matches; precision undefined
Review grouping361 / 911.1%0 / 0 lexical matches; precision undefined
CI failures366 / 2030.0%5 / 6 classifications, or 83.3%

A suggestion means same for Sentry/reviews, or a code, configuration or infrastructure classification for CI. Precision divides matching suggestions by proposed suggestions. Coverage divides suggestions by all test cases, including oversized inputs: 79.2% for Sentry, 25.0% for reviews and 55.6% for CI. A comparator proposing nothing has undefined precision, not 0% precision.

Sentry: no additional matching suggestion beyond known links. The lexical zero applies after links and identifiers are masked. Of the 48 pairs, 16 already have an explicit Sentry association in GitHub provenance. Both matching Laya suggestions are in that set. A documentary link alone does not independently prove a common cause.

CI: 1 more matching suggestion in total, but 13 more wrong ones. Laya proposes 6 matching and 14 nonmatching classifications, against 5 and 1 for lexical signatures. Its 20 suggestions are all code: 6 match, 8 concern cases annotated configuration and 6 concern unknown cases. It proposes no configuration or infrastructure classification on this test.

For reviews, Laya proposes 1 matching link and 8 unsupported ones. A slightly higher macro-F1 than the comparator does not qualify the grouping system. The task is to identify the same alleged defect; it does not establish that the defect exists.

Keep abstentions and context overflows in the results
POCWrong suggestionsdifferent decisionsunknown decisionsThreshold abstentionsToo long
Sentry360217
Reviews830168
CI14Not applicable4120

All 15 overflows among the 120 test cases stay in the denominators. Decisions of different, unknown and abstentions are not wrong matches. They remain separate from context errors. No other inference error type is reported.

Corpus: what these experiments actually measure
165 real observations or pairs constructed from real sources
POCDevelopmentTestDev / test families
Sentry12484 / 10
Reviews18366 / 12 PRs
CI153610 / 27

The 45 development and 120 test cases were split by family before results. Synthetic smoke cases remain separate. These small diagnostic corpora do not represent production prevalence; related PRs can remain dependent.

Sentry: 3 candidate issues per incident, including the historically linked issue by construction and 2 lexical neighbours from the same partition. Retrieval recall and end-to-end gain are not evaluated. Inputs contain Sentry titles, sometimes shortened by the CLI, the environment and the initial GitHub problem context. No detailed events or complete stacktraces. Current snapshots do not reconstruct opening-time information.

Reviews: 18 PRs selected from the 100 most recently updated, then 3 pairs per PR. PR families are disjoint. Pair selection does not measure duplicate prevalence. Extraction uniformly removes appendices and duplicated instructions before prediction; masking some mentions also affects code annotations. This corpus cannot assess exact code repair.

CI: 37 log excerpts and 14 historical issue observations. Excerpts were prepared before prediction and have at most 746 characters. Automatic extraction from full logs is not evaluated. Development contains 7 configuration and 8 unknown cases, with no code or infrastructure. Test contains 11 code, 11 configuration, 1 infrastructure and 13 unknown. Not all classes can therefore be calibrated on development.

Candidate selection and comparator limitations

2 formulations, FR and EN, fixed before prediction; thresholds 0.50, 0.65 and 0.80; margins 0 or 0.15, evaluated on development only. Questions, comparators, corpora, annotations, development outputs and model identity were frozen before each test. No tuning on the now-known test.

Frozen candidates, none qualified on development
POCLanguage / threshold / marginDev matching / proposed
SentryFR / 0.50 / 01 / 8
ReviewsEN / 0.65 / 01 / 5
CIEN / 0.65 / 01 / 7

The preliminary gate required at least 3 suggestions and 90% precision. With only 1 positive Sentry and 2 positive review cases in development, this was mathematically unreachable. All 3 candidates were retained solely for the planned diagnostic test, with qualified_on_dev: false. This limits conclusions about the best possible configuration, without turning their errors into favourable evidence.

To pursue human validation, the test needed 90% precision, at least 5 suggestions and at least 2 more matching suggestions than the comparator, with no additional errors. No candidate meets that exploratory signal. These thresholds are neither statistical guarantees nor permission to automate.

Sentry: a frozen interpretation of title Jaccard at 0.75 after masking, without claiming to reproduce the whole workflow. Reviews: same path and text Jaccard at 0.75. CI: explicit signatures. The latter 2 are experimental references, not deployed automations. Two CI comparator weaknesses remain documented: associating OOM with infrastructure without causal evidence and failing to recognise RATE_LIMIT. They were not corrected after inspecting the test.

Overall accuracy is separate from suggestion precision
Errors and abstentions remain in denominators
POCRule accuracyLaya with thresholdRaw LayaMacro-F1 rules / thresholded Laya
Sentry13 / 484 / 484 / 480.142 / 0.122
Reviews5 / 364 / 3611 / 360.081 / 0.116
CI18 / 369 / 3616 / 360.328 / 0.185

The raw choice is measured before applying the suggestion threshold. Model scores are not correctness probabilities. Pairs from the same family are not independent observations; small denominators and provisional annotations limit interpretation.

Engine latency on successful predictions
POCMedian / p95CLI batch including loading
Sentry103.0 / 148.5 ms5.32 s
Reviews93.9 / 162.4 ms3.88 s
CI42.3 / 108.0 ms5.38 s

Context refusals are counted separately from quantiles. Overall Mac load was not controlled; collection, annotation and human correction are excluded. These timings do not measure human time saved and are not interchangeable with measurements from other tasks.

Local execution, evidence and reproduction

Laya-MLX 0.2.0, MLX 0.32.2, Python 3.12.13, float16 GPU and the same multilingual weights as the first pilot: aac6fef/laya-multilingual-mlx, revision f2b4faf51023039425946074e2cf1361d2db11d5. Total budget: 1,024 tokens including questions and options. No silent truncation to fit an input.

Smoke, development and test runs total 242 attempts, 213 successful predictions, 29 overflows and 15 model loads. The 120 held-out cases are only part of this total. All 15 invocations confirmed EPERM network denial before computation. GitHub/Sentry collection required network access; inference used no external AI API. This confinement applies to inference processes, not the entire Mac.

The reproduction folder’s check command was rerun for this edition without model inference: comparator contracts, frozen files, model identity and freeze-before-test order passed. The audit accepts original evidence and rejects stale dev input, reversed chronology and a changed model revision on temporary copies. The extra attestation check was added after review without changing the frozen evaluator or predictions.

The aggregates, selected questions and hashes support checking this chapter’s numbers. Raw logs, text, identifiers, private links and per-case annotations stay private. Full reproduction requires the private corpus and a new output directory. Aggregates alone cannot replay the experiment.

Decision: keep exact links and rules Stop the 3 tested candidates, alongside the configuration from the first area-triage pilot. Any new formulation needs another held-out set and annotations to validate. No fourth POC was launched in this assessment; no issue changed, no CI retried and no automation activated.
20

Videos: demonstrations, opinions and criticism

What creators appreciate, what fails in their trials and which claims need correcting. Links open the analyzed passages.

Videos suggest tests and also show failures. The same creator can appreciate Jev's speed while criticizing its decisions. Opinions are attributed below; reported results remain those of their authors. None of these trials was reproduced for this report.

Recurring arguments in the videos
ArgumentPassageThis report's assessment
Responses that software can use easilyTheo, 06:34; Fireship, 01:33A choice or score can feed directly into code. LLMs with constrained outputs remain valid comparators: they can also follow a schema.
Fast decisions across many textsGreg Isenberg / Ryan Vogel, 04:34; Theo, 26:49Email or discussion classification reported by the authors. Throughput and cost do not measure the quality of the resulting categories.
A valid response can be wrongTheo, 05:34; Fireship, 03:00; Gary Explains, 08:10Weak checkers play, factual errors and confident answers: useful counterexamples, without a general error rate to infer from them.
How the question is asked changes the resultErwan, 06:15; AICodeKing, 02:16An incomplete category list forces a bad choice. Criteria and inputs need to be examined before attributing the entire failure to the model.
Commercial claims need a specific comparatorTheo, 15:48; Micah, 02:05These passages comment on TypeSafe's results. They add no independent measurements to the launch multipliers.
Theo: enthusiasm for the API, reservations about gameplay, judges and compaction

Jev is incredible, published on September 21, 2026, runs for 30 min 29 s. The transcript was read in full. Its favorable title does not capture the reservations expressed in the video.

  • Checkers. 05:04: Theo supplies the board as text data. He appreciates the quick response, then observes at 05:34 that Jev plays badly. The demonstration measures no visual capability and provides no comparative benchmark.
  • Integration. 06:34: he describes the value of responses a program can use. At 07:18, he repeats the launch promise of structured outputs. A format guarantee does not guarantee the correct choice.
  • Code judge. 12:40: he challenges the idea of asking Jev to choose the best of several implementations without giving it the means to investigate the repository. This objection concerns the available context and the requested task. The absence of written reasoning is not enough to rule out every judgment against a specific criterion; see the agent-trace judge tests.
  • Benchmarks. 15:48: he notes that the published gains are at the high end of what TypeSafe expects in practice and that reference answers come from other models. Agreement with them is not independent human annotation.
  • Emails. 20:27: Theo comments on Ryan Vogel's demonstration. It belongs to the same source family as the Greg Isenberg interview and does not count as an additional replication.
  • Compaction. 23:03: he criticizes message deletion presented as conversation summarization. Jev can select passages; it does not write the summary connecting decisions, constraints and results. Lost information and the quality of subsequent responses would need to be measured. Claims about caches and reasoning traces are not repeated here as rules shared by all providers.
  • Discussion archives. 26:49: he describes classifying conversations, but his search for “interesting” discussions retains too many results. This account suggests defining an observable criterion, such as the presence of a verifiable solution. The amount transcribed at 27:11 is incomplete: no cost is inferred here.
Fireship: a critical introduction, with a correction on confidence

An ex-OpenAI researcher just deleted language from the LLM..., published on September 21, 2026, runs for 5 min 27 s. The transcript was read in full. The video mixes explanation, sarcasm and humorous examples; it provides no independent benchmark.

  • Small decisions. 00:29: the video shows why generating a lot of text for a small decision can create unnecessary cost. Its caricatures cannot quantify gains over an LLM configured for a short output.
  • Typed answers. 01:33: an introduction to state, questions and primitives. The term sometimes transcribed as “null” refers here to Noul.
  • Correctness and repeatability. 03:00: Fireship notes that a correct format can contain a wrong decision and that the same request can produce different results. He provides no measurement of that variability.
  • Confidence. 03:15: the explanation equates a confidence level too directly with the frequency of correct answers. The TypeSafe documentation defines confidence through distribution concentration for Choice and Score; Noul has no separate field. Calibration is measured on annotated examples for the task and version tested. A confidence threshold is not a statistical confidence interval.
  • Architecture. 03:40: Fireship stresses that the internals have not been published. Despite announcing a look at the code at 00:56, the transcript does not describe a review of Jev's internal code.
  • Prior work. 04:02: the video reports a claim of earlier work without demonstrating copying. It does not name the author in this passage. This report does not turn that allusion into evidence of plagiarism or fraud; see criticism and marketing.
  • OpenJev. 04:07: the description is consistent with SemIf, formerly OpenJev, which reads option scores from a frozen Qwen model. The project reproduces a decision interface, not Jev's weights or training. This alternative needs its own quality, cost and calibration measurements; see community projects.

The Mux segment starts at 04:24. Theo, for his part, discloses a Depot sponsorship. These passages do not establish funding from TypeSafe.

4 French-language accounts: proposed uses, errors and test limitations
Analysis of the French transcripts read in full
Creator and passageContributionCaveat to retain
Meydeey, 11:06; 15:46Comparison across several scenarios; the presenter also describes weaknesses with dates, numbers, nested structures and data unlike typical examples.The composite score of 99.4/100 is not an accuracy rate. Dataset, annotations and code were not audited; the presenter says he does not understand the displayed Brier score.
Erwan, 06:00; 04:00Reports sorting 500 comments in 14 s for $0.01. According to his review, fewer than 10 of the 85 comments classified as spam actually are spam.The “opinion” category is missing. No independently annotated error matrix. His other test asks 2 separate binary questions: their responses do not form a single Choice distribution.
LVLUP, 12:00; 05:13Demo sorting and labeling roughly 20 fictional tickets. The author says he has seen errors and wants to annotate a dataset before production use.The 60% threshold proposed at 14:24 is arbitrary. His legal conclusion about hosting is not adopted here: it is not supported by a review of the applicable laws and contracts.
Leon / Naleo, 05:17; 08:50He says he constrains both models' outputs, then demonstrates text classification and a maze. This setting deserves to be included in comparisons.The maze is reported at around 200 ms versus 1 s, without sample sizes, p95 or a full configuration. Classifying fictional news does not measure the quality of a financial decision.
2 videos citing the same announcement are not 2 validations The multipliers repeated by Theo, Fireship and other channels come from TypeSafe's evaluations. Quality needs to be compared on the same inputs and task. Including an LLM with constrained outputs avoids assuming that an LLM must always write a paragraph. Limitations and corrections apply to favorable opinions and criticism alike.

The September 17 ThursdAI episode description identifies Allie Laabs as Founding DevRel at TypeSafe. The links below use timestamps from the YouTube excerpt about Jev, which differ from those of the full episode.

Commented passages
Video and timestampWhat to watchHow to interpret the result
Greg Isenberg, 22:54Ryan Vogel describes an inconclusive Bitcoin trial: buy, hold or sell.The comparator model had additional news; the information they received differed.
Greg Isenberg, 24:22A video is transcribed before Jev scores the text.The passage shows a transcription stage, not native video input to Jev.
Meydeey, 16:25Construction of the composite score, reported as 99.4 at 16:39.This number is not an accuracy rate. At 16:49, the presenter says he does not understand the Brier score; the method and on-screen material still need checking.
Erwan, 06:15Comment-sorting test; errors are described at 06:47.The category list omits opinions. The author points out comments classified as spam, without independent reference annotations.
Allie / ThursdAI, 23:00Choosing between a single choice and multiple compatible labels.The speaker represents TypeSafe, which also sponsors the hackathon announced by the host.
AICodeKing, 05:22Gregor Zunic's browser demo, combining Jev and a generative model.AICodeKing says he has not reproduced it. The Jev Ultrafast repository includes browser work in the time measured after the first observation. At 06:01, the commentator specifies that the stated price excludes browser infrastructure: time and cost have different scopes.
AICodeKing, 02:16An “other” category is missing from the choice list.A choice forced by an incomplete list can be wrong; the passage also discusses confidence.
Allie / ThursdAI, 26:37How a demonstration was edited.The speaker reports recording 15 minutes and retaining 2 min 30 s. The edit does not measure the success rate.
New passages located in the transcripts
Video and timestampTopicScope
Micah, 02:05How ratios vary with the comparator.Commentary on vendor results; no new benchmark.
Micah, 03:00Agreement with judge models.Agreement does not establish correctness verified independently by humans.
AISeeKing, 05:20Disagreements in the published results.Analysis and secondary reporting; no additional run verified.
SimplyExplain, 07:14Narrowing the candidates before the Wikiracing choice.An explanation of the 2-stage system described by TypeSafe.
Riley Brown, 19:13Access through Vercel.The passage does not document the conditions on other platforms.
The 12 most-viewed videos in the September 21 collection
Video collection method
  • The initial collection contained 78 candidates and 38 transcripts. The September 21 supplement added 5 transcripts, bringing the total to 43.
  • Fireship adds 1 transcript on September 22: 44 transcripts acquired in total. Theo's transcript, already in the collection, was reread in full. The total is 14 transcripts read in full and 30 examined through targeted passages.
  • One acquisition in the supplement did not produce the requested English subtitles; its metadata alone confirm no performance claims.
  • Timestamps correspond to the start of subtitle segments, without frame-level precision. Misrecognized names and numbers are not corrected into assumed facts.
  • A transcript lets us locate an author's statements. It does not verify the displayed counters or the execution shown on screen.
  • Interviews with the TypeSafe team remain vendor statements, even when a third-party channel publishes them.
  • The combined duration of the videos does not represent full viewing undertaken for this report.

The short video Jev Doom Demo SoftBed is a commented repost, with no independent experiment identified. In the original demo, TypeSafe says Jev receives a textual game state, not images. Neither this repost nor an edited video measures general gameplay ability. The timestamped links in this report were checked against the transcripts, without an audiovisual audit of the displayed counters.

30 passage-based analyses: use cases, objections and hypotheses

This table provides access to the other analyses from the initial corpus, including Gary Explains, Sam Witteveen, The PrimeTime and Turing Post. The links point to passages that were read; they do not mean the entire video was reviewed. The observations describe what each creator says as of the date of their video.

Passages examined in the 30 remaining transcripts
Channel and passages readVideo contributionAnalysis limitation
Sam Witteveen · 12:53 ; 14:11Sam Witteveen distinguishes response format from accuracy and notes the absence of a paper or detailed architecture.Summary of vendor announcements, without reproducing the tests.
Sam Witteveen · 01:05 ; 03:49 ; 07:00 ; 08:47Introduces SemIf, DJev and open alternatives; discusses NLI/BERT and limits to generalization from a small number of examples.These are compatible or inspired projects, not published Jev weights. Check benchmarks, names and conditions in the primary repositories; terms of service are mentioned without verification here.
Syntax · 04:33 ; 10:39 ; 15:37Syntax proposes a pipeline of transcription, LLM notes and claim checking; demonstrates Home Assistant with a stated time of 300 ms.A partially outlined pipeline proposal; the timing of this demo is not a full benchmark.
The PrimeTime · 21:37 ; 26:22 ; 32:47 ; 35:18The PrimeTime livestream explores game integration, action schemas and integration errors.Selected passages only; development errors are not a model failure rate. More than 2 hours not analyzed in full.
Matthew Berman · 00:23 ; 04:30 ; 08:47Matthew Berman repeats the zero-hallucination claim in a discussion involving health, traffic and critical decisions.Misleading shorthand if read as guaranteed accuracy; no safety validation observed in these passages.
Caleb Writes Code · 01:45 ; 07:04Caleb distinguishes execution speed from depth of understanding; notes that social media demos mainly highlight speed.Interpretation and vendor figures, not a controlled comparison.
Rob Shocks · 00:50 ; 07:21Rob Shocks describes state + questions + typed answers and considers tool and skill selection.The title does not mean Jev generates code. Agent use cases are mostly proposals.
Moritz | AI Systems · 00:00 ; 11:36Moritz announces 3 projects and shows an improvement to the Claudia memory system using ranking.No validation of recall quality or regression measurement in the passages read.
Riley Brown · 12:24 ; 15:25Riley Brown repeats the internal benchmarks and proposes notification filtering; cites a 64k context.The quoted context figures vary. See the limitations chapter to distinguish state, question and complete request.
David Ondrej · 01:13 ; 05:37 ; 09:59David Ondrej repeats the marketing figures, discusses parallel outputs and shows a browser demo.Parallelism does not prove freedom from errors; the browser demo is replayed; the video includes hosting promotion.
RepoChad · 00:14 ; 02:11 ; 06:09RepoChad presents RLCD as a claim and notes the absence of a standard public benchmark, parameter count or weights.Third-party presentation, not evidence of architecture. Useful criticism of validation that is mainly internal.
Codevolution · 00:00 ; 10:59Codevolution explains smart-if, notes that Noul has no separate confidence field, and discusses the returned model version.Free-access dates differ between videos. This passage is not a reference for current access terms.
AICodeKing · 02:16 ; 02:50 ; 07:34AICodeKing shows a missing category, resistance to a simple injection, selection of an email from candidates and an audit of false success. Distinguishes service time from end-to-end time; mentions 8 requests, 4,148 tokens and 1.13.0.Tiny sample. External Browser Use demo not reproduced, Mercury LLM for text, timer starts after the first observation, no booking made.
Turing Post TV · 04:38 ; 09:45Turing Post distinguishes a structural guarantee from a correct judgment; shows a Codex integration and cites the architecture and RLCD as claims.Targeted analysis, not a full audit of the code or comparator.
Gary Explains · 01:01 ; 08:10Gary Explains gets an incorrect attribution for a modified Shakespeare quotation and a confident wrong answer to a flower riddle.Creator's counterexamples, not a general error rate; transcript only, screen content not rechecked.
Neural Breakdown with AVB · 11:30 ; 20:07Neural Breakdown explores constrained decoding and possible architectures.Explicit speculation, not a demonstrated analysis of Jev's internals; more than 2 hours not analyzed in full.
Jeremy Chone · 13:10 ; 38:40Jeremy Chone builds a Rust/sysone wrapper; proposes checking Rust practices and runs an urgency example with an object output.The linting use case is proposed; library development does not prove model accuracy.
vogel · 00:00 ; 02:06Ryan Vogel shows an email classifier with 8 concurrent operations and reports roughly 200 ms per email.Same author and source as the Greg demo; do not count as an additional independent replication.
Founders You Should Know · 00:02 ; 02:25Diogo presents his vision for automation before launch and announces a future release.Video published on March 31, 2026, before the public launch; it does not measure the September version of Jev.
AI Council · 02:43 ; 05:35A June TypeSafe talk contrasts human assistance with automation and criticizes benchmarks.Historical account of the founder's vision; neither architecture documentation nor an evaluation of the launched version.
Lukas Margerie · 00:00 ; 05:11Lukas Margerie proposes reusing an X classifier for YouTube video categories and reports several external demos.A collection of demos, not verified original metrics; counters and costs are attributed to their authors.
Mark Kashef · 01:06 ; 03:20Mark Kashef notes the undisclosed architecture and the usefulness of a classifier as a targeted check in a workflow.Suggestions, not quality validation; an additional judge can compound errors.
Mayank Aggarwal · 05:50 ; 08:33Mayank shows a résumé experience score and a model router.Dates, numbers and scores need checking; a 64k context is cited without verification here.
Alessio Garau · 02:10 ; 07:22 ; 15:27 ; 22:46Alessio Garau warns that RLCD details remain unknown and that only in-house benchmarks are available in his presentation.Original Italian transcript; WikiRace presented as a vendor demo, not reproduced.
tacosdedatos · 01:03 ; 03:36tacosdedatos explains aggregate calibration rather than an individual promise and describes provider access.The description states that the video was created by an AI agent, with a cloned voice and Remotion animation; secondary source, access and pricing need refreshing.
WatchSigma · 51:00 ; 65:51The WatchSigma replay contains an answer attributed to the CEO saying a possible RLCD paper is not a priority, with models and product improvements taking precedence.Commented replay with overlapping voices; uncertain attribution. No publication timeline is inferred.
Krish Naik · 20:45 ; 22:54Krish Naik proposes a Jev router ahead of tools, RAG and LLM calls.Explanatory diagram and announced future implementations, not a test performed in these passages.
Maximilian Schwarzmüller · 07:32Maximilian Schwarzmüller notes a 32k context and limitations with numbers and dates, and positions Jev as a complement.Summary of the documentation as of the video date, not an independent benchmark.
KΞVPUSH · 05:53 ; 10:54 ; 19:30KEVPUSH shows an SEO choice with empty context and low confidence, then routing, moderation and urgency.Creator-controlled demos; no overall statistical calibration demonstrated.
Adrian CHIAPELLO | Claude Code · 22:40Adrian Chiapello tests a brick-breaker game using ball and paddle state. The discussion starts with an estimate of 100 to 150 ms; inspection of the Network panel then leads to a reported response time of 200 to 300 ms.Developer's observation from this demo; distinguish animation, network, code and inference.
III

Prepare your tests

21

First call to Jev: install the SDK and test a ticket

A Python program sends a fictional ticket, then displays a suggested category. The prompt at the end of this chapter also lets you prepare this test with a coding assistant.

Jev is a hosted service. Here, you install the Python client library that calls its API. Jev’s weights are not downloaded to your machine. The program uses the result: no chatbot conversation is needed.

Tutorial version and subsequent release Python release 0.7.1, published September 21, validates the key earlier, excludes its value from logged exceptions and adds gateway examples. The tutorial remains pinned to 0.7.0, the version already checked with a mock transport. The observed JavaScript SDK remains v0.6.0. This release notice does not measure the Jev service.

1. Get a key and check Python.

2. Install the client in a dedicated directory. Run the following commands in a macOS or Linux terminal. Check that the displayed Python version is at least 3.10 before continuing. The SDK is pinned to 0.7.0 so you can reproduce the example with the same client version.

Terminal macOS / Linux terminal · installation 6 lines
mkdir jev-premier-appel
cd jev-premier-appel
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python -m pip install "typesafe-sdk==0.7.0"

3. Create the script. In that directory, save the following block as premier_appel.py. The key is read from TYPESAFE_API_KEY if that variable exists; otherwise, the program asks for it in the terminal with hidden input. It appears neither in the file nor in the assistant prompt.

Python premier_appel.py · complete file 73 lines
"""A fictional ticket, 1 API attempt and a displayed predicted category.

Requires Python 3.10+ and typesafe-sdk==0.7.0.
Running this file sends a request to TypeSafe, billable according to the account.
"""
import getpass
import json
import os
from time import perf_counter

from typesafe_sdk import (
    Choice, RetryPolicy, TypeSafeAPIConnectionError, TypeSafeAPIError, TypeSafeClient,
)


def main():
    api_key = os.environ.get("TYPESAFE_API_KEY", "").strip()
    if not api_key:
        api_key = getpass.getpass("TypeSafe API key (hidden input): ").strip()
    if not api_key:
        raise SystemExit("No key provided; no request sent.")

    try:
        with TypeSafeClient(
            api_key=api_key,
            base_url="https://api.typesafe.ai",
            retry=RetryPolicy(max_retries=0),
            timeout=30.0,
        ) as client:
            start = perf_counter()
            response = client.system_one(
                model="jev-1.13.0",
                state={
                    "ticket": "The payment failed and I can no longer access my account.",
                    "language": "en",
                },
                questions={
                    "destination": Choice(
                        instructions=(
                            "Which category best describes the main subject of the ticket? "
                            "Evaluate the categories using the supplied text."
                        ),
                        criteria={
                            "facturation": "Rejected payment, invoice or refund.",
                            "acces_compte": "Unable to log in or account access blocked.",
                            "incident_technique": "Outage unrelated to payment or account access.",
                            "autre": "None of the above topics.",
                        },
                    ),
                },
            )
            elapsed = perf_counter() - start
    except TypeSafeAPIError as error:
        raise SystemExit(f"TypeSafe API error: HTTP {error.status}.") from None
    except TypeSafeAPIConnectionError:
        raise SystemExit("Unable to connect to TypeSafe or HTTP timeout exceeded.") from None

    answer = response.choices["destination"]
    print(json.dumps({
        "model": response.model,
        "proposition": answer.choice,
        "probabilities": answer.probabilities,
        "confidence": answer.confidence,
        "duree_appel_secondes": round(elapsed, 3),
        "usage": {
            "input_tokens": response.usage.input_tokens,
            "output_tokens": response.usage.output_tokens,
        },
    }, ensure_ascii=False, indent=2))


if __name__ == "__main__":
    main()

4. Send the fictional ticket. With the virtual environment still active, run the command below.

Terminal Terminal · call the service 1 line
python premier_appel.py

5. Read the predicted category. The program displays a JSON object with the Choice option and its probabilities. The ticket mentions two topics: inspect their distribution without asking the model to enforce a handling priority. The script does not move any ticket. A successful first call confirms that the connection works for this case; it does not measure classification reliability.

Fields displayed by the script
FieldHow to read it
propositionThe category predicted in choice. The script displays it without deciding an assignment or moving a ticket.
probabilitiesThe probability assigned to each of the 4 options.
confidenceHow concentrated this distribution is; this number is not a probability of correctness.
modelThe identifier returned by the service, to keep with the results.
usageToken counts supplied by the SDK. null means the value is missing, never 0 by default.
duree_appel_secondesClient-side duration: request preparation, network, server and decoding. It is not inference time alone.

Code owns the decision: an offline demonstration. For a ticket mentioning a failed payment and blocked access, two Nouls can separately evaluate what the text says. These signals do not prove the actual transaction or account state. The block below declares questions without sending them and uses only fictional answers. Save it as decision_policy.py, then run python decision_policy.py with Python 3.10 or later; no key or third-party package is needed.

Python decision_policy.py · offline 50 lines
"""Offline demonstration: fictional values and thresholds, no Jev call."""
import json

# Two independent questions to ask Jev; this file does not send them.
questions = {
    "payment_failed": {
        "type": "noul",
        "instructions": "Does the ticket mention a declined or failed payment?",
    },
    "access_blocked": {
        "type": "noul",
        "instructions": "Does the ticket mention blocked account access?",
    },
}


def decide_route(probabilities, *, threshold=0.8, priority="facturation"):
    # Conservative teaching policy; this threshold is not validated for production.
    if not 0.5 < threshold <= 1 or priority not in ("facturation", "acces_compte"):
        raise ValueError("Invalid policy")
    payment = probabilities["payment_failed"]
    access = probabilities["access_blocked"]
    if not (0 <= payment <= 1 and 0 <= access <= 1):
        raise ValueError("Probabilities must be between 0 and 1")
    if payment >= threshold and access >= threshold:
        return priority
    if payment >= threshold and access <= 1 - threshold:
        return "facturation"
    if access >= threshold and payment <= 1 - threshold:
        return "acces_compte"
    return "relecture"


# Simulated answers to the two Nouls, reused without another call.
probabilities = {"payment_failed": 0.92, "access_blocked": 0.88}
proposals = {
    "billing_first": decide_route(probabilities, priority="facturation"),
    "access_first": decide_route(probabilities, priority="acces_compte"),
    "higher_threshold": decide_route(probabilities, threshold=0.95),
}
assert proposals == {
    "billing_first": "facturation",
    "access_first": "acces_compte",
    "higher_threshold": "relecture",
}
assert decide_route({"payment_failed": 0.52, "access_blocked": 0.48}) == "relecture"
assert decide_route({"payment_failed": 0.92, "access_blocked": 0.10}) == "facturation"
assert decide_route({"payment_failed": 0.10, "access_blocked": 0.92}) == "acces_compte"
print(json.dumps({"questions": questions, "simulated_probabilities": probabilities,
                  "application_proposals": proposals}, ensure_ascii=False, indent=2))

The same probabilities, 0.92 and 0.88, produce facturation (billing) or acces_compte (account access), depending on the priority written in code. A fictional threshold of 0.95 yields relecture (review). The function proposes handling a single issue only if the other is below the complementary threshold; ambiguous cases go to review. The assertions check this local policy, not Jev. No ticket is moved. Measure errors and choose thresholds using your own data before real use.

Tutorial verification The script was run with Python SDK 0.7.0 installed and a simulated HTTP transport. Checks cover reading a response, missing counts, an empty key, an authentication error, overload, and a timeout without retries. None of these test requests reached Jev: account access and decision quality still need checking against the service.
If the first call fails
Symptom and useful check
SymptomWhat to check
Installation rejected or import not foundPython must be version 3.10 or later. Reactivate .venv, then use python -m pip with the same interpreter used to run the script.
Missing keyThe script stops before the call. Run it again and enter the key in the terminal.
HTTP 401 or access deniedCheck the key and account access in the TypeSafe console.
Model unavailable or request rejectedCheck the documented models and request structure. A 422 error calls for checking its contents.
HTTP 429 or 529Check the quota or service availability before trying again. The script does not retry automatically.
Network error or timeoutCheck the connection and service status. A transport failure provides no category for the ticket.

Prepare the same test with Claude Code or Codex. Copy the following prompt into your assistant from the project directory. It first requests a local simulation; calling the real service remains a separate command that you run. Do not paste your key into the conversation.

Prompt Copyable prompt · create a Jev demo 19 lines
Create a minimal demo of TypeSafe’s Jev API in this project, using an entirely fictional ticket. Start by reading the project structure and instructions; preserve existing files.

Documentation to check before coding:
- https://docs.typesafe.ai/introduction/quickstart
- https://docs.typesafe.ai/sdk/python/usage
- https://docs.typesafe.ai/sdk/python/api/retries
- https://docs.typesafe.ai/models

Use Python 3.10+ and typesafe-sdk==0.7.0 in a dedicated virtual environment. Request model jev-1.13.0 and record the identifier actually returned. If this version is no longer documented, note the change in the README.

Case: “The payment failed and I can no longer access my account.” Create a Choice question named destination, with facturation, acces_compte, incident_technique and autre. Describe each category and ask which best describes the main subject. Do not put an operational priority in this question: choice is a predicted category, not a ticket assignment.

By default, run a local simulation using the real SDK and a simulated HTTP transport. Clearly label all simulated values. Add a --live option that I will run myself to send this fictional ticket to the service; do not run it during your work. In live mode, use 1 SDK attempt with RetryPolicy(max_retries=0), a 30-second HTTP timeout, and a key from TYPESAFE_API_KEY or hidden input in the terminal. Never ask for the key in the conversation or write it into code.

Display the predicted category, probabilities, confidence, model, token counts and complete client-call duration. Keep null if a count is missing. Explain that confidence describes the concentration of probabilities, not the probability of being right.

Add a standalone decision_policy.py file with no API client or network access. Declare two independent Noul questions about mentions of a failed payment and blocked access. Use explicitly fictional answers and a decide_route(probabilities, *, threshold=0.8, priority="facturation") function that applies a priority and returns a proposal or relecture (review). Values and thresholds are for teaching, not validated for production. Test that the same probabilities can produce a different proposal when only the policy changes, as well as coexisting issues and ambiguous cases sent to review. Display simulated probabilities and the application proposal separately; do not move a ticket. These signals concern the text, not the actual payment or account state.

Produce the script, installation and execution commands, then offline tests for a valid response, a missing key, an HTTP error and no retry on overload. Make no changes on GitHub or Sentry. State exactly what was tested; a simulated transport tests neither Jev nor access to my account.

After this first test.

Replacing the fictional ticket with a real issue is not enough to validate an automation.

Tutorial references: official quickstart, Python SDK 0.7.0 on PyPI, Python client and options, retry policy. SDK documentation and type declarations reviewed on 21 September 2026.

In my other resources If you run this first test with a coding assistant, my article Portable Claude Code and Codex configuration (EN) explains how to organize instructions, skills and hooks shared between the 2 tools.
22

Install Laya on a Mac and prepare a first test

Download software and weights once, then run local inference without an AI API.

A first experiment without an AI API The steps below install the public Laya-MLX runtime. They do not distribute our web interface or the lab’s additional guards. After downloading software and weights, predictions use a local path. No Jev account or AI API key is needed for the specified public checkpoint.

Prerequisites: an Apple Silicon Mac, Python 3.12 already available, and space for the environment plus roughly 614 MiB of weights. This walkthrough uses the lab versions. Local inference and the command interface were checked; the full installation was not repeated on a clean Mac. Windows, Linux and Intel Macs were not evaluated here. Official setup.

1. From the directory where you keep experiments, create a new folder. These commands install packages over the Internet. If python3.12 is unavailable, install Python 3.12 first. If the folder already exists, choose a different name.

Terminal Install the lab versions 6 lines
mkdir laya-demo
cd laya-demo
python3.12 -m venv .venv
.venv/bin/python -m pip install \
  'laya-mlx==0.2.0' 'mlx==0.32.2' 'tokenizers==0.23.2' 'numpy==2.5.3' 'huggingface-hub==1.33.0'
.venv/bin/python -m pip freeze > requirements-laya.txt

2. In the same directory, explicitly download the multilingual revision. This step needs Internet and is separate from prediction. Keep requirements-laya.txt to identify the resolved environment.

Terminal Download the weights once 12 lines
.venv/bin/python - <<'PY'
from huggingface_hub import snapshot_download

snapshot_download(
 \
   repo_id="aac6fef/laya-multilingual-mlx",
 \
   revision="f2b4faf51023039425946074e2cf1361d2db11d5",
 \
   local_dir="models/laya-multilingual",
)
PY

3. Save the JSON below as questions.json, next to .venv. It requests a category for a short text. The questions are in English; the selected model supports French or English input.

JSON questions.json 11 lines
{
  "department": {
    "type": "choice",
    "instructions": "Which team should handle the main request?",
    "criteria": {
      "billing": "Invoices, payments and refunds.",
      "technical": "Software bugs and outages.",
      "other": "A clear request unrelated to billing or technical support."
    }
  }
}

4. Run a prediction using local weights. The JSON should contain answers.department and option probabilities. A duplicate payment suggests the billing category, but this expectation is not a guaranteed result. Valid JSON proves the call works, not that the answer is correct.

Terminal Predict with the local model 6 lines
HF_HUB_OFFLINE=1 HF_HUB_DISABLE_TELEMETRY=1 HF_HUB_DISABLE_IMPLICIT_TOKEN=1 \
  .venv/bin/laya-mlx predict \
  --model ./models/laya-multilingual \
  --device gpu \
  --questions questions.json \
  --state "I was billed twice. Please refund the duplicate payment."
The public runtime can truncate inputs The 1,024 tokens include text, instructions and options. Our lab adds explicit rejection of truncation; this minimal walkthrough does not include that guard. Use very short examples. Before processing real data, validate the constructed input length and reject overflows. Do not drop a ticket ending that contains a negation or a relevant qualification.
Verify with network access denied on macOS

Hugging Face variables are not a firewall. After the download, this macOS profile denies network access only to the test process and its children; it does not disconnect the Mac. This is the mechanism used in our macOS 26.5.1 checks. Availability on another version must be verified.

Terminal Inference with network access denied 9 lines
printf '(version 1)
(allow default)
(deny network*)
' > deny-network.sb
/usr/bin/sandbox-exec -f deny-network.sb \
  env HF_HUB_OFFLINE=1 HF_HUB_DISABLE_TELEMETRY=1 HF_HUB_DISABLE_IMPLICIT_TOKEN=1 \
  .venv/bin/laya-mlx predict \
  --model ./models/laya-multilingual --device gpu \
  --questions questions.json --state "I was billed twice. Please refund the duplicate."

Resolve a loading error by checking local files. Do not silently replace the path with a remote service. If the execution environment rejects the profile, distinguish that restriction from model failure.

Choose the first use case
Use caseFirst experimentWhat remains to measure
GitHub issue triageSuggest a technical area for short tickets without applying labels.Pilot completed: candidate rejected; annotations need human validation.
Support routingDetect access, scheduling, payment and learning-related requests.Allow multiple topics; validate categories with the people handling requests.
Post-OCR documentsClassify text that has already been recognized.Check whether OCR already separates lessons and exercises; avoid an unnecessary call.

The issue-triage pilot has now run: 30 development examples followed by 60 test examples. The candidate is rejected and human validation of annotations remains outstanding. For another experiment, group duplicates before splitting, have labels reviewed, freeze thresholds before testing and use a new held-out set. Measure per-category quality, coverage, abstention, errors, overflows and full-chain latency. This walkthrough installs the engine; it does not promise a quality gain.

The lab used for our measurements adds a local page, 6 forms, imports and resumable batches. It is not yet distributed: start.command, stop.command and laya-lab are not installed by pip install laya-mlx. The public walkthrough above provides a first inference; reproducing the full lab requires its code and environment.

23

Updated · Version 0.20.0

Accessing Jev: versions, quotas and limits

Jev accepts text. Record the version, quotas and access route for each test.

As of October 28, the Models page lists jev-1.14.0 and jev-1.13.0, at the same price and with the same limits; jev-latest and jev-preview both point to jev-1.14.0. The direct model documented in the initial edition was jev-1.13.0.

TypeSafe models and limits.

Routes documented as of 21 September
AccessIdentifier and interfaceListed priceDocumented context scope
TypeSafe directjev-1.13.0; state/questions API$0.042/million input tokens; free output.64k for state and all questions; 32k for state and the longest question.
Vercel AI Gatewaytypesafe-ai/jev; experimental_evaluate in AI SDKFree promotion announced through 25 September 2026.Listing: Context 32K. This page does not specify the split between state and questions.
Cloudflaretypesafe/jev; env.AI.run with state and questionsCheck the dashboard.Listing: Context Window 32,000 tokens. This page does not specify the split between state and questions.
OpenRoutertypesafe/jev-1.13 in the catalog$0.042/million input, 0 output.Listing: 32,000-token context window. This page does not specify the split between state and questions.

The operators describe these routes on their pages: Vercel, Cloudflare and OpenRouter.

The adapters do not necessarily use the same names. Vercel, for example, exposes a boolean type where the native API uses Noul, and places some information in provider metadata. Changing gateways can also change billing, limits and data handling. Compare 2 routes as 2 separate configurations, even if both are named Jev.

The official Python and JavaScript SDKs inspected use the MIT license. The Python manifest reviewed specifies 0.7.0 and Python 3.10 minimum; the JavaScript tag inspected is v0.6.0 and requires Node 20 minimum. Python SDK 0.7.0 was also installed for the First call tutorial and run with a simulated transport. The JavaScript client was not run here. Python SDK, JavaScript SDK.

Weaknesses acknowledged by the vendor The Jev 1.13 page, reviewed on 17 September, lists errors in calculation, counting, dates and long contexts, as well as inconsistencies between question types and susceptibility to injection. A binary Choice response and a Noul response to similar wording are not guaranteed to match. Known limitations.
Documentation check on September 24 Python release 0.7.1, published September 21, validates the key earlier, excludes its value from logged exceptions and adds gateway examples. The tutorial remains pinned to 0.7.0, the version already checked with a mock transport. The observed JavaScript SDK remains v0.6.0. This release notice does not measure the Jev service. The Models page still lists jev-1.13.0 at the same price; latest and preview point to this version. Quotas are still described as variable.
October 28 documentation check
  • Jev 1.14 has been available since October 14. TypeSafe announces small gains across the board, mostly in multilingual support, and 60 days’ notice before retiring jev-1.13.0, 30 days for jev-1.14.0. No deprecation policy or 1.14-specific limitations page was found. Jev 1.14 post.
  • The TypeSafe-Danger-Zone-Long-Context: true header raises the context to 262k; the documentation says it is slower and less accurate. OpenRouter shows 262K for typesafe/jev-1.14: that figure assumes this option.
  • The Models page still lists text input while the Images page accepts images behind a header. The 2 documentation pages disagree.
  • Cloudflare, now a competitor with Clef, still lists typesafe/jev and a typesafe/jev-1.14.0 listing at $0.042 with a 32,000-token context.
  • The Python SDK has been at 0.7.5 since October 14. It enables zstd compression by default; an unofficial API may not accept it. The tutorial remains pinned to 0.7.0. SDK changelog.
24

Data sent and terms of service

Public commitments exist; precise retention periods and account options still need checking.

The Perplexity audit stated that all processing terms remained unknown. Official pages allow a more precise account. The table summarizes their statements as of 21 September; it verifies neither their technical implementation nor the compliance of any particular use.

Published documents
DocumentCommitment or information reviewedLimitation
Privacy Policy, 19 November 2025Hosted in the United States; no training or fine-tuning on inputs.The document does not specify a single data retention period in days.
DPA, 24 April 2026Processing roles and contractual transfer mechanisms, including EU clauses and UK/Swiss adaptations.The document’s existence does not automatically validate every transfer or use.
MCA, 19 September 2026No changes to weights using Customer Data without prior consent; Telemetry is treated separately.Check the definitions and terms specific to the agreement you accept.
Legal indexA zero data retention option, ZDR, is offered to enterprise customers on request.Neither default activation nor activation on the account intended for a future test has been established.

The Trust Center and subprocessors pages provided no usable content to the reading tool. Certifications, the named list of subprocessors and the terms applicable to the account therefore remain unverified. This access limitation does not prove that the information or guarantees are absent.

The Python SDK warns that debug mode may log request and response bodies without redaction. Preparing a pilot therefore also requires checking application-side logs. Sentry messages, bug descriptions and diffs may contain more information than a title alone.

Prepare permissions and data before the first call Start with synthetic or authorized data, remove secrets, limit context to what is needed, and choose the API route before testing. Preparing permissions and retention for the service you use is part of the integration, alongside measuring errors.

This audit found no explicit ban on publishing benchmarks in the 19 September versions of the website terms and customer agreement reviewed. The agreement still includes confidentiality provisions, imitation or distillation restrictions, and possible special terms. This documentary finding is not blanket permission to publish.

Before publishing your own results, keep the terms you actually accepted and those of the chosen platform. Promotional credits, the nominal rate and the amount paid are 3 separate facts. A free trial does not establish the ongoing cost of operating the system.

In my other resources For a closer look at provider selection behind a gateway, see my report Back Market and OpenRouter (FR). It covers budgets, provider selection and responsibilities between intermediaries.
25

Where to test Jev in my workflows

3 initial tests: triage GitHub issues, match Sentry errors to issues, and select fixes for release notes.

One Laya pilot completed; other leads remain separate The synthetic experiments, Aristote area pilot and 3 Sentry, review and CI POCs are documented separately. All 4 task-specific configurations are rejected, with annotations lacking human validation. The Jev proposals below remain ideas to evaluate; no call to its API was made.

I reviewed a selection of my skill, agent and automated task definitions. These proposals build on those existing tasks. Their frequency and cost still need measuring before deciding whether adding Jev is worthwhile.

The 3 proposed pilots
TaskQuestion delegated to JevBaselinesWork that would remain in the existing pipeline
GitHub pre-triageWhich category should be suggested? Which issues might be duplicates?Rules, lexical search and the current LLM.Retrieve the content, apply mechanical rules and approve changes.
Sentry matchingDo this error and this issue describe the same likely cause?A defined lexical rule and an LLM, using the same candidates.Check exact URLs/IDs, calculate severity, retrieve candidates and investigate.
Release notesDoes this fix have a documented impact on users?Commit filters and the current selection/writing model.Keep mandatory features and references, write the text and approve it before publication.
DIAGRAM · Jev classifies, the LLM writes
Proposed release notes workflow. Mandatory features bypass Jev. The writing LLM receives the original sources; a person approves the text before publication. Quality and cost still need measuring.

Jev could therefore provide an evaluation before code selects which items to pass to the LLM. This division of work needs testing: an LLM can also classify fixes, and simple rules may be enough. The diagram demonstrates no improvement in speed, cost or accuracy.

DIAGRAM · Match a Sentry error to an issue
Test scenario, with no invented score or automatic linking. If retrieval misses the right issue, Jev cannot bring it back by ranking the candidates.

Another proposal appears in Syntax at 10:54: transcribe content, ask an LLM to write notes, then ask Jev to check claims. This is a suggested use presented in the video, with no accuracy measurement for that pipeline.

The 8 proposed experiments
Comparisons to prepare
Ref.CaseMethods comparedWhat to measure
UC1FR/EN skill suggestionsCurrent BM25, rules, constrained-output LLM, JevParaphrases retrieved, incorrect suggestions and share of cases handled
UC2 · pilot 1GitHub pre-triageRules, lexical search, LLM, JevSuggested categories, duplicates found and review effort
UC3Document selection for RAGBM25, reranker, LLM, JevRequired passages retained and final answer quality
UC4Direct decision or decomposed questionsThe same decomposition for each modelQuality and cost of every call and of combining their results
UC5Choosing among 5 to 250 optionsOption order, close alternatives, cases with no suitable optionErrors by option count, position and domain
UC6 · pilot 2Sentry/GitHub matchingAn explicitly defined lexical rule, LLM and Jev on the same candidatesFalse matches, missed duplicates and review effort
UC7Old issues, after investigationThe current model and Jev given the same evidenceIncorrect closure decisions and total cost, including investigation
UC8 · pilot 3Fixes for release notesCommit filters, the current writing model and JevOmitted user-facing fixes, retained internal changes and total cost
Local rules to clarify before testing
  • The Feature and Enhancement categories overlap in the GitHub triage definition reviewed. Set a priority or allow multiple labels.
  • For Sentry, the definition mentions a Jaccard threshold of 0.75, a weight of 0.7 and a composite threshold of 0.7, without specifying how they are combined. Define this baseline before comparing it with Jev.

Old-issue triage uses 5 verdicts: already addressed (DONE), still present (STILL_RELEVANT), decision abandoned or superseded (STALE_DECISION), work partly delivered (PARTIAL), and insufficient evidence (UNCLEAR). Jev could classify a case after the code investigation. Speeding up the verdict alone does not measure the improvement across the full triage process.

DIAGRAM · Separate training, tuning and testing
Keep paraphrases and duplicates of the same case in the same subset. The number of examples depends on the acceptable error rate.

Calculate Brier score and ECE from the probabilities relevant to the task, rather than relabeling the confidence field.

Have the first suggestions reviewed

The pilot will produce suggestions without creating or closing issues.

  • Each historical case must contain only information available at that date.
  • Reserve a later period for testing and retain the real category proportions.
  • Distinguish retrieval errors, where the right candidate is missing, from ranking errors among candidates that are present.

For these proposed tests, rules that calculate Sentry severity, normalize URLs or turn a verdict into an action stay in code. The tests concern semantic evaluations where a lexical rule may miss a paraphrase or incorrectly match 2 problems.

3 fictional cases to start annotation
CaseWhat to provideReference decision to discuss
GitHub: “payment has been rejecting my card since the update”Description, version, reproduction steps, defined categories and any known incidents.Existing incident, new bug or account problem? The title alone cannot decide.
Sentry: the same message, 2 different componentsTrace, deployed version, environment and candidate issue descriptions.Do not merge based on exception text alone; look for evidence of a common cause.
Release notes: “fix: cache”PR diff and description, behavior before/after, affected users.Insufficient information until the user impact is documented.
In my other resources To choose how your agent accesses GitHub or other tools, my guide MCP server costs and choosing between MCP and CLI (EN) compares interfaces, loaded context and workflow needs.
5 concrete uses beyond a list of categories

Routing, bulk labeling and confidence thresholds are not disjoint categories. The following uses specify the processing around evaluation. The cited implementations were read, not executed.

From evaluation to a checkable workflow
Ref.UseCode’s role and limit
U10Agent context within a budgetjselect: preserve excerpts and references, manage size and repetition. Measure downstream answer quality.
U11Entity resolutionjlink: propose pairs, then apply the matching rule. Measure candidate recall separately.
U12Extracting an existing valueTypeSafe recipe: regex for candidates, Jev for the role, code for copying and normalization. The selected value can still be wrong.
U13Whether a citation supports a claimTypeSafe recipe: exact matching followed by context evaluation. 8 examples with planted errors, Jev 1.12 on August 16; no general validation.
U14Features for a supervised modelAutoResearch: an LLM proposes questions, Jev returns values, CatBoost learns, errors guide the next round.

The AutoResearch cookbook reports 67 features from 38 questions and RMSE of 1.77 versus 2.47 with word counts, on 800 held-out wine reviews. The code specifies Jev 1.12; the exact publication date is unverified. These are supplier results, not reproduced here. U14 should also compare embeddings with the same supervised model.

For skills, the official recipe ranks 182 candidates, rechecks the top 3 and can abstain. It reports incorrect loading falling from 16.8% to 7.3% on 315 covered requests among 488 synthetic requests. It specifies Jev 1.12 and a July 31 rendering date: this source is added to the report without presenting it as a new September measurement.

6 experiments inspired by the new projects

Proposals, not executed. Set acceptance thresholds before comparing. A1 and A2 offer a readable demonstration with sourced text; the GitHub and Sentry pilots retain their business checks.

Hypothesis, comparator and measurement
Ref.ExperimentComparatorMeasure
A1AI monitoring: filter headlines, then verify each announcement at its source.Keywords and the existing selection process.Useful announcements found, false positives, sources and cost per useful item.
A2YouTube/Papers: select passages that contradict a hypothesis.BM25 followed by a reranker, same documents and writer.Evidence retained, negations and reported speech; synthesis quality.
A3GitHub: shortlist hunks removing error handling.Text patterns and the existing review process.Verified bugs, omissions and noise; justified removals or moved checks.
A4Sentry/GitHub: propose pairs using a definition of the same likely cause.Exact matches, then identical candidates for the models.Candidate recall and false matches separately; no automatic merges.
A5Corpus: produce jcol columns for a classifier.TF-IDF and embeddings, same classifier and data splits.Held-out gain, total cost and FR/EN stability; quoted claims later rejected.
A6Tests: choose an initial subset before running the full suite.Selection by names and dependencies alone.Regressions found or missed, total time including selection.

Kiln’s idea also suggests a Sentry experiment: compare which frames and version changes are supplied to the model. This remains a proposal, not a feature demonstrated in the pinyin article.

26

Prepare a reproducible test

Define acceptable errors before choosing a threshold or a number of examples.

  1. Describe the decision

    Define the unit being evaluated: ticket, Sentry/issue pair, fix or document. Write down the categories, ambiguities and action the suggestion might trigger.

  2. Build the reference answers

    Have people familiar with the task annotate authorized real examples or synthetic ones. On a subset, 2 independent annotations help reveal disagreements. Resolve them and keep the instructions.

  3. Split the data

    Reserve separate sets for any adaptation, for choosing questions and thresholds, and for the final test. Group duplicates and paraphrases of the same incident. For a historical workflow, also test a later period.

  4. Set the baselines

    Existing rules, lexical search, a classifier or constrained-output LLM, and Jev receive the same relevant information. Offer a variant with decomposed questions to each model concerned.

  5. Run and log

    Record the version, API route, client region, options, question count, tokens, timing, raw response and errors. Alternate the order of competing methods to limit the effect of load variations.

  6. Evaluate the pipeline

    Measure errors, coverage, retries, cost and latency. Then check the effect on the final writing or investigation, using the same downstream model.

Metrics by task
TaskUseful metricsError to watch closely
GitHub categorizationPrecision and recall by category, macro-F1, confusion matrix, coverageAn important rare category consistently missed.
Sentry matchingCandidate recall, then precision of accepted matches2 separate incidents incorrectly merged.
RAGRecall of required passages, ranking quality, final answer accuracyAn indispensable passage discarded before writing.
Release notesUseful fixes retained, omissions, internal items included, faithfulness of the final textUser impact invented from an ambiguous title.
ProbabilitiesBrier score with an explicit convention, ECE with bins/counts, reliability diagramPoor calibration specifically in the automated region.

French deserves its own subset: accents, spoken phrasing, domain abbreviations, typos, negation and tickets mixing French and English. A translation of the same case must stay in the same data group. Comparing 2 sets with different topics in French and English does not let you attribute the difference to language alone.

A threshold of 0.9 is not a “reliable” mode Choose the threshold on a tuning set based on acceptable errors, then check coverage and error on the held-out test set. HTTP errors, out-of-domain cases and incomplete evidence need explicit handling. A number copied from a demo is not a validated threshold.

Starting in suggestion mode lets you compare each output with the usual decision. The log can store a pseudonymized identifier, versions, the suggested decision, what happened to it, and call metrics. API keys and sensitive content do not belong in a results dataset intended for sharing.

Proposed conditions for rejecting Jev in a pilot
PilotRejection criterion before adoptionDecision after the test
GitHubAt comparable coverage, more errors in priority categories than the current method, or no improvement in total cost and review effort.Keep the baseline; analyze cases where Jev supplies additional information.
SentryAt the false-match level set before the test, lower recall than the current method, or extra cost without less investigation.Exclude Jev from this matching step. Fix candidate retrieval errors upstream.
Release notesA mandatory change omitted in control cases, or more useful fixes omitted with no reduction in review effort.Fix the filter or keep the current selection process; do not publish automatically.
Define success criteria before testing

These criteria are a proposed protocol, not business thresholds that have already been approved.

  • Before the test, the owner specifies the maximum error rate per class, minimum coverage, maximum total cost and acceptable p95.
  • If the sample cannot distinguish the methods, the result remains inconclusive and automation is not expanded.
  • An output never gains a new permission because its score is high.

For model routing, asking an expert which model they prefer is not enough. Run the task with the candidate models on a reference set, then compare the quality, cost and latency of the chosen model. The router adds its own cost. Agreement with an expert opinion is a separate metric, useful but insufficient to establish an improvement in completed tasks.

3 tests to assess the arguments
Proposed pilotComparison to fix before testingExpected decision
GitHub pre-triageCurrent rules, zero-shot NLI, Jev and a constrained-output LLM. Add a trained classifier if usable labels exist. Test stable categories and a changed policy separately.Measure errors, abstention and maintenance cost. All systems must receive the same policy; also update rules when the change can be implemented deterministically.
Sentry matchingGive the baselines the same retrieved candidates. Separate identical cases, paraphrases, similar messages with different causes, and missing candidates.Measure false matches and missed duplicates, then the share suggested for review. A suggestion merges no incidents.
Decisions before an agent actsReplay permitted, forbidden and ambiguous actions outside production, with and without injection in the data. Separate authorization rules from semantic ranking.Count dangerous actions not flagged and safe actions blocked. Test network errors and out-of-domain cases; no probability grants permission to act.

Synthetic text or a rare language does not prove that the model never encountered similar data during training.

In my other resources My guide Evaluating an agent (EN) supplements this protocol with quality criteria, repeated measurements and evaluation of the system around the model. It provides no results on Jev.
27

Keep permissions in code

A signal produced by Jev can help identify risk; it must not grant permission to act.

The Perplexity audit considers a check before an agent acts. The proposed test uses Jev to flag cases that deserve an additional review. Authorization remains defined by identity, permissions, allowed actions and system approvals. Comparing this signal with local rules and an LLM judge requires counting dangerous actions not flagged, safe actions blocked, latency and cost.

DIAGRAM · A risk signal in an application
Proposed architecture for testing an additional signal. Permissions and approvals remain independent of the model’s response. No such control has been deployed for this report.

A strict format constrains the shape of the response. It does not prevent a malicious instruction in a ticket from changing the selected category. The test must therefore include ordinary text, instructions embedded in data, and ambiguous wording, without conflating these 3 populations. A reassuring classification does not neutralize an injection.

Rare cases require more than a small pilot Observing 0 errors in 100 cases does not demonstrate an error rate below 0.1%. The required number of examples depends on the desired precision, dependencies between cases, and the target population. A synthetic corpus of dangerous situations helps find failures; it does not, on its own, measure their frequency in production.

For GitHub and Sentry, the first output remains a suggestion. Finding an exact identifier, checking access permissions or applying a severity rule is work for code. Reserving the model for a semantic question does not remove the need to test that question: “same likely cause” may be wrong despite very similar error messages.

In my other resources To implement checks around the model, see my guide Securing agents, hooks and tools (EN): permissions, tools, untrusted inputs and the limits of injection detectors.
Reading the “Top 9 places to Use Jev” graphic

An image supplied during research carries this title and the ByteByteGo logo. Its publication URL and date remain unknown; it is not reproduced here. Its arrows simplify the role of code between evaluation and action.

4 points to clarify
PanelCorrected reading
9The classifier does not set thresholds. Code applies a policy; 0.5 and 0.9 are examples to validate on the data.
2–3A risk score grants no permission. Check authorization and rules before allow, ask, deny or block.
41,500 emails for $0.03 would imply about 476 billed input tokens per email at the direct price. Length, questions and retries are unspecified.
8A loop drawn at 300 ms does not demonstrate a latency guarantee. Slow calls and failures need handling.

The cost calculation assumes the direct price of $0.042 per million tokens: $0.03 buys about 714,286 tokens, or 476 for each of 1,500 emails. This calculation is not a benchmark. The confidence documentation calls for thresholds adapted to the domain and observed performance.

The phrase “100× faster and cheaper” does not describe all uses: TypeSafe places its largest gains at the high end of the expected range for its evaluated workflows. Mentioning trading supplies neither a strategy result nor predictive evidence. Low latency alone does not validate a critical application.

IV

Sources and updates

28

Official SDKs and projects inspired by Jev

A compatible interface provides neither Jev’s weights nor its training method.

Clients and comparison adapter published by TypeSafe · Stars recorded on 24 September 2026 at 16:40 UTC
Official repositoryGitHub starsRoleVersion or setting to retain
typesafe-sdk-python220Python client for calling Jev and reading its typed responses.September 21 release 0.7.1; tutorial retained and checked on 0.7.0. Python 3.10 minimum; MIT license for the client.
typesafe-sdk-js234JavaScript and TypeScript client.Tag v0.6.0, Node 20 minimum; MIT license for the client.
system-one-adapter-python289Asks an LLM API the same questions and exposes responses compatible with system_one.Choose structured output, a discrete answer or probabilities. Record normalization, retries, tokens and latency.

The official adapter makes comparisons easier for the GitHub and Sentry pilots: the same inputs and questions can go through Jev or an LLM.

Community projects examined · Stars recorded on 24 September 2026 at 16:40 UTC
ProjectGitHub starsDescribed approachReported results and limitations
SemIf, formerly TheoLeeCJ/openjev4,205Frozen Qwen 4B, reading logits to provide a decision interface.Neither Jev weights nor RLCD. The project states that it is unaffiliated.
vinnylarouge/jevlike1,283A byte encoder trained from scratch by default, with an attention head over options; optional pretrained encoder and vision path.The author reports 0 wins, 2 draws and 48 losses against Stockfish level 0. Video clips are selected to show activity.
daseinlabs/open-jev108Gemma 3 4B on MLX; continuation scoring and cached context.Calibration must be evaluated separately. No license identified by the GitHub API as of 21 September 2026.
razorback16/openjev392DiffusionGemma; claimed compatibility with the Jev protocol and SDKs, plus images and text generation.Different weights, maximum 128 options. The README also offers the third-party service api.codiv.ai; its availability was not tested here.
OpenSysOnen/aRank-8 adapters and a scalar head on Qwen3-4B-Instruct-2507; 16.5 million trainable parameters, code and adapters under Apache 2.0.Input limited to 1,024 tokens. ECE of 8.30% on Social IQA according to the author; no direct comparison with Jev. Slower than its 2 baselines on all 12 profiled workloads.
Laya22,502ModernBERT-large or mmBERT-base encoders, models with 421 or 322 million parameters, Choice/Score/Noul responses and a model router.The good typed-decisions result comes from a model fine-tuned on its training set. Jev results are taken from third parties, with different questions and sample sizes.
browser-use/jev-ultrafast19,660Jev selects an operation and an observed element; a small LLM writes only the text to type.Comparison of 2 versions on 3 repetitions each of a flight search. No flight booked; final success is checked separately.

The SemIf test compares score extraction with generated JSON on an RTX 3090, agreeing on 18 of 21 decisions. Its comparison with Jev reuses the vendor’s public outputs, without a new call to Jev. These results come from the README. No project in this table was installed or run for this report.

In his video, Micah explains reading logits at 02:07, then distillation from a teacher model at 02:39. This trained demonstration differs from SemIf’s frozen Qwen 4B. At 03:55, he explains the limitations of his Doom demo and notes that Jev’s architecture is undisclosed.

The OpenSysOne model card, inaccessible during the initial collection, was read on 21 September. It separates training, calibration and testing.

The Laya README also reports failures of its base models: on 2,000 typed decisions, they remain below the majority-class baseline, while the fine-tuned model reaches 76.6%.

Pixel already makes some decisions without generating text Pixel, developed by Livio Gamassia, routes instructions to predefined analyses, ranks files as P0/P1/P2 and assigns risk from the graph. Decisions use explicit rules and scores. The project also offers embeddings for search. It therefore goes beyond a symbol index.

To choose between Pixel and Jev, start with the decision you need. Pixel can calculate and rank what its rules and indexes describe; Jev uses learned inference to evaluate criteria supplied in the call. A business rule may be enough to triage tickets. Jev’s usefulness depends on the cases that rule handles poorly and the cost of maintaining it. Pixel’s source code was inspected at the cited version, without a comparative benchmark: equivalent quality or speed between these approaches has yet to be measured.

Third-party services: prices and data flow
  • jevtypesafeai.com advertises $0.42 per million input tokens, 10 times the direct rate, and explicitly presents this premium as the price of its managed service.
  • jev-agent.com offers 5 free credits per month, followed by paid packs with no subscription.

These sites state that they are independent of TypeSafe and forward calls to its API.

The terms of jev-agent.com specify that texts are sent to TypeSafe. TokenRa, an API aggregator, lists Jev at $0.042 per million tokens, matching its “official rate” column. These are operator statements, read on 21 September; no call or actual data transmission path was tested here.

Only their relevant sections were reviewed; their selection guarantees neither completeness nor performance.

Laya: 3 calibration rows that cannot be compared directly

The Laya README at the revision reviewed contains several tables. Quoting only 0.081 versus 0.246 would imply a shared test that was never run.

Keep the model and protocol with each ECE value
README tableReported valuesLimitation
Typed-decisions, models compared on 400 cases and 2,000 decisionsSpecialist Laya: 0.213; Jev taken from third parties: 0.144.The specialist was fine-tuned on these workflows; the Jev results come from a separate run.
Base model calibrationLaya: 0.466 then 0.081; multilingual: 0.314 then 0.106.The second number follows temperature tuning by type and option count. It does not describe the same checkpoint as the previous row.
Summary table: Laya with routing / Jev0.081 and 0.246.Values from separate experiments, insufficient to conclude that calibration is better in general.

The laya-typed-decisions model card also flags an inherited setting that can override per-type temperatures. Keeping the exact checkpoint and configuration is therefore necessary. Distinguishing the 2 systems would require running the same inputs through both, with calibration on a separate set.

The September 24 additions are split between commands and integrations and Laya-MLX / Kev. The former use an evaluation interface; the latter serve different weights. Their results do not reveal Jev’s architecture.

29

Filtering, sorting and selecting context with Jev

Commands and integrations make the use cases concrete. Their READMEs describe features; performance figures remain the authors’ measurements.

The September 24 collection adds 17 repositories absent from version 0.15.0. Some existed before September 21: discovery and creation dates are kept separate. Relevant sources were read and parts of jgrep’s code inspected; none of these tools was installed or run for this report.

Khaled Eltokhy’s 5 commands · Stars recorded on 24 September 2026 at 16:40 UTC
ToolGitHub starsOperationCondition to preserve
jgrep85Filter lines, paragraphs, CSV/JSONL, diffs or functions against a description.Code filters a Noul probability. Choose the threshold for the task.
jsort21Compare texts in pairs against a criterion, then fit a Bradley–Terry scale.The scale and its standard error do not establish that the criterion produces a correct ranking.
jlink4Link records using a definition of the same entity.The initial candidate filter can exclude the correct pair before evaluation.
jcol1Turn a codebook into annotation columns, with checkpoints and resume.The meaning of confidence fields depends on the primitive.
jselect3Select referenced excerpts within a token budget, using relevance and diversity.Without a key, automatic mode may be lexical. Output preserves excerpts rather than generating a summary.

The commands share jevkit-core, distributed as jevkit-runtime, for transport, caching, provenance and cost accounting. They have the same author; their number does not count independent validations. Versions observed on September 23: jgrep 0.4.1, jselect 0.3.1 and runtime 0.3.1. Local-server support was introduced in the preceding September 22 versions.

The inspected jgrep code builds Noul questions and applies a default threshold of 0.5. With multiple descriptions it takes a minimum or maximum depending on the mode; these operations do not compute a joint probability. The README claims about 200 ms per call and reports processing 994 titles in 4.6 seconds for $0.012, with concurrency. These are the author’s figures.

Adapted examples, not executed. They assume jgrep is installed and a provider is configured; hosted providers may charge for calls. The first expects a CSV with an abstract column; the second evaluates hunks in the current diff. Outputs need review.

Terminal 2 semantic criteria to try 2 lines
jgrep --csv --field abstract "reports a failed replication" papers.csv
git diff --no-color | jgrep --diff "removes error handling for a persistent write"
Example output does not verify a news event Model headlines and scores shown in the README illustrate the command. They establish neither that the referenced announcements occurred nor that they are accurate.
Other search tools and integrations · Stars recorded on 24 September 2026 at 16:40 UTC
ProjectGitHub starsDocumented contributionLimit
llm-typesafe13Plugin for Simon Willison’s LLM tool, created September 22: CLI, Python, reusable templates and all 3 primitives.An additional integration, without a new quality evaluation.
jev-compactor1Drop less relevant messages while preserving the retained ones verbatim. CLI, MCP and TypeScript library.Synthetic conversations and reconstructed comparators; success on a real agent continuation is not established.
jev-semgrep135AND/OR/NOT expressions and multilingual search examples.Separate from Semgrep. Examples do not validate all languages.
nassim-arifette/jevgrep66Behavior-based code search with files and lines, through CLI/MCP.The README separates mocked transports and limited live checks. Downstream agent benefit remains to be measured.
kyu1204/jgrep29Code search, diff rules, table annotation and predictive test selection.Chunks are judged in isolation. Selection does not replace the full test suite.
3 similar names, 3 projects keltokhy/jgrep, kyu1204/jgrep and nassim-arifette/jevgrep are distinct. The second distributes npm package jevgrep; the third distributes @nassim-arifette/jevgrep. Their options and results are not interchangeable.

kyu1204’s test selection first keeps files by name and imports, then asks Jev about other candidates using the diff and test names. The author instructs users to run the full suite afterwards. Measure time to useful feedback and missed regressions, including selection overhead.

Dates of the 17 added repositories

GitHub metadata accessed September 24, 2026. A push date does not date a feature. jcol, the runtime and llm-typesafe were created within September 21–24; other entries are discoveries or updates to earlier projects.

Creation and last observed push, UTC · Stars recorded on 24 September 2026 at 16:40 UTC
RepositoryGitHub starsCreatedLast push
keltokhy/jgrep852026-09-182026-09-23
keltokhy/jsort212026-09-192026-09-23
keltokhy/jlink42026-09-182026-09-23
keltokhy/jcol12026-09-212026-09-23
keltokhy/jselect32026-09-192026-09-23
keltokhy/jevkit-core02026-09-222026-09-23
nassim-arifette/jevgrep662026-09-202026-09-23
sglenon/jev-semantic-reviewer02026-09-182026-09-21
supercorp-ai/supercov1142026-08-232026-09-24
mizorewww/laya-mlx6,1662026-09-192026-09-22
simonw/llm-typesafe132026-09-222026-09-22
edwardyen724-g/jev-compactor12026-09-192026-09-19
uehaj/jev-semgrep1352026-09-192026-09-24
kyu1204/jgrep292026-09-192026-09-23
NiazMorshed2007/jev-review2212026-09-172026-09-17
devagrawal09/jev-review5952026-09-162026-09-17
jaredpalmer/kev6,6442026-09-172026-09-24
30

Laya-MLX and Kev: local models to compare

The same question types can be served by different weights. Compatibility, speed and quality need separate checks.

Laya-MLX independently ports Laya to MLX on Apple Silicon. After downloading weights, inference is local and returns Choice, Score and Noul. The README pinned to September 22 documents a 421-million-parameter English model, a 322-million multilingual model and a 421-million typed-decisions variant. It does not provide Jev’s weights. Declared version: 0.2.0, commit 0a85951.

One short question, MLX FP16: 2 different presentations
ModelREADME medianReport and raw data
English13.42 ms17.75 ms
Multilingual7.39 ms10.91 ms

Recalculating the 50 samples in each file gives 17.745958 and 10.9073125 ms. The data is dated September 22, on an M3 Max with 40 GPU cores and 128 GiB. Timing includes preparation, synchronized inference and formatting; loading and downloads are excluded. The README disagrees with these files at the same commit. Sources: report, English, multilingual. These M3 Max benchmarks were not rerun under the same conditions.

Agreement with the upstream runtime on 63/63 answers for each model and precision measures port fidelity. The small AG News test uses a corpus present in the upstream training mix. These 2 observations do not establish general equivalence with Jev.

Check context length and calibration The 512- or 1,024-token windows include instructions and options. The input builder retains the start of the text when space runs out. The September 22 loader correction clamps temperatures to 0.5–5 and says affected confidence values should be treated as uncalibrated. Test final negations, long inputs and thresholds on your own data.

The JevKit guide supplies a separate server adapter and documents jgrep --api laya. It rejects inputs that would be cropped by default. The author tested only the English 421M model; the guide pins the port to September 19, before the calibration correction. Those trials therefore do not automatically validate the September 22 revision. The jgrep comparison also shows task-dependent rankings.

In the Snake demo, code prepares board information, Laya evaluates proposals, and a safety rule can correct the action. Survival results concern this combined system; they do not demonstrate unaided board reasoning.

Kev provides weights and training recipes for a Qwen3.5 family of 0.8B, 4B and 9B models. Its API follows System One; the reviewed README documents CUDA, ROCm and Apple Silicon through MLX. Its reference to an analysis titled “Architecture Unmasked” does not establish that Jev’s proprietary architecture is known.

On September 24, Kev-4B received a specialization on financial complaints: the reported gain stays within the same domain and question templates. Commit 60c8d39 adds batching and GPU optimizations. Because Jev’s training data is unknown, the comparison cannot isolate architectures. The repository also retains external evaluations where Kev trails Jev.

Local experiments completed on September 26 The multilingual runtime has since been installed and run offline on an M5 Max. The personal results and installation walkthrough are separate from the M3 Max measurements above, preserved at their original date and revision. No Jev call was made.
New open weights since October 1, not run here
  • Strands Decider 2B v1-2610: a LoRA adapter and readout head on Qwen3.5-2B, Apache 2.0. pip install strands-decider, then strands-decider serve exposes /v1/systemone on 127.0.0.1, without authentication. The card provides --device mps for Apple Silicon and evaluations with a 4,096-token window.
  • Clef (27B) was tested by Cloudflare on an H200; Clef-omni needs about 64 GB of GPU memory in bf16. Running them locally means a GPU server, not a laptop.
  • Perplexity’s pplx-decider v1.1, under Apache 2.0, needs about 49 GiB of GPU memory for its weights.
31

Frequently asked questions

Short answers to recurring confusions in articles and demonstrations.

Does Jev replace a coding assistant? Jev currently returns choices, ratings and probabilities. It writes neither code nor explanations and does not carry out the investigations expected of an assistant. An application can ask it for evaluations, then apply rules and thresholds in code to determine how to handle the case. The cost and quality of those evaluations still need measuring.
Can a model that does not write text be wrong? Yes. It can select the wrong option or assign a poorly calibrated probability to a proposition. Format, correctness and calibration are different properties.
Can an LLM already return JSON? Yes. Constrained output is therefore a relevant baseline. Any benefit from Jev should be measured at comparable quality, using the answers and probabilities the application actually needs.
Can it analyze a video directly? Not with Jev: it accepts text and, as an experimental option since October 14, images. Cloudflare’s Clef-omni has announced audio and video since October 9, with no published scores on those inputs. Otherwise, a demo may transcribe the video or produce a game state before the call; that step and its errors must be counted.
Is the model open source? Not Jev: the public SDKs provide access to the service, without the weights or a reproducible recipe. Since October 1, Clef, Strands Decider and pplx-decider have published weights under Apache 2.0; Strands also publishes its training code and data inventory. These are not Jev’s weights, and an identical interface does not guarantee the same answers.
Can you use the probabilities as they are? You can record and evaluate them. Their usefulness in deciding what to automate depends on the data, classes and thresholds chosen. A published result on banking intents does not validate bug matching.
Why keep a human in the diagrams? The API is intended for software. Humans still define categories, resolve ambiguous cases and may approve an action or final text. Their presence does not turn the API into a chatbot.
Why is this report still provisional? The product and documentation change quickly after launch. This report dates its findings, retains sources and separates published results from tests still to be run.
Can I try it without an external API? Yes for Laya-MLX: after downloading, inference was verified with network access denied. These are Laya weights, not Jev weights. OCR, generation and GitHub retrieval remain separate steps. Install Laya.
32

Track Jev’s development

Weekly monitoring tracks versions, prices, publications and new tests.

When to update this report
Expected developmentPlanned workStatus as of 21 September
Version, price or limit changesDate the new value and rerun affected testsValues documented as of 21/09
RLCD paper or technical reportRead the method, data and architecture descriptionNo sufficiently detailed publication found in this research
Reproducible independent benchmarkCheck data, baselines, test sets and raw resultsThird-party reports read, without reproducing the tests
Community discussionsRecord questions and tests, distinguish opinions and respect private remarksExcerpts received and analyzed; full thread unavailable
Submitted Perplexity auditCheck claims against original sources and integrate correctionsIntegrated into revision 0.6; unverified leads flagged

The Perplexity audit provides research leads. Its review articles, videos and commercial retellings are not counted as separate replications. Primary sources were preferred for the API, access terms and experiments; secondary pages remain useful for finding an author or a test.

Monitoring flags useful changes; it neither publishes the report nor launches paid tests. Each revision preserves source dates, raw results and earlier versions.

Continue the research with Perplexity

Restart from September 24 and check specific changes. The prompt requests no installation, inference calls or publication. Preserve each source’s URL and dates.

Prompt Updated Deep Research prompt 11 lines
Further research on Jev / TypeSafe. Baseline report: version 0.16.0, collection dated September 24, 2026. Set a new end date and find subsequent changes; separately mark older projects missing from the report.

Already covered: primitives, calibration, incompletely disclosed RLCD, earlier benchmarks and 17 additional repositories: keltokhy/jgrep, jsort, jlink, jcol, jselect and jevkit-core; nassim-arifette/jevgrep; sglenon/jev-semantic-reviewer; supercorp-ai/supercov; simonw/llm-typesafe; edwardyen724-g/jev-compactor; uehaj/jev-semgrep; kyu1204/jgrep; NiazMorshed2007/jev-review; devagrawal09/jev-review; mizorewww/laya-mlx; jaredpalmer/kev. Do not present them as new without a dated change. The jgrep/jevgrep projects are distinct.

Check TypeSafe releases (Python 0.7.1 observed, report tutorial tested on 0.7.0; JS 0.6.0), models, pricing and limits. Distinguish hosted Jev from local models. For Laya-MLX, examine the README/raw-data discrepancy, truncation and corrected temperatures; the JevKit guide pins an earlier revision. For Kev, distinguish development, test and domain specialization.

Explore composable tools, context selection, entity resolution, extraction of existing values, citations, supervised features and test selection. Read the skill_suggestion, autoresearch_feature_discovery, pre_parsed_value_extraction_cookbook and citation_check cookbooks at docs.typesafe.ai. Try to retrieve autoformat, listed in llms.txt but inaccessible during collection. Their Jev 1.12 examples do not become new September measurements.

Prioritize primary sources, commits, protocols, failures and raw responses. Jev evaluates; code applies thresholds, permissions and actions. Confidence is not a probability of correctness. Do not generalize 100× factors, per-email costs or 300 ms loops. Do not infer proprietary architecture from a reimplementation.

Deliver 5 useful discoveries, a dated matrix of changes and sources, limitations, and experiments with comparators and acceptance criteria. Separate documented features, authors’ figures, reproduced results and proposals. Use UNKNOWN for unverifiable claims. Do not install anything, call the API or publish. Previous Perplexity syntheses contained errors; check every claim at its source.
Jev in the Claude Code Ultimate Guide A section is being considered on tool selection, structured decisions and cost per task. It will present tested cases and their results when available. The Jev API is not presented as a native Claude Code feature.

A publication detailing RLCD would allow its novelty to be examined. A comparison with competing training or calibration methods should control the base model, data and settings. That publication depends on TypeSafe; it is something to watch for, not a test a reader can run with the API alone.

September 24 collection Perplexity supplied leads, but the received response was incomplete and notably claimed it had not found tests for jgrep. The repository publishes tests and experiments. This revision retains claims checked against primary sources. Older cookbooks retain their original dates.

The official index also lists an autoformat cookbook for reconstructing Markdown structure. Its detailed page was inaccessible during collection: this remains a lead, without a retained result.

October 28 research A Perplexity search served as a map; every retained fact was reread on the vendor or repository page. Several leads were corrected: OpenAI’s beta dates from October 6, not September 29, and Ollama 0.35 serves Nimble and Tev1, not Jev. Liquid D1, Mercury Decide and Microsoft Decision 1, cited by aggregators, were not verified with their vendors.
33

Further reading

My articles and guides for configuring agents, preparing tests and tracking costs. FR and EN indicate the reading language.

A question about Jev?

Have a question, a test result or a correction to share? Message me on LinkedIn.

Contact me on LinkedIn
34

Glossary

Terms used in this report.

Abstention
A case that the application leaves to a person or another method because it cannot decide under its rules.
Calibration
Agreement between predicted probabilities and outcomes across a set of cases. Among predictions at 80%, roughly 80% successes are expected; this guarantees no individual answer.
Typed answer
Answer whose shape is defined before the call: an option and probabilities with Choice, a score and probabilities with Score, or the probability of yes with Noul. Application code determines how to use it to decide what happens next.
Other glossary terms
Ablation
Experiment that removes or changes a component to measure its contribution while keeping the rest comparable.
API
Interface that a program calls to obtain a structured response.
Autoregressive
Builds output by predicting the next token from the context and previously produced tokens. The diagram in this report describes this common generation method.
Backbone
Main network of a model, to which specialized components may be added.
Baseline
Reference method against which Jev is compared: a rule, lexical search, classifier or another model.
BM25
Lexical search score based on the words in the query and corpus. Its score is not a probability.
Bradley-Terry
Statistical model that fits a scale from pairwise comparisons. It depends on the supplied judgments and does not establish their correctness.
Brier
Measures the squared difference between predicted probabilities and observed outcomes. For multiple classes, specify how the differences are aggregated.
CatBoost
A supervised model for tabular data; the cookbook supplies columns derived from text.
Codebook
A rubric defining categories or levels to assign to items in a corpus.
Confidence
Jev field computed from the concentration of probabilities across options. It is distinct from the probability assigned to each option.
Constrained output
Response whose decoding restricts allowed forms according to a supported schema. Following the format does not guarantee accurate values.
Coverage
Share of cases the application handles automatically after excluding those requiring review.
Distillation
Training a model on the responses or scores of another model, called the teacher. Agreement with that teacher does not prove that the answers are correct.
Distribution
Set of probabilities assigned to possible answers. It is concentrated when an option receives most of the probability.
DPA
Data Processing Agreement: agreement describing the conditions for processing personal data between the parties.
ECE
Average calibration gap measured across probability bins. The result depends on the bins chosen and the number of cases in each.
Encoder
Model or component that transforms input into a numerical representation usable for classifying or comparing data.
Ground truth
Reference answers used to assess predictions. Their creation and verification must be independent of the model under test.
Jaccard
Measures overlap between 2 sets, such as the words in 2 titles. Shared words do not prove that 2 bugs have the same cause.
LLM
Language model generally used to produce text, potentially constrained to an output schema.
Log-loss
Measure that penalizes low probability assigned to the correct answer, especially when the model is confidently wrong.
Logits
Raw scores produced by a model before their possible conversion into probabilities. Reading them does not guarantee calibration.
Macro-F1
Average of each class’s F1, giving equal weight to frequent and rare classes. F1 combines precision and recall.
MCA
Master Customer Agreement: general contract between the vendor and its customer, to be read alongside any specific terms.
MLX
A computation library used here to run models locally on Apple Silicon.
nDCG@10
Measures ranking quality for the top 10 results, taking their relevance and position into account.
NLI
Natural Language Inference: assess whether a text supports a hypothesis, contradicts it or does not allow a conclusion. A category rephrased as a hypothesis can be used to classify the text.
Noul
Jev question type that returns a probability between 0 and 1 for a binary question.
p50/p95
Response times below which 50% and 95% of successful calls fall, respectively. Failures are counted separately and remain part of the assessment.
PPO
Proximal Policy Optimization: reinforcement learning method used in Rewarding Doubt, among other work. Its use by Jev is not established here.
Precision
Among cases selected or assigned to a category, the proportion whose decision is correct. Distinct from the overall rate of correct answers.
Primitive
Type of question and response in the TypeSafe API: Choice, Score or Noul. The application selects it before the call.
RAG
Generating an answer from retrieved documents. Filtering documents is only 1 step in the workflow.
Recall
Among cases that should have been found or retained, the proportion actually retrieved.
Reranker
Method that reorders documents already found by a search engine.
RLCD
Reinforcement Learning for Calibrated Decisions, TypeSafe’s name for its training method. The documents found are not enough to reproduce it.
RLHF
Reinforcement learning from human feedback. InstructGPT is a reference work to which Diogo Almeida contributed.
RLVR
Reinforcement learning from verifiable rewards, for example by checking an answer or a program’s execution.
SDK
Client library that simplifies API calls. Its public code does not make the model’s weights public.
Softmax
Transforms scores into positive numbers that sum to 1. This numerical property does not guarantee calibrated probabilities.
Test set
Set of examples reserved for final evaluation, used neither to select thresholds nor for training.
TF-IDF
Lexical representation that weights words by their frequency in a document and their rarity in the corpus.
Token
Text unit processed by the model, often part of a word. A token is not necessarily a whole word.
ZDR
Zero Data Retention: an offer of no data retention, whose scope and conditions need to be checked for the service used.
Zero-shot
Use without task examples supplied in the request or task-specific adaptation in the protocol considered. This does not mean the model has never seen similar data during training.
35

Conclusion, sources and updates

Report scope and method

Research as of September 21, 2026. Measurements published by TypeSafe and benchmark authors are distinguished from recalculations using their data. No call to the Jev API was made for this report. Leads from the Perplexity audit and editorial review were verified before inclusion. Community excerpts were received; the full thread is still missing. The report is available in French and English; both editions remain works in progress. September 23, 2026 addition: Daniel Moka’s educational article published September 22, original infographics and checks of the official State, Choice, Score, Noul and Confidence pages. Benchmarks and their verification dates remain those stated in their chapters. September 24 supplement: semantic tools, 17 additional repositories, Laya-MLX and Kev, jgrep/Kiln experiments, official recipes and Python SDK 0.7.1. Sources were cross-checked after Perplexity research; no new inference calls or benchmarks were run. Dates of earlier experiments are retained. September 26 addition: Laya inference actually run offline, 60 synthetic predictions evaluated, 6 browser workflows and a local walkthrough. These experiments are not Jev tests; its API was not called. The September 26 edition did not yet include the task-specific pilot results. September 27 addition: Laya pilot on Aristote issues, 30 development and 60 test cases. Provisional annotations by 2 agents, without human validation; tested configuration rejected for this triage task. Aggregate results published, private corpus withheld. No Jev API call or new inference for this update. September 27 supplement 0.19.0: 3 Laya POCs for Sentry, reviews and CI, with 45 development and 120 test cases. Configurations rejected, annotations provisional. Evidence check rerun without inference; public aggregates separate from private corpus. Supplement 0.20.0, October 28, 2026: Jev 1.14, competitors (Clef, Strands Decider, OpenAI’s Decisions API, pplx-decider), funding and 3 third-party evaluations. Primary sources reread on October 28; no API call or new inference.

Conclusion

As of September 27, 2026, this report separates Jev, published benchmarks, our synthetic Laya experiments and the Aristote issue pilot. Local inference works. The pilot nevertheless misses the required gain: 8 matching suggestions out of 11 emitted by Laya, versus 12 out of 17 for title-only rules, across 60 tickets. No Jev API call or direct Jev/Laya comparison was performed.

Keep rules and exact links. The area pilot and 3 Sentry, review and CI POCs reject the tested Laya configurations. Across the 120 cases in the latest 3 POCs, matching suggestions are 2/38, 1/9 and 6/20; CI rules reach 5/6. Agent annotations without human validation and diagnostic corpora limit generalisation. Any new configuration requires another held-out set. The first pilot’s lexical variant remains undeployed.

As of October 28, the question is no longer only “Jev or an LLM?”. Clef, Strands Decider, pplx-decider and the Decisions API offer the same family of answers; third-party rankings place several models within a few points of each other, and their authors name no overall winner. My Laya POCs remain negative. The next local candidate is Strands Decider 2B, on the same held-out sets and with recalibrated thresholds.

Dated sources

“Accessed on” gives the date the source was read. A source may have been published earlier and later updated.

Update history

DateVersionChanges
28 October 20260.20.0Added a competitors chapter: Clef, Clef-flash, Clef-omni, Strands Decider 2B, pplx-decider and the Decisions API, with prices, interfaces and limits. Jev 1.14, Box, images and long context, SDK 0.7.5, funding and unaudited adoption figures. Astronomer, AIMultiple and Leanmcp evaluations summarized. Chronology, FAQ and research notes updated. Primary sources reread on October 28; no API call or new inference.
27 September 20260.19.0Added 3 Laya Sentry/review/CI POCs: 45 development cases, 120 test cases, 15 overflows. Suggestion precision 5.3%, 11.1% and 30.0%; candidates rejected. Known Sentry links, corpus limits, provisional annotations and timing scopes distinguished. Evidence checks rerun, no new inference or Jev API call. Aggregates, news and banner updated.
27 September 20260.18.0Added the Aristote issue-area pilot: 30 development cases, 60 test cases, 3 comparators, precision and coverage, 41 Laya abstentions and 8 overflows, separately scoped timings. Annotations by 2 agents without human validation; configuration rejected. Aggregates without private data, banner, conclusion and news updated. No inference rerun or Jev call.
26 September 20260.17.0Added Laya experiments on M5 Max: offline inference, 62 program tests, 60 synthetic predictions compared with rules, timing and 6 browser workflows. Documented semantic errors and unconfirmed JSON download. Public walkthrough with pinned versions and weights; evidence data included. No Jev calls or Aristote task results. Earlier sources and star counts retain their dates.
24 September 20260.16.0Added 17 repositories, 2 chapters on semantic tools and local models, jgrep/Kiln experiments, 5 uses and 6 proposed trials. Laya-MLX analysis covers recalculated medians, context and calibration; Kev added. SDK 0.7.1 notice, dated official recipes, ByteByteGo graphic limitations and refreshed research prompt. FR/EN sources and reports synchronized; no inference run. GitHub stars added for the 35 listed repositories, recorded on September 24 at 16:40 UTC.
23 September 20260.15.0Clarified the distinction between Jev’s probabilistic evaluations and application decisions. Opening text, glossary, Choice examples and four FR/EN infographics aligned. An offline demonstration applies fictional rules and thresholds to the same answers to show that code policy determines how to handle the case. Benchmark dates and results preserved; no Jev call.
23 September 20260.14.04 infographics in English and French explain the roles of the LLM, Jev and code, a complete request, Choice / Score / Noul and a full-workflow comparison. Examples are fictional; qualifications cover calibration, LLM outputs and internal processing. No new API evaluation.
22 September 20260.13.0Complete English edition: 26 chapters, 108 sources, 45 glossary entries, translated interface and illustrations. FR/EN links are active at the top of the page. Numbers, timestamped links and result limitations are preserved.
22 September 20260.12.4An infographic explains classifiers in the critical analysis: a ticket example, categories defined during training or at call time, then Jev’s role. Existing explanations and sources are preserved.
22 September 20260.12.3Pixel credited to Livio Gamassia with his LinkedIn profile in the critical analysis and ecosystem chapters. Mention of our participation in the DevWithAI community.
22 September 20260.12.2The contents menu follows scrolling: the current part opens and the others collapse when the reader moves to another part. Manual expansions remain in place while reading within the same part.
22 September 20260.12.1Critical assessment placed at the start of the summary, with direct access from the first reading path. The critical chapter distinguishes practical value, scientific novelty, marketing and the scam allegation. Synthesis of sources already reviewed, without a new model test.
22 September 20260.12.0Theo and Fireship analyses integrated with their reservations and timestamped links. French-language accounts and other corpus passages are available in the video chapter. Confidence explanation corrected, demonstrations attributed, and 44 transcripts accounted for, including 14 read in full.
22 September 20260.11.17LinkedIn links added to mentions of the 3 founders in the text, tables and glossary.
22 September 20260.11.16Numbers written as digits in headings, text, tables, captions and the glossary. Code examples and original source titles preserved.
22 September 20260.11.15Share button added at the top of the report: HTML download, online link copying and native sharing where the browser supports it. Local addresses are not offered as shareable links.
22 September 20260.11.14Languages shown at the top of the page: French available, English forthcoming. The English link will be added once the translation is available.
22 September 20260.11.13A collapsible “Other resources” menu below search provides access to the portfolio, Claude Code guide, GitHub and LinkedIn.
22 September 20260.11.12Links to my portfolio, GitHub and LinkedIn added. 8 references within chapters and a “Further reading” selection connect the report to my published resources on agents, their evaluation, security and costs.
22 September 20260.11.11A LinkedIn button lets readers contact me after reading the report. The link is also available from the menu for questions, test feedback and corrections.
22 September 20260.11.10On large screens, text and tables use more width. Diagram sizes and the mobile reading layout remain unchanged. The source cutoff remains September 21, 2026.
21 September 20260.11.9A diagram compares the signals and objectives of supervised learning, RLHF and RLVR with RLCD’s stated objective. Missing details about RLCD are identified; the table remains available.
21 September 20260.11.8Mermaid diagram text reduced from 16 to 14 pixels. Blocks are laid out at this size, preserving labels and arrows.
21 September 20260.11.7An infographic compares Choice, Score and Noul on the same fictional ticket: category selection, rating on a scale and probability of yes. Tables and detailed explanations are preserved.
21 September 20260.11.6Headings and passages reworded to describe Jev’s inputs, responses and limitations in concrete terms. Examples, figures and sources preserved.
21 September 20260.11.5A “Copy for an LLM” button copies the full report as JSON, including sources, examples and Mermaid diagrams. Images are represented by their descriptions and captions.
21 September 20260.11.4The “1 test, several retellings” diagram is reduced by half. The other diagrams’ minimum widths no longer exceed their natural size.
21 September 20260.11.3Search covers the report’s full text, including tables, notes, code and collapsed prompts. Results show their part and chapter, without a limit of 40 passages. A search button is also available on mobile.
21 September 20260.11.2The contents heading remains visible. Each part expands and collapses independently on desktop and mobile; scrolling preserves the reader’s choices.
21 September 20260.11.1Syntax highlighting for Python, TypeScript, JSON and terminal examples, available offline. Copied content remains identical to the source code.
21 September 20260.11.0Review of 25 chapters: enumerations, prerequisites and distinct results presented as lists. The opening summary uses bullets. Text, figures, conditions, sources and code examples preserved.
21 September 20260.10.0Reading reorganized: 3 paths at the beginning, contents organized by part, glossary at the end and tutorial among the tests. Narrower text, lighter tables and notes. All code examples and prompts are collapsible, with copying available without opening them. Navigation and light and dark themes made consistent.
21 September 20260.9.2Copy button at the top right of each code block, with confirmation and preservation of spaces and line breaks.
21 September 20260.9.1Opening summary simplified: Jev’s role, launch date, reasons for interest, approximate speed and price, and a cost example. TypeSafe’s claimed gains remain distinguished from independent measurements.
21 September 20260.9.0Developer walkthrough added: Python SDK installation, first call on a fictional ticket, reading the response, troubleshooting and a copyable prompt. Script checked with the installed SDK and simulated responses; no call to the Jev model.
21 September 20260.8.0Critical chapter added on classification, commercial claims and “scam” allegations. Community discussions verified, baselines clarified and GitHub/Sentry tests detailed.
21 September 20260.7.1Last-update indicator added at the beginning, with direct access to the history. Content corrections and new visuals appear in version 0.7.0 below.
21 September 20260.7.0Corrections following the editorial audit: sources and third parties, full vendor results, recalculations of filtering by confidence, illustrative API response, proposed rejection criteria and new figures. The audit’s findings were also checked against sources. No Jev call.
21 September 20260.6.0Critical integration of the Perplexity audit: API inputs and outputs, calibration measurements, benchmark provenance, access and data, ecosystem, protocols and new diagrams. No personal API results added.
21 September 20260.5.0Exchanges between software systems emphasized in the title, introduction and 3 diagrams. Caller, recipient and human review distinguished. An LLM can also serve an application.
21 September 20260.4.0Comparison added between autoregressive generation and the Jev API, followed by a scenario combining Jev and an LLM for release notes. Limits of knowledge about the architecture stated; 2 terms added to the glossary.
21 September 20260.3.0Full review of headings, explanations, tables and captions. Jargon explained and collection details grouped together. Video links checked against transcripts; browser demonstration attribution corrected.
21 September 20260.2.0Use cases refined after inspecting skills, agents and workflows: GitHub pre-triage, Sentry matching, backlog verdict after investigation and fix selection for release notes. Deterministic rules and protocol ambiguities identified separately. No API test executed.
21 September 20260.1.0Initial research version. API inputs and outputs, documented limitations, third-party benchmarks, video corpus, background literature and test protocol. Community thread and personal tests pending.

Copy the report as JSON

Automatic copying is unavailable. The text is selected: press ⌘C or Ctrl+C, then paste it into your assistant.

Share this report

Download the HTML report