ai 7.0.149 → 7.0.151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/index.d.ts +163 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +279 -4
- package/dist/index.js.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/test/index.d.ts +17 -2
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +12 -1
- package/dist/test/index.js.map +1 -1
- package/docs/03-ai-sdk-core/18-tools.mdx +181 -9
- package/docs/03-ai-sdk-core/37-speech.mdx +65 -0
- package/docs/07-reference/01-ai-sdk-core/12-stream-speech.mdx +195 -0
- package/docs/07-reference/01-ai-sdk-core/index.mdx +5 -0
- package/package.json +12 -12
- package/src/error/no-speech-generated-error.ts +5 -1
- package/src/generate-speech/index.ts +7 -0
- package/src/generate-speech/is-streaming-speech-model.ts +17 -0
- package/src/generate-speech/stream-speech-result.ts +95 -0
- package/src/generate-speech/stream-speech.ts +569 -0
- package/src/test/mock-streaming-speech-model-v4.ts +28 -0
package/dist/internal/index.js
CHANGED
package/dist/test/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL } from "@ai-sdk/provider-utils";
|
|
2
2
|
import { convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId } from "@ai-sdk/provider-utils/test";
|
|
3
|
-
import { EmbeddingModelV3, EmbeddingModelV4, Experimental_DecisionModelV4, Experimental_SpeechTranslationModelV4, Experimental_VideoModelV3, Experimental_VideoModelV4, ImageModelV3, ImageModelV4, LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, LanguageModelV4, LanguageModelV4CallOptions, LanguageModelV4GenerateResult, LanguageModelV4StreamResult, ProviderV3, ProviderV4, RerankingModelV3, RerankingModelV4, SpeechModelV3, SpeechModelV4, TranscriptionModelV3, TranscriptionModelV4 } from "@ai-sdk/provider";
|
|
3
|
+
import { EmbeddingModelV3, EmbeddingModelV4, Experimental_DecisionModelV4, Experimental_SpeechTranslationModelV4, Experimental_StreamingSpeechModelV4, Experimental_VideoModelV3, Experimental_VideoModelV4, ImageModelV3, ImageModelV4, LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, LanguageModelV4, LanguageModelV4CallOptions, LanguageModelV4GenerateResult, LanguageModelV4StreamResult, ProviderV3, ProviderV4, RerankingModelV3, RerankingModelV4, SpeechModelV3, SpeechModelV4, TranscriptionModelV3, TranscriptionModelV4 } from "@ai-sdk/provider";
|
|
4
4
|
//#region src/test/decision-mock-model-v4.d.ts
|
|
5
5
|
declare class DecisionMockModelV4 implements Experimental_DecisionModelV4 {
|
|
6
6
|
readonly specificationVersion = "v4";
|
|
@@ -228,6 +228,21 @@ declare class MockSpeechTranslationModelV4 implements Experimental_SpeechTransla
|
|
|
228
228
|
});
|
|
229
229
|
}
|
|
230
230
|
//#endregion
|
|
231
|
+
//#region src/test/mock-streaming-speech-model-v4.d.ts
|
|
232
|
+
declare class MockStreamingSpeechModelV4 implements Experimental_StreamingSpeechModelV4 {
|
|
233
|
+
readonly specificationVersion = "v4";
|
|
234
|
+
readonly provider: Experimental_StreamingSpeechModelV4['provider'];
|
|
235
|
+
readonly modelId: Experimental_StreamingSpeechModelV4['modelId'];
|
|
236
|
+
doGenerate: Experimental_StreamingSpeechModelV4['doGenerate'];
|
|
237
|
+
doStream: Experimental_StreamingSpeechModelV4['doStream'];
|
|
238
|
+
constructor({ provider, modelId, doGenerate, doStream }?: {
|
|
239
|
+
provider?: Experimental_StreamingSpeechModelV4['provider'];
|
|
240
|
+
modelId?: Experimental_StreamingSpeechModelV4['modelId'];
|
|
241
|
+
doGenerate?: Experimental_StreamingSpeechModelV4['doGenerate'];
|
|
242
|
+
doStream?: Experimental_StreamingSpeechModelV4['doStream'];
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
//#endregion
|
|
231
246
|
//#region src/test/mock-transcription-model-v3.d.ts
|
|
232
247
|
export declare class MockTranscriptionModelV3 implements TranscriptionModelV3 {
|
|
233
248
|
readonly specificationVersion = "v3";
|
|
@@ -331,5 +346,5 @@ export declare const Experimental_EvaluationMockModelV4: typeof DecisionMockMode
|
|
|
331
346
|
/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */
|
|
332
347
|
export type Experimental_EvaluationMockModelV4 = DecisionMockModelV4;
|
|
333
348
|
//#endregion
|
|
334
|
-
export { DecisionMockModelV4 as Experimental_DecisionMockModelV4, MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4, convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId };
|
|
349
|
+
export { DecisionMockModelV4 as Experimental_DecisionMockModelV4, MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4, MockStreamingSpeechModelV4 as Experimental_MockStreamingSpeechModelV4, convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId };
|
|
335
350
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/test/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["DecisionModelV4","simulateReadableStream","originalSimulateReadableStream"],"sources":["../../src/test/decision-mock-model-v4.ts","../../src/util/simulate-readable-stream.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-embedding-model-v4.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-image-model-v4.ts","../../src/test/mock-language-model-v3.ts","../../src/test/mock-language-model-v4.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-provider-v4.ts","../../src/test/mock-speech-model-v3.ts","../../src/test/mock-speech-model-v4.ts","../../src/test/mock-speech-translation-model-v4.ts","../../src/test/mock-transcription-model-v3.ts","../../src/test/mock-transcription-model-v4.ts","../../src/test/mock-reranking-model-v3.ts","../../src/test/mock-reranking-model-v4.ts","../../src/test/mock-video-model-v3.ts","../../src/test/mock-video-model-v4.ts","../../src/test/mock-values.ts","../../test/index.ts"],"mappings":";;;;cAGa,+BAA+BA;WACjC;WACA;WACA;WACA,wBAAwBA;EACjC,UAAUA;;EAGV,WAAW,SAAS,WAAWA,+CAA+B,uCAAA;EAIlD,cACV,UACA,SACA,wBACA,UACA;IAEA;IACA;IACA,yBAAyBA;IACzB,WAAWA;;IAEX,aAAaA;;;;;;;;;;;;;;iBChBDC,yBAAuB,KACrC,QACA,kBACA,gBACA;EAEA,QAAQ;EACR;EACA;EACA;IACE,SAAS,sBAAsB;;IAE/B,eAAe;;;qBCpBN,gCAAgC;WAClC;WAEA,UAAU;WACV,SAAS;WACT,sBAAsB;WACtB,uBAAuB;EAEhC,SAAS;EAET,cAAc,WAAW;EAEb,cACV,UACA,SACA,sBACA,uBACA;IAEA,WAAW;IACX,UAAU;IACV,uBAAuB;IACvB,wBAAwB;IACxB,UACI,8BACA,QAAQ,WAAW,gCACnB,QAAQ,WAAW;;;;;qBCzBd,gCAAgC;WAClC;WAEA,UAAU;WACV,SAAS;WACT,sBAAsB;YACrB,wDACN;WAGK,uBAAuB;EAEhC,SAAS;EAET,cAAc,WAAW;EAEb,cACV,UACA,SACA,sBACA,sBACA,uBACA;IAEA,WAAW;IACX,UAAU;IACV,uBAAuB;IACvB,uBAAuB;IACvB,wBAAwB;IACxB,UACI,8BACA,QAAQ,WAAW,gCACnB,QAAQ,WAAW;;;;;qBCjCd,4BAA4B;WAC9B;WACA,UAAU;WACV,SAAS;WACT,kBAAkB;EAE3B,YAAY;EAEA,cACV,UACA,SACA,kBACA;IAEA,WAAW;IACX,UAAU;IACV,mBAAmB;IACnB,aAAa;;;;;qBCjBJ,4BAA4B;WAC9B;WACA,UAAU;WACV,SAAS;WACT,kBAAkB;WAClB,oBAAoB;WACpB,oBAAoB;EAE7B,YAAY;EAEA,cACV,UACA,SACA,kBACA,oBACA,oBACA;IAEA,WAAW;IACX,UAAU;IACV,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,aAAa;;;;;qBClBJ,+BAA+B;WACjC;UAED;WAEC,UAAU;WACV,SAAS;EAElB,YAAY;EACZ,UAAU;EAEV,iBAAiB;EACjB,eAAe;EAEH,cACV,UACA,SACA,eACA,YACA;IAEA,WAAW;IACX,UAAU;IACV,gBACI,0CACO;IACX,aACI,gCACA,gCACA;IACJ,WACI,8BACA,8BACA;;MAgCF,iBAAa,eAAA,YAAA,YAAA,eAAA;;;;qBCjEN,+BAA+B;WACjC;UAED;WAEC,UAAU;WACV,SAAS;EAElB,YAAY;EACZ,UAAU;EAEV,iBAAiB;EACjB,eAAe;EAEH,cACV,UACA,SACA,eACA,YACA;IAEA,WAAW;IACX,UAAU;IACV,gBACI,0CACO;IACX,aACI,gCACA,gCACA;IACJ,WACI,8BACA,8BACA;;MAgCF,iBAAa,eAAA,YAAA,YAAA,eAAA;;;;qBC/DN,0BAA0B;WAC5B;EAET,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,oBAAoB;EACpB,aAAa;EACb,gBAAgB;EAEJ,cACV,gBACA,iBACA,aACA,qBACA,cACA;IAEA,iBAAiB,eAAe;IAChC,kBAAkB,eAAe;IACjC,cAAc,eAAe;IAC7B,sBAAsB,eAAe;IACrC,eAAe,eAAe;IAC9B,kBAAkB,eAAe;;;;;qBCvBxB,0BAA0B;WAC5B;EAET,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,oBAAoB;EACpB,aAAa;EACb,gBAAgB;EAEJ,cACV,gBACA,iBACA,aACA,qBACA,cACA;IAEA,iBAAiB,eAAe;IAChC,kBAAkB,eAAe;IACjC,cAAc,eAAe;IAC7B,sBAAsB,eAAe;IACrC,eAAe,eAAe;IAC9B,kBAAkB,eAAe;;;;;qBC9BxB,6BAA6B;WAC/B;WACA,UAAU;WACV,SAAS;EAElB,YAAY;EAEA,cACV,UACA,SACA;IAEA,WAAW;IACX,UAAU;IACV,aAAa;;;;;qBCdJ,6BAA6B;WAC/B;WACA,UAAU;WACV,SAAS;EAElB,YAAY;EAEA,cACV,UACA,SACA;IAEA,WAAW;IACX,UAAU;IACV,aAAa;;;;;cCdJ,wCAAwC;WAC1C;WACA,UAAU;WACV,SAAS;EAElB,UAAU;EAEE,cACV,UACA,SACA;IAEA,WAAW;IACX,UAAU;IACV,WAAW;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["DecisionModelV4","simulateReadableStream","originalSimulateReadableStream"],"sources":["../../src/test/decision-mock-model-v4.ts","../../src/util/simulate-readable-stream.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-embedding-model-v4.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-image-model-v4.ts","../../src/test/mock-language-model-v3.ts","../../src/test/mock-language-model-v4.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-provider-v4.ts","../../src/test/mock-speech-model-v3.ts","../../src/test/mock-speech-model-v4.ts","../../src/test/mock-speech-translation-model-v4.ts","../../src/test/mock-streaming-speech-model-v4.ts","../../src/test/mock-transcription-model-v3.ts","../../src/test/mock-transcription-model-v4.ts","../../src/test/mock-reranking-model-v3.ts","../../src/test/mock-reranking-model-v4.ts","../../src/test/mock-video-model-v3.ts","../../src/test/mock-video-model-v4.ts","../../src/test/mock-values.ts","../../test/index.ts"],"mappings":"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"}
|
package/dist/test/index.js
CHANGED
|
@@ -289,6 +289,17 @@ var MockSpeechTranslationModelV4 = class {
|
|
|
289
289
|
}
|
|
290
290
|
};
|
|
291
291
|
//#endregion
|
|
292
|
+
//#region src/test/mock-streaming-speech-model-v4.ts
|
|
293
|
+
var MockStreamingSpeechModelV4 = class {
|
|
294
|
+
constructor({ provider = "mock-provider", modelId = "mock-model-id", doGenerate = notImplemented, doStream = notImplemented } = {}) {
|
|
295
|
+
this.specificationVersion = "v4";
|
|
296
|
+
this.provider = provider;
|
|
297
|
+
this.modelId = modelId;
|
|
298
|
+
this.doGenerate = doGenerate;
|
|
299
|
+
this.doStream = doStream;
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
//#endregion
|
|
292
303
|
//#region src/test/mock-transcription-model-v3.ts
|
|
293
304
|
var MockTranscriptionModelV3 = class {
|
|
294
305
|
constructor({ provider = "mock-provider", modelId = "mock-model-id", doGenerate = notImplemented } = {}) {
|
|
@@ -369,6 +380,6 @@ const simulateReadableStream = simulateReadableStream$1;
|
|
|
369
380
|
/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */
|
|
370
381
|
const Experimental_EvaluationMockModelV4 = DecisionMockModelV4;
|
|
371
382
|
//#endregion
|
|
372
|
-
export { DecisionMockModelV4 as Experimental_DecisionMockModelV4, Experimental_EvaluationMockModelV4, MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4, MockEmbeddingModelV3, MockEmbeddingModelV4, MockImageModelV3, MockImageModelV4, MockLanguageModelV3, MockLanguageModelV4, MockProviderV3, MockProviderV4, MockRerankingModelV3, MockRerankingModelV4, MockSpeechModelV3, MockSpeechModelV4, MockTranscriptionModelV3, MockTranscriptionModelV4, MockVideoModelV3, MockVideoModelV4, convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId, mockValues, simulateReadableStream };
|
|
383
|
+
export { DecisionMockModelV4 as Experimental_DecisionMockModelV4, Experimental_EvaluationMockModelV4, MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4, MockStreamingSpeechModelV4 as Experimental_MockStreamingSpeechModelV4, MockEmbeddingModelV3, MockEmbeddingModelV4, MockImageModelV3, MockImageModelV4, MockLanguageModelV3, MockLanguageModelV4, MockProviderV3, MockProviderV4, MockRerankingModelV3, MockRerankingModelV4, MockSpeechModelV3, MockSpeechModelV4, MockTranscriptionModelV3, MockTranscriptionModelV4, MockVideoModelV3, MockVideoModelV4, convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId, mockValues, simulateReadableStream };
|
|
373
384
|
|
|
374
385
|
//# sourceMappingURL=index.js.map
|
package/dist/test/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["simulateReadableStream","delay","delayFunction","originalSimulateReadableStream"],"sources":["../../src/test/not-implemented.ts","../../src/test/decision-mock-model-v4.ts","../../src/util/simulate-readable-stream.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-embedding-model-v4.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-image-model-v4.ts","../../src/test/mock-language-model-v3.ts","../../src/test/mock-language-model-v4.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-provider-v4.ts","../../src/test/mock-speech-model-v3.ts","../../src/test/mock-speech-model-v4.ts","../../src/test/mock-speech-translation-model-v4.ts","../../src/test/mock-transcription-model-v3.ts","../../src/test/mock-transcription-model-v4.ts","../../src/test/mock-reranking-model-v3.ts","../../src/test/mock-reranking-model-v4.ts","../../src/test/mock-video-model-v3.ts","../../src/test/mock-video-model-v4.ts","../../src/test/mock-values.ts","../../test/index.ts"],"sourcesContent":["export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import type { Experimental_DecisionModelV4 as DecisionModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class DecisionMockModelV4 implements DecisionModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: string;\n readonly modelId: string;\n readonly supportedQuestionTypes: DecisionModelV4['supportedQuestionTypes'];\n doDecide: DecisionModelV4['doDecide'];\n\n /** @deprecated Use `doDecide` instead. */\n doEvaluate(options: Parameters<DecisionModelV4['doDecide']>[0]) {\n return this.doDecide(options);\n }\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedQuestionTypes = ['choice', 'score', 'boolean'],\n doDecide,\n doEvaluate,\n }: {\n provider?: string;\n modelId?: string;\n supportedQuestionTypes?: DecisionModelV4['supportedQuestionTypes'];\n doDecide?: DecisionModelV4['doDecide'];\n /** @deprecated Use `doDecide` instead. */\n doEvaluate?: DecisionModelV4['doDecide'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.supportedQuestionTypes = supportedQuestionTypes;\n this.doDecide = doDecide ?? doEvaluate ?? notImplemented;\n }\n}\n","import { delay as delayFunction } from '@ai-sdk/provider-utils';\n\n/**\n * Creates a ReadableStream that emits the provided values with an optional delay between each value.\n *\n * @param options - The configuration options\n * @param options.chunks - Array of values to be emitted by the stream\n * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @returns A ReadableStream that emits the provided values\n */\nexport function simulateReadableStream<T>({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal,\n}: {\n chunks: T[];\n initialDelayInMs?: number | null;\n chunkDelayInMs?: number | null;\n _internal?: {\n delay?: (ms: number | null) => Promise<void>;\n };\n}): ReadableStream<T> {\n const delay = _internal?.delay ?? delayFunction;\n\n let index = 0;\n\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n },\n });\n}\n","import type { EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV3 implements EmbeddingModelV3 {\n readonly specificationVersion = 'v3';\n\n readonly provider: EmbeddingModelV3['provider'];\n readonly modelId: EmbeddingModelV3['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV3['maxEmbeddingsPerCall'];\n readonly supportsParallelCalls: EmbeddingModelV3['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV3['doEmbed'];\n\n doEmbedCalls: Parameters<EmbeddingModelV3['doEmbed']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV3['provider'];\n modelId?: EmbeddingModelV3['modelId'];\n maxEmbeddingsPerCall?: EmbeddingModelV3['maxEmbeddingsPerCall'] | null;\n supportsParallelCalls?: EmbeddingModelV3['supportsParallelCalls'];\n doEmbed?:\n | EmbeddingModelV3['doEmbed']\n | Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>\n | Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = async options => {\n this.doEmbedCalls.push(options);\n\n if (typeof doEmbed === 'function') {\n return doEmbed(options);\n } else if (Array.isArray(doEmbed)) {\n return doEmbed[this.doEmbedCalls.length - 1];\n } else {\n return doEmbed;\n }\n };\n }\n}\n","import type { EmbeddingModelV4 } from '@ai-sdk/provider';\nimport { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL } from '@ai-sdk/provider-utils';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV4 implements EmbeddingModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly provider: EmbeddingModelV4['provider'];\n readonly modelId: EmbeddingModelV4['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV4['maxEmbeddingsPerCall'];\n readonly [EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL]:\n | PromiseLike<number | undefined>\n | number\n | undefined;\n readonly supportsParallelCalls: EmbeddingModelV4['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV4['doEmbed'];\n\n doEmbedCalls: Parameters<EmbeddingModelV4['doEmbed']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n maxInputBytesPerCall,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV4['provider'];\n modelId?: EmbeddingModelV4['modelId'];\n maxEmbeddingsPerCall?: EmbeddingModelV4['maxEmbeddingsPerCall'] | null;\n maxInputBytesPerCall?: PromiseLike<number | undefined> | number | undefined;\n supportsParallelCalls?: EmbeddingModelV4['supportsParallelCalls'];\n doEmbed?:\n | EmbeddingModelV4['doEmbed']\n | Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>\n | Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this[EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL] =\n maxInputBytesPerCall;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = async options => {\n this.doEmbedCalls.push(options);\n\n if (typeof doEmbed === 'function') {\n return doEmbed(options);\n } else if (Array.isArray(doEmbed)) {\n return doEmbed[this.doEmbedCalls.length - 1];\n } else {\n return doEmbed;\n }\n };\n }\n}\n","import type { ImageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV3 implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: ImageModelV3['provider'];\n readonly modelId: ImageModelV3['modelId'];\n readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];\n\n doGenerate: ImageModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV3['provider'];\n modelId?: ImageModelV3['modelId'];\n maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];\n doGenerate?: ImageModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import type { ImageModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV4 implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: ImageModelV4['provider'];\n readonly modelId: ImageModelV4['modelId'];\n readonly maxImagesPerCall: ImageModelV4['maxImagesPerCall'];\n readonly supportsFileInputs: ImageModelV4['supportsFileInputs'];\n readonly supportsMaskInputs: ImageModelV4['supportsMaskInputs'];\n\n doGenerate: ImageModelV4['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n supportsFileInputs,\n supportsMaskInputs,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV4['provider'];\n modelId?: ImageModelV4['modelId'];\n maxImagesPerCall?: ImageModelV4['maxImagesPerCall'];\n supportsFileInputs?: ImageModelV4['supportsFileInputs'];\n supportsMaskInputs?: ImageModelV4['supportsMaskInputs'];\n doGenerate?: ImageModelV4['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.supportsFileInputs = supportsFileInputs;\n this.supportsMaskInputs = supportsMaskInputs;\n this.doGenerate = doGenerate;\n }\n}\n","import type {\n LanguageModelV3,\n LanguageModelV3CallOptions,\n LanguageModelV3GenerateResult,\n LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV3 implements LanguageModelV3 {\n readonly specificationVersion = 'v3';\n\n private _supportedUrls: () => LanguageModelV3['supportedUrls'];\n\n readonly provider: LanguageModelV3['provider'];\n readonly modelId: LanguageModelV3['modelId'];\n\n doGenerate: LanguageModelV3['doGenerate'];\n doStream: LanguageModelV3['doStream'];\n\n doGenerateCalls: LanguageModelV3CallOptions[] = [];\n doStreamCalls: LanguageModelV3CallOptions[] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV3['provider'];\n modelId?: LanguageModelV3['modelId'];\n supportedUrls?:\n | LanguageModelV3['supportedUrls']\n | (() => LanguageModelV3['supportedUrls']);\n doGenerate?:\n | LanguageModelV3['doGenerate']\n | LanguageModelV3GenerateResult\n | LanguageModelV3GenerateResult[];\n doStream?:\n | LanguageModelV3['doStream']\n | LanguageModelV3StreamResult\n | LanguageModelV3StreamResult[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return await doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length - 1];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return await doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length - 1];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => await supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import type {\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamResult,\n} from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV4 implements LanguageModelV4 {\n readonly specificationVersion = 'v4';\n\n private _supportedUrls: () => LanguageModelV4['supportedUrls'];\n\n readonly provider: LanguageModelV4['provider'];\n readonly modelId: LanguageModelV4['modelId'];\n\n doGenerate: LanguageModelV4['doGenerate'];\n doStream: LanguageModelV4['doStream'];\n\n doGenerateCalls: LanguageModelV4CallOptions[] = [];\n doStreamCalls: LanguageModelV4CallOptions[] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV4['provider'];\n modelId?: LanguageModelV4['modelId'];\n supportedUrls?:\n | LanguageModelV4['supportedUrls']\n | (() => LanguageModelV4['supportedUrls']);\n doGenerate?:\n | LanguageModelV4['doGenerate']\n | LanguageModelV4GenerateResult\n | LanguageModelV4GenerateResult[];\n doStream?:\n | LanguageModelV4['doStream']\n | LanguageModelV4StreamResult\n | LanguageModelV4StreamResult[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return await doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length - 1];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return await doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length - 1];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => await supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import {\n NoSuchModelError,\n type EmbeddingModelV3,\n type ImageModelV3,\n type LanguageModelV3,\n type ProviderV3,\n type SpeechModelV3,\n type TranscriptionModelV3,\n type RerankingModelV3,\n} from '@ai-sdk/provider';\nexport class MockProviderV3 implements ProviderV3 {\n readonly specificationVersion = 'v3' as const;\n\n languageModel: ProviderV3['languageModel'];\n embeddingModel: ProviderV3['embeddingModel'];\n imageModel: ProviderV3['imageModel'];\n transcriptionModel: ProviderV3['transcriptionModel'];\n speechModel: ProviderV3['speechModel'];\n rerankingModel: ProviderV3['rerankingModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n rerankingModels,\n }: {\n languageModels?: Record<string, LanguageModelV3>;\n embeddingModels?: Record<string, EmbeddingModelV3>;\n imageModels?: Record<string, ImageModelV3>;\n transcriptionModels?: Record<string, TranscriptionModelV3>;\n speechModels?: Record<string, SpeechModelV3>;\n rerankingModels?: Record<string, RerankingModelV3>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.embeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string): SpeechModelV3 => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n this.rerankingModel = (modelId: string) => {\n if (!rerankingModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'rerankingModel' });\n }\n return rerankingModels[modelId];\n };\n }\n}\n","import {\n NoSuchModelError,\n type EmbeddingModelV4,\n type ImageModelV4,\n type LanguageModelV4,\n type ProviderV4,\n type SpeechModelV4,\n type TranscriptionModelV4,\n type RerankingModelV4,\n} from '@ai-sdk/provider';\nexport class MockProviderV4 implements ProviderV4 {\n readonly specificationVersion = 'v4' as const;\n\n languageModel: ProviderV4['languageModel'];\n embeddingModel: ProviderV4['embeddingModel'];\n imageModel: ProviderV4['imageModel'];\n transcriptionModel: ProviderV4['transcriptionModel'];\n speechModel: ProviderV4['speechModel'];\n rerankingModel: ProviderV4['rerankingModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n rerankingModels,\n }: {\n languageModels?: Record<string, LanguageModelV4>;\n embeddingModels?: Record<string, EmbeddingModelV4>;\n imageModels?: Record<string, ImageModelV4>;\n transcriptionModels?: Record<string, TranscriptionModelV4>;\n speechModels?: Record<string, SpeechModelV4>;\n rerankingModels?: Record<string, RerankingModelV4>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.embeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string): SpeechModelV4 => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n this.rerankingModel = (modelId: string) => {\n if (!rerankingModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'rerankingModel' });\n }\n return rerankingModels[modelId];\n };\n }\n}\n","import type { SpeechModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV3 implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: SpeechModelV3['provider'];\n readonly modelId: SpeechModelV3['modelId'];\n\n doGenerate: SpeechModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV3['provider'];\n modelId?: SpeechModelV3['modelId'];\n doGenerate?: SpeechModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import type { SpeechModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV4 implements SpeechModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: SpeechModelV4['provider'];\n readonly modelId: SpeechModelV4['modelId'];\n\n doGenerate: SpeechModelV4['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV4['provider'];\n modelId?: SpeechModelV4['modelId'];\n doGenerate?: SpeechModelV4['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import type { Experimental_SpeechTranslationModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechTranslationModelV4 implements Experimental_SpeechTranslationModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: Experimental_SpeechTranslationModelV4['provider'];\n readonly modelId: Experimental_SpeechTranslationModelV4['modelId'];\n\n doStream: Experimental_SpeechTranslationModelV4['doStream'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doStream = notImplemented,\n }: {\n provider?: Experimental_SpeechTranslationModelV4['provider'];\n modelId?: Experimental_SpeechTranslationModelV4['modelId'];\n doStream?: Experimental_SpeechTranslationModelV4['doStream'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doStream = doStream;\n }\n}\n","import type { TranscriptionModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV3 implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: TranscriptionModelV3['provider'];\n readonly modelId: TranscriptionModelV3['modelId'];\n\n doGenerate: TranscriptionModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: TranscriptionModelV3['provider'];\n modelId?: TranscriptionModelV3['modelId'];\n doGenerate?: TranscriptionModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import type { TranscriptionModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV4 implements TranscriptionModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: TranscriptionModelV4['provider'];\n readonly modelId: TranscriptionModelV4['modelId'];\n\n doGenerate: TranscriptionModelV4['doGenerate'];\n doStream: TranscriptionModelV4['doStream'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n doStream,\n }: {\n provider?: TranscriptionModelV4['provider'];\n modelId?: TranscriptionModelV4['modelId'];\n doGenerate?: TranscriptionModelV4['doGenerate'];\n doStream?: TranscriptionModelV4['doStream'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n this.doStream = doStream;\n }\n}\n","import type { RerankingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockRerankingModelV3 implements RerankingModelV3 {\n readonly specificationVersion = 'v3';\n\n readonly provider: RerankingModelV3['provider'];\n readonly modelId: RerankingModelV3['modelId'];\n\n doRerank: RerankingModelV3['doRerank'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doRerank = notImplemented,\n }: {\n provider?: RerankingModelV3['provider'];\n modelId?: RerankingModelV3['modelId'];\n doRerank?: RerankingModelV3['doRerank'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doRerank = doRerank;\n }\n}\n","import type { RerankingModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockRerankingModelV4 implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly provider: RerankingModelV4['provider'];\n readonly modelId: RerankingModelV4['modelId'];\n\n doRerank: RerankingModelV4['doRerank'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doRerank = notImplemented,\n }: {\n provider?: RerankingModelV4['provider'];\n modelId?: RerankingModelV4['modelId'];\n doRerank?: RerankingModelV4['doRerank'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doRerank = doRerank;\n }\n}\n","import type { Experimental_VideoModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockVideoModelV3 implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: Experimental_VideoModelV3['provider'];\n readonly modelId: Experimental_VideoModelV3['modelId'];\n readonly maxVideosPerCall: Experimental_VideoModelV3['maxVideosPerCall'];\n\n doGenerate: Experimental_VideoModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxVideosPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: Experimental_VideoModelV3['provider'];\n modelId?: Experimental_VideoModelV3['modelId'];\n maxVideosPerCall?: Experimental_VideoModelV3['maxVideosPerCall'];\n doGenerate?: Experimental_VideoModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxVideosPerCall = maxVideosPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import type { Experimental_VideoModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockVideoModelV4 implements Experimental_VideoModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: Experimental_VideoModelV4['provider'];\n readonly modelId: Experimental_VideoModelV4['modelId'];\n readonly maxVideosPerCall: Experimental_VideoModelV4['maxVideosPerCall'];\n\n doGenerate: Experimental_VideoModelV4['doGenerate'];\n handleWebhookOption: Experimental_VideoModelV4['handleWebhookOption'];\n doStart: Experimental_VideoModelV4['doStart'];\n doStatus: Experimental_VideoModelV4['doStatus'];\n\n constructor(\n options: {\n provider?: Experimental_VideoModelV4['provider'];\n modelId?: Experimental_VideoModelV4['modelId'];\n maxVideosPerCall?: Experimental_VideoModelV4['maxVideosPerCall'];\n doGenerate?: Experimental_VideoModelV4['doGenerate'];\n handleWebhookOption?: Experimental_VideoModelV4['handleWebhookOption'];\n doStart?: Experimental_VideoModelV4['doStart'];\n doStatus?: Experimental_VideoModelV4['doStatus'];\n } = {},\n ) {\n this.provider = options.provider ?? 'mock-provider';\n this.modelId = options.modelId ?? 'mock-model-id';\n this.maxVideosPerCall = options.maxVideosPerCall ?? 1;\n this.doGenerate =\n 'doGenerate' in options ? options.doGenerate : notImplemented;\n this.handleWebhookOption = options.handleWebhookOption;\n this.doStart = options.doStart;\n this.doStatus = options.doStatus;\n }\n}\n","export function mockValues<T>(...values: T[]): () => T {\n let counter = 0;\n return () => values[counter++] ?? values[values.length - 1];\n}\n","import { DecisionMockModelV4 } from '../src/test/decision-mock-model-v4';\n\nimport { simulateReadableStream as originalSimulateReadableStream } from '../src/util/simulate-readable-stream';\n\nexport {\n convertArrayToAsyncIterable,\n convertArrayToReadableStream,\n convertReadableStreamToArray,\n mockId,\n} from '@ai-sdk/provider-utils/test';\nexport { MockEmbeddingModelV3 } from '../src/test/mock-embedding-model-v3';\nexport { MockEmbeddingModelV4 } from '../src/test/mock-embedding-model-v4';\nexport { DecisionMockModelV4 as Experimental_DecisionMockModelV4 } from '../src/test/decision-mock-model-v4';\nexport { MockImageModelV3 } from '../src/test/mock-image-model-v3';\nexport { MockImageModelV4 } from '../src/test/mock-image-model-v4';\nexport { MockLanguageModelV3 } from '../src/test/mock-language-model-v3';\nexport { MockLanguageModelV4 } from '../src/test/mock-language-model-v4';\nexport { MockProviderV3 } from '../src/test/mock-provider-v3';\nexport { MockProviderV4 } from '../src/test/mock-provider-v4';\nexport { MockSpeechModelV3 } from '../src/test/mock-speech-model-v3';\nexport { MockSpeechModelV4 } from '../src/test/mock-speech-model-v4';\nexport { MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4 } from '../src/test/mock-speech-translation-model-v4';\nexport { MockTranscriptionModelV3 } from '../src/test/mock-transcription-model-v3';\nexport { MockTranscriptionModelV4 } from '../src/test/mock-transcription-model-v4';\nexport { MockRerankingModelV3 } from '../src/test/mock-reranking-model-v3';\nexport { MockRerankingModelV4 } from '../src/test/mock-reranking-model-v4';\nexport { MockVideoModelV3 } from '../src/test/mock-video-model-v3';\nexport { MockVideoModelV4 } from '../src/test/mock-video-model-v4';\nexport { mockValues } from '../src/test/mock-values';\n\n/**\n * @deprecated Use `simulateReadableStream` from `ai` instead.\n */\nexport const simulateReadableStream = originalSimulateReadableStream;\n\n/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */\nexport const Experimental_EvaluationMockModelV4 = DecisionMockModelV4;\n/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */\nexport type Experimental_EvaluationMockModelV4 = DecisionMockModelV4;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["simulateReadableStream","delay","delayFunction","originalSimulateReadableStream"],"sources":["../../src/test/not-implemented.ts","../../src/test/decision-mock-model-v4.ts","../../src/util/simulate-readable-stream.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-embedding-model-v4.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-image-model-v4.ts","../../src/test/mock-language-model-v3.ts","../../src/test/mock-language-model-v4.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-provider-v4.ts","../../src/test/mock-speech-model-v3.ts","../../src/test/mock-speech-model-v4.ts","../../src/test/mock-speech-translation-model-v4.ts","../../src/test/mock-streaming-speech-model-v4.ts","../../src/test/mock-transcription-model-v3.ts","../../src/test/mock-transcription-model-v4.ts","../../src/test/mock-reranking-model-v3.ts","../../src/test/mock-reranking-model-v4.ts","../../src/test/mock-video-model-v3.ts","../../src/test/mock-video-model-v4.ts","../../src/test/mock-values.ts","../../test/index.ts"],"sourcesContent":["export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import type { Experimental_DecisionModelV4 as DecisionModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class DecisionMockModelV4 implements DecisionModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: string;\n readonly modelId: string;\n readonly supportedQuestionTypes: DecisionModelV4['supportedQuestionTypes'];\n doDecide: DecisionModelV4['doDecide'];\n\n /** @deprecated Use `doDecide` instead. */\n doEvaluate(options: Parameters<DecisionModelV4['doDecide']>[0]) {\n return this.doDecide(options);\n }\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedQuestionTypes = ['choice', 'score', 'boolean'],\n doDecide,\n doEvaluate,\n }: {\n provider?: string;\n modelId?: string;\n supportedQuestionTypes?: DecisionModelV4['supportedQuestionTypes'];\n doDecide?: DecisionModelV4['doDecide'];\n /** @deprecated Use `doDecide` instead. */\n doEvaluate?: DecisionModelV4['doDecide'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.supportedQuestionTypes = supportedQuestionTypes;\n this.doDecide = doDecide ?? doEvaluate ?? notImplemented;\n }\n}\n","import { delay as delayFunction } from '@ai-sdk/provider-utils';\n\n/**\n * Creates a ReadableStream that emits the provided values with an optional delay between each value.\n *\n * @param options - The configuration options\n * @param options.chunks - Array of values to be emitted by the stream\n * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @returns A ReadableStream that emits the provided values\n */\nexport function simulateReadableStream<T>({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal,\n}: {\n chunks: T[];\n initialDelayInMs?: number | null;\n chunkDelayInMs?: number | null;\n _internal?: {\n delay?: (ms: number | null) => Promise<void>;\n };\n}): ReadableStream<T> {\n const delay = _internal?.delay ?? delayFunction;\n\n let index = 0;\n\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n },\n });\n}\n","import type { EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV3 implements EmbeddingModelV3 {\n readonly specificationVersion = 'v3';\n\n readonly provider: EmbeddingModelV3['provider'];\n readonly modelId: EmbeddingModelV3['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV3['maxEmbeddingsPerCall'];\n readonly supportsParallelCalls: EmbeddingModelV3['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV3['doEmbed'];\n\n doEmbedCalls: Parameters<EmbeddingModelV3['doEmbed']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV3['provider'];\n modelId?: EmbeddingModelV3['modelId'];\n maxEmbeddingsPerCall?: EmbeddingModelV3['maxEmbeddingsPerCall'] | null;\n supportsParallelCalls?: EmbeddingModelV3['supportsParallelCalls'];\n doEmbed?:\n | EmbeddingModelV3['doEmbed']\n | Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>\n | Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = async options => {\n this.doEmbedCalls.push(options);\n\n if (typeof doEmbed === 'function') {\n return doEmbed(options);\n } else if (Array.isArray(doEmbed)) {\n return doEmbed[this.doEmbedCalls.length - 1];\n } else {\n return doEmbed;\n }\n };\n }\n}\n","import type { EmbeddingModelV4 } from '@ai-sdk/provider';\nimport { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL } from '@ai-sdk/provider-utils';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV4 implements EmbeddingModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly provider: EmbeddingModelV4['provider'];\n readonly modelId: EmbeddingModelV4['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV4['maxEmbeddingsPerCall'];\n readonly [EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL]:\n | PromiseLike<number | undefined>\n | number\n | undefined;\n readonly supportsParallelCalls: EmbeddingModelV4['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV4['doEmbed'];\n\n doEmbedCalls: Parameters<EmbeddingModelV4['doEmbed']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n maxInputBytesPerCall,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV4['provider'];\n modelId?: EmbeddingModelV4['modelId'];\n maxEmbeddingsPerCall?: EmbeddingModelV4['maxEmbeddingsPerCall'] | null;\n maxInputBytesPerCall?: PromiseLike<number | undefined> | number | undefined;\n supportsParallelCalls?: EmbeddingModelV4['supportsParallelCalls'];\n doEmbed?:\n | EmbeddingModelV4['doEmbed']\n | Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>\n | Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this[EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL] =\n maxInputBytesPerCall;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = async options => {\n this.doEmbedCalls.push(options);\n\n if (typeof doEmbed === 'function') {\n return doEmbed(options);\n } else if (Array.isArray(doEmbed)) {\n return doEmbed[this.doEmbedCalls.length - 1];\n } else {\n return doEmbed;\n }\n };\n }\n}\n","import type { ImageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV3 implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: ImageModelV3['provider'];\n readonly modelId: ImageModelV3['modelId'];\n readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];\n\n doGenerate: ImageModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV3['provider'];\n modelId?: ImageModelV3['modelId'];\n maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];\n doGenerate?: ImageModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import type { ImageModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV4 implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: ImageModelV4['provider'];\n readonly modelId: ImageModelV4['modelId'];\n readonly maxImagesPerCall: ImageModelV4['maxImagesPerCall'];\n readonly supportsFileInputs: ImageModelV4['supportsFileInputs'];\n readonly supportsMaskInputs: ImageModelV4['supportsMaskInputs'];\n\n doGenerate: ImageModelV4['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n supportsFileInputs,\n supportsMaskInputs,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV4['provider'];\n modelId?: ImageModelV4['modelId'];\n maxImagesPerCall?: ImageModelV4['maxImagesPerCall'];\n supportsFileInputs?: ImageModelV4['supportsFileInputs'];\n supportsMaskInputs?: ImageModelV4['supportsMaskInputs'];\n doGenerate?: ImageModelV4['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.supportsFileInputs = supportsFileInputs;\n this.supportsMaskInputs = supportsMaskInputs;\n this.doGenerate = doGenerate;\n }\n}\n","import type {\n LanguageModelV3,\n LanguageModelV3CallOptions,\n LanguageModelV3GenerateResult,\n LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV3 implements LanguageModelV3 {\n readonly specificationVersion = 'v3';\n\n private _supportedUrls: () => LanguageModelV3['supportedUrls'];\n\n readonly provider: LanguageModelV3['provider'];\n readonly modelId: LanguageModelV3['modelId'];\n\n doGenerate: LanguageModelV3['doGenerate'];\n doStream: LanguageModelV3['doStream'];\n\n doGenerateCalls: LanguageModelV3CallOptions[] = [];\n doStreamCalls: LanguageModelV3CallOptions[] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV3['provider'];\n modelId?: LanguageModelV3['modelId'];\n supportedUrls?:\n | LanguageModelV3['supportedUrls']\n | (() => LanguageModelV3['supportedUrls']);\n doGenerate?:\n | LanguageModelV3['doGenerate']\n | LanguageModelV3GenerateResult\n | LanguageModelV3GenerateResult[];\n doStream?:\n | LanguageModelV3['doStream']\n | LanguageModelV3StreamResult\n | LanguageModelV3StreamResult[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return await doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length - 1];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return await doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length - 1];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => await supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import type {\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamResult,\n} from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV4 implements LanguageModelV4 {\n readonly specificationVersion = 'v4';\n\n private _supportedUrls: () => LanguageModelV4['supportedUrls'];\n\n readonly provider: LanguageModelV4['provider'];\n readonly modelId: LanguageModelV4['modelId'];\n\n doGenerate: LanguageModelV4['doGenerate'];\n doStream: LanguageModelV4['doStream'];\n\n doGenerateCalls: LanguageModelV4CallOptions[] = [];\n doStreamCalls: LanguageModelV4CallOptions[] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV4['provider'];\n modelId?: LanguageModelV4['modelId'];\n supportedUrls?:\n | LanguageModelV4['supportedUrls']\n | (() => LanguageModelV4['supportedUrls']);\n doGenerate?:\n | LanguageModelV4['doGenerate']\n | LanguageModelV4GenerateResult\n | LanguageModelV4GenerateResult[];\n doStream?:\n | LanguageModelV4['doStream']\n | LanguageModelV4StreamResult\n | LanguageModelV4StreamResult[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return await doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length - 1];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return await doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length - 1];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => await supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import {\n NoSuchModelError,\n type EmbeddingModelV3,\n type ImageModelV3,\n type LanguageModelV3,\n type ProviderV3,\n type SpeechModelV3,\n type TranscriptionModelV3,\n type RerankingModelV3,\n} from '@ai-sdk/provider';\nexport class MockProviderV3 implements ProviderV3 {\n readonly specificationVersion = 'v3' as const;\n\n languageModel: ProviderV3['languageModel'];\n embeddingModel: ProviderV3['embeddingModel'];\n imageModel: ProviderV3['imageModel'];\n transcriptionModel: ProviderV3['transcriptionModel'];\n speechModel: ProviderV3['speechModel'];\n rerankingModel: ProviderV3['rerankingModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n rerankingModels,\n }: {\n languageModels?: Record<string, LanguageModelV3>;\n embeddingModels?: Record<string, EmbeddingModelV3>;\n imageModels?: Record<string, ImageModelV3>;\n transcriptionModels?: Record<string, TranscriptionModelV3>;\n speechModels?: Record<string, SpeechModelV3>;\n rerankingModels?: Record<string, RerankingModelV3>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.embeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string): SpeechModelV3 => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n this.rerankingModel = (modelId: string) => {\n if (!rerankingModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'rerankingModel' });\n }\n return rerankingModels[modelId];\n };\n }\n}\n","import {\n NoSuchModelError,\n type EmbeddingModelV4,\n type ImageModelV4,\n type LanguageModelV4,\n type ProviderV4,\n type SpeechModelV4,\n type TranscriptionModelV4,\n type RerankingModelV4,\n} from '@ai-sdk/provider';\nexport class MockProviderV4 implements ProviderV4 {\n readonly specificationVersion = 'v4' as const;\n\n languageModel: ProviderV4['languageModel'];\n embeddingModel: ProviderV4['embeddingModel'];\n imageModel: ProviderV4['imageModel'];\n transcriptionModel: ProviderV4['transcriptionModel'];\n speechModel: ProviderV4['speechModel'];\n rerankingModel: ProviderV4['rerankingModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n rerankingModels,\n }: {\n languageModels?: Record<string, LanguageModelV4>;\n embeddingModels?: Record<string, EmbeddingModelV4>;\n imageModels?: Record<string, ImageModelV4>;\n transcriptionModels?: Record<string, TranscriptionModelV4>;\n speechModels?: Record<string, SpeechModelV4>;\n rerankingModels?: Record<string, RerankingModelV4>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.embeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string): SpeechModelV4 => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n this.rerankingModel = (modelId: string) => {\n if (!rerankingModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'rerankingModel' });\n }\n return rerankingModels[modelId];\n };\n }\n}\n","import type { SpeechModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV3 implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: SpeechModelV3['provider'];\n readonly modelId: SpeechModelV3['modelId'];\n\n doGenerate: SpeechModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV3['provider'];\n modelId?: SpeechModelV3['modelId'];\n doGenerate?: SpeechModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import type { SpeechModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV4 implements SpeechModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: SpeechModelV4['provider'];\n readonly modelId: SpeechModelV4['modelId'];\n\n doGenerate: SpeechModelV4['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV4['provider'];\n modelId?: SpeechModelV4['modelId'];\n doGenerate?: SpeechModelV4['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import type { Experimental_SpeechTranslationModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechTranslationModelV4 implements Experimental_SpeechTranslationModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: Experimental_SpeechTranslationModelV4['provider'];\n readonly modelId: Experimental_SpeechTranslationModelV4['modelId'];\n\n doStream: Experimental_SpeechTranslationModelV4['doStream'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doStream = notImplemented,\n }: {\n provider?: Experimental_SpeechTranslationModelV4['provider'];\n modelId?: Experimental_SpeechTranslationModelV4['modelId'];\n doStream?: Experimental_SpeechTranslationModelV4['doStream'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doStream = doStream;\n }\n}\n","import type { Experimental_StreamingSpeechModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockStreamingSpeechModelV4 implements Experimental_StreamingSpeechModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: Experimental_StreamingSpeechModelV4['provider'];\n readonly modelId: Experimental_StreamingSpeechModelV4['modelId'];\n\n doGenerate: Experimental_StreamingSpeechModelV4['doGenerate'];\n doStream: Experimental_StreamingSpeechModelV4['doStream'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: Experimental_StreamingSpeechModelV4['provider'];\n modelId?: Experimental_StreamingSpeechModelV4['modelId'];\n doGenerate?: Experimental_StreamingSpeechModelV4['doGenerate'];\n doStream?: Experimental_StreamingSpeechModelV4['doStream'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n this.doStream = doStream;\n }\n}\n","import type { TranscriptionModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV3 implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: TranscriptionModelV3['provider'];\n readonly modelId: TranscriptionModelV3['modelId'];\n\n doGenerate: TranscriptionModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: TranscriptionModelV3['provider'];\n modelId?: TranscriptionModelV3['modelId'];\n doGenerate?: TranscriptionModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import type { TranscriptionModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV4 implements TranscriptionModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: TranscriptionModelV4['provider'];\n readonly modelId: TranscriptionModelV4['modelId'];\n\n doGenerate: TranscriptionModelV4['doGenerate'];\n doStream: TranscriptionModelV4['doStream'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n doStream,\n }: {\n provider?: TranscriptionModelV4['provider'];\n modelId?: TranscriptionModelV4['modelId'];\n doGenerate?: TranscriptionModelV4['doGenerate'];\n doStream?: TranscriptionModelV4['doStream'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n this.doStream = doStream;\n }\n}\n","import type { RerankingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockRerankingModelV3 implements RerankingModelV3 {\n readonly specificationVersion = 'v3';\n\n readonly provider: RerankingModelV3['provider'];\n readonly modelId: RerankingModelV3['modelId'];\n\n doRerank: RerankingModelV3['doRerank'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doRerank = notImplemented,\n }: {\n provider?: RerankingModelV3['provider'];\n modelId?: RerankingModelV3['modelId'];\n doRerank?: RerankingModelV3['doRerank'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doRerank = doRerank;\n }\n}\n","import type { RerankingModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockRerankingModelV4 implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly provider: RerankingModelV4['provider'];\n readonly modelId: RerankingModelV4['modelId'];\n\n doRerank: RerankingModelV4['doRerank'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doRerank = notImplemented,\n }: {\n provider?: RerankingModelV4['provider'];\n modelId?: RerankingModelV4['modelId'];\n doRerank?: RerankingModelV4['doRerank'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doRerank = doRerank;\n }\n}\n","import type { Experimental_VideoModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockVideoModelV3 implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: Experimental_VideoModelV3['provider'];\n readonly modelId: Experimental_VideoModelV3['modelId'];\n readonly maxVideosPerCall: Experimental_VideoModelV3['maxVideosPerCall'];\n\n doGenerate: Experimental_VideoModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxVideosPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: Experimental_VideoModelV3['provider'];\n modelId?: Experimental_VideoModelV3['modelId'];\n maxVideosPerCall?: Experimental_VideoModelV3['maxVideosPerCall'];\n doGenerate?: Experimental_VideoModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxVideosPerCall = maxVideosPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import type { Experimental_VideoModelV4 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockVideoModelV4 implements Experimental_VideoModelV4 {\n readonly specificationVersion = 'v4';\n readonly provider: Experimental_VideoModelV4['provider'];\n readonly modelId: Experimental_VideoModelV4['modelId'];\n readonly maxVideosPerCall: Experimental_VideoModelV4['maxVideosPerCall'];\n\n doGenerate: Experimental_VideoModelV4['doGenerate'];\n handleWebhookOption: Experimental_VideoModelV4['handleWebhookOption'];\n doStart: Experimental_VideoModelV4['doStart'];\n doStatus: Experimental_VideoModelV4['doStatus'];\n\n constructor(\n options: {\n provider?: Experimental_VideoModelV4['provider'];\n modelId?: Experimental_VideoModelV4['modelId'];\n maxVideosPerCall?: Experimental_VideoModelV4['maxVideosPerCall'];\n doGenerate?: Experimental_VideoModelV4['doGenerate'];\n handleWebhookOption?: Experimental_VideoModelV4['handleWebhookOption'];\n doStart?: Experimental_VideoModelV4['doStart'];\n doStatus?: Experimental_VideoModelV4['doStatus'];\n } = {},\n ) {\n this.provider = options.provider ?? 'mock-provider';\n this.modelId = options.modelId ?? 'mock-model-id';\n this.maxVideosPerCall = options.maxVideosPerCall ?? 1;\n this.doGenerate =\n 'doGenerate' in options ? options.doGenerate : notImplemented;\n this.handleWebhookOption = options.handleWebhookOption;\n this.doStart = options.doStart;\n this.doStatus = options.doStatus;\n }\n}\n","export function mockValues<T>(...values: T[]): () => T {\n let counter = 0;\n return () => values[counter++] ?? values[values.length - 1];\n}\n","import { DecisionMockModelV4 } from '../src/test/decision-mock-model-v4';\n\nimport { simulateReadableStream as originalSimulateReadableStream } from '../src/util/simulate-readable-stream';\n\nexport {\n convertArrayToAsyncIterable,\n convertArrayToReadableStream,\n convertReadableStreamToArray,\n mockId,\n} from '@ai-sdk/provider-utils/test';\nexport { MockEmbeddingModelV3 } from '../src/test/mock-embedding-model-v3';\nexport { MockEmbeddingModelV4 } from '../src/test/mock-embedding-model-v4';\nexport { DecisionMockModelV4 as Experimental_DecisionMockModelV4 } from '../src/test/decision-mock-model-v4';\nexport { MockImageModelV3 } from '../src/test/mock-image-model-v3';\nexport { MockImageModelV4 } from '../src/test/mock-image-model-v4';\nexport { MockLanguageModelV3 } from '../src/test/mock-language-model-v3';\nexport { MockLanguageModelV4 } from '../src/test/mock-language-model-v4';\nexport { MockProviderV3 } from '../src/test/mock-provider-v3';\nexport { MockProviderV4 } from '../src/test/mock-provider-v4';\nexport { MockSpeechModelV3 } from '../src/test/mock-speech-model-v3';\nexport { MockSpeechModelV4 } from '../src/test/mock-speech-model-v4';\nexport { MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4 } from '../src/test/mock-speech-translation-model-v4';\nexport { MockStreamingSpeechModelV4 as Experimental_MockStreamingSpeechModelV4 } from '../src/test/mock-streaming-speech-model-v4';\nexport { MockTranscriptionModelV3 } from '../src/test/mock-transcription-model-v3';\nexport { MockTranscriptionModelV4 } from '../src/test/mock-transcription-model-v4';\nexport { MockRerankingModelV3 } from '../src/test/mock-reranking-model-v3';\nexport { MockRerankingModelV4 } from '../src/test/mock-reranking-model-v4';\nexport { MockVideoModelV3 } from '../src/test/mock-video-model-v3';\nexport { MockVideoModelV4 } from '../src/test/mock-video-model-v4';\nexport { mockValues } from '../src/test/mock-values';\n\n/**\n * @deprecated Use `simulateReadableStream` from `ai` instead.\n */\nexport const simulateReadableStream = originalSimulateReadableStream;\n\n/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */\nexport const Experimental_EvaluationMockModelV4 = DecisionMockModelV4;\n/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */\nexport type Experimental_EvaluationMockModelV4 = DecisionMockModelV4;\n"],"mappings":";;;;AAAA,SAAgB,iBAAwB;CACtC,MAAM,IAAI,MAAM,iBAAiB;AACnC;;;ACCA,IAAa,sBAAb,MAA4D;;CAQ1D,WAAW,SAAqD;EAC9D,OAAO,KAAK,SAAS,OAAO;CAC9B;CAEA,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,yBAAyB;EAAC;EAAU;EAAS;CAAS,GACtD,UACA,eAQE,CAAC,GAAG;EAxBwB,KAAA,uBAAA;EAyB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,yBAAyB;EAC9B,KAAK,WAAW,YAAY,cAAc;CAC5C;AACF;;;;;;;;;;;;ACvBA,SAAgBA,yBAA0B,EACxC,QACA,mBAAmB,GACnB,iBAAiB,GACjB,aAQoB;CACpB,MAAMC,UAAQ,WAAW,SAASC;CAElC,IAAI,QAAQ;CAEZ,OAAO,IAAI,eAAe,EACxB,MAAM,KAAK,YAAY;EACrB,IAAI,QAAQ,OAAO,QAAQ;GACzB,MAAMD,QAAM,UAAU,IAAI,mBAAmB,cAAc;GAC3D,WAAW,QAAQ,OAAO,QAAQ;EACpC,OACE,WAAW,MAAM;CAErB,EACF,CAAC;AACH;;;ACnCA,IAAa,uBAAb,MAA8D;CAY5D,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,uBAAuB,GACvB,wBAAwB,OACxB,UAAU,mBAUR,CAAC,GAAG;EA1BwB,KAAA,uBAAA;EAS6B,KAAA,eAAA,CAAC;EAkB5D,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,uBAAuB,wBAAwB,KAAA;EACpD,KAAK,wBAAwB;EAC7B,KAAK,UAAU,OAAM,YAAW;GAC9B,KAAK,aAAa,KAAK,OAAO;GAE9B,IAAI,OAAO,YAAY,YACrB,OAAO,QAAQ,OAAO;QACjB,IAAI,MAAM,QAAQ,OAAO,GAC9B,OAAO,QAAQ,KAAK,aAAa,SAAS;QAE1C,OAAO;EAEX;CACF;AACF;;;AC3CA,IAAa,uBAAb,MAA8D;CAgB5D,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,uBAAuB,GACvB,sBACA,wBAAwB,OACxB,UAAU,mBAWR,CAAC,GAAG;EAhCwB,KAAA,uBAAA;EAa6B,KAAA,eAAA,CAAC;EAoB5D,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,uBAAuB,wBAAwB,KAAA;EACpD,KAAK,yDACH;EACF,KAAK,wBAAwB;EAC7B,KAAK,UAAU,OAAM,YAAW;GAC9B,KAAK,aAAa,KAAK,OAAO;GAE9B,IAAI,OAAO,YAAY,YACrB,OAAO,QAAQ,OAAO;QACjB,IAAI,MAAM,QAAQ,OAAO,GAC9B,OAAO,QAAQ,KAAK,aAAa,SAAS;QAE1C,OAAO;EAEX;CACF;AACF;;;ACrDA,IAAa,mBAAb,MAAsD;CAQpD,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,mBAAmB,GACnB,aAAa,mBAMX,CAAC,GAAG;EAjBwB,KAAA,uBAAA;EAkB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,mBAAmB;EACxB,KAAK,aAAa;CACpB;AACF;;;ACxBA,IAAa,mBAAb,MAAsD;CAUpD,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,mBAAmB,GACnB,oBACA,oBACA,aAAa,mBAQX,CAAC,GAAG;EAvBwB,KAAA,uBAAA;EAwB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,mBAAmB;EACxB,KAAK,qBAAqB;EAC1B,KAAK,qBAAqB;EAC1B,KAAK,aAAa;CACpB;AACF;;;AC3BA,IAAa,sBAAb,MAA4D;CAc1D,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,gBAAgB,CAAC,GACjB,aAAa,gBACb,WAAW,mBAeT,CAAC,GAAG;EAjCwB,KAAA,uBAAA;EAUgB,KAAA,kBAAA,CAAC;EACH,KAAA,gBAAA,CAAC;EAuB7C,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa,OAAM,YAAW;GACjC,KAAK,gBAAgB,KAAK,OAAO;GAEjC,IAAI,OAAO,eAAe,YACxB,OAAO,MAAM,WAAW,OAAO;QAC1B,IAAI,MAAM,QAAQ,UAAU,GACjC,OAAO,WAAW,KAAK,gBAAgB,SAAS;QAEhD,OAAO;EAEX;EACA,KAAK,WAAW,OAAM,YAAW;GAC/B,KAAK,cAAc,KAAK,OAAO;GAE/B,IAAI,OAAO,aAAa,YACtB,OAAO,MAAM,SAAS,OAAO;QACxB,IAAI,MAAM,QAAQ,QAAQ,GAC/B,OAAO,SAAS,KAAK,cAAc,SAAS;QAE5C,OAAO;EAEX;EACA,KAAK,iBACH,OAAO,kBAAkB,aACrB,gBACA,YAAY,MAAM;CAC1B;CAEA,IAAI,gBAAgB;EAClB,OAAO,KAAK,eAAe;CAC7B;AACF;;;ACpEA,IAAa,sBAAb,MAA4D;CAc1D,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,gBAAgB,CAAC,GACjB,aAAa,gBACb,WAAW,mBAeT,CAAC,GAAG;EAjCwB,KAAA,uBAAA;EAUgB,KAAA,kBAAA,CAAC;EACH,KAAA,gBAAA,CAAC;EAuB7C,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa,OAAM,YAAW;GACjC,KAAK,gBAAgB,KAAK,OAAO;GAEjC,IAAI,OAAO,eAAe,YACxB,OAAO,MAAM,WAAW,OAAO;QAC1B,IAAI,MAAM,QAAQ,UAAU,GACjC,OAAO,WAAW,KAAK,gBAAgB,SAAS;QAEhD,OAAO;EAEX;EACA,KAAK,WAAW,OAAM,YAAW;GAC/B,KAAK,cAAc,KAAK,OAAO;GAE/B,IAAI,OAAO,aAAa,YACtB,OAAO,MAAM,SAAS,OAAO;QACxB,IAAI,MAAM,QAAQ,QAAQ,GAC/B,OAAO,SAAS,KAAK,cAAc,SAAS;QAE5C,OAAO;EAEX;EACA,KAAK,iBACH,OAAO,kBAAkB,aACrB,gBACA,YAAY,MAAM;CAC1B;CAEA,IAAI,gBAAgB;EAClB,OAAO,KAAK,eAAe;CAC7B;AACF;;;AClEA,IAAa,iBAAb,MAAkD;CAUhD,YAAY,EACV,gBACA,iBACA,aACA,qBACA,cACA,oBAQE,CAAC,GAAG;EAvBwB,KAAA,uBAAA;EAwB9B,KAAK,iBAAiB,YAAoB;GACxC,IAAI,CAAC,iBAAiB,UACpB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAgB,CAAC;GAEpE,OAAO,eAAe;EACxB;EACA,KAAK,kBAAkB,YAAoB;GACzC,IAAI,CAAC,kBAAkB,UACrB,MAAM,IAAI,iBAAiB;IACzB;IACA,WAAW;GACb,CAAC;GAEH,OAAO,gBAAgB;EACzB;EACA,KAAK,cAAc,YAAoB;GACrC,IAAI,CAAC,cAAc,UACjB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAa,CAAC;GAEjE,OAAO,YAAY;EACrB;EACA,KAAK,sBAAsB,YAAoB;GAC7C,IAAI,CAAC,sBAAsB,UACzB,MAAM,IAAI,iBAAiB;IACzB;IACA,WAAW;GACb,CAAC;GAEH,OAAO,oBAAoB;EAC7B;EACA,KAAK,eAAe,YAAmC;GACrD,IAAI,CAAC,eAAe,UAClB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAc,CAAC;GAElE,OAAO,aAAa;EACtB;EACA,KAAK,kBAAkB,YAAoB;GACzC,IAAI,CAAC,kBAAkB,UACrB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAiB,CAAC;GAErE,OAAO,gBAAgB;EACzB;CACF;AACF;;;ACpEA,IAAa,iBAAb,MAAkD;CAUhD,YAAY,EACV,gBACA,iBACA,aACA,qBACA,cACA,oBAQE,CAAC,GAAG;EAvBwB,KAAA,uBAAA;EAwB9B,KAAK,iBAAiB,YAAoB;GACxC,IAAI,CAAC,iBAAiB,UACpB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAgB,CAAC;GAEpE,OAAO,eAAe;EACxB;EACA,KAAK,kBAAkB,YAAoB;GACzC,IAAI,CAAC,kBAAkB,UACrB,MAAM,IAAI,iBAAiB;IACzB;IACA,WAAW;GACb,CAAC;GAEH,OAAO,gBAAgB;EACzB;EACA,KAAK,cAAc,YAAoB;GACrC,IAAI,CAAC,cAAc,UACjB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAa,CAAC;GAEjE,OAAO,YAAY;EACrB;EACA,KAAK,sBAAsB,YAAoB;GAC7C,IAAI,CAAC,sBAAsB,UACzB,MAAM,IAAI,iBAAiB;IACzB;IACA,WAAW;GACb,CAAC;GAEH,OAAO,oBAAoB;EAC7B;EACA,KAAK,eAAe,YAAmC;GACrD,IAAI,CAAC,eAAe,UAClB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAc,CAAC;GAElE,OAAO,aAAa;EACtB;EACA,KAAK,kBAAkB,YAAoB;GACzC,IAAI,CAAC,kBAAkB,UACrB,MAAM,IAAI,iBAAiB;IAAE;IAAS,WAAW;GAAiB,CAAC;GAErE,OAAO,gBAAgB;EACzB;CACF;AACF;;;AC3EA,IAAa,oBAAb,MAAwD;CAOtD,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,aAAa,mBAKX,CAAC,GAAG;EAdwB,KAAA,uBAAA;EAe9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa;CACpB;AACF;;;ACpBA,IAAa,oBAAb,MAAwD;CAOtD,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,aAAa,mBAKX,CAAC,GAAG;EAdwB,KAAA,uBAAA;EAe9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa;CACpB;AACF;;;ACpBA,IAAa,+BAAb,MAA2F;CAOzF,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,WAAW,mBAKT,CAAC,GAAG;EAdwB,KAAA,uBAAA;EAe9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,WAAW;CAClB;AACF;;;ACpBA,IAAa,6BAAb,MAAuF;CAQrF,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,aAAa,gBACb,WAAW,mBAMT,CAAC,GAAG;EAjBwB,KAAA,uBAAA;EAkB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa;EAClB,KAAK,WAAW;CAClB;AACF;;;ACxBA,IAAa,2BAAb,MAAsE;CAOpE,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,aAAa,mBAKX,CAAC,GAAG;EAdwB,KAAA,uBAAA;EAe9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa;CACpB;AACF;;;ACpBA,IAAa,2BAAb,MAAsE;CAQpE,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,aAAa,gBACb,aAME,CAAC,GAAG;EAjBwB,KAAA,uBAAA;EAkB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,aAAa;EAClB,KAAK,WAAW;CAClB;AACF;;;ACxBA,IAAa,uBAAb,MAA8D;CAQ5D,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,WAAW,mBAKT,CAAC,GAAG;EAfwB,KAAA,uBAAA;EAgB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,WAAW;CAClB;AACF;;;ACrBA,IAAa,uBAAb,MAA8D;CAQ5D,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,WAAW,mBAKT,CAAC,GAAG;EAfwB,KAAA,uBAAA;EAgB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,WAAW;CAClB;AACF;;;ACrBA,IAAa,mBAAb,MAAmE;CAQjE,YAAY,EACV,WAAW,iBACX,UAAU,iBACV,mBAAmB,GACnB,aAAa,mBAMX,CAAC,GAAG;EAjBwB,KAAA,uBAAA;EAkB9B,KAAK,WAAW;EAChB,KAAK,UAAU;EACf,KAAK,mBAAmB;EACxB,KAAK,aAAa;CACpB;AACF;;;ACxBA,IAAa,mBAAb,MAAmE;CAWjE,YACE,UAQI,CAAC,GACL;EApB8B,KAAA,uBAAA;EAqB9B,KAAK,WAAW,QAAQ,YAAY;EACpC,KAAK,UAAU,QAAQ,WAAW;EAClC,KAAK,mBAAmB,QAAQ,oBAAoB;EACpD,KAAK,aACH,gBAAgB,UAAU,QAAQ,aAAa;EACjD,KAAK,sBAAsB,QAAQ;EACnC,KAAK,UAAU,QAAQ;EACvB,KAAK,WAAW,QAAQ;CAC1B;AACF;;;AClCA,SAAgB,WAAc,GAAG,QAAsB;CACrD,IAAI,UAAU;CACd,aAAa,OAAO,cAAc,OAAO,OAAO,SAAS;AAC3D;;;;;;AC+BA,MAAa,yBAAyBE;;AAGtC,MAAa,qCAAqC"}
|
|
@@ -28,9 +28,7 @@ The tool has no direct dependency on either runtime.
|
|
|
28
28
|
Install the tool and the sandbox adapter you want to use. The following examples
|
|
29
29
|
use just-bash:
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
pnpm add ai @ai-sdk/tool-bash @ai-sdk/sandbox-just-bash
|
|
33
|
-
```
|
|
31
|
+
<InstallPackages packages="ai @ai-sdk/tool-bash @ai-sdk/sandbox-just-bash" />
|
|
34
32
|
|
|
35
33
|
Requires Node.js 22.13 or newer.
|
|
36
34
|
|
|
@@ -102,12 +100,36 @@ Raw runtime instances need their respective adapters; a custom
|
|
|
102
100
|
|
|
103
101
|
`experimental_createBashTool()` requires an options object:
|
|
104
102
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
103
|
+
<PropertiesTable
|
|
104
|
+
content={[
|
|
105
|
+
{
|
|
106
|
+
name: 'sandbox',
|
|
107
|
+
type: 'Experimental_SandboxSession',
|
|
108
|
+
description: 'Session for command execution and file operations.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'workingDirectory',
|
|
112
|
+
type: 'string',
|
|
113
|
+
isOptional: true,
|
|
114
|
+
description:
|
|
115
|
+
"Absolute starting directory for each command, created if needed. When omitted, uses the sandbox's default directory.",
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'maxOutputLength',
|
|
119
|
+
type: 'number',
|
|
120
|
+
isOptional: true,
|
|
121
|
+
description:
|
|
122
|
+
'Positive integer limiting characters retained from each output stream before a truncation notice. Defaults to `30000`.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: 'timeout',
|
|
126
|
+
type: 'number',
|
|
127
|
+
isOptional: true,
|
|
128
|
+
description:
|
|
129
|
+
'Timeout per command execution, in milliseconds (integer from `1` to `2147483647`). No tool-level timeout by default.',
|
|
130
|
+
},
|
|
131
|
+
]}
|
|
132
|
+
/>
|
|
111
133
|
|
|
112
134
|
The model calls the tool with `{ command: string }` and receives
|
|
113
135
|
`{ stdout, stderr, exitCode }`. Nonzero exit codes are returned so the model can
|
|
@@ -154,3 +176,153 @@ it returns `null` if the file is missing. Relative read paths depend on the
|
|
|
154
176
|
sandbox adapter; just-bash resolves them against its default directory. With an
|
|
155
177
|
explicit working directory, use absolute paths to read files from that directory.
|
|
156
178
|
The same session provides other file operations.
|
|
179
|
+
|
|
180
|
+
## Web Fetch Tool
|
|
181
|
+
|
|
182
|
+
`experimental_createWebFetchTool` lets agents read web pages and documents by URL.
|
|
183
|
+
|
|
184
|
+
### Installation
|
|
185
|
+
|
|
186
|
+
<InstallPackages packages="ai @ai-sdk/tool-web-fetch" />
|
|
187
|
+
|
|
188
|
+
Requires Node.js 22.13 or newer.
|
|
189
|
+
|
|
190
|
+
### Usage
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
import { experimental_createWebFetchTool as createWebFetchTool } from '@ai-sdk/tool-web-fetch';
|
|
194
|
+
import { generateText, isStepCount } from 'ai';
|
|
195
|
+
|
|
196
|
+
const result = await generateText({
|
|
197
|
+
model, // Your configured model with function calling support.
|
|
198
|
+
tools: { webFetch: createWebFetchTool() },
|
|
199
|
+
stopWhen: isStepCount(5),
|
|
200
|
+
prompt: 'Summarize https://ai-sdk.dev/docs/introduction.',
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Options
|
|
205
|
+
|
|
206
|
+
`experimental_createWebFetchTool()` accepts an optional options object:
|
|
207
|
+
|
|
208
|
+
<PropertiesTable
|
|
209
|
+
content={[
|
|
210
|
+
{
|
|
211
|
+
name: 'allowedDomains',
|
|
212
|
+
type: 'string[]',
|
|
213
|
+
isOptional: true,
|
|
214
|
+
description:
|
|
215
|
+
"Only fetch from these domains and their subdomains, e.g. `['example.com']`. List a subdomain such as `docs.example.com` to allow only that subdomain. Also applies to redirects. Cannot be combined with `blockedDomains`.",
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: 'blockedDomains',
|
|
219
|
+
type: 'string[]',
|
|
220
|
+
isOptional: true,
|
|
221
|
+
description:
|
|
222
|
+
'Never fetch from these domains or their subdomains. Also applies to redirects.',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: 'requireUrlInUserMessage',
|
|
226
|
+
type: 'boolean',
|
|
227
|
+
isOptional: true,
|
|
228
|
+
description:
|
|
229
|
+
'Only fetch URLs that appear in user messages. URLs in instructions, system messages, assistant messages, and tool results are not included. Defaults to `false`.',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'maxLength',
|
|
233
|
+
type: 'number',
|
|
234
|
+
isOptional: true,
|
|
235
|
+
description:
|
|
236
|
+
'Maximum characters returned per call. Longer content can be read with `offset`. Defaults to `50000`.',
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: 'maxBytes',
|
|
240
|
+
type: 'number',
|
|
241
|
+
isOptional: true,
|
|
242
|
+
description: 'Maximum response size in bytes. Defaults to 10 MiB.',
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: 'timeout',
|
|
246
|
+
type: 'number',
|
|
247
|
+
isOptional: true,
|
|
248
|
+
description:
|
|
249
|
+
'Timeout in milliseconds for fetching each URL, including redirects. Defaults to `30000`.',
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
name: 'fetch',
|
|
253
|
+
type: 'FetchFunction',
|
|
254
|
+
isOptional: true,
|
|
255
|
+
description:
|
|
256
|
+
'Custom fetch implementation, for example to route requests through a proxy. It must validate resolved addresses itself.',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: 'defuddleOptions',
|
|
260
|
+
type: 'DefuddleOptions',
|
|
261
|
+
isOptional: true,
|
|
262
|
+
description:
|
|
263
|
+
'Options for the [defuddle](https://github.com/kepano/defuddle) HTML content extractor, such as `contentSelector`.',
|
|
264
|
+
},
|
|
265
|
+
]}
|
|
266
|
+
/>
|
|
267
|
+
|
|
268
|
+
The model calls the tool with `{ url: string, offset?: number }` and receives
|
|
269
|
+
one of the following results:
|
|
270
|
+
|
|
271
|
+
- `{ type: 'document', url, finalUrl, contentType, title?, content, offset, totalLength, nextOffset? }`
|
|
272
|
+
for HTML and text.
|
|
273
|
+
- `{ type: 'error', url, errorCode, message, statusCode? }` when fetching fails.
|
|
274
|
+
|
|
275
|
+
Errors are returned so the model can recover, for example by trying another URL.
|
|
276
|
+
The model receives documents as text with the URL, title, and content type,
|
|
277
|
+
followed by the content. AI SDK cancellation aborts the request.
|
|
278
|
+
|
|
279
|
+
`experimental_createWebFetchTool()` returns the tool directly, ready to use as `tools: { webFetch }`.
|
|
280
|
+
|
|
281
|
+
### Content handling
|
|
282
|
+
|
|
283
|
+
Requests prefer markdown using the `Accept: text/markdown` header, which many
|
|
284
|
+
documentation sites support. Otherwise, HTML pages are converted to markdown
|
|
285
|
+
with [defuddle](https://github.com/kepano/defuddle), which removes navigation,
|
|
286
|
+
footers, and other boilerplate. Text formats such as plain text, JSON, XML, and
|
|
287
|
+
CSV are returned as is. PDFs, images, audio, video, and other binary formats
|
|
288
|
+
are not supported.
|
|
289
|
+
|
|
290
|
+
JavaScript is not executed. Pages that render their content in the browser may
|
|
291
|
+
return little or no content, in which case the model is told that the page may
|
|
292
|
+
require JavaScript.
|
|
293
|
+
|
|
294
|
+
The extractor sometimes selects the wrong part of a page. If you fetch pages
|
|
295
|
+
with a known structure, set `defuddleOptions.contentSelector` to choose the main
|
|
296
|
+
content element:
|
|
297
|
+
|
|
298
|
+
```ts
|
|
299
|
+
const webFetch = createWebFetchTool({
|
|
300
|
+
defuddleOptions: { contentSelector: 'article' },
|
|
301
|
+
});
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Content longer than `maxLength` is truncated. The model is told to call the tool
|
|
305
|
+
again with `offset` to continue reading. Converted documents are cached for a
|
|
306
|
+
few minutes per tool instance, so reading at an offset does not fetch the page
|
|
307
|
+
again.
|
|
308
|
+
|
|
309
|
+
### Security
|
|
310
|
+
|
|
311
|
+
The tool makes GET requests without cookies or credentials, and rejects URLs
|
|
312
|
+
that contain credentials. Each request and redirect is validated against
|
|
313
|
+
private and reserved addresses such as `localhost` and cloud metadata
|
|
314
|
+
endpoints. On Node.js, resolved DNS addresses are validated at connect time to
|
|
315
|
+
prevent DNS rebinding. On other runtimes, only the URL is validated, so restrict
|
|
316
|
+
network egress at the platform level. A custom `fetch` must provide equivalent
|
|
317
|
+
validation. See [Secure URL Fetching](/docs/advanced/secure-url-fetching).
|
|
318
|
+
|
|
319
|
+
Fetched content is untrusted and can contain prompt injections. When an agent
|
|
320
|
+
has access to private data, a model could also be instructed to send that data
|
|
321
|
+
to another site, for example in a URL query string. Restrict fetching with
|
|
322
|
+
`allowedDomains`, enable `requireUrlInUserMessage` so only URLs from user
|
|
323
|
+
messages can be fetched, or require [tool approval](/docs/ai-sdk-core/tools-and-tool-calling#tool-execution-approval).
|
|
324
|
+
|
|
325
|
+
`requireUrlInUserMessage` ignores URLs in tool results because the model can
|
|
326
|
+
place arbitrary text there, for example through tool inputs that are reflected
|
|
327
|
+
in outputs. As a result, the model cannot follow links from search results or
|
|
328
|
+
fetched pages in this mode.
|
|
@@ -48,6 +48,71 @@ const audioData = result.audio.uint8Array; // audio data as Uint8Array
|
|
|
48
48
|
const audioBase64 = result.audio.base64; // audio data as base64 string
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
## Streaming Speech
|
|
52
|
+
|
|
53
|
+
<Note type="warning">Streaming speech is an experimental feature.</Note>
|
|
54
|
+
|
|
55
|
+
Use `experimental_streamSpeech` when you want audio before the full text is
|
|
56
|
+
synthesized, or when the text itself arrives incrementally (for example from
|
|
57
|
+
`streamText`). The function uses speech models with streaming support.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { elevenLabs } from '@ai-sdk/elevenlabs';
|
|
61
|
+
import { experimental_streamSpeech as streamSpeech, streamText } from 'ai';
|
|
62
|
+
|
|
63
|
+
const { textStream } = streamText({
|
|
64
|
+
model: 'openai/gpt-5-mini',
|
|
65
|
+
prompt: 'Tell me a short story.',
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const result = streamSpeech({
|
|
69
|
+
model: elevenLabs.speech('eleven_flash_v2_5'),
|
|
70
|
+
text: textStream, // a string, or an array or stream of strings and/or text parts
|
|
71
|
+
voice: '21m00Tcm4TlvDq8ikWAM',
|
|
72
|
+
outputFormat: { type: 'audio/mpeg' },
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
for await (const chunk of result.audioStream) {
|
|
76
|
+
// chunk is a Uint8Array of audio bytes in generation order
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
console.log(await result.usage); // e.g. { inputCharacters: 512 }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`text` accepts a complete string or a stream of text deltas. Providers with an
|
|
83
|
+
incremental text transport synthesize deltas as they arrive; others read the
|
|
84
|
+
text stream to completion first. The end of the text stream ends the input.
|
|
85
|
+
|
|
86
|
+
`text` can also contain text parts, `{ type: 'text', text, voice?, providerOptions? }`,
|
|
87
|
+
to give parts of the text their own voice (for example for dialogue) on providers
|
|
88
|
+
that support several voices per stream. Single-voice providers error the stream
|
|
89
|
+
when a part's `voice` differs from the call's `voice`. A script that is known up
|
|
90
|
+
front can be passed as an array:
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
const result = streamSpeech({
|
|
94
|
+
model,
|
|
95
|
+
text: [
|
|
96
|
+
{ type: 'text', text: 'Did you hear? ', voice: alice },
|
|
97
|
+
{ type: 'text', text: 'No, what?', voice: bob },
|
|
98
|
+
],
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`error` parts from the provider are not fatal: `fullStream` includes them,
|
|
103
|
+
`audioStream` skips them, and each one is also passed to `onError` (which
|
|
104
|
+
defaults to `console.error`).
|
|
105
|
+
|
|
106
|
+
Use `fullStream` instead of `audioStream` when you need per-chunk metadata:
|
|
107
|
+
each `audio` part carries the chunk `audioFormat` (e.g.
|
|
108
|
+
`{ type: 'audio/pcm', rate: 24000 }`) and optional `providerMetadata`. Audio
|
|
109
|
+
chunks are not standalone files; concatenate them in order.
|
|
110
|
+
|
|
111
|
+
`audioStream` and `fullStream` share one live stream, so only one of them can
|
|
112
|
+
be accessed, once. Access the stream before awaiting `usage`, `warnings`,
|
|
113
|
+
`responses`, or `providerMetadata`; accessing a result promise first consumes
|
|
114
|
+
the stream internally.
|
|
115
|
+
|
|
51
116
|
## Settings
|
|
52
117
|
|
|
53
118
|
### Provider-Specific Settings
|