Repository navigation
Replace Google Veo previews with Gemini Omni Flash; remove retired image/video models - #418
Merged
Merged
Conversation
…teractions API
Google shuts down every Veo 3.1 preview id on 2026-10-22 and names
gemini-omni-1.1-flash as the replacement. That model is served only by the
Interactions API, so GoogleVideoAdapter is rewritten for it:
- POST /v1beta/interactions with background: true and a video
response_format (aspect_ratio, resolution, duration as "<n>s"); poll
GET /v1beta/interactions/{id}; read the MP4 from the model_output step,
inline base64 or a Files API URI polled until ACTIVE and downloaded with
the key. Falls back to the synchronous call if background is rejected.
- Abortable polling: sleep() takes a signal, clears its timer on abort and
drops its listener when it fires; an abort asks Google to cancel. A
timeout surfaces the interaction id for checkGeneratedArtifact.
- Errors map to safety block, quota, key/access, unsupported option and
expired job messages. generateAudio:false and out-of-range seconds are
rejected before any request; a negative prompt is appended to the prompt.
- Catalog: gemini-omni-1.1-flash (16:9/9:16, 360p-4k, 3-10 s) replaces
veo-3.1-generate-preview; VideoResolution gains 360p. Jobs left on the
old Veo operation path fail with a message instead of polling.
- RetiredMediaModels maps retired image and video ids to the documented
successor. Saved defaults are normalized in memory on load and sync,
never rewritten in data.json; generateVideo calls naming a Veo preview
id run on Omni and say so in the result.
The shipped default stays OpenRouter Veo 3.1 Fast until Omni has passed a
live generation; none was possible here (no Google key).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…essors Removed from the catalogs, per the providers' deprecation pages: - OpenAI: gpt-image-1 (2026-10-23), gpt-image-1.5 and gpt-image-1-mini (2026-12-01). The fixed-size branch they needed is gone; every remaining OpenAI model takes arbitrary WIDTHxHEIGHT. - Google and OpenRouter: gemini-2.5-flash-image (2027-03-15) and the gemini-3.1-flash-image-preview / gemini-3-pro-image-preview ids (2026-06-25), plus the imageSize-less branch only 2.5 used. - OpenRouter: gpt-5-image and gpt-5-image-mini, built on GPT Image 1 and GPT Image 1 Mini. generateImage calls and conversations that still name one of these run on the documented successor (gpt-image-2.5-sunburst / -flare, gemini-3.1-flash-lite-image, gemini-nano-banana-2.1, gemini-3-pro-image) and the result says so. OpenRouter's catalog now starts with its default, gemini-3.1-flash-image, since tools fall back to the first entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ites Every retired image and video id is absent from its provider's catalog and its successor is present on the same provider; generateImage runs the successor and says so; a conversation saved with a retired image model restores the successor without rewriting its metadata. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…odel changes generateImage loses the retired model ids from its enum and descriptions; generateVideo describes Gemini Omni Flash and gains 360p. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…retired models The add-video-model protocol now describes the Interactions API transport and the Google smoke switch; both media protocols say how to retire a model through RetiredMediaModels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the skill The Google video smoke now logs each request line (method, URL, status; never headers) so a run shows whether background polling or the synchronous fallback ran. The add-video-model protocol warns that the keyed Google listing reports Omni with generateContent and keeps listing preview ids past shutdown. The default-video comment records why Veo 3.1 Fast via OpenRouter stays the default after Omni's first live run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Google shuts down every Veo 3.1 preview id on 2026-10-22. This replaces Google-direct video with Gemini Omni Flash (
gemini-omni-1.1-flash, GA) over the Gemini Interactions API, and removes every image/video model that is shut down or scheduled to shut down.Video
GoogleVideoAdapterrewritten forPOST /v1beta/interactionswithbackground: trueand pollingGET /interactions/{id}; inline or Files API download (key only ever sent togenerativelanguage.googleapis.com); abort cancels the interaction and clears timers; timeouts hand back the interaction id forcheckGeneratedArtifact; clear errors for safety blocks, quota, auth and unsupported options. Options: 16:9 / 9:16, 360p–4K, 3–10 s; audio is always generated; negative prompts become "Do not include: …".veo-3.1-generate-previewand its predictLongRunning path. OpenRouter Veo 3.1 / Fast / Lite unchanged and remain the shipped default.Images
gpt-image-1,gpt-image-1.5,gpt-image-1-mini,gemini-2.5-flash-image,gemini-3.1-flash-image-preview,gemini-3-pro-image-preview, and OpenRoutergpt-5-image/gpt-5-image-mini(built on GPT Image 1).Saved settings and tool calls
RetiredMediaModels.ts): GPT Image 1/1.5/5 →gpt-image-2.5-sunburst, minis →gpt-image-2.5-flare,gemini-2.5-flash-image→gemini-3.1-flash-lite-image, old Gemini previews → current GA ids, all Google Veo ids →gemini-omni-1.1-flash(aspect/resolution kept where supported).data.jsonis not rewritten, so devices still on an older Nexus keep an id they recognise. Tool calls naming a removed id run on the replacement and say so.Test plan
npm run build(incl. schemas check), registry gate for google/openroutergpt-image-1→ mapped togpt-image-2.5-sunburst→ 1024² PNG; Google defaultgemini-3.1-flash-image→ JPEG🤖 Generated with Claude Code