ai 4.0.34 → 4.0.36
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.mts +36 -30
- package/dist/index.d.ts +36 -30
- package/dist/index.js +50 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -50
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# ai
|
2
2
|
|
3
|
+
## 4.0.36
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Updated dependencies [37f4510]
|
8
|
+
- @ai-sdk/ui-utils@1.0.10
|
9
|
+
- @ai-sdk/react@1.0.11
|
10
|
+
|
11
|
+
## 4.0.35
|
12
|
+
|
13
|
+
### Patch Changes
|
14
|
+
|
15
|
+
- 3491f78: feat (ai/core): support multiple stream text transforms
|
16
|
+
|
3
17
|
## 4.0.34
|
4
18
|
|
5
19
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
@@ -2031,6 +2031,37 @@ type TextStreamPart<TOOLS extends Record<string, CoreTool>> = {
|
|
2031
2031
|
error: unknown;
|
2032
2032
|
};
|
2033
2033
|
|
2034
|
+
/**
|
2035
|
+
* Smooths text streaming output.
|
2036
|
+
*
|
2037
|
+
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms. Can be set to `null` to skip the delay.
|
2038
|
+
* @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.
|
2039
|
+
*
|
2040
|
+
* @returns A transform stream that smooths text streaming output.
|
2041
|
+
*/
|
2042
|
+
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2043
|
+
delayInMs?: number | null;
|
2044
|
+
chunking?: 'word' | 'line' | RegExp;
|
2045
|
+
/**
|
2046
|
+
* Internal. For test use only. May change without notice.
|
2047
|
+
*/
|
2048
|
+
_internal?: {
|
2049
|
+
delay?: (delayInMs: number | null) => Promise<void>;
|
2050
|
+
};
|
2051
|
+
}): (options: {
|
2052
|
+
tools: TOOLS;
|
2053
|
+
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2054
|
+
|
2055
|
+
/**
|
2056
|
+
A transformation that is applied to the stream.
|
2057
|
+
|
2058
|
+
@param stopStream - A function that stops the source stream.
|
2059
|
+
@param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.
|
2060
|
+
*/
|
2061
|
+
type StreamTextTransform<TOOLS extends Record<string, CoreTool>> = (options: {
|
2062
|
+
tools: TOOLS;
|
2063
|
+
stopStream: () => void;
|
2064
|
+
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2034
2065
|
/**
|
2035
2066
|
Generate a text and call tools for a given prompt using a language model.
|
2036
2067
|
|
@@ -2133,15 +2164,11 @@ Enable streaming of tool call deltas as they are generated. Disabled by default.
|
|
2133
2164
|
*/
|
2134
2165
|
experimental_toolCallStreaming?: boolean;
|
2135
2166
|
/**
|
2136
|
-
Optional
|
2137
|
-
|
2138
|
-
|
2139
|
-
@param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.
|
2167
|
+
Optional stream transformations.
|
2168
|
+
They are applied in the order they are provided.
|
2169
|
+
The stream transformations must maintain the stream structure for streamText to work correctly.
|
2140
2170
|
*/
|
2141
|
-
experimental_transform?:
|
2142
|
-
tools: TOOLS;
|
2143
|
-
stopStream: () => void;
|
2144
|
-
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2171
|
+
experimental_transform?: StreamTextTransform<TOOLS> | Array<StreamTextTransform<TOOLS>>;
|
2145
2172
|
/**
|
2146
2173
|
Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.
|
2147
2174
|
*/
|
@@ -2176,27 +2203,6 @@ Details for all steps.
|
|
2176
2203
|
};
|
2177
2204
|
}): StreamTextResult<TOOLS, PARTIAL_OUTPUT>;
|
2178
2205
|
|
2179
|
-
/**
|
2180
|
-
* Smooths text streaming output.
|
2181
|
-
*
|
2182
|
-
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms. Can be set to `null` to skip the delay.
|
2183
|
-
* @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.
|
2184
|
-
*
|
2185
|
-
* @returns A transform stream that smooths text streaming output.
|
2186
|
-
*/
|
2187
|
-
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2188
|
-
delayInMs?: number | null;
|
2189
|
-
chunking?: 'word' | 'line' | RegExp;
|
2190
|
-
/**
|
2191
|
-
* Internal. For test use only. May change without notice.
|
2192
|
-
*/
|
2193
|
-
_internal?: {
|
2194
|
-
delay?: (delayInMs: number | null) => Promise<void>;
|
2195
|
-
};
|
2196
|
-
}): (options: {
|
2197
|
-
tools: TOOLS;
|
2198
|
-
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2199
|
-
|
2200
2206
|
/**
|
2201
2207
|
* Experimental middleware for LanguageModelV1.
|
2202
2208
|
* This type defines the structure for middleware that can be used to modify
|
@@ -2617,4 +2623,4 @@ declare namespace llamaindexAdapter {
|
|
2617
2623
|
};
|
2618
2624
|
}
|
2619
2625
|
|
2620
|
-
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, ImageModel, ImageGenerationWarning as ImageModelCallWarning, 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 };
|
2626
|
+
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, ImageModel, ImageGenerationWarning as ImageModelCallWarning, 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, StreamTextTransform, 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
@@ -2031,6 +2031,37 @@ type TextStreamPart<TOOLS extends Record<string, CoreTool>> = {
|
|
2031
2031
|
error: unknown;
|
2032
2032
|
};
|
2033
2033
|
|
2034
|
+
/**
|
2035
|
+
* Smooths text streaming output.
|
2036
|
+
*
|
2037
|
+
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms. Can be set to `null` to skip the delay.
|
2038
|
+
* @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.
|
2039
|
+
*
|
2040
|
+
* @returns A transform stream that smooths text streaming output.
|
2041
|
+
*/
|
2042
|
+
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2043
|
+
delayInMs?: number | null;
|
2044
|
+
chunking?: 'word' | 'line' | RegExp;
|
2045
|
+
/**
|
2046
|
+
* Internal. For test use only. May change without notice.
|
2047
|
+
*/
|
2048
|
+
_internal?: {
|
2049
|
+
delay?: (delayInMs: number | null) => Promise<void>;
|
2050
|
+
};
|
2051
|
+
}): (options: {
|
2052
|
+
tools: TOOLS;
|
2053
|
+
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2054
|
+
|
2055
|
+
/**
|
2056
|
+
A transformation that is applied to the stream.
|
2057
|
+
|
2058
|
+
@param stopStream - A function that stops the source stream.
|
2059
|
+
@param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.
|
2060
|
+
*/
|
2061
|
+
type StreamTextTransform<TOOLS extends Record<string, CoreTool>> = (options: {
|
2062
|
+
tools: TOOLS;
|
2063
|
+
stopStream: () => void;
|
2064
|
+
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2034
2065
|
/**
|
2035
2066
|
Generate a text and call tools for a given prompt using a language model.
|
2036
2067
|
|
@@ -2133,15 +2164,11 @@ Enable streaming of tool call deltas as they are generated. Disabled by default.
|
|
2133
2164
|
*/
|
2134
2165
|
experimental_toolCallStreaming?: boolean;
|
2135
2166
|
/**
|
2136
|
-
Optional
|
2137
|
-
|
2138
|
-
|
2139
|
-
@param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.
|
2167
|
+
Optional stream transformations.
|
2168
|
+
They are applied in the order they are provided.
|
2169
|
+
The stream transformations must maintain the stream structure for streamText to work correctly.
|
2140
2170
|
*/
|
2141
|
-
experimental_transform?:
|
2142
|
-
tools: TOOLS;
|
2143
|
-
stopStream: () => void;
|
2144
|
-
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2171
|
+
experimental_transform?: StreamTextTransform<TOOLS> | Array<StreamTextTransform<TOOLS>>;
|
2145
2172
|
/**
|
2146
2173
|
Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.
|
2147
2174
|
*/
|
@@ -2176,27 +2203,6 @@ Details for all steps.
|
|
2176
2203
|
};
|
2177
2204
|
}): StreamTextResult<TOOLS, PARTIAL_OUTPUT>;
|
2178
2205
|
|
2179
|
-
/**
|
2180
|
-
* Smooths text streaming output.
|
2181
|
-
*
|
2182
|
-
* @param delayInMs - The delay in milliseconds between each chunk. Defaults to 10ms. Can be set to `null` to skip the delay.
|
2183
|
-
* @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.
|
2184
|
-
*
|
2185
|
-
* @returns A transform stream that smooths text streaming output.
|
2186
|
-
*/
|
2187
|
-
declare function smoothStream<TOOLS extends Record<string, CoreTool>>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2188
|
-
delayInMs?: number | null;
|
2189
|
-
chunking?: 'word' | 'line' | RegExp;
|
2190
|
-
/**
|
2191
|
-
* Internal. For test use only. May change without notice.
|
2192
|
-
*/
|
2193
|
-
_internal?: {
|
2194
|
-
delay?: (delayInMs: number | null) => Promise<void>;
|
2195
|
-
};
|
2196
|
-
}): (options: {
|
2197
|
-
tools: TOOLS;
|
2198
|
-
}) => TransformStream<TextStreamPart<TOOLS>, TextStreamPart<TOOLS>>;
|
2199
|
-
|
2200
2206
|
/**
|
2201
2207
|
* Experimental middleware for LanguageModelV1.
|
2202
2208
|
* This type defines the structure for middleware that can be used to modify
|
@@ -2617,4 +2623,4 @@ declare namespace llamaindexAdapter {
|
|
2617
2623
|
};
|
2618
2624
|
}
|
2619
2625
|
|
2620
|
-
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, ImageModel, ImageGenerationWarning as ImageModelCallWarning, 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 };
|
2626
|
+
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, ImageModel, ImageGenerationWarning as ImageModelCallWarning, 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, StreamTextTransform, 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
@@ -4144,6 +4144,53 @@ var object = ({
|
|
4144
4144
|
};
|
4145
4145
|
};
|
4146
4146
|
|
4147
|
+
// core/generate-text/smooth-stream.ts
|
4148
|
+
var import_provider17 = require("@ai-sdk/provider");
|
4149
|
+
var CHUNKING_REGEXPS = {
|
4150
|
+
word: /\s*\S+\s+/m,
|
4151
|
+
line: /[^\n]*\n/m
|
4152
|
+
};
|
4153
|
+
function smoothStream({
|
4154
|
+
delayInMs = 10,
|
4155
|
+
chunking = "word",
|
4156
|
+
_internal: { delay: delay2 = delay } = {}
|
4157
|
+
} = {}) {
|
4158
|
+
const chunkingRegexp = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
4159
|
+
if (chunkingRegexp == null) {
|
4160
|
+
throw new import_provider17.InvalidArgumentError({
|
4161
|
+
argument: "chunking",
|
4162
|
+
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
4163
|
+
});
|
4164
|
+
}
|
4165
|
+
return () => {
|
4166
|
+
let buffer = "";
|
4167
|
+
return new TransformStream({
|
4168
|
+
async transform(chunk, controller) {
|
4169
|
+
if (chunk.type === "step-finish") {
|
4170
|
+
if (buffer.length > 0) {
|
4171
|
+
controller.enqueue({ type: "text-delta", textDelta: buffer });
|
4172
|
+
buffer = "";
|
4173
|
+
}
|
4174
|
+
controller.enqueue(chunk);
|
4175
|
+
return;
|
4176
|
+
}
|
4177
|
+
if (chunk.type !== "text-delta") {
|
4178
|
+
controller.enqueue(chunk);
|
4179
|
+
return;
|
4180
|
+
}
|
4181
|
+
buffer += chunk.textDelta;
|
4182
|
+
let match;
|
4183
|
+
while ((match = chunkingRegexp.exec(buffer)) != null) {
|
4184
|
+
const chunk2 = match[0];
|
4185
|
+
controller.enqueue({ type: "text-delta", textDelta: chunk2 });
|
4186
|
+
buffer = buffer.slice(chunk2.length);
|
4187
|
+
await delay2(delayInMs);
|
4188
|
+
}
|
4189
|
+
}
|
4190
|
+
});
|
4191
|
+
};
|
4192
|
+
}
|
4193
|
+
|
4147
4194
|
// core/generate-text/stream-text.ts
|
4148
4195
|
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
4149
4196
|
var import_ui_utils8 = require("@ai-sdk/ui-utils");
|
@@ -4470,7 +4517,7 @@ function streamText({
|
|
4470
4517
|
tools,
|
4471
4518
|
toolChoice,
|
4472
4519
|
toolCallStreaming,
|
4473
|
-
transform,
|
4520
|
+
transforms: transform == null ? [] : Array.isArray(transform) ? transform : [transform],
|
4474
4521
|
activeTools,
|
4475
4522
|
repairToolCall,
|
4476
4523
|
maxSteps,
|
@@ -4550,7 +4597,7 @@ var DefaultStreamTextResult = class {
|
|
4550
4597
|
tools,
|
4551
4598
|
toolChoice,
|
4552
4599
|
toolCallStreaming,
|
4553
|
-
|
4600
|
+
transforms,
|
4554
4601
|
activeTools,
|
4555
4602
|
repairToolCall,
|
4556
4603
|
maxSteps,
|
@@ -4743,7 +4790,7 @@ var DefaultStreamTextResult = class {
|
|
4743
4790
|
this.addStream = stitchableStream.addStream;
|
4744
4791
|
this.closeStream = stitchableStream.close;
|
4745
4792
|
let stream = stitchableStream.stream;
|
4746
|
-
|
4793
|
+
for (const transform of transforms) {
|
4747
4794
|
stream = stream.pipeThrough(
|
4748
4795
|
transform({
|
4749
4796
|
tools,
|
@@ -5417,53 +5464,6 @@ var DefaultStreamTextResult = class {
|
|
5417
5464
|
}
|
5418
5465
|
};
|
5419
5466
|
|
5420
|
-
// core/generate-text/smooth-stream.ts
|
5421
|
-
var import_provider17 = require("@ai-sdk/provider");
|
5422
|
-
var CHUNKING_REGEXPS = {
|
5423
|
-
word: /\s*\S+\s+/m,
|
5424
|
-
line: /[^\n]*\n/m
|
5425
|
-
};
|
5426
|
-
function smoothStream({
|
5427
|
-
delayInMs = 10,
|
5428
|
-
chunking = "word",
|
5429
|
-
_internal: { delay: delay2 = delay } = {}
|
5430
|
-
} = {}) {
|
5431
|
-
const chunkingRegexp = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
5432
|
-
if (chunkingRegexp == null) {
|
5433
|
-
throw new import_provider17.InvalidArgumentError({
|
5434
|
-
argument: "chunking",
|
5435
|
-
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
5436
|
-
});
|
5437
|
-
}
|
5438
|
-
return () => {
|
5439
|
-
let buffer = "";
|
5440
|
-
return new TransformStream({
|
5441
|
-
async transform(chunk, controller) {
|
5442
|
-
if (chunk.type === "step-finish") {
|
5443
|
-
if (buffer.length > 0) {
|
5444
|
-
controller.enqueue({ type: "text-delta", textDelta: buffer });
|
5445
|
-
buffer = "";
|
5446
|
-
}
|
5447
|
-
controller.enqueue(chunk);
|
5448
|
-
return;
|
5449
|
-
}
|
5450
|
-
if (chunk.type !== "text-delta") {
|
5451
|
-
controller.enqueue(chunk);
|
5452
|
-
return;
|
5453
|
-
}
|
5454
|
-
buffer += chunk.textDelta;
|
5455
|
-
let match;
|
5456
|
-
while ((match = chunkingRegexp.exec(buffer)) != null) {
|
5457
|
-
const chunk2 = match[0];
|
5458
|
-
controller.enqueue({ type: "text-delta", textDelta: chunk2 });
|
5459
|
-
buffer = buffer.slice(chunk2.length);
|
5460
|
-
await delay2(delayInMs);
|
5461
|
-
}
|
5462
|
-
}
|
5463
|
-
});
|
5464
|
-
};
|
5465
|
-
}
|
5466
|
-
|
5467
5467
|
// core/middleware/wrap-language-model.ts
|
5468
5468
|
var experimental_wrapLanguageModel = ({
|
5469
5469
|
model,
|