ai 4.0.25 → 4.0.27
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 +15 -0
- package/dist/index.d.mts +26 -5
- package/dist/index.d.ts +26 -5
- package/dist/index.js +71 -34
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +60 -24
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/rsc/dist/rsc-server.mjs +1 -1
- package/rsc/dist/rsc-server.mjs.map +1 -1
- package/test/dist/index.d.mts +11 -6
- package/test/dist/index.d.ts +11 -6
- package/test/dist/index.js +6 -3
- package/test/dist/index.js.map +1 -1
- package/test/dist/index.mjs +6 -3
- package/test/dist/index.mjs.map +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# ai
|
2
2
|
|
3
|
+
## 4.0.27
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- a56734f: feat (ai/core): export simulateReadableStream in ai package
|
8
|
+
- 9589601: feat (ai/core): support null delay in smoothStream
|
9
|
+
- e3cc23a: feat (ai/core): support regexp chunking pattern in smoothStream
|
10
|
+
- e463e73: feat (ai/core): support skipping delays in simulateReadableStream
|
11
|
+
|
12
|
+
## 4.0.26
|
13
|
+
|
14
|
+
### Patch Changes
|
15
|
+
|
16
|
+
- a8f3242: feat (ai/core): add line chunking mode to smoothStream
|
17
|
+
|
3
18
|
## 4.0.25
|
4
19
|
|
5
20
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
@@ -2151,16 +2151,19 @@ Details for all steps.
|
|
2151
2151
|
/**
|
2152
2152
|
* Smooths text streaming output.
|
2153
2153
|
*
|
2154
|
-
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms.
|
2154
|
+
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms. Can be set to `null` to skip the delay.
|
2155
|
+
* @param chunking - Controls how the text is chunked for streaming. Use "word" to stream word by word (default), "line" to stream line by line, or provide a custom RegExp pattern for custom chunking.
|
2156
|
+
*
|
2155
2157
|
* @returns A transform stream that smooths text streaming output.
|
2156
2158
|
*/
|
2157
|
-
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, _internal: { delay }, }?: {
|
2158
|
-
delayInMs?: number;
|
2159
|
+
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2160
|
+
delayInMs?: number | null;
|
2161
|
+
chunking?: 'word' | 'line' | RegExp;
|
2159
2162
|
/**
|
2160
2163
|
* Internal. For test use only. May change without notice.
|
2161
2164
|
*/
|
2162
2165
|
_internal?: {
|
2163
|
-
delay?: (delayInMs: number) => Promise<void>;
|
2166
|
+
delay?: (delayInMs: number | null) => Promise<void>;
|
2164
2167
|
};
|
2165
2168
|
}): (options: {
|
2166
2169
|
tools: TOOLS;
|
@@ -2281,6 +2284,24 @@ declare function experimental_createProviderRegistry(providers: Record<string, P
|
|
2281
2284
|
*/
|
2282
2285
|
declare function cosineSimilarity(vector1: number[], vector2: number[]): number;
|
2283
2286
|
|
2287
|
+
/**
|
2288
|
+
* Creates a ReadableStream that emits the provided values with an optional delay between each value.
|
2289
|
+
*
|
2290
|
+
* @param options - The configuration options
|
2291
|
+
* @param options.chunks - Array of values to be emitted by the stream
|
2292
|
+
* @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.
|
2293
|
+
* @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.
|
2294
|
+
* @returns A ReadableStream that emits the provided values
|
2295
|
+
*/
|
2296
|
+
declare function simulateReadableStream<T>({ chunks, initialDelayInMs, chunkDelayInMs, _internal, }: {
|
2297
|
+
chunks: T[];
|
2298
|
+
initialDelayInMs?: number | null;
|
2299
|
+
chunkDelayInMs?: number | null;
|
2300
|
+
_internal?: {
|
2301
|
+
delay?: (ms: number | null) => Promise<void>;
|
2302
|
+
};
|
2303
|
+
}): ReadableStream<T>;
|
2304
|
+
|
2284
2305
|
declare const symbol$9: unique symbol;
|
2285
2306
|
declare class InvalidArgumentError extends AISDKError {
|
2286
2307
|
private readonly [symbol$9];
|
@@ -2566,4 +2587,4 @@ declare namespace llamaindexAdapter {
|
|
2566
2587
|
};
|
2567
2588
|
}
|
2568
2589
|
|
2569
|
-
export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, ToolCallUnion as CoreToolCallUnion, CoreToolChoice, CoreToolMessage, ToolResultUnion as CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextResult, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MessageConversionError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RetryError, StepResult, StreamData, StreamObjectResult, StreamTextResult, TextPart, TextStreamPart, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createDataStream, createDataStreamResponse, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, generateObject, generateText, pipeDataStreamToResponse, smoothStream, streamObject, streamText, tool };
|
2590
|
+
export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, ToolCallUnion as CoreToolCallUnion, CoreToolChoice, CoreToolMessage, ToolResultUnion as CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextResult, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MessageConversionError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RetryError, StepResult, StreamData, StreamObjectResult, StreamTextResult, TextPart, TextStreamPart, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createDataStream, createDataStreamResponse, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, smoothStream, streamObject, streamText, tool };
|
package/dist/index.d.ts
CHANGED
@@ -2151,16 +2151,19 @@ Details for all steps.
|
|
2151
2151
|
/**
|
2152
2152
|
* Smooths text streaming output.
|
2153
2153
|
*
|
2154
|
-
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms.
|
2154
|
+
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms. Can be set to `null` to skip the delay.
|
2155
|
+
* @param chunking - Controls how the text is chunked for streaming. Use "word" to stream word by word (default), "line" to stream line by line, or provide a custom RegExp pattern for custom chunking.
|
2156
|
+
*
|
2155
2157
|
* @returns A transform stream that smooths text streaming output.
|
2156
2158
|
*/
|
2157
|
-
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, _internal: { delay }, }?: {
|
2158
|
-
delayInMs?: number;
|
2159
|
+
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2160
|
+
delayInMs?: number | null;
|
2161
|
+
chunking?: 'word' | 'line' | RegExp;
|
2159
2162
|
/**
|
2160
2163
|
* Internal. For test use only. May change without notice.
|
2161
2164
|
*/
|
2162
2165
|
_internal?: {
|
2163
|
-
delay?: (delayInMs: number) => Promise<void>;
|
2166
|
+
delay?: (delayInMs: number | null) => Promise<void>;
|
2164
2167
|
};
|
2165
2168
|
}): (options: {
|
2166
2169
|
tools: TOOLS;
|
@@ -2281,6 +2284,24 @@ declare function experimental_createProviderRegistry(providers: Record<string, P
|
|
2281
2284
|
*/
|
2282
2285
|
declare function cosineSimilarity(vector1: number[], vector2: number[]): number;
|
2283
2286
|
|
2287
|
+
/**
|
2288
|
+
* Creates a ReadableStream that emits the provided values with an optional delay between each value.
|
2289
|
+
*
|
2290
|
+
* @param options - The configuration options
|
2291
|
+
* @param options.chunks - Array of values to be emitted by the stream
|
2292
|
+
* @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.
|
2293
|
+
* @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.
|
2294
|
+
* @returns A ReadableStream that emits the provided values
|
2295
|
+
*/
|
2296
|
+
declare function simulateReadableStream<T>({ chunks, initialDelayInMs, chunkDelayInMs, _internal, }: {
|
2297
|
+
chunks: T[];
|
2298
|
+
initialDelayInMs?: number | null;
|
2299
|
+
chunkDelayInMs?: number | null;
|
2300
|
+
_internal?: {
|
2301
|
+
delay?: (ms: number | null) => Promise<void>;
|
2302
|
+
};
|
2303
|
+
}): ReadableStream<T>;
|
2304
|
+
|
2284
2305
|
declare const symbol$9: unique symbol;
|
2285
2306
|
declare class InvalidArgumentError extends AISDKError {
|
2286
2307
|
private readonly [symbol$9];
|
@@ -2566,4 +2587,4 @@ declare namespace llamaindexAdapter {
|
|
2566
2587
|
};
|
2567
2588
|
}
|
2568
2589
|
|
2569
|
-
export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, ToolCallUnion as CoreToolCallUnion, CoreToolChoice, CoreToolMessage, ToolResultUnion as CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextResult, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MessageConversionError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RetryError, StepResult, StreamData, StreamObjectResult, StreamTextResult, TextPart, TextStreamPart, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createDataStream, createDataStreamResponse, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, generateObject, generateText, pipeDataStreamToResponse, smoothStream, streamObject, streamText, tool };
|
2590
|
+
export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, ToolCallUnion as CoreToolCallUnion, CoreToolChoice, CoreToolMessage, ToolResultUnion as CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedImage as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextResult, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MessageConversionError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, RetryError, StepResult, StreamData, StreamObjectResult, StreamTextResult, TextPart, TextStreamPart, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createDataStream, createDataStreamResponse, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, smoothStream, streamObject, streamText, tool };
|
package/dist/index.js
CHANGED
@@ -70,6 +70,7 @@ __export(streams_exports, {
|
|
70
70
|
pipeDataStreamToResponse: () => pipeDataStreamToResponse,
|
71
71
|
processDataStream: () => import_ui_utils14.processDataStream,
|
72
72
|
processTextStream: () => import_ui_utils14.processTextStream,
|
73
|
+
simulateReadableStream: () => simulateReadableStream,
|
73
74
|
smoothStream: () => smoothStream,
|
74
75
|
streamObject: () => streamObject,
|
75
76
|
streamText: () => streamText,
|
@@ -289,7 +290,7 @@ var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
289
290
|
|
290
291
|
// util/delay.ts
|
291
292
|
async function delay(delayInMs) {
|
292
|
-
return delayInMs
|
293
|
+
return delayInMs == null ? Promise.resolve() : new Promise((resolve) => setTimeout(resolve, delayInMs));
|
293
294
|
}
|
294
295
|
|
295
296
|
// util/retry-error.ts
|
@@ -5347,37 +5348,50 @@ var DefaultStreamTextResult = class {
|
|
5347
5348
|
};
|
5348
5349
|
|
5349
5350
|
// core/generate-text/smooth-stream.ts
|
5351
|
+
var import_provider17 = require("@ai-sdk/provider");
|
5352
|
+
var CHUNKING_REGEXPS = {
|
5353
|
+
word: /\s*\S+\s+/m,
|
5354
|
+
line: /[^\n]*\n/m
|
5355
|
+
};
|
5350
5356
|
function smoothStream({
|
5351
5357
|
delayInMs = 10,
|
5358
|
+
chunking = "word",
|
5352
5359
|
_internal: { delay: delay2 = delay } = {}
|
5353
5360
|
} = {}) {
|
5354
|
-
|
5355
|
-
|
5356
|
-
|
5357
|
-
|
5358
|
-
|
5359
|
-
|
5360
|
-
|
5361
|
+
const chunkingRegexp = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
5362
|
+
if (chunkingRegexp == null) {
|
5363
|
+
throw new import_provider17.InvalidArgumentError({
|
5364
|
+
argument: "chunking",
|
5365
|
+
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
5366
|
+
});
|
5367
|
+
}
|
5368
|
+
return () => {
|
5369
|
+
let buffer = "";
|
5370
|
+
return new TransformStream({
|
5371
|
+
async transform(chunk, controller) {
|
5372
|
+
if (chunk.type === "step-finish") {
|
5373
|
+
if (buffer.length > 0) {
|
5374
|
+
controller.enqueue({ type: "text-delta", textDelta: buffer });
|
5375
|
+
buffer = "";
|
5376
|
+
}
|
5377
|
+
controller.enqueue(chunk);
|
5378
|
+
return;
|
5361
5379
|
}
|
5362
|
-
|
5363
|
-
|
5364
|
-
|
5365
|
-
|
5366
|
-
|
5367
|
-
|
5368
|
-
|
5369
|
-
|
5370
|
-
|
5371
|
-
|
5372
|
-
const chunk2 = buffer.match(regexp)[0];
|
5373
|
-
controller.enqueue({ type: "text-delta", textDelta: chunk2 });
|
5374
|
-
buffer = buffer.slice(chunk2.length);
|
5375
|
-
if (delayInMs > 0) {
|
5380
|
+
if (chunk.type !== "text-delta") {
|
5381
|
+
controller.enqueue(chunk);
|
5382
|
+
return;
|
5383
|
+
}
|
5384
|
+
buffer += chunk.textDelta;
|
5385
|
+
let match;
|
5386
|
+
while ((match = chunkingRegexp.exec(buffer)) != null) {
|
5387
|
+
const chunk2 = match[0];
|
5388
|
+
controller.enqueue({ type: "text-delta", textDelta: chunk2 });
|
5389
|
+
buffer = buffer.slice(chunk2.length);
|
5376
5390
|
await delay2(delayInMs);
|
5377
5391
|
}
|
5378
5392
|
}
|
5379
|
-
}
|
5380
|
-
}
|
5393
|
+
});
|
5394
|
+
};
|
5381
5395
|
}
|
5382
5396
|
|
5383
5397
|
// core/middleware/wrap-language-model.ts
|
@@ -5415,7 +5429,7 @@ var experimental_wrapLanguageModel = ({
|
|
5415
5429
|
};
|
5416
5430
|
|
5417
5431
|
// core/registry/custom-provider.ts
|
5418
|
-
var
|
5432
|
+
var import_provider18 = require("@ai-sdk/provider");
|
5419
5433
|
function experimental_customProvider({
|
5420
5434
|
languageModels,
|
5421
5435
|
textEmbeddingModels,
|
@@ -5429,7 +5443,7 @@ function experimental_customProvider({
|
|
5429
5443
|
if (fallbackProvider) {
|
5430
5444
|
return fallbackProvider.languageModel(modelId);
|
5431
5445
|
}
|
5432
|
-
throw new
|
5446
|
+
throw new import_provider18.NoSuchModelError({ modelId, modelType: "languageModel" });
|
5433
5447
|
},
|
5434
5448
|
textEmbeddingModel(modelId) {
|
5435
5449
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
@@ -5438,18 +5452,18 @@ function experimental_customProvider({
|
|
5438
5452
|
if (fallbackProvider) {
|
5439
5453
|
return fallbackProvider.textEmbeddingModel(modelId);
|
5440
5454
|
}
|
5441
|
-
throw new
|
5455
|
+
throw new import_provider18.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
5442
5456
|
}
|
5443
5457
|
};
|
5444
5458
|
}
|
5445
5459
|
|
5446
5460
|
// core/registry/no-such-provider-error.ts
|
5447
|
-
var
|
5461
|
+
var import_provider19 = require("@ai-sdk/provider");
|
5448
5462
|
var name13 = "AI_NoSuchProviderError";
|
5449
5463
|
var marker13 = `vercel.ai.error.${name13}`;
|
5450
5464
|
var symbol13 = Symbol.for(marker13);
|
5451
5465
|
var _a13;
|
5452
|
-
var NoSuchProviderError = class extends
|
5466
|
+
var NoSuchProviderError = class extends import_provider19.NoSuchModelError {
|
5453
5467
|
constructor({
|
5454
5468
|
modelId,
|
5455
5469
|
modelType,
|
@@ -5463,13 +5477,13 @@ var NoSuchProviderError = class extends import_provider18.NoSuchModelError {
|
|
5463
5477
|
this.availableProviders = availableProviders;
|
5464
5478
|
}
|
5465
5479
|
static isInstance(error) {
|
5466
|
-
return
|
5480
|
+
return import_provider19.AISDKError.hasMarker(error, marker13);
|
5467
5481
|
}
|
5468
5482
|
};
|
5469
5483
|
_a13 = symbol13;
|
5470
5484
|
|
5471
5485
|
// core/registry/provider-registry.ts
|
5472
|
-
var
|
5486
|
+
var import_provider20 = require("@ai-sdk/provider");
|
5473
5487
|
function experimental_createProviderRegistry(providers) {
|
5474
5488
|
const registry = new DefaultProviderRegistry();
|
5475
5489
|
for (const [id, provider] of Object.entries(providers)) {
|
@@ -5499,7 +5513,7 @@ var DefaultProviderRegistry = class {
|
|
5499
5513
|
splitId(id, modelType) {
|
5500
5514
|
const index = id.indexOf(":");
|
5501
5515
|
if (index === -1) {
|
5502
|
-
throw new
|
5516
|
+
throw new import_provider20.NoSuchModelError({
|
5503
5517
|
modelId: id,
|
5504
5518
|
modelType,
|
5505
5519
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId:modelId")`
|
@@ -5512,7 +5526,7 @@ var DefaultProviderRegistry = class {
|
|
5512
5526
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
5513
5527
|
const model = (_b = (_a14 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a14, modelId);
|
5514
5528
|
if (model == null) {
|
5515
|
-
throw new
|
5529
|
+
throw new import_provider20.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
5516
5530
|
}
|
5517
5531
|
return model;
|
5518
5532
|
}
|
@@ -5522,7 +5536,7 @@ var DefaultProviderRegistry = class {
|
|
5522
5536
|
const provider = this.getProvider(providerId);
|
5523
5537
|
const model = (_a14 = provider.textEmbeddingModel) == null ? void 0 : _a14.call(provider, modelId);
|
5524
5538
|
if (model == null) {
|
5525
|
-
throw new
|
5539
|
+
throw new import_provider20.NoSuchModelError({
|
5526
5540
|
modelId: id,
|
5527
5541
|
modelType: "textEmbeddingModel"
|
5528
5542
|
});
|
@@ -5561,6 +5575,28 @@ function magnitude(vector) {
|
|
5561
5575
|
return Math.sqrt(dotProduct(vector, vector));
|
5562
5576
|
}
|
5563
5577
|
|
5578
|
+
// core/util/simulate-readable-stream.ts
|
5579
|
+
function simulateReadableStream({
|
5580
|
+
chunks,
|
5581
|
+
initialDelayInMs = 0,
|
5582
|
+
chunkDelayInMs = 0,
|
5583
|
+
_internal
|
5584
|
+
}) {
|
5585
|
+
var _a14;
|
5586
|
+
const delay2 = (_a14 = _internal == null ? void 0 : _internal.delay) != null ? _a14 : delay;
|
5587
|
+
let index = 0;
|
5588
|
+
return new ReadableStream({
|
5589
|
+
async pull(controller) {
|
5590
|
+
if (index < chunks.length) {
|
5591
|
+
await delay2(index === 0 ? initialDelayInMs : chunkDelayInMs);
|
5592
|
+
controller.enqueue(chunks[index++]);
|
5593
|
+
} else {
|
5594
|
+
controller.close();
|
5595
|
+
}
|
5596
|
+
}
|
5597
|
+
});
|
5598
|
+
}
|
5599
|
+
|
5564
5600
|
// streams/assistant-response.ts
|
5565
5601
|
var import_ui_utils10 = require("@ai-sdk/ui-utils");
|
5566
5602
|
function AssistantResponse({ threadId, messageId }, process2) {
|
@@ -5945,6 +5981,7 @@ var StreamData = class {
|
|
5945
5981
|
pipeDataStreamToResponse,
|
5946
5982
|
processDataStream,
|
5947
5983
|
processTextStream,
|
5984
|
+
simulateReadableStream,
|
5948
5985
|
smoothStream,
|
5949
5986
|
streamObject,
|
5950
5987
|
streamText,
|