| import { LanguageModelV4StreamPart } from '@ai-sdk/provider'; | ||
| import { ProviderMetadata } from '../types/provider-metadata'; | ||
| export type UglyTransformedStreamTextPart = | ||
| | Exclude< | ||
| LanguageModelV4StreamPart, | ||
| { | ||
| type: 'text-delta'; | ||
| } | ||
| > | ||
| | { | ||
| type: 'text-delta'; | ||
| id: string; | ||
| providerMetadata?: ProviderMetadata; | ||
| text: string; | ||
| }; | ||
| export function createStreamTextPartTransform() { | ||
| return new TransformStream< | ||
| LanguageModelV4StreamPart, | ||
| UglyTransformedStreamTextPart | ||
| >({ | ||
| async transform(chunk, controller) { | ||
| if (chunk.type === 'text-delta') { | ||
| controller.enqueue({ | ||
| type: 'text-delta', | ||
| id: chunk.id, | ||
| text: chunk.delta, | ||
| providerMetadata: chunk.providerMetadata, | ||
| }); | ||
| } else { | ||
| controller.enqueue(chunk); | ||
| } | ||
| }, | ||
| }); | ||
| } |
@@ -96,2 +96,3 @@ import { SystemModelMessage, ModelMessage, Tool } from '@ai-sdk/provider-utils'; | ||
| chunkMs?: number; | ||
| toolMs?: number; | ||
| }; | ||
@@ -98,0 +99,0 @@ type CallSettings = { |
@@ -96,2 +96,3 @@ import { SystemModelMessage, ModelMessage, Tool } from '@ai-sdk/provider-utils'; | ||
| chunkMs?: number; | ||
| toolMs?: number; | ||
| }; | ||
@@ -98,0 +99,0 @@ type CallSettings = { |
@@ -156,3 +156,3 @@ "use strict"; | ||
| // src/version.ts | ||
| var VERSION = true ? "7.0.0-beta.20" : "0.0.0-test"; | ||
| var VERSION = true ? "7.0.0-beta.21" : "0.0.0-test"; | ||
@@ -159,0 +159,0 @@ // src/util/download/download.ts |
@@ -136,3 +136,3 @@ // internal/index.ts | ||
| // src/version.ts | ||
| var VERSION = true ? "7.0.0-beta.20" : "0.0.0-test"; | ||
| var VERSION = true ? "7.0.0-beta.21" : "0.0.0-test"; | ||
@@ -139,0 +139,0 @@ // src/util/download/download.ts |
+1
-1
| { | ||
| "name": "ai", | ||
| "version": "7.0.0-beta.20", | ||
| "version": "7.0.0-beta.21", | ||
| "description": "AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript", | ||
@@ -5,0 +5,0 @@ "license": "Apache-2.0", |
@@ -33,2 +33,3 @@ import { executeTool, ModelMessage } from '@ai-sdk/provider-utils'; | ||
| abortSignal, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -48,2 +49,3 @@ stepNumber, | ||
| abortSignal: AbortSignal | undefined; | ||
| toolTimeoutMs?: number | undefined; | ||
| experimental_context: unknown; | ||
@@ -88,2 +90,9 @@ stepNumber?: number; | ||
| const toolAbortSignal = | ||
| toolTimeoutMs != null | ||
| ? abortSignal != null | ||
| ? AbortSignal.any([abortSignal, AbortSignal.timeout(toolTimeoutMs)]) | ||
| : AbortSignal.timeout(toolTimeoutMs) | ||
| : abortSignal; | ||
| const startTime = now(); | ||
@@ -107,3 +116,3 @@ | ||
| messages, | ||
| abortSignal, | ||
| abortSignal: toolAbortSignal, | ||
| experimental_context, | ||
@@ -110,0 +119,0 @@ }, |
@@ -24,2 +24,3 @@ import { | ||
| getStepTimeoutMs, | ||
| getToolTimeoutMs, | ||
| getTotalTimeoutMs, | ||
@@ -453,2 +454,3 @@ TimeoutConfiguration, | ||
| const stepTimeoutMs = getStepTimeoutMs(timeout); | ||
| const toolTimeoutMs = getToolTimeoutMs(timeout); | ||
| const stepAbortController = | ||
@@ -553,2 +555,3 @@ stepTimeoutMs != null ? new AbortController() : undefined; | ||
| abortSignal: mergedAbortSignal, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -876,2 +879,3 @@ stepNumber: 0, | ||
| abortSignal: mergedAbortSignal, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -1109,2 +1113,3 @@ stepNumber: steps.length, | ||
| abortSignal, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -1123,2 +1128,3 @@ stepNumber, | ||
| abortSignal: AbortSignal | undefined; | ||
| toolTimeoutMs?: number | undefined; | ||
| experimental_context: unknown; | ||
@@ -1140,2 +1146,3 @@ stepNumber: number; | ||
| abortSignal, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -1142,0 +1149,0 @@ stepNumber, |
@@ -1,2 +0,2 @@ | ||
| import { LanguageModelV4StreamPart, SharedV4Warning } from '@ai-sdk/provider'; | ||
| import { SharedV4Warning } from '@ai-sdk/provider'; | ||
| import { | ||
@@ -14,3 +14,7 @@ getErrorMessage, | ||
| import { asLanguageModelUsage } from '../types/usage'; | ||
| import { UglyTransformedStreamTextPart } from './create-stream-text-part-transform'; | ||
| import { executeToolCall } from './execute-tool-call'; | ||
| import { DefaultGeneratedFileWithType, GeneratedFile } from './generated-file'; | ||
| import { isApprovalNeeded } from './is-approval-needed'; | ||
| import { parseToolCall } from './parse-tool-call'; | ||
| import { | ||
@@ -20,5 +24,2 @@ StreamTextOnToolCallFinishCallback, | ||
| } from './stream-text'; | ||
| import { DefaultGeneratedFileWithType, GeneratedFile } from './generated-file'; | ||
| import { isApprovalNeeded } from './is-approval-needed'; | ||
| import { parseToolCall } from './parse-tool-call'; | ||
| import { ToolApprovalRequestOutput } from './tool-approval-request-output'; | ||
@@ -127,2 +128,3 @@ import { TypedToolCall } from './tool-call'; | ||
| repairToolCall, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -137,3 +139,3 @@ generateId, | ||
| tools: TOOLS | undefined; | ||
| generatorStream: ReadableStream<LanguageModelV4StreamPart>; | ||
| generatorStream: ReadableStream<UglyTransformedStreamTextPart>; | ||
| telemetry: TelemetrySettings | undefined; | ||
@@ -145,2 +147,3 @@ callId: string; | ||
| repairToolCall: ToolCallRepairFunction<TOOLS> | undefined; | ||
| toolTimeoutMs?: number | undefined; | ||
| experimental_context: unknown; | ||
@@ -200,7 +203,7 @@ generateId: IdGenerator; | ||
| const forwardStream = new TransformStream< | ||
| LanguageModelV4StreamPart, | ||
| UglyTransformedStreamTextPart, | ||
| SingleRequestTextStreamPart<TOOLS> | ||
| >({ | ||
| async transform( | ||
| chunk: LanguageModelV4StreamPart, | ||
| chunk: UglyTransformedStreamTextPart, | ||
| controller: TransformStreamDefaultController< | ||
@@ -216,2 +219,3 @@ SingleRequestTextStreamPart<TOOLS> | ||
| case 'text-start': | ||
| case 'text-delta': | ||
| case 'text-end': | ||
@@ -231,11 +235,2 @@ case 'reasoning-start': | ||
| case 'text-delta': | ||
| controller.enqueue({ | ||
| type: 'text-delta', | ||
| id: chunk.id, | ||
| text: chunk.delta, | ||
| providerMetadata: chunk.providerMetadata, | ||
| }); | ||
| break; | ||
| case 'reasoning-delta': | ||
@@ -375,2 +370,3 @@ controller.enqueue({ | ||
| abortSignal, | ||
| toolTimeoutMs, | ||
| experimental_context, | ||
@@ -377,0 +373,0 @@ stepNumber, |
@@ -10,3 +10,3 @@ /** | ||
| | number | ||
| | { totalMs?: number; stepMs?: number; chunkMs?: number }; | ||
| | { totalMs?: number; stepMs?: number; chunkMs?: number; toolMs?: number }; | ||
@@ -62,2 +62,11 @@ /** | ||
| export function getToolTimeoutMs( | ||
| timeout: TimeoutConfiguration | undefined, | ||
| ): number | undefined { | ||
| if (timeout == null || typeof timeout === 'number') { | ||
| return undefined; | ||
| } | ||
| return timeout.toolMs; | ||
| } | ||
| export type CallSettings = { | ||
@@ -64,0 +73,0 @@ /** |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Network access
Supply chain riskThis module accesses the network.
Found 2 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 2 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
6677021
0.15%533
0.19%64131
0.23%