Jev with images: what 8 SDKs and integrations do with an image, and the route counts for Jev 1.14 (23 Oct 2026)
This dated report records the evidence behind the update of 23 October 2026. It adds Jev with images to the limitations page: what TypeSafe's docs say an image request needs, and what eight SDKs and integrations do when you give them an image. It also records TypeSafe's n8n node 0.10.0 and pydantic-ai-slim 2.60.0 at their new versions, the state of jev-latest nine days after TypeSafe said it would move "in a week", the Jev 1.14 listing on Cloudflare, and OpenAI's Decisions API leaving beta. No image was sent, nothing was installed or run, and no Jev call was made.
Images: of 8 integrations read, 5 send images to Jev and 2 of those add TypeSafe's opt-in header for you; pydantic-ai refuses images, and both LangChain packages pass them as text.
TypeSafe's n8n node 0.10.0 (ec81714): the failure behaviour in every published cell is unchanged; the release adds an Images field that sends PNG or JPEG files with the opt-in header. No count on the failure map changed.
Aliases: on 23 Oct 2026, 05:45 UTC, jev-latest still pointed to jev-1.13.0 and jev-preview to jev-1.14.0; TypeSafe had published no date for the move it announced on 14 Oct for "in a week".
Routes: all six routes list a Jev 1.14 model ID, Cloudflare included. A versioned ID can be written on 6 of 6 routes for 1.14 and on 5 of 6 for 1.13 (Cloudflare lists only typesafe/jev for 1.13).
OpenAI's Decisions API became generally available on 22 Oct 2026. gpt-6-luna is still the only model and input still costs $0.10 per 1M tokens; requests may now carry up to 400 questions (200 during the beta).
What 8 integrations do with an image you give them (read in package files, 23 Oct 2026)
- Sends the image, adds the header for you (2):
@ai-sdk/typesafe-ai3.0.24, TypeSafe's n8n node 0.10.0 - Sends the image; you set the header (3):
@typesafe-ai/sdk0.7.0,typesafe-sdk0.7.5, LiteLLM 1.106.1 - Refuses images before the call (1):
pydantic-ai-slim2.60.0 - No image type; the image goes to Jev as JSON text (2):
@langchain/typesafe0.0.2,langchain-typesafe0.0.1a3
One block per integration read. Shades only separate the four groups; they are not the failure-map colours.
What was read, and at which versions
| Source | Version or time | What was read | Sources |
|---|---|---|---|
| TypeSafe docs: images, models, API reference, errors | 23 Oct 2026, 05:19–05:26 UTC | Header, formats, sending forms, limits, errors, billing; the models page's input row | R22-S100 to R22-S105 |
@ai-sdk/typesafe-ai | 3.0.24 (source compared at 3.0.20, 3.0.25 and 3.0.26) | Image parts, header condition, rejected media types | R22-S106, R22-S107, R22-S116, R22-S117 |
@typesafe-ai/sdk and typesafe-sdk | 0.7.0 and 0.7.5 | Asset handling and headers | R22-S108, R22-S109, R22-S104 |
pydantic-ai-slim | 2.57.0, 2.58.0, 2.59.0, 2.60.0 (wheels) | TypeSafe provider, profile and model files | R22-S110 to R22-S112, R22-S118 |
| LiteLLM | 1.106.1 (TypeSafe files the same at 1.106.2) | Decisions route: header check, image fetch and inlining, drop_params | R22-S115, R22-S119 |
@langchain/typesafe and langchain-typesafe | 0.0.2 and 0.0.1a3 | Message conversion | R22-S113, R22-S114 |
| TypeSafe's n8n node | 0.10.0 at ec81714, compared with 0.9.0 | Node, API, descriptions, helpers, credentials, tests, npm provenance | R22-S200 to R22-S227 |
| Image leads on GitHub and Hacker News | 23 Oct 2026, 05:26–05:29 UTC | jev-gateway PR #67, JevLight PR #2, Jev Cards, Photo Ferret, three issues | R22-S230 to R22-S269 |
What each integration does with an image
| Integration | With an image | Without the header, or with a bad image |
|---|---|---|
@ai-sdk/typesafe-ai 3.0.24 | Sends PNG or JPEG file parts and adds the header itself (also for Box questions since 3.0.21) | Other media types and URL data are rejected before the call; size errors come back from the API |
| TypeSafe's n8n node 0.10.0 | Sends PNG or JPEG from the item's binary data and adds the header itself | A missing binary, wrong type or bad reference stops the item before the call; the node does not check size |
@typesafe-ai/sdk 0.7.0 | Sends any bytes; you add the header | A URL string or empty data is rejected before the call; otherwise the API returns 400 or 413 |
typesafe-sdk 0.7.5 | Sends bytes, a path, base64 or a Pillow image; you add the header | A URL string, empty data or invalid base64 is rejected before the call; otherwise the API returns 400 or 413 |
| LiteLLM 1.106.1 | Sends PNG or JPEG (URLs fetched and inlined) only when you send the header | Rejected before the call; with drop_params on, the image is dropped and the request still goes out |
pydantic-ai-slim 2.60.0 | Refuses the request (UserError) before any call | Same: refused before the call |
@langchain/typesafe 0.0.2, langchain-typesafe 0.0.1a3 | No image type: the image goes to Jev as JSON text | No error: Jev decides without seeing the image |
TypeSafe's docs, read 23 Oct 2026, 05:19 UTC: images need the TypeSafe-Danger-Zone-Images: true header on each request; PNG or JPEG only, inline base64 or multipart (no URL field is stated); 16 MiB per file and 32 MiB per request; 400 without the header or for a rejected image, 413 over a size limit, and "the whole request fails". Each image is billed as input tokens. TypeSafe still says images "aren't yet up to our standards to call ready for production". The images page says "Jev 1.13 and Jev 1.14 both accept images" while the models page lists the input of both as "Text"; both are quoted on limitations. Documented
Leads that send images to Jev themselves (jev-gateway PR #67, merged 22 Oct and not yet released; JevLight; Jev Cards; Photo Ferret) and three open issues are listed by date on limitations.
Version checks
- TypeSafe's n8n node 0.10.0 was published on 20 Oct 2026, 15:25 UTC (0.9.0 on 29 Sep), with npm provenance to tag 0.10.0, commit
ec81714. Jev error with "continue on fail" off or on, malformed answer, timeout (5,000 ms default, no retries in code), missing key, bypass and "Jev unsure": the same terms as at 0.9.0. Only the data sent changes, when the new Images field is used (R22-S202, R22-S206, R22-S208, R22-S210, R22-S214, R22-S222, R22-S223). Documented - pydantic-ai-slim 2.58.0 to 2.60.0: the TypeSafe provider and profile files are byte-identical to 2.57.0, and a request with images still raises
UserErrorbefore any call. Since 2.59.0, API errors raise subclasses ofModelHTTPErrorby category and connection failures raiseModelConnectionError(whether it subclassesModelAPIErrorwas not checked); 2.58.0 added an optionalmax_retriessetting. Its failure term, no-decision, is unchanged (R22-S110 to R22-S112, R22-S118). Documented - @ai-sdk/typesafe-ai 3.0.26 and LiteLLM 1.106.2: the TypeSafe source read is the same as at 3.0.24 and 1.106.1 (R22-S116, R22-S119).
- jev-gateway links: the pinned links on the failure map and the coding-agents page pointed to a GitHub account that now returns HTTP 404; the same commit (
37ff982) is atvinilana/jev-gateway, the repository named in its npm record, and the links now point there. The cells are unchanged (R22-S52, R22-S53).
Aliases and routes
On 23 Oct 2026, 05:45 UTC, jev-latest still pointed to jev-1.13.0 and jev-preview to jev-1.14.0 (TypeSafe models page; no date published for the move). TypeSafe's 14 Oct post still says jev-latest "will be updated to jev-1.14.0 in a week" and that jev-1.13.0 "will be available for a while". Sentences on the build, alias and route pages that described the move as upcoming now give this dated state; dated lines and quotes stay as written. Opper's own typesafe/jev-latest still points to 1.13.0. Documented
Cloudflare's AI models catalog, the same catalog as its typesafe/jev page, lists typesafe/jev-1.14.0, and that page's examples send requests that write typesafe/jev-1.14.0, including one with an image asset; the page does not mention TypeSafe's opt-in header. The listing was first seen by this catalogue on 21 Oct 2026 and may have been listed earlier; whether the example request was on the page on 21 Oct is not known. So all six routes list a 1.14 ID, a versioned ID can be written on 6 of 6 routes for 1.14 and on 5 of 6 for 1.13. These are listings and documented examples, not tested requests (R22-S28, R22-S29, R22-S45). Each route's image field, re-read on 23 Oct 2026, 05:23 UTC, is on versions and aliases. Documented
OpenAI's Decisions API leaves beta
OpenAI's API changelog (entry "Oct 22") says "The Decisions API is now generally available with gpt-6-luna", and that "Each request now supports up to 400 questions, increased from 200 in public beta". The guide's price line is unchanged: "uncached input costs $0.10 per 1M tokens … Output tokens are not charged". The guide also lists new features (prompt caching, images in question instructions, JSON input, hosted image URLs, conversation history, usage reporting); they were not graded or compared here. The comparison page and the alternatives rows now give the general-availability status (R22-S32, R22-S47). Documented
Access and notices
Checked 23 Oct 2026, 05:18 UTC: signups open, no free credit for new accounts, API operational (the status page's uptime figure read as the 90-day window is 99.835%; last event resolved 14 Oct). Price $0.042 per million input tokens for jev-1.14.0 and jev-1.13.0, output free. TypeSafe's models, images and Box pages and its quickstart changed size since 21 Oct; the changed lines were not identified, and their access, price, alias, input and limit text reads the same. The home page still shows two notices: no credit for new users, and lookalike reseller sites; none was retired. Documented
Dates the scan covered
This update's scan covered 21 Oct 2026, 05:10 UTC to 23 Oct 2026, 05:18 UTC (48 h 08 min), starting at the previous scan's cutoff, so there is no gap and no overlap; the 72-hour look-back for hosted decision models started 20 Oct, 05:18 UTC. Reddit returned HTTP 403, DEV.to search returned no usable result, and X, YouTube, TikTok and GitHub code search were not searched, so their coverage is unknown.
What was not verified
- No image was sent and no Jev call was made; nothing was installed or run. Every image row is a reading of TypeSafe's docs or of package files.
- Whether OpenRouter, Vercel, Opper, Netlify or Cloudflare forward or add TypeSafe's opt-in header.
- How LiteLLM reports a 413, and its chat path; the exact JSON form of an image in
langchain-typesafe; whether a malformedassetsobject returns 400 or 422; whetherModelConnectionErrorsubclassesModelAPIError. - The n8n node's missing-binary error was read in n8n 2.44.3 only.
- The lines that changed on TypeSafe's models and images pages since 21 Oct (no earlier copy was kept; copies kept from 23 Oct onward).
- The jev-gateway image change (PR #67) is not in a release; its failure-map row was read at 0.5.1 and not re-read.
- OpenAI's new Decisions API features were not graded or compared with Jev.
Method and sources
Package files were downloaded and read at the named versions, not executed; TypeSafe's n8n node was compared file by file between tags 0.9.0 and 0.10.0. The image counts on the limitations page and in this report were computed by script from the table's eight integration rows. Sources read 23 Oct 2026: access and alias checks R22-S01 to R22-S13 and R22-S19 to R22-S21; reseller rechecks R22-S14 to R22-S18; route checks R22-S22 to R22-S31 and R22-S45; OpenAI R22-S32 and R22-S47; jev-gateway links R22-S52 and R22-S53; TypeSafe docs and packages R22-S100 to R22-S119; n8n node and image leads R22-S200 to R22-S269.
- All research reports
- 21 Oct research report (coding agents on pi and omp; Cloudflare's first 1.14 listing)
- 16 Oct research report (Jev 1.14 preview: experimental images and long context)