Skip to content

chore(deps): update dependency ai to ^6.0.240 - #71

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/ai-sdk
Aug 6, 2026
Merged

chore(deps): update dependency ai to ^6.0.240#71
renovate[bot] merged 1 commit into
mainfrom
renovate/ai-sdk

Conversation

@renovate

@renovate renovate Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
ai (source) ^6.0.170^6.0.240 age confidence

Release Notes

vercel/ai (ai)

v6.0.240

Compare Source

Patch Changes

v6.0.239

Compare Source

Patch Changes

v6.0.238

Compare Source

Patch Changes
  • 9ecdefe: Prevent validated downloads on Node.js from reaching private or internal services through DNS aliases or DNS rebinding by validating and pinning every resolved address at connection time.
  • 26d10c0: support overriding model call settings for individual prepareStep invocations
  • 7767170: Preserve provider metadata from empty text deltas in streamText.
  • Updated dependencies [9ecdefe]
  • Updated dependencies [87fb433]

v6.0.237

Compare Source

Patch Changes

v6.0.236

Compare Source

v6.0.235

Compare Source

Patch Changes

v6.0.234

Compare Source

Patch Changes
  • 1efdef8: fix(ai): bound media-type sniffing decode for ID3-prefixed input

    Media-type detection stripped ID3 tags before the ~18-byte prefix cap, decoding the entire base64 attachment (plus a full-size copy) whenever the data began with ID3/SUQz. This turned the intended O(1) sniff into an O(N) decode of the whole attachment. Detection now decodes at most a bounded prefix and skips the ID3 tag within that bound, keeping cost O(1) in input size on all paths (image, audio, and combined).

  • 49414cf: Return response piping promises so callers can catch stream read and write errors.

  • Updated dependencies [e7d064f]

v6.0.233

Compare Source

Patch Changes
  • fe410e7: fix: detect MP4 audio from its ftyp box during transcription
  • af7188c: fix(ai): preserve tool parts when tool call IDs repeat across steps
  • Updated dependencies [a09f944]

v6.0.232

Compare Source

Patch Changes
  • 7644a61: Preserve provider options when combining consecutive tool messages.

v6.0.231

Compare Source

Patch Changes
  • 926f5a0: Allow UI message chunks to include fields added by newer server versions.
  • 4c5a22f: Propagate abort reasons when generation is cancelled during tool execution.
  • 842a383: Prevent tools excluded by activeTools from being parsed or executed.
  • Updated dependencies [2dd1aab]
  • Updated dependencies [e567091]

v6.0.230

Compare Source

Patch Changes

v6.0.229

Compare Source

Patch Changes

v6.0.228

Compare Source

Patch Changes

v6.0.227

Compare Source

Patch Changes
  • 6ace546: Fix chat onFinish handling when overlapping requests clear the active response before a resume stream finishes.

v6.0.226

Compare Source

Patch Changes
  • 94219a2: Allow validating assistant UI messages with empty parts so persisted errored responses remain loadable.
  • b1be847: Prevent pending tool executions from enqueueing results after a model stream error closes the result stream.
  • Updated dependencies [06fb54c]
  • Updated dependencies [bc46977]

v6.0.225

Compare Source

Patch Changes

v6.0.224

Compare Source

Patch Changes

v6.0.223

Compare Source

Patch Changes

v6.0.222

Compare Source

Patch Changes

v6.0.221

Compare Source

v6.0.220

Patch Changes
  • 158d027: Sort tool results by their tool call order when converting generation output to response messages.
  • eb3cdd9: Fix extractJsonMiddleware preserving leading whitespace in the final streamed text suffix when no markdown fence prefix was stripped.
  • Updated dependencies [7dea716]
  • Updated dependencies [4f7fe37]
  • Updated dependencies [0952964]

v6.0.219

v6.0.218

Patch Changes

v6.0.217

Patch Changes

v6.0.216

Patch Changes

v6.0.215

Patch Changes
  • f66ac32: fix(ai): prune orphaned tool-approval responses in pruneMessages

    When pruning a specific tool by name (toolCalls: [{ type, tools: [...] }]), pruneMessages left the tool's tool-approval-response in place while removing its tool-approval-request and tool-call. The tool name of an approval response was resolved per-message, but approval responses live in a separate tool message from their approval request, so the name could never be resolved and the response was always kept. Tool name resolution is now done across all messages, so approval requests and responses are pruned together.

v6.0.214

Patch Changes

v6.0.213

Patch Changes

v6.0.212

