build(deps): bump the non-major group with 53 updates
Bumps the non-major group with 53 updates:
Updates @ai-sdk/anthropic from 4.0.12 to 4.0.16
Release notes
Sourced from @ai-sdk/anthropic's releases.
@ai-sdk/openai@4.0.16Patch Changes
75f86f4: fix(provider/openai, provider/open-responses): throw a descriptive error when the Responses API returns a 200 with no
outputA successful (200) Responses body missing the
outputarray previously threw an opaqueoutput is not iterableTypeError fromdoGenerate. Both providers now surface a clearAPICallError("Responses API returned no output …"), including the incomplete-details reason (and status, for open-responses) when present. When the body includes aresponse.error, its message is surfaced first so upstream error details aren't masked by the generic fallback. This makes malformed/incomplete upstream responses actionable instead of a cryptic crash.Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/xai@4.0.16Patch Changes
- 1e2ae1f: fix(xai): handle empty HTTP 202 responses while polling videos
- 54e5498: fix(provider/xai): preserve images in Responses API tool results
- Updated dependencies [cd06458]
@ai-sdk/mistral@4.0.13Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
Changelog
Sourced from @ai-sdk/anthropic's changelog.
4.0.16
Patch Changes
- afcf19c: fix(provider/anthropic): preserve web search citations when replaying assistant messages
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.114.0.15
Patch Changes
- Updated dependencies [31c7be8]
@ai-sdk/provider-utils@5.0.104.0.14
Patch Changes
4be62c1: fix(provider-utils): validate provider-response URLs in
getFromApi
getFromApinow has avalidateUrlflag. It is optional so existing callers keep compiling (omitting it behaves likefalse, i.e. no validation), but all AI SDK provider packages set it explicitly at every call site so each one makes a visible trust decision. Whentrue, the URL is routed throughfetchWithValidatedRedirects— the same guard used bydownloadBlob— which rejects private/loopback/link-local targets, re-validates every redirect hop, strips proxy/metadata/cookie request headers, and drops all caller headers except the user-agent on cross-origin redirects (custom API-key headers must not follow a redirect off-origin any more thanAuthorizationmay); blocked URLs throwDownloadError. It is enabled at the image/video/audio download and polling call sites where the URL comes from a provider response body; URLs built from developer-configured endpoints passvalidateUrl: falseand are unaffected.A new optional
credentialedOriginwithholds caller headers unless the URL is same-origin with it, so the API key is not sent to a response-supplied host on a different origin.A new optional
trustedOriginexempts URLs (and redirect hops) that are same-origin with the developer-configured provider endpoint from target validation, so self-hosted and localhost deployments whose response URLs point back at the configured host keep working; all other hops are still validated.Also closes range gaps in
validateDownloadUrl(IPv4224.0.0.0/4multicast and the TEST-NET documentation ranges192.0.2.0/24,198.51.100.0/24,203.0.113.0/24; IPv6 documentation ranges2001:db8::/32and3fff::/20), and follows only the fetch-spec redirect status codes (301/302/303/307/308) — aLocationheader on any other status is not followed. This guard performs string/literal checks only and does not resolve DNS; hostnames that resolve to private addresses and DNS rebinding remain out of scope and must be constrained at the network layer (or by injecting a Nodefetchthat pins the resolved IP at connect time) for server deployments handling untrusted URLs. Seecontributing/secure-url-handling.md.cd12954: Reject empty OpenAI, Anthropic, and Replicate base URLs with a helpful AI SDK invalid argument error.
Updated dependencies [4be62c1]
Updated dependencies [7805e4a]
Updated dependencies [cd12954]
@ai-sdk/provider-utils@5.0.94.0.13
Patch Changes
- Updated dependencies [e193290]
@ai-sdk/provider-utils@5.0.8
Commits
9352ac1Version Packages (#17417)afcf19cfix: preserve Anthropic web search citations across multi-turn assistant mess...6976682Version Packages (#17196)cb68fa6Version Packages (#17175)cd12954fix: reject empty OpenAI, Anthropic, and Replicate base URLs with a helpful e...cc3ab3aVersion Packages (#17172)4be62c1fix(provider-utils): route provider-response URLs through the download-URL gu...- See full diff in compare view
Updates @ai-sdk/fal from 3.0.8 to 3.0.12
Release notes
Sourced from @ai-sdk/fal's releases.
@ai-sdk/luma@3.0.12Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/openai-compatible@3.0.12Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/replicate@3.0.12Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/vercel@3.0.12Patch Changes
@ai-sdk/hume@3.0.11Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/lmnt@3.0.11Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/revai@3.0.11Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
@ai-sdk/valibot@3.0.11Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
Changelog
Sourced from @ai-sdk/fal's changelog.
3.0.12
Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.113.0.11
Patch Changes
- Updated dependencies [31c7be8]
@ai-sdk/provider-utils@5.0.103.0.10
Patch Changes
4be62c1: fix(provider-utils): validate provider-response URLs in
getFromApi
getFromApinow has avalidateUrlflag. It is optional so existing callers keep compiling (omitting it behaves likefalse, i.e. no validation), but all AI SDK provider packages set it explicitly at every call site so each one makes a visible trust decision. Whentrue, the URL is routed throughfetchWithValidatedRedirects— the same guard used bydownloadBlob— which rejects private/loopback/link-local targets, re-validates every redirect hop, strips proxy/metadata/cookie request headers, and drops all caller headers except the user-agent on cross-origin redirects (custom API-key headers must not follow a redirect off-origin any more thanAuthorizationmay); blocked URLs throwDownloadError. It is enabled at the image/video/audio download and polling call sites where the URL comes from a provider response body; URLs built from developer-configured endpoints passvalidateUrl: falseand are unaffected.A new optional
credentialedOriginwithholds caller headers unless the URL is same-origin with it, so the API key is not sent to a response-supplied host on a different origin.A new optional
trustedOriginexempts URLs (and redirect hops) that are same-origin with the developer-configured provider endpoint from target validation, so self-hosted and localhost deployments whose response URLs point back at the configured host keep working; all other hops are still validated.Also closes range gaps in
validateDownloadUrl(IPv4224.0.0.0/4multicast and the TEST-NET documentation ranges192.0.2.0/24,198.51.100.0/24,203.0.113.0/24; IPv6 documentation ranges2001:db8::/32and3fff::/20), and follows only the fetch-spec redirect status codes (301/302/303/307/308) — aLocationheader on any other status is not followed. This guard performs string/literal checks only and does not resolve DNS; hostnames that resolve to private addresses and DNS rebinding remain out of scope and must be constrained at the network layer (or by injecting a Nodefetchthat pins the resolved IP at connect time) for server deployments handling untrusted URLs. Seecontributing/secure-url-handling.md.Updated dependencies [4be62c1]
Updated dependencies [7805e4a]
Updated dependencies [cd12954]
@ai-sdk/provider-utils@5.0.93.0.9
Patch Changes
- Updated dependencies [e193290]
@ai-sdk/provider-utils@5.0.8
Commits
Updates @ai-sdk/gateway from 4.0.16 to 4.0.23
Release notes
Sourced from @ai-sdk/gateway's releases.
@ai-sdk/google@4.0.18Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
Changelog
Sourced from @ai-sdk/gateway's changelog.
4.0.23
Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.114.0.22
Patch Changes
- 341616a: feat: add kimi-k3 model and
reasoningEffortprovider option- 70fc45c: chore(provider/gateway): update gateway model settings files
4.0.21
Patch Changes
- 7069785: chore(provider/gateway): update gateway model settings files
- 4bf9ac2: feat (provider/gateway): add
gateway.experimental_transcription.getTokenfor minting transcription-bound client secrets4.0.20
Patch Changes
- 4d096f6: chore(provider/gateway): update gateway model settings files
- Updated dependencies [31c7be8]
@ai-sdk/provider-utils@5.0.104.0.19
Patch Changes
4be62c1: fix(provider-utils): validate provider-response URLs in
getFromApi
getFromApinow has avalidateUrlflag. It is optional so existing callers keep compiling (omitting it behaves likefalse, i.e. no validation), but all AI SDK provider packages set it explicitly at every call site so each one makes a visible trust decision. Whentrue, the URL is routed throughfetchWithValidatedRedirects— the same guard used bydownloadBlob— which rejects private/loopback/link-local targets, re-validates every redirect hop, strips proxy/metadata/cookie request headers, and drops all caller headers except the user-agent on cross-origin redirects (custom API-key headers must not follow a redirect off-origin any more thanAuthorizationmay); blocked URLs throwDownloadError. It is enabled at the image/video/audio download and polling call sites where the URL comes from a provider response body; URLs built from developer-configured endpoints passvalidateUrl: falseand are unaffected.A new optional
credentialedOriginwithholds caller headers unless the URL is same-origin with it, so the API key is not sent to a response-supplied host on a different origin.A new optional
trustedOriginexempts URLs (and redirect hops) that are same-origin with the developer-configured provider endpoint from target validation, so self-hosted and localhost deployments whose response URLs point back at the configured host keep working; all other hops are still validated.Also closes range gaps in
validateDownloadUrl(IPv4224.0.0.0/4multicast and the TEST-NET documentation ranges192.0.2.0/24,198.51.100.0/24,203.0.113.0/24; IPv6 documentation ranges2001:db8::/32and3fff::/20), and follows only the fetch-spec redirect status codes (301/302/303/307/308) — aLocationheader on any other status is not followed. This guard performs string/literal checks only and does not resolve DNS; hostnames that resolve to private addresses and DNS rebinding remain out of scope and must be constrained at the network layer (or by injecting a Nodefetchthat pins the resolved IP at connect time) for server deployments handling untrusted URLs. Seecontributing/secure-url-handling.md.f8e82fd: Add experimental streaming transcription support to the gateway provider (
GatewayTranscriptionModel.doStream), speaking the shared transcription-stream WebSocket envelope from@ai-sdk/provider-utils.experimental_streamTranscribenow works with gateway string model IDs, e.g.experimental_streamTranscribe({ model: 'openai/gpt-realtime-whisper', ... }).Updated dependencies [4be62c1]
Updated dependencies [7805e4a]
Updated dependencies [cd12954]
@ai-sdk/provider-utils@5.0.94.0.18
... (truncated)
Commits
9352ac1Version Packages (#17417)2667d27Version Packages (#17351)70fc45cchore(provider/gateway): update gateway model settings files (#17385)6427ca9Version Packages (#17324)4bf9ac2feat (provider/gateway): transcription client-secret minting via gateway.expe...7069785chore(provider/gateway): update gateway model settings files (#17320)b13b5faRevert "fix: AI Gateway usage token counts are undefined in AI SDK results" (...880622bfix: AI Gateway usage token counts are undefined in AI SDK results (#17227)6976682Version Packages (#17196)4d096f6chore(provider/gateway): update gateway model settings files (#17236)- Additional commits viewable in compare view
Updates @ai-sdk/google from 4.0.12 to 4.0.18
Release notes
Sourced from @ai-sdk/google's releases.
@ai-sdk/google@4.0.18Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
Changelog
Sourced from @ai-sdk/google's changelog.
4.0.18
Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.114.0.17
Patch Changes
- 5b4a299: fix(provider/google): forward Vertex-only imageConfig options (personGeneration, prominentPeople, imageOutputOptions)
4.0.16
Patch Changes
- 662ddfc: Allow google.interactions agent requests to include supported tools, including file_search.
4.0.15
Patch Changes
- Updated dependencies [31c7be8]
@ai-sdk/provider-utils@5.0.104.0.14
Patch Changes
4be62c1: fix(provider-utils): validate provider-response URLs in
getFromApi
getFromApinow has avalidateUrlflag. It is optional so existing callers keep compiling (omitting it behaves likefalse, i.e. no validation), but all AI SDK provider packages set it explicitly at every call site so each one makes a visible trust decision. Whentrue, the URL is routed throughfetchWithValidatedRedirects— the same guard used bydownloadBlob— which rejects private/loopback/link-local targets, re-validates every redirect hop, strips proxy/metadata/cookie request headers, and drops all caller headers except the user-agent on cross-origin redirects (custom API-key headers must not follow a redirect off-origin any more thanAuthorizationmay); blocked URLs throwDownloadError. It is enabled at the image/video/audio download and polling call sites where the URL comes from a provider response body; URLs built from developer-configured endpoints passvalidateUrl: falseand are unaffected.A new optional
credentialedOriginwithholds caller headers unless the URL is same-origin with it, so the API key is not sent to a response-supplied host on a different origin.A new optional
trustedOriginexempts URLs (and redirect hops) that are same-origin with the developer-configured provider endpoint from target validation, so self-hosted and localhost deployments whose response URLs point back at the configured host keep working; all other hops are still validated.Also closes range gaps in
validateDownloadUrl(IPv4224.0.0.0/4multicast and the TEST-NET documentation ranges192.0.2.0/24,198.51.100.0/24,203.0.113.0/24; IPv6 documentation ranges2001:db8::/32and3fff::/20), and follows only the fetch-spec redirect status codes (301/302/303/307/308) — aLocationheader on any other status is not followed. This guard performs string/literal checks only and does not resolve DNS; hostnames that resolve to private addresses and DNS rebinding remain out of scope and must be constrained at the network layer (or by injecting a Nodefetchthat pins the resolved IP at connect time) for server deployments handling untrusted URLs. Seecontributing/secure-url-handling.md.Updated dependencies [4be62c1]
Updated dependencies [7805e4a]
Updated dependencies [cd12954]
@ai-sdk/provider-utils@5.0.94.0.13
Patch Changes
- Updated dependencies [e193290]
... (truncated)
Commits
9352ac1Version Packages (#17417)74bfdf0docs: fix Google provider documentation links (#17368)b8241a6Version Packages (#17264)5b4a299fix(provider/google): forward Vertex-only imageConfig options (personGenerati...3649694Version Packages (#17251)662ddfcfix: google.interactions agents dropping File Search tools (#16593)6976682Version Packages (#17196)cb68fa6Version Packages (#17175)cc3ab3aVersion Packages (#17172)4be62c1fix(provider-utils): route provider-response URLs through the download-URL gu...- See full diff in compare view
Updates @ai-sdk/mistral from 4.0.8 to 4.0.13
Release notes
Sourced from @ai-sdk/mistral's releases.
@ai-sdk/mistral@4.0.13Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
Changelog
Sourced from @ai-sdk/mistral's changelog.
4.0.13
Patch Changes
- Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.114.0.12
Patch Changes
- ba433f7: Add non-streaming Voxtral text-to-speech generation with saved voice IDs and one-off reference audio.
4.0.11
Patch Changes
- Updated dependencies [31c7be8]
@ai-sdk/provider-utils@5.0.104.0.10
Patch Changes
- Updated dependencies [4be62c1]
- Updated dependencies [7805e4a]
- Updated dependencies [cd12954]
@ai-sdk/provider-utils@5.0.94.0.9
Patch Changes
- Updated dependencies [e193290]
@ai-sdk/provider-utils@5.0.8
Commits
Updates @ai-sdk/openai from 4.0.11 to 4.0.16
Release notes
Sourced from @ai-sdk/openai's releases.
@ai-sdk/openai@4.0.16Patch Changes
75f86f4: fix(provider/openai, provider/open-responses): throw a descriptive error when the Responses API returns a 200 with no
outputA successful (200) Responses body missing the
outputarray previously threw an opaqueoutput is not iterableTypeError fromdoGenerate. Both providers now surface a clearAPICallError("Responses API returned no output …"), including the incomplete-details reason (and status, for open-responses) when present. When the body includes aresponse.error, its message is surfaced first so upstream error details aren't masked by the generic fallback. This makes malformed/incomplete upstream responses actionable instead of a cryptic crash.Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.11
Changelog
Sourced from @ai-sdk/openai's changelog.
4.0.16
Patch Changes
75f86f4: fix(provider/openai, provider/open-responses): throw a descriptive error when the Responses API returns a 200 with no
outputA successful (200) Responses body missing the
outputarray previously threw an opaqueoutput is not iterableTypeError fromdoGenerate. Both providers now surface a clearAPICallError("Responses API returned no output …"), including the incomplete-details reason (and status, for open-responses) when present. When the body includes aresponse.error, its message is surfaced first so upstream error details aren't masked by the generic fallback. This makes malformed/incomplete upstream responses actionable instead of a cryptic crash.Updated dependencies [cd06458]
@ai-sdk/provider-utils@5.0.114.0.15
Patch Changes
- 0063c2d: Add the client-executed OpenAI Responses API computer tool with batched actions and screenshot outputs.
4.0.14
Patch Changes
- Updated dependencies [31c7be8]
@ai-sdk/provider-utils@5.0.104.0.13
Patch Changes
- 7805e4a: Fix realtime transcription auth header handling: per-call
authorizationheaders now override configuration headers regardless of header-key casing (last case-variant wins), and theBearerscheme is matched case-insensitively.- cd12954: Reject empty OpenAI, Anthropic, and Replicate base URLs with a helpful AI SDK invalid argument error.
- Updated dependencies [4be62c1]
- Updated dependencies [7805e4a]
- Updated dependencies [cd12954]
@ai-sdk/provider-utils@5.0.94.0.12
Patch Changes
- e193290: Add
connectToWebSocketto@ai-sdk/provider-utils: a shared WebSocket connect layer (constructor resolution, header hygiene, abort wiring, message decoding) analogous topostToApifor HTTP. The openai and xai streaming transcription models now use it instead of hand-rolled connects. For openai and xai this also means WebSocket constructor failures now surface as stream errors instead of throwing synchronously fromdoStream, an already-aborted signal no longer constructs a socket, and the caller's audio stream is cancelled on pre-open failures. Messages are processed in order with close handling deferred behind pending frames, audio send loops apply backpressure via the socket's bufferedAmount, and failed sends cancel the caller's audio stream.- e193290: Fix streaming transcription over header-capable WebSocket implementations: the realtime WebSocket handshake sent the api key in both the
openai-insecure-api-keysubprotocol and theAuthorizationheader, which OpenAI rejects ("You must only send one of protocol api key and Authorization header"). The Authorization header is now stripped when the subprotocol carries the key.- e193290: Strip undefined header values before the streaming transcription WebSocket constructor (header-capable implementations like
wsthrow on undefined values).- Updated dependencies [e193290]
@ai-sdk/provider-utils@5.0.8
Commits
9352ac1Version Packages (#17417)75f86f4fix(provider/openai, provider/open-responses): guard Responses API responses ...b8241a6Version Packages (#17264)0063c2dfeat: add OpenAI Responses API computer tool support (#17290)6976682Version Packages (#17196)cb68fa6Version Packages (#17175)cd12954fix: reject empty OpenAI, Anthropic, and Replicate base URLs with a helpful e...7805e4afeat(provider-utils): experimental transcription-stream WebSocket envelope (#...cc3ab3aVersion Packages (#17172)e193290fix: streaming transcription WebSocket fixes + shared connect layer (#17093)- See full diff in compare view
Updates @ai-sdk/react from 4.0.23 to 4.0.34
Changelog
Sourced from @ai-sdk/react's changelog.
4.0.34
Patch Changes
- Updated dependencies [70f18c3]
- Updated dependencies [cd06458]
- Updated dependencies [d84ea43]
4.0.33
Patch Changes
- ai@7.0.30
4.0.32
Patch Changes
- ai@7.0.29
4.0.31
Patch Changes
48e7e78: Harden MCP Apps handling of server-supplied resource metadata and the host/iframe bridge:
- Runtime-validate
_meta.uiand drop malformed or non-string fields.- Gate iframe permissions deny-by-default via a new
sandbox.allowedPermissionsallowlist.- Derive a concrete
postMessagetarget origin and validate inbound message origins.- Validate inbound bridge params: limit
resources/readtoui://resources and allow onlyhttps/http/mailtoinui/open-link.- Add
fingerprintMCPAppResource/detectMCPAppResourceDriftfor pinning and comparing app resources.Updated dependencies [48e7e78]
@ai-sdk/mcp@2.0.144.0.30
Patch Changes
- Updated dependencies [0bc8d4f]
- ai@7.0.28
4.0.29
Patch Changes
- 519c72b: fix (react/mcp-apps): sanitize server-supplied CSP domains in
getMCPAppCSPso values cannot inject extra directives, sources, or policies into the generated Content-Security-Policy
... (truncated)
Commits
9352ac1Version Packages (#17417)2667d27Version Packages (#17351)6427ca9Version Packages (#17324)b8241a6Version Packages (#17264)48e7e78fix(react/mcp): harden MCP Apps metadata handling and host/iframe bridge (#17...3649694Version Packages (#17251)8b4f487Version Packages (#17247)519c72bSecurity hardening: sanitize MCP App CSP domains (#17192)6976682Version Packages (#17196)2ba5f8aVersion Packages (#17181)- Additional commits viewable in compare view
Updates @composio/core from 0.13.1 to 0.14.0
Release notes
Sourced from @composio/core's releases.
@composio/core@0.14.0Minor Changes
fc17c37: Export the sensitive-file-upload denylist guard from the package root so downstream packages share one implementation:
assertSafeFileUploadPath,isBlockedSensitiveFileUploadPath, andBUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTS. The guard now routes its filesystem access through the internal#platformabstraction (adding arealpathSyncplatform method), so it is edge/workerd-safe and the module carries no staticnode:*imports. Behavior on Node/Bun is unchanged.20a4711:
triggers.createnow resolves the connection fromuser_idon the backend instead of client-side.
- The SDK no longer makes an extra
connectedAccounts.list()call. WhenconnectedAccountIdis omitted, the backend resolves the first active connection for the user and the trigger's toolkit (ordered by most recently created), matching tool execution.- Behavior change:
createno longer throwsComposioConnectedAccountNotFoundErrorfor a missing or invalid connection. That case now surfaces as the backend error from the upsert call.ComposioTriggerTypeNotFoundError(invalid slug) andValidationError(including emptyuserId) are still thrown client-side.- Requires a backend that resolves the trigger connection from
user_idon upsert (ComposioHQ/platform#10932). Self-hosted deployments must be on a version that includes it.Patch Changes
7125576: Normalize duplicate JSON Schema
requiredentries before provider tool schemas are emitted.58bc93b: Refresh dependency ranges and lockfiles across the workspace.
4c3a321: Disable client retries on
tools.executeandtools.proxyExecute. These are non-idempotent writes, so a silent retry after a read timeout could duplicate the side effect (e.g. send the same email more than once). Both now route through a sibling client built withmaxRetries: 0; reads keep the default retry behaviour.b07fcad: Add an eve provider:
EveProvidermakessession.tools()return eve-nativedefineTools,defineComposioToolsis the replay-safestep.startedresolver, and(ctx, next)hooks can rewrite, deny, or transform Tool Router meta-tool calls.Preserve successful local-tool results when the remote half of a mixed
COMPOSIO_MULTI_EXECUTE_TOOLbatch fails at the transport layer, so callers can see which side effects already completed before retrying.fa933a6: Fix the
homepagelinks in these packages'package.json. They pointed atgithub.com/ComposioHQ/composio/tree/main/..., but the default branch isnextand nomainbranch exists, so every link 404'd on npm and in editor tooltips. They now point attree/next/....2ef40ce: Treat local file paths that begin with
httpas paths instead of URLs, ensuring that upload allowlist and sensitive-file denylist checks still run.e78ed31: Execute every parallel tool call in
OpenAIProvider.handleToolCalls. It previously only ran the first tool call in each assistant message, so parallel tool calls (on by default) dropped the rest and left theirtool_call_ids unanswered, failing the next request.The calls are run sequentially, in the order the model returned them — here "parallel" means the model issued several calls in one turn, not that they execute concurrently — so each
tool_call_idis answered exactly once and the tool messages come back in a deterministic order.Only the first choice is handled. Tool results are fed back into a single assistant turn, so with
n > 1iterating over every choice would run each tool call once per choice and orphan thetool_call_ids from the alternative completions.a0f37a7: Close two secret/SSRF exposure surfaces in the TypeScript SDK:
- SSRF guard on URL file inputs.
composio.files.upload(url)and automatic file upload during tool execution previously did a rawfetch()on user-supplied URLs with no guard. They now resolve the host and refuse private, loopback, link-local (incl. the169.254.169.254cloud-metadata endpoint), CGNAT, and reserved addresses, reject non-http(s)schemes, and follow redirects manually so each hop is re-validated (blocking a public URL that redirects into internal space). Blocked requests throwComposioBlockedInternalUrlError. Node-only; behaviour for public URLs is unchanged.- Telemetry redaction. Error telemetry previously shipped
error.message/error.stackverbatim. They are now passed through a redactor that strips URL query strings,Authorizationbearer/basic credentials, and secret-likekey=valuepairs (API keys, tokens, client secrets, passwords) before transport.820abb9: Resolve toolkit version pins case-insensitively. Version maps are keyed by normalized (lowercase) slugs, but
getToolkitVersionpreviously looked them up with the raw slug, so a pin configured under a different casing (e.g.{ GitHub: '20250101_00' }orCOMPOSIO_TOOLKIT_VERSION_GITHUB) could silently fall back to'latest'. Normalization is now centralized in a singlenormalizeToolkitSlughelper used symmetrically on both the write (map-building) and read (lookup) paths, so the two sides can no longer drift. This mirrors the equivalent fix in the Python SDK.Updated dependencies [58bc93b]
Updated dependencies [fa933a6]
@composio/json-schema-to-zod@0.2.1
Changelog
Sourced from @composio/core's changelog.
0.14.0
Minor Changes
fc17c37: Export the sensitive-file-upload denylist guard from the package root so downstream packages share one implementation:
assertSafeFileUploadPath,isBlockedSensitiveFileUploadPath, andBUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTS. The guard now routes its filesystem access through the internal#platformabstraction (adding arealpathSyncplatform method), so it is edge/workerd-safe and the module carries no staticnode:*imports. Behavior on Node/Bun is unchanged.20a4711:
triggers.createnow resolves the connection fromuser_idon the backend instead of client-side.
- The SDK no longer makes an extra
connectedAccounts.list()call. WhenconnectedAccountIdis omitted, the backend resolves the first active connection for the user and the trigger's toolkit (ordered by most recently created), matching tool execution.- Behavior change:
createno longer throwsComposioConnectedAccountNotFoundErrorfor a missing or invalid connection. That case now surfaces as the backend error from the upsert call.ComposioTriggerTypeNotFoundError(invalid slug) andValidationError(including emptyuserId) are still thrown client-side.- Requires a backend that resolves the trigger connection from
user_idon upsert (ComposioHQ/platform#10932). Self-hosted deployments must be on a version that includes it.Patch Changes
7125576: Normalize duplicate JSON Schema
requiredentries before provider tool schemas are emitted.58bc93b: Refresh dependency ranges and lockfiles across the workspace.
4c3a321: Disable client retries on
tools.executeandtools.proxyExecute. These are non-idempotent writes, so a silent retry after a read timeout could duplicate the side effect (e.g. send the same email more than once). Both now route through a sibling client built withmaxRetries: 0; reads keep the default retry behaviour.b07fcad: Add an eve provider:
EveProvidermakessession.tools()return eve-nativedefineTools,defineComposioToolsis the replay-safestep.startedresolver, and(ctx, next)hooks can rewrite, deny, or transform Tool Router meta-tool calls.Preserve successful local-tool results when the remote half of a mixed
COMPOSIO_MULTI_EXECUTE_TOOLbatch fails at the transport layer, so callers can see which side effects already completed before retrying.fa933a6: Fix the
homepagelinks in these packages'package.json. They pointed atgithub.com/ComposioHQ/composio/tree/main/..., but the default branch isnextand nomainbranch exists, so every link 404'd on npm and in editor tooltips. They now point attree/next/....2ef40ce: Treat local file paths that begin with
httpas paths instead of URLs, ensuring that upload allowlist and sensitive-file denylist checks still run.e78ed31: Execute every parallel tool call in
OpenAIProvider.handleToolCalls. It previously only ran the first tool call in each assistant message, so parallel tool calls (on by default) dropped the rest and left theirtool_call_ids unanswered, failing the next request.The calls are run sequentially, in the order the model returned them — here "parallel" means the model issued several calls in one turn, not that they execute concurrently — so each
tool_call_idis answered exactly once and the tool messages come back in a deterministic order.Only the first choice is handled. Tool results are fed back into a single assistant turn, so with
n > 1iterating over every choice would run each tool call once per choice and orphan thetool_call_ids from the alternative completions.a0f37a7: Close two secret/SSRF exposure surfaces in the TypeScript SDK:
- SSRF guard on URL file inputs.
composio.files.upload(url)and automatic file upload during tool execution previously did a rawfetch()on user-supplied URLs with no guard. They now resolve the host and refuse private, loopback, link-local (incl. the169.254.169.254cloud-metadata endpoint), CGNAT, and reserved addresses, reject non-http(s)schemes, and follow redirects manually so each hop is re-validated (blocking a public URL that redirects into internal space). Blocked requests throwComposioBlockedInternalUrlError. Node-only; behaviour for public URLs is unchanged.- Telemetry redaction. Error telemetry previously shipped
error.message/error.stackverbatim. They are now passed through a redactor that strips URL query strings,Authorizationbearer/basic credentials, and secret-likekey=valuepairs (API keys, tokens, client secrets, passwords) before transport.820abb9: Resolve toolkit version pins case-insensitively. Version maps are keyed by normalized (lowercase) slugs, but
getToolkitVersionpreviously looked them up with the raw slug, so a pin configured under a different casing (e.g.{ GitHub: '20250101_00' }orCOMPO...
Description has been truncated
Summary by cubic
Update 53 non‑major dependencies to improve security, stability, and provider tooling. Also adjust KaTeX styles for
katex@0.18so equation numbers render correctly.
Dependencies
- AI SDK:
@ai-sdk/anthropic,@ai-sdk/openai,@ai-sdk/google,@ai-sdk/gateway,@ai-sdk/mistral,@ai-sdk/fal,@ai-sdk/react,ai— better URL validation, clearer errors, transcription support, and security hardening.- Composio:
@composio/core@0.14.0,@composio/vercel— adds SSRF guard for file uploads, disables retries on non‑idempotent tool calls, backend‑resolved trigger connections.- UI:
@radix-ui/*,lucide-react,@fontsource/*— minor fixes and updates.- Tooling:
tailwindcssand@tailwindcss/vite4.3.3,vite8.1.5,lint-staged17.1.0,oxfmt/oxlint— patch/minor improvements.- Analytics:
posthog-js1.404.1,posthog-node5.45.2.- Other:
convex1.42.3,katex0.18.1.Migration
- If you self-host Composio, ensure your platform version supports resolving trigger connections from
user_idon upsert.