Repository navigation
Version Packages - #565
Open
github-actions[bot] wants to merge 1 commit into
Open
Version Packages#565github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
9 times, most recently
from
October 27, 2026 05:28
d879ad7 to
4ff1042
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 4, 2026 14:29
4ff1042 to
f52fe70
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 4, 2026 23:46
f52fe70 to
4aa3a11
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@openrouter/ai-sdk-provider@3.2.0
Minor Changes
#518
32fd6d9Thanks @taku0! - Supportreasoningparameter introduced in AI SDK v7#564
1b22b05Thanks @louisgv! - Addopenrouter.decisionModel()as the preferred name for the Decisions API model. It shares one implementation withevaluationModel(), which is kept as the AI SDK-compatible name (the AI SDK callsevaluationModel()when resolving string model IDs through a default provider).#553
59fe494Thanks @warun7! - ImplementrerankingModelon the provider.createOpenRouter()and the defaultopenrouterinstance now exposererankingModel(modelId, settings?), which calls the OpenRouter/rerankendpoint and works with the AI SDKrerank()function. Previously the method existed in the typings but was undefined at runtime.#552
5577361Thanks @warun7! - Forward image partproviderOptions.openrouter.imageDetail('auto' | 'low' | 'high') asimage_url.detail#584
9a47373Thanks @LukasParke! - Forward video file parts'providerOptions.openrouter.videoProcessing('agentic' | 'static') asvideo_url.processing#526
d8edda0Thanks @Leonezz! - ImplementWORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZEhooks on the chat and completion language models so model instances can be used with@ai-sdk/workflowdurable execution. Fixes theWorkflowRuntimeError: Failed to serialize step argumentsthrown when a model is passed as a durable step argument (Model instances not serializable for durable execution (@ai-sdk/workflow) — missing WORKFLOW_SERIALIZE/DESERIALIZE hooks #525).Secrets are never written to workflow storage. Only
modelId, settings,baseURL,compatibility,extraBodyand theappName/appUrlheaders (X-OpenRouter-Title,HTTP-Referer) are persisted; all other custom headers are dropped and the SDK user agent is re-applied on restore. A restored model re-reads its API key fromOPENROUTER_API_KEYat request time, and a model created with BYOKapi_keysthrows a clear error at request time instead of silently falling back to OpenRouter credits.Patch Changes
#585
b76b19bThanks @LukasParke! - Honour part-levelcacheControlon assistant text parts instead of silently dropping it, consistent with user messages. When an assistant text part carries cache control, the assistantcontentis sent as an array of text blocks withcache_controlon that specific block; otherwise the content stays a plain string. Message-level assistant cache control is unchanged (related to Explicit cache_control on assistant messages does not produce cache writes/reads #498).#566
b701273Thanks @pedro757! - Acceptmaxin the reasoning effort type so supported models can use it through typed model settings and provider options without anextraBodyworkaround.#577
4013aa7Thanks @5h0ov! - FixdecisionModel()/evaluationModel()withai7.0.133 and later, which wrap decision state in typed parts that were forwarded to the Decisions API as-is. Text and json parts are now unwrapped and image file parts are sent asimage_urlentries, while raw state from olderai@7releases is passed through unchanged.#632
087abdfThanks @mattapperson! - Forward call-timeproviderOptions.openrouterin the embedding model (embed/embedMany). Options such asprovider,user,dimensionsandinput_typewere previously ignored. Provider routing preferences are now shallow merged from model settings,extraBodyandproviderOptions(later wins) instead ofextraBody.providerreplacingsettings.provider(related toprovideris ignored when supplied viaproviderOptions.openrouter#616).#547
92961e4Thanks @warun7! - fix: prevent assigning undefined keys during streaming reasoning_details accumulation (Streaming reasoning_details accumulation assigns signature: undefined, breaking subsequent AI SDK prompt validation #540)#575
9ded35bThanks @cpruijsen! - Forward complete-but-invalid streamed tool arguments to the AI SDK instead of replacing them with'{}'in the stream flush path. The SDK can now surface the model's real payload viaInvalidToolInputErrorand runexperimental_repairToolCall;'{}'is only substituted when nothing was streamed (no-argument tool calls).#548
f54b359Thanks @warun7! - Forward toolstrictsetting to function definitions in API requests#586
cd86f5dThanks @LukasParke! - Stop re-parsing the whole accumulated tool-call arguments on every streamed delta. A small incremental scanner now only lets the provider attempt a JSON parse once the arguments may be complete, removing quadratic CPU use for large streamed tool inputs. Emitted events are unchanged.#551
bacdd1aThanks @warun7! - Merge runtime provider routing options with configured image model provider preferences#550
a76ca9fThanks @warun7! - Preserveis_byokasisByokinproviderMetadata.openrouter.usage#549
d9d01b5Thanks @warun7! - Declare specificationVersion 'v4' and embeddingModel on provider object returned by createOpenRouter#583
5fe77f6Thanks @LukasParke! - Fix streaming: keep separately signedreasoning.textblocks (e.g. multiple Anthropic thinking blocks in one answer) as separatereasoning_detailsentries instead of merging them under the first signature, which made replay fail with "Invalid signature in thinking block".#517
b5f253fThanks @noobshow! - Supportcache_controlon a tool'sproviderOptions(openrouteroranthropicnamespace, snake_case or camelCase, same resolution as message-level cache control). It is now attached to that tool's entry in the outgoingtoolsarray.Tool-level
cache_controlis passed through as-is. OpenRouter does not document it for the OpenAI-formattoolsarray; Anthropic supports it on the last tool definition, so place the breakpoint there.OpenRouterCacheControlnow also types the optionalttl('5m' | '1h'), which was already passed through.#536
0ad203aThanks @shoemoney! - Fix completion model under AI SDK v7: accept the default toolChoice and emit text-start/text-delta/text-end lifecycle events