NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1793 most downloaded on npm
Last release 4 days ago
30 Sep 2026
Ships on a steady schedule
a new release about every 8 days
Most releases are documented
notes for 49 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
397 releases · first in 2024
ca446f8: feat: flexible tool descriptions
d848405: feat: add optional abortSignal parameters to sandbox command execution
abortSignal parameters to sandbox command executionOne column per month.
ca39020: Add an optional workingDirectory parameter to sandbox command execution.
workingDirectory parameter to sandbox command execution.f634bac: feat(mcp): add new McpProviderMetadata type
69254e0: feat(ai): add toolMetadata for tool specific metdata
2427d88: feat(ai): change Tool.sensitiveContext to telemetry.includeToolsContext and make it opt-in
5463d0d: feat(provider): align tool result output content file part types with top-level message file part types
0c4c275: trigger initial canary release
### Patch Changes - Updated dependencies [0416e3e] - @ai-sdk/provider@4.0.0-beta.20
b8396f0: trigger initial beta release
08d2129: feat(mcp): propagate the server name through dynamic tool parts
9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
9f0e36c: trigger release for all packages after provenance setup
0458559: fix: deprecate needsApproval on Tool
2e98477: fix: retain stack traces on async errors
eea8d98: refactoring: rename tool execution events
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.350ea38: refactoring: introduce Arrayable type
083947b: feat(ai): separate toolsContext from context
add1126: refactoring: executeTool uses tool as parameter
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 [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
3ae1786: fix: better context type inference
### Patch Changes - Updated dependencies [176466a] - @ai-sdk/provider@4.0.0-beta.10
### Patch Changes - Updated dependencies [e311194] - @ai-sdk/provider@4.0.0-beta.9
### Patch Changes - Updated dependencies [34bd95d] - Updated dependencies [008271d] - @ai-sdk/provider@4.0.0-beta.8
46d1149: chore(provider-utils,google): fix grammar errors in error and warning messages
6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
2e17091: fix(types): move shared tool set utility types into provider-utils
2e17091: fix(types): move shared tool set utility types into provider-utils
Moved ToolSet, InferToolSetContext, and UnionToIntersection into @ai-sdk/provider-utils and updated ai internals to import them directly from there. This keeps the shared tool typing utilities colocated with the core tool type definitions.
493295c: Remove the deprecated ToolCallOptions export.
986c6fd: feat(ai): change type of experimental_context from unknown to generic
493295c: Remove the deprecated ToolCallOptions export.
Use ToolExecutionOptions instead.
1f509d4: fix(ai): force template check on 'kind' param
3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in generateText and streamText
generateText and streamText776b617: feat(provider): adding new 'custom' content type
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',
}
});
f7d4f01: feat(provider): add support for reasoning-file type for files that are part of reasoning
reasoning-file type for files that are part of reasoning### Patch Changes - Updated dependencies [5c2a5a2] - @ai-sdk/provider@4.0.0-beta.1
531251e: fix(security): validate redirect targets in download functions to prevent SSRF bypass
531251e: fix(security): validate redirect targets in download functions to prevent SSRF bypass
Both downloadBlob and download now validate the final URL after following HTTP redirects, preventing attackers from bypassing SSRF protections via open redirects to internal/private addresses.
### Major Changes - 8359612: Start v7 pre-release ### Patch Changes - Updated dependencies [8359612] - @ai-sdk/provider@4.0.0-beta.0
a9cea74: Keep default Node.js downloads protected by DNS validation and connection pinning when frameworks or instrumentation wrap global fetch before
8c65988: feat(ai): add telemetry to speech generation and transcription, including provider usage propagation and experimental streaming lifecycle cal
### Patch Changes - Updated dependencies [8c65988] - Updated dependencies [527a163] - @ai-sdk/provider@4.0.21 - @ai-sdk/provider-utils@5.0.53
### Patch Changes - Updated dependencies [8c65988] - Updated dependencies [527a163] - @ai-sdk/provider@4.0.21 - @ai-sdk/provider-utils@5.0.53
ede5b89: chore: migrate package builds from tsup to tsdown
Nothing published for this version
Nothing published for this version
Nothing published for this version
Updated dependencies [ 90192f1 ]
Nothing published for this version
Updated dependencies [ 3e125ba ]
31205a4: chore(provider-utils): upgrade undici to a maintained release
Nothing published for this version
16650e9: feat(google): add gemini-3.7-flash model
gemini-3.7-flash model### Patch Changes - Updated dependencies [b6fff2e] - @ai-sdk/openai@4.0.42
### Patch Changes - Updated dependencies [59d6def] - @ai-sdk/openai@4.0.41
59d6def: Reconstruct provider-executed shell calls when continuing OpenAI Responses with storage disabled.
1ffa1d2: feat(xai): speech timestamps, pronunciation replacements, provider metadata, and error parsing
1ffa1d2: feat(xai): speech timestamps, pronunciation replacements, provider metadata, and error parsing
withTimestamps and replace provider options for text to speech. With
withTimestamps, the JSON envelope is decoded and the audio returned as
usual, while duration, content type, and character-level alignment are
exposed via providerMetadata.xai.providerMetadata.xai.traceId (from the x-trace-id response
header) on every speech response.{"error":"..."}) so APICallError
messages carry xAI's real error detail instead of the HTTP reason phrase.646c86e: fix(provider/xai): report video moderation blocks and missing URLs as an error status instead of throwing
484293f: feat(xai): support the priority service tier on chat and responses
Your coding agent can read these notes before it upgrades. Set up the MCP server →