ai 7.0.84 → 7.0.85

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.
@@ -63,6 +63,7 @@ var MockEmbeddingModelV3 = class {
63
63
 
64
64
  // src/test/mock-embedding-model-v4.ts
65
65
  import { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL } from "@ai-sdk/provider-utils";
66
+ EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL;
66
67
  var MockEmbeddingModelV4 = class {
67
68
  constructor({
68
69
  provider = "mock-provider",
@@ -91,7 +92,6 @@ var MockEmbeddingModelV4 = class {
91
92
  };
92
93
  }
93
94
  };
94
- EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL;
95
95
 
96
96
  // src/test/mock-image-model-v3.ts
97
97
  var MockImageModelV3 = class {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/simulate-readable-stream.ts","../../test/index.ts","../../src/test/not-implemented.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"],"sourcesContent":["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 { 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 { 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","export function notImplemented(): never {\n throw new Error('Not implemented');\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\n doGenerate: ImageModelV4['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV4['provider'];\n modelId?: ImageModelV4['modelId'];\n maxImagesPerCall?: ImageModelV4['maxImagesPerCall'];\n doGenerate?: ImageModelV4['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\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"],"mappings":"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","names":["NoSuchModelError","simulateReadableStream"]}
1
+ {"version":3,"sources":["../../src/util/simulate-readable-stream.ts","../../test/index.ts","../../src/test/not-implemented.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"],"sourcesContent":["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 { 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 { 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","export function notImplemented(): never {\n throw new Error('Not implemented');\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\n doGenerate: ImageModelV4['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV4['provider'];\n modelId?: ImageModelV4['modelId'];\n maxImagesPerCall?: ImageModelV4['maxImagesPerCall'];\n doGenerate?: ImageModelV4['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\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"],"mappings":"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","names":["NoSuchModelError","simulateReadableStream"]}
@@ -180,19 +180,19 @@ const { image, warnings } = await generateImage({
180
180
  });
181
181
  ```
182
182
 
183
- ### Additional provider-specific meta data
183
+ ### Provider metadata
184
184
 
185
- Some providers expose additional meta data for the result overall or per image.
185
+ Some providers expose metadata for an individual image. It is available directly on the generated image:
186
186
 
187
187
  ```tsx
188
188
  const prompt = 'Santa Claus driving a Cadillac';
189
189
 
190
- const { image, providerMetadata } = await generateImage({
190
+ const { image } = await generateImage({
191
191
  model: openai.image('dall-e-3'),
192
192
  prompt,
193
193
  });
194
194
 
195
- const revisedPrompt = providerMetadata.openai.images[0]?.revisedPrompt;
195
+ const revisedPrompt = image.providerMetadata?.openai?.revisedPrompt;
196
196
 
197
197
  console.log({
198
198
  prompt,
@@ -200,7 +200,24 @@ console.log({
200
200
  });
201
201
  ```
202
202
 
203
- The outer key of the returned `providerMetadata` is the provider name. The inner values are the metadata. An `images` key is always present in the metadata and is an array with the same length as the top level `images` key.
203
+ The outer key of `image.providerMetadata` is the provider name. The inner value is the metadata for that image.
204
+
205
+ ### Underlying calls
206
+
207
+ When a request is split into multiple provider calls, `calls` preserves the images, provider metadata, response metadata, warnings, and usage for each call. `images` and `usage` remain convenient flattened and aggregate views, respectively.
208
+
209
+ ```ts
210
+ const { calls } = await generateImage({
211
+ model,
212
+ prompt: 'Santa Claus driving a Cadillac',
213
+ n: 4,
214
+ maxImagesPerCall: 1,
215
+ });
216
+
217
+ for (const call of calls) {
218
+ console.log(call.providerMetadata, call.usage);
219
+ }
220
+ ```
204
221
 
205
222
  ### Error Handling
206
223
 
@@ -43,6 +43,7 @@ Live state belongs to `HarnessAgentSession`.
43
43
 
44
44
  Set `model` to select the model that the harness runtime uses. Model identifiers
45
45
  are specific to each harness. When omitted, the harness uses its default model.
46
+ The model is applied per turn, so `prepareCall` can replace it between turns.
46
47
 
47
48
  To use this agent, ensure environment variables with sandbox and harness credentials
48
49
  are set.
@@ -186,9 +187,9 @@ HTTP routes that need multi-turn continuity.
186
187
 
187
188
  ## Change Settings Between Turns
188
189
 
189
- Use `callOptionsSchema` and `prepareCall` to derive `skills`, `instructions`,
190
- and `tools` for each new turn. This follows the same call-options pattern as
191
- `ToolLoopAgent`:
190
+ Use `callOptionsSchema` and `prepareCall` to derive `model`, `skills`,
191
+ `instructions`, and `tools` for each new turn. This follows the same
192
+ call-options pattern as `ToolLoopAgent`:
192
193
 
193
194
  ```ts
194
195
  import { HarnessAgent } from '@ai-sdk/harness/agent';
@@ -208,9 +209,11 @@ const agent = new HarnessAgent({
208
209
  callOptionsSchema: z.object({
209
210
  area: z.enum(['frontend', 'backend']),
210
211
  enablePolicyTool: z.boolean(),
212
+ useCheaperModel: z.boolean(),
211
213
  }),
212
214
  prepareCall: ({ options, ...call }) => ({
213
215
  ...call,
216
+ model: options.useCheaperModel ? 'claude-haiku-4-5' : undefined,
214
217
  instructions: `Work as the ${options.area} specialist.`,
215
218
  skills: [options.area === 'frontend' ? frontendSkill : backendSkill],
216
219
  tools: options.enablePolicyTool ? { getPolicy } : undefined,
@@ -222,13 +225,21 @@ try {
222
225
  await agent.generate({
223
226
  session,
224
227
  prompt: 'Review the current implementation.',
225
- options: { area: 'frontend', enablePolicyTool: false },
228
+ options: {
229
+ area: 'frontend',
230
+ enablePolicyTool: false,
231
+ useCheaperModel: false,
232
+ },
226
233
  });
227
234
 
228
235
  await agent.generate({
229
236
  session,
230
237
  prompt: 'Now review the API contract.',
231
- options: { area: 'backend', enablePolicyTool: true },
238
+ options: {
239
+ area: 'backend',
240
+ enablePolicyTool: true,
241
+ useCheaperModel: true,
242
+ },
232
243
  });
233
244
  } finally {
234
245
  await session.destroy();
@@ -241,6 +252,10 @@ for a tool result, approval, stop condition, or process handoff, its
241
252
  continuation reuses the same settings and does not call `prepareCall` again.
242
253
  This prevents settings from changing mid-turn.
243
254
 
255
+ Changing `model` does not create a new harness session. Each adapter switches or
256
+ reconfigures its runtime before the next prompt while preserving the session's
257
+ conversation history.
258
+
244
259
  The Codex adapter starts a fresh native Codex thread when its skills,
245
260
  instructions, or tool catalog changes because `codex exec resume` retains the
246
261
  original native thread bootstrap. The harness session remains usable, but prior
@@ -496,7 +511,7 @@ console.log(preparation.identity);
496
511
  - `instructions`: instructions appended to the runtime's system or developer
497
512
  prompt when supported, or prepended to the user prompt otherwise.
498
513
  - `callOptionsSchema` and `prepareCall`: validate custom call options and derive
499
- skills, instructions, and tools for each new turn.
514
+ model, skills, instructions, and tools for each new turn.
500
515
  - `output`: typed output specification applied to every turn.
501
516
  - `stopWhen`: condition(s) for finishing a result slice after a completed
502
517
  harness tool step that can continue into another model step.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai",
3
- "version": "7.0.84",
3
+ "version": "7.0.85",
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.68",
46
- "@ai-sdk/provider": "4.0.8",
47
- "@ai-sdk/provider-utils": "5.0.33"
45
+ "@ai-sdk/gateway": "4.0.69",
46
+ "@ai-sdk/provider": "4.0.9",
47
+ "@ai-sdk/provider-utils": "5.0.34"
48
48
  },
49
49
  "devDependencies": {
50
- "@ai-sdk/amazon-bedrock": "5.0.67",
51
- "@ai-sdk/deepseek": "3.0.36",
52
- "@ai-sdk/google": "4.0.57",
53
- "@ai-sdk/groq": "4.0.34",
54
- "@ai-sdk/huggingface": "2.0.40",
55
- "@ai-sdk/moonshotai": "3.0.42",
56
- "@ai-sdk/openai": "4.0.51",
50
+ "@ai-sdk/amazon-bedrock": "5.0.68",
51
+ "@ai-sdk/deepseek": "3.0.37",
52
+ "@ai-sdk/google": "4.0.58",
53
+ "@ai-sdk/groq": "4.0.35",
54
+ "@ai-sdk/huggingface": "2.0.41",
55
+ "@ai-sdk/moonshotai": "3.0.43",
56
+ "@ai-sdk/openai": "4.0.52",
57
57
  "@ai-sdk/test-server": "2.0.1",
58
- "@ai-sdk/xai": "4.0.49",
58
+ "@ai-sdk/xai": "4.0.50",
59
59
  "@edge-runtime/vm": "^5.0.0",
60
60
  "@smithy/eventstream-codec": "^4.3.3",
61
61
  "@smithy/util-utf8": "^4.3.3",
@@ -63,7 +63,7 @@
63
63
  "@types/node": "22.19.19",
64
64
  "@vercel/ai-tsconfig": "0.0.0",
65
65
  "esbuild": "^0.28.1",
66
- "tsup": "^7.2.0",
66
+ "tsup": "^8.5.1",
67
67
  "tsx": "4.23.12",
68
68
  "typescript": "5.8.3",
69
69
  "zod": "3.25.76"
@@ -4,7 +4,8 @@ import type {
4
4
  Experimental_BatchV4Status as BatchV4Status,
5
5
  Experimental_BatchLanguageModelV4 as BatchLanguageModelV4,
6
6
  } from '@ai-sdk/provider';
7
- import type { ProviderOptions } from '@ai-sdk/provider-utils';
7
+ import type { ProviderOptions, ToolSet } from '@ai-sdk/provider-utils';
8
+ import type { ContentPart } from '../generate-text/content-part';
8
9
  import type { LanguageModelCallOptions } from '../prompt/language-model-call-options';
9
10
  import type { Prompt } from '../prompt/prompt';
10
11
  import type {
@@ -107,6 +108,8 @@ export type BatchOperationOptions = {
107
108
  * A normalized result for a successful text batch item.
108
109
  */
109
110
  export type TextBatchGenerationResult = {
111
+ /** Ordered normalized content, including citations, sources, and tool data. */
112
+ readonly content: Array<ContentPart<ToolSet>>;
110
113
  readonly text: string;
111
114
  readonly finishReason: FinishReason;
112
115
  readonly rawFinishReason?: string;
@@ -4,9 +4,12 @@ import {
4
4
  type Experimental_BatchV4ItemResult as BatchV4ItemResult,
5
5
  type LanguageModelV4,
6
6
  type LanguageModelV4GenerateResult,
7
+ type LanguageModelV4ToolCall,
7
8
  } from '@ai-sdk/provider';
8
- import { withUserAgentSuffix } from '@ai-sdk/provider-utils';
9
+ import { type ToolSet, withUserAgentSuffix } from '@ai-sdk/provider-utils';
9
10
  import { InvalidArgumentError } from '../error/invalid-argument-error';
11
+ import { convertLanguageModelContent } from '../generate-text/convert-language-model-content';
12
+ import { parseToolCall } from '../generate-text/parse-tool-call';
10
13
  import { logWarnings } from '../logger/log-warnings';
11
14
  import { resolveLanguageModel } from '../model/resolve-model';
12
15
  import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
@@ -175,8 +178,8 @@ export function getBatchResults({
175
178
  BatchV4ItemResult<LanguageModelV4GenerateResult>,
176
179
  TextBatchItemResult
177
180
  > & { cancel?: (reason?: unknown) => void } = {
178
- transform(item, controller) {
179
- controller.enqueue(convertBatchItemResult(item));
181
+ async transform(item, controller) {
182
+ controller.enqueue(await convertBatchItemResult(item));
180
183
  },
181
184
 
182
185
  cancel(reason) {
@@ -296,9 +299,9 @@ function validateBatchReference({
296
299
  }
297
300
  }
298
301
 
299
- function convertBatchItemResult(
302
+ async function convertBatchItemResult(
300
303
  item: BatchV4ItemResult<LanguageModelV4GenerateResult>,
301
- ): TextBatchItemResult {
304
+ ): Promise<TextBatchItemResult> {
302
305
  if (item.status !== 'succeeded') {
303
306
  return item;
304
307
  }
@@ -306,15 +309,41 @@ function convertBatchItemResult(
306
309
  return {
307
310
  id: item.id,
308
311
  status: 'succeeded',
309
- ...convertGenerateResult(item.result),
312
+ ...(await convertGenerateResult(item.result)),
310
313
  };
311
314
  }
312
315
 
313
- function convertGenerateResult(
316
+ async function convertGenerateResult(
314
317
  result: LanguageModelV4GenerateResult,
315
- ): TextBatchGenerationResult {
318
+ ): Promise<TextBatchGenerationResult> {
319
+ const toolCalls = await Promise.all(
320
+ result.content
321
+ .filter(
322
+ (part): part is LanguageModelV4ToolCall => part.type === 'tool-call',
323
+ )
324
+ .map(toolCall =>
325
+ parseToolCall<ToolSet>({
326
+ toolCall,
327
+ tools: undefined,
328
+ repairToolCall: undefined,
329
+ refineToolInput: undefined,
330
+ instructions: undefined,
331
+ messages: [],
332
+ }),
333
+ ),
334
+ );
335
+ const content = convertLanguageModelContent<ToolSet>({
336
+ content: result.content,
337
+ toolCalls,
338
+ toolOutputs: [],
339
+ toolApprovalRequests: [],
340
+ toolApprovalResponses: [],
341
+ tools: undefined,
342
+ });
343
+
316
344
  return {
317
- text: result.content
345
+ content,
346
+ text: content
318
347
  .filter(
319
348
  (part): part is Extract<typeof part, { type: 'text' }> =>
320
349
  part.type === 'text',
@@ -1,9 +1,40 @@
1
+ import type { ImageModelV4ProviderMetadata } from '@ai-sdk/provider';
1
2
  import type { GeneratedFile } from '../generate-text';
2
3
  import type { ImageModelProviderMetadata } from '../types/image-model';
3
4
  import type { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
4
5
  import type { ImageModelUsage } from '../types/usage';
5
6
  import type { Warning } from '../types/warning';
6
7
 
8
+ /**
9
+ * The result of one underlying image model call.
10
+ */
11
+ export interface GenerateImageCall {
12
+ /**
13
+ * The images generated by this call.
14
+ */
15
+ readonly images: Array<GeneratedFile>;
16
+
17
+ /**
18
+ * Provider-specific metadata for this call.
19
+ */
20
+ readonly providerMetadata?: ImageModelV4ProviderMetadata;
21
+
22
+ /**
23
+ * Response metadata from the provider.
24
+ */
25
+ readonly response: ImageModelResponseMetadata;
26
+
27
+ /**
28
+ * Warnings for this call, e.g. unsupported settings.
29
+ */
30
+ readonly warnings: Array<Warning>;
31
+
32
+ /**
33
+ * Token usage for this call, if reported by the provider.
34
+ */
35
+ readonly usage?: ImageModelUsage;
36
+ }
37
+
7
38
  /**
8
39
  * The result of a `generateImage` call.
9
40
  * It contains the images and additional information.
@@ -19,6 +50,11 @@ export interface GenerateImageResult {
19
50
  */
20
51
  readonly images: Array<GeneratedFile>;
21
52
 
53
+ /**
54
+ * The results of the underlying image model calls.
55
+ */
56
+ readonly calls: Array<GenerateImageCall>;
57
+
22
58
  /**
23
59
  * Warnings for the call, e.g. unsupported settings.
24
60
  */
@@ -26,12 +62,16 @@ export interface GenerateImageResult {
26
62
 
27
63
  /**
28
64
  * Response metadata from the provider. There may be multiple responses if we made multiple calls to the model.
65
+ *
66
+ * @deprecated Use `calls` to preserve each response with its corresponding images, metadata, warnings, and usage.
29
67
  */
30
68
  readonly responses: Array<ImageModelResponseMetadata>;
31
69
 
32
70
  /**
33
71
  * Provider-specific metadata. They are passed through from the provider to the AI SDK and enable provider-specific
34
72
  * results that can be fully encapsulated in the provider.
73
+ *
74
+ * @deprecated Use the provider metadata in `calls` or on individual `images` to preserve its scope.
35
75
  */
36
76
  readonly providerMetadata: ImageModelProviderMetadata;
37
77