ai 7.0.149 → 7.0.150
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 +14 -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/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":"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
|
|
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":"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"}
|
|
@@ -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
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: experimental_streamSpeech
|
|
3
|
+
description: API Reference for experimental_streamSpeech.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `experimental_streamSpeech()`
|
|
7
|
+
|
|
8
|
+
<Note type="warning">
|
|
9
|
+
`experimental_streamSpeech` is an experimental feature.
|
|
10
|
+
</Note>
|
|
11
|
+
|
|
12
|
+
Streams speech audio from text, or from an array or stream of text deltas and
|
|
13
|
+
text parts, using a speech model with streaming support.
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { experimental_streamSpeech as streamSpeech } from 'ai';
|
|
17
|
+
import { elevenLabs } from '@ai-sdk/elevenlabs';
|
|
18
|
+
|
|
19
|
+
const result = streamSpeech({
|
|
20
|
+
model: elevenLabs.speech('eleven_flash_v2_5'),
|
|
21
|
+
text: 'Hello, world!',
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
for await (const chunk of result.audioStream) {
|
|
25
|
+
// Uint8Array audio bytes
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Import
|
|
30
|
+
|
|
31
|
+
<Snippet
|
|
32
|
+
text={`import { experimental_streamSpeech as streamSpeech } from "ai"`}
|
|
33
|
+
prompt={false}
|
|
34
|
+
/>
|
|
35
|
+
|
|
36
|
+
## API Signature
|
|
37
|
+
|
|
38
|
+
### Parameters
|
|
39
|
+
|
|
40
|
+
<PropertiesTable
|
|
41
|
+
content={[
|
|
42
|
+
{
|
|
43
|
+
name: 'model',
|
|
44
|
+
type: 'SpeechModel',
|
|
45
|
+
description:
|
|
46
|
+
'The speech model to use. The model must implement the experimental streaming speech extension (`Experimental_StreamingSpeechModelV4`).',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'text',
|
|
50
|
+
type: 'string | Iterable<string | Experimental_SpeechTextPart> | AsyncIterable<string | Experimental_SpeechTextPart> | ReadableStream<string | Experimental_SpeechTextPart>',
|
|
51
|
+
description:
|
|
52
|
+
"The text to convert to speech: a complete string, or an array, iterable, or stream of text deltas (e.g. the `textStream` of `streamText`) and/or text parts `{ type: 'text', text, voice?, providerOptions? }`. A part's `voice` selects its speaker on providers that support several voices per stream; single-voice providers error the stream when a part's voice differs from the call's voice. The end of the stream ends the input.",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'voice',
|
|
56
|
+
type: 'string',
|
|
57
|
+
isOptional: true,
|
|
58
|
+
description: 'The voice to use for speech generation.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'outputFormat',
|
|
62
|
+
type: '{ type: string; rate?: number }',
|
|
63
|
+
isOptional: true,
|
|
64
|
+
description:
|
|
65
|
+
"The format of the output audio chunks, e.g. `{ type: 'audio/pcm', rate: 24000 }` or `{ type: 'audio/mpeg' }`. Supported formats are provider-specific.",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'instructions',
|
|
69
|
+
type: 'string',
|
|
70
|
+
isOptional: true,
|
|
71
|
+
description: 'Instructions for the speech generation.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'speed',
|
|
75
|
+
type: 'number',
|
|
76
|
+
isOptional: true,
|
|
77
|
+
description: 'The speed of the speech generation.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'language',
|
|
81
|
+
type: 'string',
|
|
82
|
+
isOptional: true,
|
|
83
|
+
description:
|
|
84
|
+
'The language for speech generation (ISO 639-1 code), or "auto". Provider support varies.',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'providerOptions',
|
|
88
|
+
type: 'Record<string, JSONObject>',
|
|
89
|
+
isOptional: true,
|
|
90
|
+
description: 'Additional provider-specific options.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'abortSignal',
|
|
94
|
+
type: 'AbortSignal',
|
|
95
|
+
isOptional: true,
|
|
96
|
+
description: 'An optional abort signal to cancel the call.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'headers',
|
|
100
|
+
type: 'Record<string, string>',
|
|
101
|
+
isOptional: true,
|
|
102
|
+
description:
|
|
103
|
+
'Additional HTTP/WebSocket headers, if supported by the provider.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'includeRawChunks',
|
|
107
|
+
type: 'boolean',
|
|
108
|
+
isOptional: true,
|
|
109
|
+
description:
|
|
110
|
+
'When true, the provider includes raw provider chunks in `fullStream` as `raw` parts.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'onError',
|
|
114
|
+
type: '(event: { error: unknown }) => void | PromiseLike<void>',
|
|
115
|
+
isOptional: true,
|
|
116
|
+
description:
|
|
117
|
+
'Called for each `error` part the provider reports. Defaults to `console.error`.',
|
|
118
|
+
},
|
|
119
|
+
]}
|
|
120
|
+
/>
|
|
121
|
+
|
|
122
|
+
### Returns
|
|
123
|
+
|
|
124
|
+
<PropertiesTable
|
|
125
|
+
content={[
|
|
126
|
+
{
|
|
127
|
+
name: 'audioStream',
|
|
128
|
+
type: 'AsyncIterableStream<Uint8Array>',
|
|
129
|
+
description:
|
|
130
|
+
'Audio bytes in generation order. Shares one live stream with `fullStream`: only one of them can be accessed, once, before any result promise. `error` parts are skipped (they are reported via `onError`); the stream errors only when the speech stream itself fails.',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'fullStream',
|
|
134
|
+
type: 'AsyncIterableStream<Experimental_SpeechStreamPart>',
|
|
135
|
+
description:
|
|
136
|
+
'A single-consumer live stream of `audio` (with `audio: Uint8Array` and `audioFormat`), `raw`, and `error` parts. Error parts are not fatal; the stream continues after them.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: 'usage',
|
|
140
|
+
type: 'Promise<{ inputCharacters?: number; inputTokens?: number; outputTokens?: number; raw?: JSONObject }>',
|
|
141
|
+
description: 'Usage information for the call, if known.',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: 'warnings',
|
|
145
|
+
type: 'Promise<Warning[]>',
|
|
146
|
+
description:
|
|
147
|
+
'Warnings for the call, e.g. unsupported settings. Resolves when the provider emits the stream start.',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'responses',
|
|
151
|
+
type: 'Promise<Array<SpeechModelResponseMetadata>>',
|
|
152
|
+
description: 'Response metadata (timestamp, model ID, headers, body).',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'providerMetadata',
|
|
156
|
+
type: 'Promise<Record<string, JSONObject>>',
|
|
157
|
+
description: 'Additional provider-specific metadata.',
|
|
158
|
+
},
|
|
159
|
+
]}
|
|
160
|
+
/>
|
|
161
|
+
|
|
162
|
+
<Note>
|
|
163
|
+
The result promises settle as the stream is consumed. If you cancel the stream
|
|
164
|
+
early (for example by breaking out of a `for await` loop) or abort the call,
|
|
165
|
+
pending result promises reject immediately and the provider is signalled to
|
|
166
|
+
close its connection. A stream that is not read stalls under backpressure and
|
|
167
|
+
keeps the provider call open.
|
|
168
|
+
</Note>
|
|
169
|
+
|
|
170
|
+
## Errors
|
|
171
|
+
|
|
172
|
+
- `UnsupportedFunctionalityError` is thrown synchronously when the model does
|
|
173
|
+
not support streaming speech.
|
|
174
|
+
- `InvalidArgumentError` is thrown synchronously when `text` is not a string,
|
|
175
|
+
an iterable or async iterable, or a readable stream.
|
|
176
|
+
- Provider `error` parts are not fatal. They appear in `fullStream`, are
|
|
177
|
+
skipped by `audioStream`, and are passed to `onError`.
|
|
178
|
+
- If the stream ends without audio, the result rejects with
|
|
179
|
+
`NoSpeechGeneratedError`, whose `cause` is the last provider error part.
|
|
180
|
+
- If the stream stops after audio but before it finished, the result rejects
|
|
181
|
+
with the last provider error part, or with a `StreamProviderError`.
|
|
182
|
+
- If the provider call fails (for example an authentication error), the result
|
|
183
|
+
rejects with that error. Cancelling or aborting rejects with the
|
|
184
|
+
cancellation or abort reason.
|
|
185
|
+
|
|
186
|
+
## Wire format (experimental)
|
|
187
|
+
|
|
188
|
+
Streaming speech over WebSocket is serialized with the experimental
|
|
189
|
+
speech-stream envelope defined in `@ai-sdk/provider-utils`
|
|
190
|
+
(`experimental_parseSpeechStreamClientFrame`,
|
|
191
|
+
`experimental_serializeSpeechStreamPart`, `experimental_parseSpeechStreamPart`):
|
|
192
|
+
the client sends one `speech-stream.start` TEXT frame, input text as
|
|
193
|
+
`speech-stream.text-delta` TEXT frames (each carrying its text part's `voice`
|
|
194
|
+
and `providerOptions`), and a `speech-stream.text-done` TEXT frame; each server TEXT frame is one JSON-serialized speech stream part with
|
|
195
|
+
base64 audio. AI Gateway implements the server side of this envelope.
|
|
@@ -98,6 +98,11 @@ AI SDK Core contains the following main functions:
|
|
|
98
98
|
description: 'Generate speech audio from text.',
|
|
99
99
|
href: '/docs/reference/ai-sdk-core/generate-speech',
|
|
100
100
|
},
|
|
101
|
+
{
|
|
102
|
+
title: 'experimental_streamSpeech()',
|
|
103
|
+
description: 'Stream speech audio from text or a text stream.',
|
|
104
|
+
href: '/docs/reference/ai-sdk-core/stream-speech',
|
|
105
|
+
},
|
|
101
106
|
{
|
|
102
107
|
title: 'uploadFile()',
|
|
103
108
|
description: 'Upload a file to a provider and get a provider reference.',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.150",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@ai-sdk/gateway": "4.0.
|
|
46
|
-
"@ai-sdk/provider": "4.0.
|
|
47
|
-
"@ai-sdk/provider-utils": "5.0.
|
|
45
|
+
"@ai-sdk/gateway": "4.0.123",
|
|
46
|
+
"@ai-sdk/provider": "4.0.33",
|
|
47
|
+
"@ai-sdk/provider-utils": "5.0.67"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@ai-sdk/amazon-bedrock": "5.0.
|
|
51
|
-
"@ai-sdk/deepseek": "3.0.
|
|
52
|
-
"@ai-sdk/google": "4.0.
|
|
53
|
-
"@ai-sdk/groq": "4.0.
|
|
54
|
-
"@ai-sdk/huggingface": "2.0.
|
|
55
|
-
"@ai-sdk/moonshotai": "3.0.
|
|
56
|
-
"@ai-sdk/openai": "4.0.
|
|
50
|
+
"@ai-sdk/amazon-bedrock": "5.0.123",
|
|
51
|
+
"@ai-sdk/deepseek": "3.0.72",
|
|
52
|
+
"@ai-sdk/google": "4.0.104",
|
|
53
|
+
"@ai-sdk/groq": "4.0.69",
|
|
54
|
+
"@ai-sdk/huggingface": "2.0.77",
|
|
55
|
+
"@ai-sdk/moonshotai": "3.0.76",
|
|
56
|
+
"@ai-sdk/openai": "4.0.101",
|
|
57
57
|
"@ai-sdk/test-server": "2.0.4",
|
|
58
|
-
"@ai-sdk/xai": "5.0.
|
|
58
|
+
"@ai-sdk/xai": "5.0.29",
|
|
59
59
|
"@edge-runtime/vm": "^5.0.0",
|
|
60
60
|
"@smithy/eventstream-codec": "^4.3.3",
|
|
61
61
|
"@smithy/util-utf8": "^4.3.3",
|
|
@@ -13,10 +13,14 @@ export class NoSpeechGeneratedError extends AISDKError {
|
|
|
13
13
|
|
|
14
14
|
readonly responses: Array<SpeechModelResponseMetadata>;
|
|
15
15
|
|
|
16
|
-
constructor(options: {
|
|
16
|
+
constructor(options: {
|
|
17
|
+
responses: Array<SpeechModelResponseMetadata>;
|
|
18
|
+
cause?: unknown;
|
|
19
|
+
}) {
|
|
17
20
|
super({
|
|
18
21
|
name,
|
|
19
22
|
message: 'No speech audio generated.',
|
|
23
|
+
...(options.cause !== undefined && { cause: options.cause }),
|
|
20
24
|
});
|
|
21
25
|
|
|
22
26
|
this.responses = options.responses;
|