Patch Changes
- @ai-sdk/harness@1.0.161
npx @buildinternet/releases get vercel-ai-sdkGatewaySpeechModel implements Experimental_StreamingSpeechModelV4 and streams speech over the AI Gateway speech WebSocket, with provider-utils adding an experimental speech-stream envelope (parse/serialize client frames and parts) plus EXPERIMENTAL_SPEECH_STREAM_* frame types. The gateway.experimental_speech model is callable like speech(modelId) and uses a server-side getToken() that mints a speech-bound short-lived client secret for browser use.
Adds Experimental_StreamingSpeechModelV4, a SpeechModelV4 extension whose doStream() takes input text as a stream of text parts with optional per-part voice and providerOptions and returns a stream of audio parts. The stable SpeechModelV4 is unchanged.
New experimental_streamSpeech streams speech audio from a string or from arrays, iterables, and streams of text deltas and text parts, returning a single-consumer audioStream and fullStream plus usage, warnings, responses, and providerMetadata. Provider error parts are non-fatal and reported through onError, user aborts reject the result promises immediately, and Experimental_MockStreamingSpeechModelV4 is added to ai/test.
toolChoice 'none' is forwarded to the Hugging Face Responses API and tool calls are rejected before local execution in generateText and streamText. Streamed tool parts are withheld so client-side tools cannot act on them, and experimental_repairToolCall is not invoked for rejected calls.
OpenTelemetry gains an agentSpanName option that names root agent spans using functionId or a custom callback, while preserving model-based span names by default. Includes dependency updates to ai@7.0.149 and @ai-sdk/provider@4.0.32.
toolChoice: 'none' is now forwarded to the Hugging Face Responses API, and tool calls are rejected before local execution in generateText, streamText, and WorkflowAgent, with streamed tool parts withheld. Streams across OpenAI, Anthropic, Google, Bedrock, Cohere, Groq, Hugging Face, Mistral, Moonshot, Perplexity, and xAI that end without a provider completion signal now report finishReason 'interrupted' instead of 'other'.
The /skill command now reads skill files from the sandbox, and cold-resume tool calls are validated against host state. Updates harness and provider-utils dependencies.
Added Voxtral 3 offline transcription and speech model IDs with transcription context phrases, detected language, and speech expressiveness and pronunciation hints. The gateway's parallelSearch now accepts the GA Search API's turbo, fast, basic, and advanced modes and new location and maxCharsTotal options, while the never-populated searchId, excerpt, publishDate, and relevanceScore result fields are removed.
Adds executionPolicy.cpuTimeoutMs to bound CPU time spent running sandboxed code, throwing CodeModeCpuTimeoutError when exceeded. Includes dependency updates to ai@7.0.149.
Streams that end without a completion signal now report an interrupted finish reason, preserving partial output without erroring, while tool execution, agent continuation, and automatic UI follow-ups stop for interrupted responses. The patch also processes only the first approval response per tool call, so repeated or conflicting responses can no longer execute a tool twice, and forwards toolChoice 'none' to the Hugging Face Responses API with tool calls rejected before local execution.
Fixed the ai package leaving orphaned reasoning parts, including consecutive summary parts, behind when pruning tool calls. Updated the @ai-sdk/gateway dependency to 2.0.171.
Tool argument JSON parsing in @ai-sdk/langchain now guards against prototype pollution while keeping the fallback for invalid arguments. Dependency updates include ai@6.0.313.
The Mistral provider gains Voxtral 3 speech model IDs plus expressiveness and pronunciation hints, and the gateway's parallelSearch accepts the turbo, fast, basic, and advanced modes so those tool calls no longer fail client-side validation. The Parallel Search result schema now matches gateway responses, removing the never-populated searchId, excerpt, publishDate, and relevanceScore fields.
Batch transcription in @ai-sdk/elevenlabs now uses the reported audio duration, including trailing silence, with word timestamps as a fallback.
Only the first approval response per tool call is now processed, so repeated or conflicting responses in the final tool message no longer execute a tool twice or both execute and deny it. Also removes orphaned and consecutive reasoning parts when pruning tool calls, and preserves repaired tool names in streamed UI message parts.