Patch Changes

v6.0.211

Patch Changes

v6.0.210

Patch Changes

v6.0.209

Compare Source

v6.0.208

Compare Source

v6.0.207

Compare Source

Patch Changes
  • 779f5cd: fix(provider-utils): cancel response body on download rejection to prevent socket leak

    When a download was rejected early — because the Content-Length header exceeded the size limit, the response status was not ok, or a redirect resolved to a blocked URL — the fetch response body was left unconsumed and uncancelled. With WHATWG Fetch/undici this leaves the underlying TCP socket open instead of returning it to the connection pool, allowing an attacker-controlled origin to exhaust file descriptors and cause a denial of service. The body is now cancelled on all early-rejection paths in readResponseWithSizeLimit, download, and downloadBlob, and fetchWithValidatedRedirects cancels each redirect hop's body before following or rejecting the next hop.

  • Updated dependencies [5bfde36]

  • Updated dependencies [779f5cd]

v6.0.206

Compare Source

Patch Changes

v6.0.205

Compare Source

Patch Changes

v6.0.204

Compare Source

v6.0.203

Compare Source

Patch Changes
  • f42aa79: fix: harden download URL SSRF guard against hostname and redirect bypasses

    validateDownloadUrl and the file download helpers (downloadBlob, download) could be bypassed in several ways when handling untrusted URLs:

    • A fully-qualified hostname with a trailing dot (e.g. localhost., myhost.local.) skipped the localhost/.local blocklist.
    • IPv6 addresses that embed an IPv4 address in their last 32 bits — IPv4-compatible (::127.0.0.1), IPv4-translated (::ffff:0:127.0.0.1), and NAT64 (64:ff9b::127.0.0.1, including the 64:ff9b:1::/48 local-use prefix) — were not decoded and checked against the private IPv4 ranges.
    • Redirects were validated only after fetch had already followed them, so the request to a redirect target (e.g. an internal/metadata address) had already been issued before the check ran.
    • Several reserved/internal address ranges were not blocked: CGNAT (100.64.0.0/10, used by some cloud providers for internal traffic), benchmarking (198.18.0.0/15), IETF protocol assignments (192.0.0.0/24), the reserved 240.0.0.0/4 block (including the 255.255.255.255 broadcast address), and IPv6 site-local (fec0::/10) and multicast (ff00::/8).

    The validator now strips trailing dots before the hostname checks and fully expands IPv6 addresses to detect embedded private IPv4 targets. The download helpers now follow redirects manually (redirect: 'manual'), re-validating each hop before requesting it, so an unsafe redirect target is never fetched. When a redirect cannot be inspected because the runtime returns an opaque response, the helpers fail closed (reject the redirect) on the server; only in a real browser — where SSRF is not reachable (fetch is constrained by CORS and cannot reach a server's internal network or cloud-metadata endpoints) — is the redirect followed natively so legitimate redirected downloads keep working.

  • 5291f7e: Harden stream text processing and middleware against prototype pollution from stream part IDs.

  • b4b575a: fix: redact server error details from UI message streams by default

    streamText(...).toUIMessageStream() and createUIMessageStream defaulted their onError callback to getErrorMessage, which serializes the raw error (error.toString() / JSON.stringify(error)) into the client-facing { type: 'error', errorText } chunk — and also into tool-output-error parts. The documented default was () => 'An error occurred.', so applications relying on the documented behavior were unknowingly streaming server exception details (internal hostnames, paths, provider request data, validation inputs) to end users.

    The default onError now returns the documented generic 'An error occurred.'. Raw error details are only emitted when the developer explicitly supplies an onError handler. This also redacts tool-output-error and invalid-tool-input error text by default; pass an onError to surface richer messages.

  • Updated dependencies [bfa5864]

  • Updated dependencies [f42aa79]

v6.0.202

Compare Source

Patch Changes
  • 942f2f8: fix(security): re-validate tool approvals from client message history before execution

    The approval-replay path in generateText/streamText reconstructed approved tool calls from the client-supplied messages array and executed them without re-validating input against the tool's schema or re-checking that the tool actually requires approval. A client could forge an assistant message with a pre-approved tool-call part and have the server execute a tool with attacker-chosen arguments.

    The replay path now verifies the HMAC signature (when experimental_toolApprovalSecret is configured), re-validates tool-call input against the tool's input schema, and re-resolves whether the tool requires approval before execution.

  • Updated dependencies [942f2f8]

v6.0.201

Compare Source

Patch Changes
  • 0c8c0ed: fix(ai): return schema-transformed elements in array output mode

    Previously final array output validation checked each element against the schema but returned the raw model output. Array output now returns the validated values so Zod transforms, coercions, defaults, and pipes are applied consistently with object output.

v6.0.200

Compare Source

Patch Changes
  • 14098e7: fix(ai): reject streamText result promises with NoOutputGeneratedError when the model stream ends without producing any output. Previously such streams resolved with an empty step. Incomplete streams with partial output still resolve with the partial result.
  • 2cabe9c: Harden UI message stream processing against prototype pollution from chunk IDs.

v6.0.199

Compare Source

Patch Changes

v6.0.198

Compare Source

Patch Changes

v6.0.197

Compare Source

v6.0.196

Compare Source

Patch Changes

v6.0.195

Compare Source

v6.0.194

Compare Source

v6.0.193

Compare Source

Patch Changes
  • af580ea: fix(ai): do not re-validate tool input for output-error parts in validateUIMessages

v6.0.192

Compare Source

Patch Changes

v6.0.191

Compare Source

Patch Changes

v6.0.190

Compare Source

Patch Changes

v6.0.189

Compare Source

Patch Changes
  • 356c3cf: fix(ai): make input optional on input-streaming UIMessagePart variants

v6.0.188

Compare Source

Patch Changes
  • c98715a: Add allowSystemInMessages option to ToolLoopAgent.

    This exposes the same option that exists on streamText and generateText, whether role: "system" messages are allowed in the prompt or messages fields. When unset, system messages are rejected because they can create a prompt injection attack risk. Ideally, use the instructions option instead. Set to true to allow system messages, or false to explicitly reject them.

    const agent = new ToolLoopAgent({
      model,
      allowSystemInMessages: true,
    });
    
    await agent.generate({
      messages: [
        { role: "system", content: "Server context" },
        { role: "user", content: "Hello" },
      ],
    });

    The option can also be returned from prepareCall for dynamic per-call configuration.

v6.0.187

Compare Source

Patch Changes

v6.0.185

Compare Source

Patch Changes

v6.0.184

Compare Source

Patch Changes
  • 40fc5e4: fix(ai): default missing embedding warnings to an empty array

v6.0.183

Compare Source

Patch Changes

v6.0.182

Compare Source

Patch Changes
  • e76a29a: fix(ai): download tool-result file URLs

v6.0.180

Compare Source

Patch Changes

v6.0.178

Compare Source

Patch Changes
  • ac6f27e: fix(ai): update opentelemetry pinned version

v6.0.177

Compare Source

Patch Changes

v6.0.176

Compare Source

Patch Changes

v6.0.175

Compare Source

Patch Changes

v6.0.174

Compare Source

Patch Changes

v6.0.173

Compare Source

Patch Changes

v6.0.172

Compare Source

v6.0.171

Compare Source

Patch Changes
  • 48f842a: fix(ai): enforce callOptionsSchema at runtime in ToolLoopAgent

    ToolLoopAgentSettings.callOptionsSchema was declared and documented as a runtime schema for options, but tool-loop-agent.ts never invoked it. Any invariant a developer encoded in the schema was silently bypassed at runtime, and unchecked options flowed straight into prepareCall and any instructions template that interpolated them.

    ToolLoopAgent.prepareCall now validates caller-supplied options against callOptionsSchema (when set) via safeValidateTypes, throwing InvalidArgumentError on failure before forwarding to prepareCall / generateText / streamText.

  • a727da4: chore: ensure consistent import handling and avoid import duplicates or cycles

  • 5fee301: fix(mcp): prevent prototype pollution by using secureJsonParse

  • Updated dependencies [a727da4]


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/ai-sdk branch from 596d228 to 6cad627 Compare August 6, 2026 07:56
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 6, 2026

Copy link
Copy Markdown

Deploying stackhacker-ui-web with  Cloudflare Pages  Cloudflare Pages

Latest commit: 798de0d
Status: ✅  Deploy successful!
Preview URL: https://62d6891c.stackhacker-ui-web.pages.dev
Branch Preview URL: https://renovate-ai-sdk.stackhacker-ui-web.pages.dev

View logs

@renovate
renovate Bot force-pushed the renovate/ai-sdk branch from 6cad627 to 798de0d Compare August 6, 2026 08:11
@renovate
renovate Bot merged commit a1e3701 into main Aug 6, 2026
3 checks passed
@renovate
renovate Bot deleted the renovate/ai-sdk branch August 6, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants