NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3484 most downloaded on npm
Last release 3 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Some releases are documented
notes for 32 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
740 releases · first in 2024
f807e45: Extract shared StreamingToolCallTracker class into @ai-sdk/provider-utils to deduplicate streaming tool call handling across OpenAI-compatibl
StreamingToolCallTracker class into @ai-sdk/provider-utils to deduplicate streaming tool call handling across OpenAI-compatible providers. Also adds missing generateId() fallback for toolCallId in Alibaba's doGenerate path and ensures all providers finalize unfinished tool calls during stream flush.@ai-sdk/provider-utils@5.0.0-beta.23
One column per month.
@ai-sdk/provider-utils@5.0.0-beta.22
@ai-sdk/provider-utils@5.0.0-beta.21
0c4ac8a: fix(openai): default undefined tool-call input to empty object before serializing tool arguments
b3976a2: Add workflow serialization support to all provider models.
b3976a2: Add workflow serialization support to all provider models.
@ai-sdk/provider-utils: New serializeModel() helper that extracts only serializable properties from a model instance, filtering out functions and objects containing functions. Third-party provider authors can use this to add workflow support to their own models.
All providers: headers is now optional in provider config types. This is non-breaking — existing code that passes headers continues to work. Custom provider implementations that construct model configs manually can now omit headers, which is useful when models are deserialized from a workflow step boundary where auth is provided separately.
All provider model classes now include WORKFLOW_SERIALIZE and WORKFLOW_DESERIALIZE static methods, enabling them to cross workflow step boundaries without serialization errors.
ff5eba1: feat: roll image-* tool output types into their equivalent file-* types
Updated dependencies [b3976a2]
Updated dependencies [ff5eba1]
ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only ("type": "module"). Consumers using require() must switch to ESM imp
"type": "module"). Consumers using require() must switch to ESM import syntax.90e2d8a: chore: fix unused vars not being flagged by our lint tooling
@ai-sdk/provider-utils@5.0.0-beta.17
@ai-sdk/provider-utils@5.0.0-beta.16
e311194: feat(ai): allow passing provider instance to uploadFile and uploadSkill as shorthand
uploadFile and uploadSkill as shorthand34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
@ai-sdk/provider-utils@5.0.0-beta.12
6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
38fc777: Add AI Gateway hint to provider READMEs
@ai-sdk/provider-utils@5.0.0-beta.9
@ai-sdk/provider-utils@5.0.0-beta.8
817a1a6: fix(openai): support file-url parts in tool output content
1f509d4: fix(ai): force template check on 'kind' param
365da1a: Add gpt-5.4-mini, gpt-5.4-mini-2026-03-17, gpt-5.4-nano, and gpt-5.4-nano-2026-03-17 models.
gpt-5.4-mini, gpt-5.4-mini-2026-03-17, gpt-5.4-nano, and gpt-5.4-nano-2026-03-17 models.3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in generateText and streamText
generateText and streamTextd9a1e9a: feat(openai): add server side compaction for openai
@ai-sdk/provider-utils@5.0.0-beta.5
61753c3: ### @ai-sdk/openai: remove redundant name argument from openai.tools.customTool()
61753c3: ### @ai-sdk/openai: remove redundant name argument from openai.tools.customTool()
openai.tools.customTool() no longer accepts a name field. the tool name is now derived from the sdk tool key (the object key in the tools object).
migration: remove the name property from customTool() calls. the object key is now used as the tool name sent to the openai api.
before:
tools: {
write_sql: openai.tools.customTool({
name: 'write_sql',
description: '...',
}),
}
after:
tools: {
write_sql: openai.tools.customTool({
description: '...',
}),
}
@ai-sdk/provider-utils: createToolNameMapping() no longer accepts the resolveProviderToolName parameterbefore: tool name can be set dynamically
const toolNameMapping = createToolNameMapping({
tools,
providerToolNames: {
"openai.code_interpreter": "code_interpreter",
"openai.file_search": "file_search",
"openai.image_generation": "image_generation",
"openai.local_shell": "local_shell",
"openai.shell": "shell",
"openai.web_search": "web_search",
"openai.web_search_preview": "web_search_preview",
"openai.mcp": "mcp",
"openai.apply_patch": "apply_patch",
},
resolveProviderToolName: (tool) =>
tool.id === "openai.custom"
? (tool.args as { name?: string }).name
: undefined,
});
after: tool name is static based on tools keys
const toolNameMapping = createToolNameMapping({
tools,
providerToolNames: {
'openai.code_interpreter': 'code_interpreter',
'openai.file_search': 'file_search',
'openai.image_generation': 'image_generation',
'openai.local_shell': 'local_shell',
'openai.shell': 'shell',
'openai.web_search': 'web_search',
'openai.web_search_preview': 'web_search_preview',
'openai.mcp': 'mcp',
'openai.apply_patch': 'apply_patch',
}
});
156cdf0: feat(openai): add new tool search tool
@ai-sdk/provider-utils@5.0.0-beta.3
@ai-sdk/provider-utils@5.0.0-beta.2
83f9d04: feat(openai): upgrade v3 specs to v4
ac18f89: feat(provider/openai): add gpt-5.3-chat-latest
gpt-5.3-chat-latesta71d345: fix(provider/openai): drop reasoning parts without encrypted content when store: false
45b3d76: fix(security): prevent streaming tool calls from finalizing on parsable partial JSON
45b3d76: fix(security): prevent streaming tool calls from finalizing on parsable partial JSON
Streaming tool call arguments were finalized using isParsableJson() as a heuristic for completion. If partial accumulated JSON happened to be valid JSON before all chunks arrived, the tool call would be executed with incomplete arguments. Tool call finalization now only occurs in flush() after the stream is fully consumed.
f7295cb: revert incorrect fix https://github.com/vercel/ai/pull/13172
@ai-sdk/provider-utils@5.0.0-beta.1
7afaece: feat(provider/openai): add GPT-5.4 model support
@ai-sdk/provider-utils@5.0.0-beta.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
7f3b8f0 : feat(openai): add GPT-6 reasoning configuration updates
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →