Jev (TypeSafe AI) research report, 14 October 2026: what implementations do with no key, code paths that skip Jev, and the Python and TypeScript SDKs
This dated report records the evidence behind the update of 14 October 2026. It settles the remaining no-key cells on When Jev fails and most of the open bypass cells, refreshes the Python and TypeScript SDK pages, adds two graded comparisons to benchmarks (B43, B44), and adds SubQ Snap as a row on Jev alternatives. Nothing was run: no account, key, API call or third-party code.
When Jev fails: With no API key, 50 of 77 implementations refuse to start, error or hold; 17 fall back, 7 proceed as if allowed and 3 are advisory (source read at pinned commits, 14 Oct 2026).
When Jev fails: Code paths that never ask Jev are recorded for 66 of 77 implementations; 11 are not recorded (judge tools 4, frameworks 3, browser agents 3, email 1) (source read at pinned commits, 14 Oct 2026).
Python SDK: Install typesafe-sdk 0.7.4 (released 9 Oct 2026). Defaults: 10 s timeout, 2 retries on 408/429/5xx within 30 s; a missing key raises TypeSafeError when the client is created (Documented, package read 14 Oct 2026).
TypeScript: TypeScript today: @typesafe-ai/sdk 0.6.0 throws at client creation without a key; the AI SDK provider 3.0.18 throws LoadAPIKeyError at the first call; ai 7.0.140 renamed experimental_evaluate to experimental_decide (Documented, 14 Oct 2026).
Benchmarks: 41 graded rows (A 12, B 14, C 8, D 7), with B43 (SubQ Snap vs Jev, grade B) and B44 (a four-model Tetris round robin, grade A).
No page sums or ranks the graded comparisons into an overall verdict: each result belongs to its task.
When Jev fails, 77 implementations: 13 Oct → 14 Oct
In the bypass bars, green means a recorded cell (a list of skip paths, or "none found" with the entry-point files read), not a safety verdict. Counts are Documented from source read at pinned commits and recounted by script from the published cells, 14 Oct 2026. Nothing was run.
What changed on 14 Oct 2026 (published value on 13 Oct → value on 14 Oct)
- When Jev fails: no-key cells not recorded
8 of 77→0 of 77Fail-closed 43 → 50, fallback 16 → 17; fail-open 7 and advisory 3 unchanged.
- When Jev fails: bypass recorded
52 of 77→66 of 77Not recorded 25 → 11 (judge tools 4, frameworks 3, browser agents 3, email 1).
- When Jev fails: below threshold not recorded
5→0The 5 n8n node cells read as no-threshold: no-threshold 20 → 25.
- Benchmarks: graded rows
39→41B43 grade B and B44 grade A: A 11 → 12, B 13 → 14, C 8, D 7 (12 + 14 + 8 + 7 = 41).
- Graded comparisons with OpenAI's Decisions API
4→5B38, B39, B41, B42, B44. With Microsoft-Decision-1: 1 → 2 (B41, B44). With SubQ Snap: 0 → 1 (B43).
- Alternatives: listed substitutes
33→34Hosted APIs from other providers 3 → 4 (SubQ Snap).
- Python SDK checked at
0.7.2→0.7.4Defaults unchanged; example pins move to 0.7.4.
- AI SDK decision function
experimental_evaluate→experimental_decideRenamed in ai 7.0.128; the old name still works at 7.0.140 as a deprecated alias.
- Comparison card: prices and statusunchanged
Re-read 14 Oct 2026, 16:48 UTC. Only the "Graded tests" cells gain B44.
- Access statusunchanged
Checked 14 Oct 2026, 16:46 UTC. Home notices: 2 shown, 1 hidden, 1 retired, 0 new.
A dashed box means the value did not change. Error and malformed-answer counts are also unchanged.
Checks: 14 Oct 2026, 16:46–16:53 UTC; strict bypass recount, 14 Oct 2026, from 17:12 UTC.
The research notes and the source ledger (R16-S… IDs) are held in the pool's private record. Key sources are linked below and on the pages each finding feeds. Checks on the sources: 151 cited IDs checked, 0 missing; every sentence that splits a total was checked by script so that its parts add up and every category with 3 or more items (or 10% of the total) is named.
Rules kept: nothing was installed or run, so no Jev, Subquadratic or other provider call was made, and the pool has no account with any of them. Failure cells come only from source at pinned commits; n8n's own behaviour comes from its source at release n8n@2.44.1. Package facts come from the published package files, opened without installing. Study results are the operators' own measurements. Nothing in this report is Tested.
Previous report: 13 Oct research report. All dated reports: Research.
1. What was read
- Jev implementations at pinned commits: 31 open cells on
build/when-jev-fails(no key, bypass and n8n below-threshold) for ticket triage, email and lead sorting, n8n nodes, browser and computer use, and three single rows (jev-trader, hermes-jev-mana, jev-mcp). Each cell rests on a file and line range at the published pin (R16-S100 to R16-S134, R16-S300 to R16-S321). - n8n at release
n8n@2.44.1: the host's missing-credential path (node-execution-context.tsL409-432, R16-S122 to R16-S124; tag list R16-S125). - SDK packages: typesafe-sdk 0.7.4 (wheel), @typesafe-ai/sdk 0.6.0, ai 7.0.140 and @ai-sdk/typesafe-ai 3.0.18 (tarballs and single files), read without installing (R16-S200 to R16-S216; spot-check R16-S68).
- SubQ Snap: Subquadratic's docs, Terms and launch post (R16-S217 to R16-S227).
- Two comparison repositories at pinned commits: kprzybys/snap-vs-jev-swe at
b754c44(R16-S66) and dante01yoon/decision-model-arena at285c803(R16-S67). All 11 comparison repositories on the lead list were pinned from their commit feeds (R16-S65). - Standing checks: access and notices, the comparison card's price and status cells, the discovery scan with the 72-hour decision-API look-back, and the drift list.
2. Access status and home notices
Checked 14 Oct 2026, 16:46 UTC: Documented. Unchanged since 27 Sep 2026, 22:33:25 UTC.
- Signups open with conditions; new accounts get no free credit. The console and sign-up page returned HTTP 403 (a Cloudflare challenge), so sign-up was not observed directly (R16-S01, R16-S02).
- Status page: "All services are online", "Last updated on Oct 14, 2026 at 4:46pm UTC" (R16-S04). It now also lists two regional API entries,
api.us-east-1.typesafe.aiandapi.us-east-2.typesafe.ai; TypeSafe's docs still name onlyapi.typesafe.ai. No access change. - Price ($0.042 per million input tokens; output free), limits (100K tokens per second, 80 requests per second), the model
jev-1.13.0, its aliases and the model IDs on all six routes are unchanged (R16-S05, R16-S11, R16-S30, R16-S34 to R16-S36). - Shown on Home (2): new-user credit disabled; lookalike resellers. Hidden (1): Series A (retires 16 Oct). Retired (1): TypeSafe's Jack & Jill case study, at the end of its seven-day shelf life (checked 14 Oct 2026, 16:47 UTC); it was never shown on Home. Its card no longer appears on TypeSafe's blog index; the post itself is still online (R16-S08, R16-S18). It stays a vendor lead on benchmarks. New: 0.
- Jev was not listed in Microsoft Foundry's catalog or Amazon Bedrock's model cards when checked on 14 Oct 2026, 16:48 UTC; Microsoft-Decision-1 was still listed as Preview (version 1) in Foundry (R16-S37 to R16-S42).
- Subprocessors were not rechecked (the trust portal needs a browser render); the 11 Oct value stands.
3. When Jev fails: no key, bypass and below threshold
A script first reproduced the published counts from the page's cells. Then 31 cells were settled at the published pins and the page was recounted. Two cells were spot-checked again at the pins; both match (R16-S70).
| Condition | 13 Oct | 14 Oct | Check |
|---|---|---|---|
| No key | 43 fail-closed, 16 fallback, 7 fail-open, 3 advisory, 8 not recorded | 50 fail-closed, 17 fallback, 7 fail-open, 3 advisory, 0 not recorded | 50 + 17 + 7 + 3 = 77 |
| Bypass | 52 recorded, 25 not recorded | 66 recorded, 11 not recorded | 66 + 11 = 77 |
| Below threshold | 20 no-threshold, 16 held, 15 acts-anyway, 12 fallback, 5 no-decision, 4 advisory, 5 not recorded | 25 no-threshold, 16 held, 15 acts-anyway, 12 fallback, 5 no-decision, 4 advisory, 0 not recorded | 25 + 16 + 15 + 12 + 5 + 4 = 77 |
| Jev error | 39 fail-closed, 22 fallback, 8 fail-open, 5 no-decision, 3 advisory | unchanged | 39 + 22 + 8 + 5 + 3 = 77 |
| Malformed answer | 35 fail-closed, 24 fallback, 11 fail-open, 3 no-decision, 3 advisory, 1 not recorded | unchanged | 35 + 24 + 11 + 3 + 3 + 1 = 77 |
- Bypass counting rule (rule of 13 Oct, applied strictly; editorial decision, 14 Oct): a bypass cell counts as recorded only when every entry point was read: either every code path that reaches the action without calling Jev is listed with file and line, or "none found" is given with the list of entry-point files read. Of the 14 cells newly recorded, 9 are "none found" in all entry-point files read and 5 list skip paths (zammad-jev-dispatcher, gbesse, jev-support-desk, jev-mail and jev-mcp); 52 + 14 = 66.
- Not recorded, 11 of 77: judge tools 4, frameworks 3, browser and computer use 3, email 1 (4 + 3 + 3 + 1 = 11). Four of these were partly read and are not counted as recorded: the ilyamk Gmail labeler at
ade42bf, jev-android atbe8364a, jev-for-chrome atd5c24deand second-look at0c05d16. For the Gmail labeler and second-look, the skip paths found are still shown in their cells, marked "partial read; not counted as recorded". - n8n: without a credential, all 5 n8n nodes stop with n8n's "Node does not have any credentials set" error (read at release
n8n@2.44.1) when Continue On Fail is off. With Continue On Fail on, the official node sends each item to its error output. Whether the n8n editor blocks activating a workflow without a credential was not read. - Email and lead sorting: with no key, all 6 implementations fail closed; 1 reapplies a stored decision without a new Jev call (jev-mail). Bypass recorded for 5 of 6.
- Browser and computer use: bypass recorded for 5 of 8; not recorded for jev-android, jev-for-chrome and second-look.
- Two corrections (count unchanged): enderkus/zammad-jev-dispatcher at
f999eca, malformed answer: fail-closed 502 when the probabilities map is missing; an off-list choice is held (a note is added and the ticket stays in Unclassified) (app.rbL117-138; R16-S103). chy4pro/jev-for-chrome, below threshold: staysno-threshold, with the note "no threshold for actions; a final 'done' or 'blocked' below 0.5 gets a second look" (src/background/agent.tsL78-79, L465-486; R16-S307).
4. Python and TypeScript SDKs
| Package | Version read | Released | With no key |
|---|---|---|---|
typesafe-sdk (Python) | 0.7.4 (page said 0.7.2) | 9 Oct 2026 | raises TypeSafeError when the client is created (R16-S203) |
@typesafe-ai/sdk | 0.6.0 (still the latest) | 15 Sep 2026 | throws TypeSafeError when the client is created (R16-S208) |
ai (AI SDK) | 7.0.140 (page audited 7.0.122) | 14 Oct 2026, 04:19 UTC | depends on the provider (next row) |
@ai-sdk/typesafe-ai | 3.0.18 (page audited 3.0.10) | 12 Oct 2026, 17:47 UTC | throws LoadAPIKeyError at the first call, not when the provider is created (R16-S211, R16-S214) |
- Python defaults unchanged at 0.7.4: key from
TYPESAFE_API_KEY, base URLhttps://api.typesafe.ai, modeljev-latest, 10 s timeout, 2 retries on 408, 429 and 5xx within a 30 s budget (R16-S200 to R16-S204). The vendor changelog's newest entry is v0.7.3; it has no 0.7.4 entry, although 0.7.4 is on PyPI (R16-S205). The Python page's examples now pin 0.7.4. - AI SDK rename:
experimental_evaluatebecameexperimental_decidein ai 7.0.128; the old name is still exported at 7.0.140 as a deprecated alias (R16-S215).maxRetriesstill defaults to 2, and the decision call still has no timeout option (passabortSignal) (R16-S216). New in provider 3.0.16: arrays passed directly as state now hold decision state parts; wrap JSON arrays in an object or a json part (R16-S211). - AI SDK example: keeps its audited pins (ai 7.0.122, @ai-sdk/typesafe-ai 3.0.10). The full option shape of
experimental_decidewas not read, so the example was not moved to the new name. - New page titles (URLs unchanged): Jev Python SDK (TypeSafe AI): a version-pinned call, timeouts, retries and missing-key errors; Jev TypeScript (TypeSafe AI): @typesafe-ai/sdk vs AI SDK vs fetch, with timeouts and missing-key errors. Query sources: "jev py" completes to "jev python" on Google and on Bing/DuckDuckGo; "jev t" and "jev ty" complete to "jev typescript" on Bing/DuckDuckGo (14 Oct 2026, 16:50 UTC; R16-S61). A suggestion is a demand signal, not a search volume.
- The same version and name changes are carried on errors and rate limits, testing without a key, Where to use and official vs reseller.
5. Graded comparisons, SubQ Snap and the comparison card
| Row | Repository and pin | Task and result | Grade and flags |
|---|---|---|---|
| B43 | kprzybys/snap-vs-jev-swe at b754c44 | SWE-bench Verified file localization (200 issues, 10 candidate files): SubQ Snap 78.5% and Jev 79.0% when picking one file; asked per file, Snap 85.5% vs Jev 81.8%, a difference the operator reports as not significant (95% CI −0.5 to +8.3 points) Reported | B; 6 flags, among them a conflict of interest: the operator takes part in Subquadratic's Snap creator challenge, which has prizes |
| B44 | dante01yoon/decision-model-arena at 285c803 | Tetris round robin, games won of 48: Decision-1 15, Jev 12, Decisions API 11, Laya 8, 2 draws; head to head, Jev beat the Decisions API 6–2 Reported | A; 5 flags |
- Ledger: 41 graded rows (A 12, B 14, C 8, D 7) and 1 row not graded (B22). Graded comparisons with OpenAI's Decisions API: 5 (B38, B39, B41, B42, B44); with Microsoft-Decision-1: 2 (B41, B44); with SubQ Snap: 1 (B43). The sentence "Against small text-generating LLMs, Jev scored ahead in 6 of 10 graded studies" is unchanged: neither B43 nor B44 compares Jev with a small text-generating LLM. The other comparison repositories stay leads with their pins.
- SubQ Snap (Subquadratic, public preview) is now a hosted row on Jev alternatives (34 substitutes; hosted APIs from other providers 3 → 4). It uses the same request shape as Jev's
POST /v1/systemone(state plus named questions) with the modelsubq-snap-preview(R16-S218). Price as published: "Input ($0.05 / 1M tokens), Output (Free)" (docs, read 14 Oct 2026; R16-S220). Not listed on OpenRouter or Vercel AI Gateway at 14 Oct 2026, 16:47 UTC (R16-S226, R16-S227). - SubQ Snap retention, two texts that disagree (both shown, not merged): the Terms say "We retain Input and Output, including related safety classification results, for no more than thirty (30) days after processing…" (Effective Date October 12, 2026; R16-S222); the data-retention docs say "Retain indefinitely (default) — kept until you delete it." (no date shown, read 14 Oct 2026, 16:47 UTC; R16-S219).
- Comparison card (Decisions API vs Jev vs Microsoft Decision 1): B44 is added to the "Graded tests" cells for Jev, the Decisions API and Microsoft-Decision-1, and the copy block is regenerated. No price or status cell changed (checked 14 Oct 2026, 16:48 UTC). The "Also launched" line about SubQ Snap is re-dated and links its new row. OpenRouter's endpoint for
openai/gpt-6-luna-decisionsshowed status −2 and 90.28% one-day uptime; this is not a card cell, and −2 has no documented meaning on that page (R16-S32). - H2O-Lightning-4B and Intern-Decision-4B get no row (primary sources not read). Cygnet and GLiNER2.5-Decide stay "seen, not checked". The Artificial Analysis Decision Index v1.0 is a watch item; it uses private questions and is not graded (R16-S62).
6. Scan, 72-hour look-back and drift
- Window: this update's scan covered 13 Oct 2026, 05:17 UTC to 14 Oct 2026, 16:45 UTC, starting at the previous scan's cutoff, so there is no gap and no overlap (R16-S55 to R16-S61).
- 72-hour look-back from 11 Oct 2026, 16:45 UTC: SubQ Snap's docs and Terms read (above); the Decision Index v1.0 is new (a third-party index, not a launch); SPEV, an open-weight decision model, is new (not a hosted launch); Decision-1 still Preview in Foundry; OpenAI's Decisions API price unchanged. None is a home-page notice.
- Drift: patch releases
@jkudish/jev-mcp0.14.3,@effect/ai-typesafe4.0.4,@openclaw/typesafe2026.10.3 andlitellm1.105.1; one minor release,pydantic-ai-slim2.56.0. Drift notes on the affected pages; not re-audited (R16-S64).
7. Evidence gaps and not recorded
- Bypass not recorded, 11 of 77: judge tools 4, frameworks 3, browser and computer use 3, email 1.
- Subprocessors were not rechecked (the page needs a browser).
- X search was unavailable; Reddit returned HTTP 403; YouTube, TikTok, GitHub releases and GitHub trending were not covered. Those surfaces are unknown, not empty.
- OpenRouter's status value −2 has no documented meaning on the endpoint page.
- n8n: whether the editor blocks activating a workflow without a credential, and the case of a credential with an empty key, were not read.
- AI SDK: the full option shape of
experimental_decide, the deprecation warning text and the Cloudflare Workers binding row were not read. - SubQ Snap: numeric rate limits were not found in its docs or Terms at 14 Oct 2026, 16:48 UTC; whether Jev's SDKs work against it by changing the base URL was not tested.
Method notes and what was not verified
- Nothing was run: no account, key, API call, package install, benchmark or third-party code.
- Study results are the operators' own measurements Reported. Vendor claims are Reported and attributed.
- Third-party source files were read from raw GitHub at the pins; their URLs and line ranges are in the source ledger.
Key sources and check times (14 Oct 2026, UTC)
Sources by section (R16 IDs)
- Access, 16:46–16:48: status.typesafe.ai (R16-S04); console and sign-up (R16-S01); models page (R16-S05); TypeSafe blog (R16-S08); Jack & Jill post (R16-S18); routes (R16-S11, R16-S30, R16-S34 to R16-S36); catalogs (R16-S37 to R16-S42).
- When Jev fails: reads at the published pins (R16-S100 to R16-S134, R16-S300 to R16-S321); n8n at release 2.44.1 (R16-S122 to R16-S125); spot-checks (R16-S70).
- SDKs, 16:47–16:53: PyPI and package files (R16-S200 to R16-S206); npm and package files (R16-S207 to R16-S216); spot-check (R16-S68); autocomplete, 16:50 (R16-S61).
- Comparisons: commit feeds (R16-S65); snap-vs-jev-swe (R16-S66); decision-model-arena (R16-S67); SubQ Snap docs, Terms and launch post (R16-S217 to R16-S227); OpenRouter endpoint (R16-S32); Decision Index (R16-S62).
- Scan, window 13 Oct 2026, 05:17 UTC to 14 Oct 2026, 16:45 UTC: HN Algolia (R16-S55); GitHub (R16-S56); npm (R16-S57); Hugging Face (R16-S58); DEV.to (R16-S59); Reddit, HTTP 403, and Ollama (R16-S60). Drift, 16:51 (R16-S64).