ai 4.2.11 → 4.3.1
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 +19 -0
- package/dist/index.d.mts +17 -3
- package/dist/index.d.ts +17 -3
- package/dist/index.js +62 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +62 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,24 @@
|
|
1
1
|
# ai
|
2
2
|
|
3
|
+
## 4.3.1
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 3d1bd38: feat(smooth-stream): chunking callbacks
|
8
|
+
|
9
|
+
## 4.3.0
|
10
|
+
|
11
|
+
### Minor Changes
|
12
|
+
|
13
|
+
- 772a2d7: feat (core): Add finishReason field to NoObjectGeneratedError
|
14
|
+
|
15
|
+
### Patch Changes
|
16
|
+
|
17
|
+
- Updated dependencies [2c19b9a]
|
18
|
+
- @ai-sdk/provider-utils@2.2.4
|
19
|
+
- @ai-sdk/react@1.2.6
|
20
|
+
- @ai-sdk/ui-utils@1.2.5
|
21
|
+
|
3
22
|
## 4.2.11
|
4
23
|
|
5
24
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
@@ -2254,6 +2254,7 @@ interface Output<OUTPUT, PARTIAL> {
|
|
2254
2254
|
}, context: {
|
2255
2255
|
response: LanguageModelResponseMetadata;
|
2256
2256
|
usage: LanguageModelUsage;
|
2257
|
+
finishReason: FinishReason;
|
2257
2258
|
}): OUTPUT;
|
2258
2259
|
}
|
2259
2260
|
declare const text: () => Output<string, string>;
|
@@ -2805,6 +2806,14 @@ type TextStreamPart<TOOLS extends ToolSet> = {
|
|
2805
2806
|
error: unknown;
|
2806
2807
|
};
|
2807
2808
|
|
2809
|
+
/**
|
2810
|
+
* Detects the first chunk in a buffer.
|
2811
|
+
*
|
2812
|
+
* @param buffer - The buffer to detect the first chunk in.
|
2813
|
+
*
|
2814
|
+
* @returns The first detected chunk, or `undefined` if no chunk was detected.
|
2815
|
+
*/
|
2816
|
+
type ChunkDetector = (buffer: string) => string | undefined | null;
|
2808
2817
|
/**
|
2809
2818
|
* Smooths text streaming output.
|
2810
2819
|
*
|
@@ -2815,7 +2824,7 @@ type TextStreamPart<TOOLS extends ToolSet> = {
|
|
2815
2824
|
*/
|
2816
2825
|
declare function smoothStream<TOOLS extends ToolSet>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2817
2826
|
delayInMs?: number | null;
|
2818
|
-
chunking?: 'word' | 'line' | RegExp;
|
2827
|
+
chunking?: 'word' | 'line' | RegExp | ChunkDetector;
|
2819
2828
|
/**
|
2820
2829
|
* Internal. For test use only. May change without notice.
|
2821
2830
|
*/
|
@@ -4114,12 +4123,17 @@ declare class NoObjectGeneratedError extends AISDKError {
|
|
4114
4123
|
The usage of the model.
|
4115
4124
|
*/
|
4116
4125
|
readonly usage: LanguageModelUsage | undefined;
|
4117
|
-
|
4126
|
+
/**
|
4127
|
+
Reason why the model finished generating a response.
|
4128
|
+
*/
|
4129
|
+
readonly finishReason: FinishReason | undefined;
|
4130
|
+
constructor({ message, cause, text, response, usage, finishReason, }: {
|
4118
4131
|
message?: string;
|
4119
4132
|
cause?: Error;
|
4120
4133
|
text?: string;
|
4121
4134
|
response: LanguageModelResponseMetadata;
|
4122
4135
|
usage: LanguageModelUsage;
|
4136
|
+
finishReason: FinishReason;
|
4123
4137
|
});
|
4124
4138
|
static isInstance(error: unknown): error is NoObjectGeneratedError;
|
4125
4139
|
}
|
@@ -4376,4 +4390,4 @@ declare namespace llamaindexAdapter {
|
|
4376
4390
|
};
|
4377
4391
|
}
|
4378
4392
|
|
4379
|
-
export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedFile, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, ProviderRegistryProvider, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
|
4393
|
+
export { AssistantContent, AssistantResponse, CallWarning, ChunkDetector, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedFile, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, ProviderRegistryProvider, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
|
package/dist/index.d.ts
CHANGED
@@ -2254,6 +2254,7 @@ interface Output<OUTPUT, PARTIAL> {
|
|
2254
2254
|
}, context: {
|
2255
2255
|
response: LanguageModelResponseMetadata;
|
2256
2256
|
usage: LanguageModelUsage;
|
2257
|
+
finishReason: FinishReason;
|
2257
2258
|
}): OUTPUT;
|
2258
2259
|
}
|
2259
2260
|
declare const text: () => Output<string, string>;
|
@@ -2805,6 +2806,14 @@ type TextStreamPart<TOOLS extends ToolSet> = {
|
|
2805
2806
|
error: unknown;
|
2806
2807
|
};
|
2807
2808
|
|
2809
|
+
/**
|
2810
|
+
* Detects the first chunk in a buffer.
|
2811
|
+
*
|
2812
|
+
* @param buffer - The buffer to detect the first chunk in.
|
2813
|
+
*
|
2814
|
+
* @returns The first detected chunk, or `undefined` if no chunk was detected.
|
2815
|
+
*/
|
2816
|
+
type ChunkDetector = (buffer: string) => string | undefined | null;
|
2808
2817
|
/**
|
2809
2818
|
* Smooths text streaming output.
|
2810
2819
|
*
|
@@ -2815,7 +2824,7 @@ type TextStreamPart<TOOLS extends ToolSet> = {
|
|
2815
2824
|
*/
|
2816
2825
|
declare function smoothStream<TOOLS extends ToolSet>({ delayInMs, chunking, _internal: { delay }, }?: {
|
2817
2826
|
delayInMs?: number | null;
|
2818
|
-
chunking?: 'word' | 'line' | RegExp;
|
2827
|
+
chunking?: 'word' | 'line' | RegExp | ChunkDetector;
|
2819
2828
|
/**
|
2820
2829
|
* Internal. For test use only. May change without notice.
|
2821
2830
|
*/
|
@@ -4114,12 +4123,17 @@ declare class NoObjectGeneratedError extends AISDKError {
|
|
4114
4123
|
The usage of the model.
|
4115
4124
|
*/
|
4116
4125
|
readonly usage: LanguageModelUsage | undefined;
|
4117
|
-
|
4126
|
+
/**
|
4127
|
+
Reason why the model finished generating a response.
|
4128
|
+
*/
|
4129
|
+
readonly finishReason: FinishReason | undefined;
|
4130
|
+
constructor({ message, cause, text, response, usage, finishReason, }: {
|
4118
4131
|
message?: string;
|
4119
4132
|
cause?: Error;
|
4120
4133
|
text?: string;
|
4121
4134
|
response: LanguageModelResponseMetadata;
|
4122
4135
|
usage: LanguageModelUsage;
|
4136
|
+
finishReason: FinishReason;
|
4123
4137
|
});
|
4124
4138
|
static isInstance(error: unknown): error is NoObjectGeneratedError;
|
4125
4139
|
}
|
@@ -4376,4 +4390,4 @@ declare namespace llamaindexAdapter {
|
|
4376
4390
|
};
|
4377
4391
|
}
|
4378
4392
|
|
4379
|
-
export { AssistantContent, AssistantResponse, CallWarning, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedFile, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, ProviderRegistryProvider, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
|
4393
|
+
export { AssistantContent, AssistantResponse, CallWarning, ChunkDetector, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolCallUnion, CoreToolChoice, CoreToolMessage, CoreToolResultUnion, CoreUserMessage, DataContent, DataStreamOptions, DataStreamWriter, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, Experimental_LanguageModelV1Middleware, FilePart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedFile, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelResponseMetadata, ImagePart, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolArgumentsError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, langchainAdapter as LangChainAdapter, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, LanguageModelV1Middleware, llamaindexAdapter as LlamaIndexAdapter, LogProbs, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, Provider, ProviderMetadata, ProviderRegistryProvider, RepairTextFunction, RetryError, StepResult, StreamData, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextPart, TextStreamPart, Tool, ToolCallPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolContent, ToolExecutionError, ToolExecutionOptions, ToolResultPart, ToolResultUnion, ToolSet, UserContent, appendClientMessage, appendResponseMessages, convertToCoreMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDataStream, createDataStreamResponse, createProviderRegistry, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, experimental_wrapLanguageModel, extractReasoningMiddleware, generateObject, generateText, pipeDataStreamToResponse, simulateReadableStream, simulateStreamingMiddleware, smoothStream, streamObject, streamText, tool, wrapLanguageModel };
|
package/dist/index.js
CHANGED
@@ -1115,13 +1115,15 @@ var NoObjectGeneratedError = class extends import_provider5.AISDKError {
|
|
1115
1115
|
cause,
|
1116
1116
|
text: text2,
|
1117
1117
|
response,
|
1118
|
-
usage
|
1118
|
+
usage,
|
1119
|
+
finishReason
|
1119
1120
|
}) {
|
1120
1121
|
super({ name: name4, message, cause });
|
1121
1122
|
this[_a4] = true;
|
1122
1123
|
this.text = text2;
|
1123
1124
|
this.response = response;
|
1124
1125
|
this.usage = usage;
|
1126
|
+
this.finishReason = finishReason;
|
1125
1127
|
}
|
1126
1128
|
static isInstance(error) {
|
1127
1129
|
return import_provider5.AISDKError.hasMarker(error, marker4);
|
@@ -2283,7 +2285,8 @@ var noSchemaOutputStrategy = {
|
|
2283
2285
|
message: "No object generated: response did not match schema.",
|
2284
2286
|
text: context.text,
|
2285
2287
|
response: context.response,
|
2286
|
-
usage: context.usage
|
2288
|
+
usage: context.usage,
|
2289
|
+
finishReason: context.finishReason
|
2287
2290
|
})
|
2288
2291
|
} : { success: true, value };
|
2289
2292
|
},
|
@@ -2780,7 +2783,8 @@ async function generateObject({
|
|
2780
2783
|
throw new NoObjectGeneratedError({
|
2781
2784
|
message: "No object generated: the model did not return a response.",
|
2782
2785
|
response: responseData,
|
2783
|
-
usage: calculateLanguageModelUsage(result2.usage)
|
2786
|
+
usage: calculateLanguageModelUsage(result2.usage),
|
2787
|
+
finishReason: result2.finishReason
|
2784
2788
|
});
|
2785
2789
|
}
|
2786
2790
|
span2.setAttributes(
|
@@ -2889,7 +2893,8 @@ async function generateObject({
|
|
2889
2893
|
throw new NoObjectGeneratedError({
|
2890
2894
|
message: "No object generated: the tool was not called.",
|
2891
2895
|
response: responseData,
|
2892
|
-
usage: calculateLanguageModelUsage(result2.usage)
|
2896
|
+
usage: calculateLanguageModelUsage(result2.usage),
|
2897
|
+
finishReason: result2.finishReason
|
2893
2898
|
});
|
2894
2899
|
}
|
2895
2900
|
span2.setAttributes(
|
@@ -2945,7 +2950,8 @@ async function generateObject({
|
|
2945
2950
|
cause: parseResult.error,
|
2946
2951
|
text: result2,
|
2947
2952
|
response,
|
2948
|
-
usage: calculateLanguageModelUsage(usage)
|
2953
|
+
usage: calculateLanguageModelUsage(usage),
|
2954
|
+
finishReason
|
2949
2955
|
});
|
2950
2956
|
}
|
2951
2957
|
const validationResult = outputStrategy.validateFinalResult(
|
@@ -2962,7 +2968,8 @@ async function generateObject({
|
|
2962
2968
|
cause: validationResult.error,
|
2963
2969
|
text: result2,
|
2964
2970
|
response,
|
2965
|
-
usage: calculateLanguageModelUsage(usage)
|
2971
|
+
usage: calculateLanguageModelUsage(usage),
|
2972
|
+
finishReason
|
2966
2973
|
});
|
2967
2974
|
}
|
2968
2975
|
return validationResult.value;
|
@@ -3567,7 +3574,8 @@ var DefaultStreamObjectResult = class {
|
|
3567
3574
|
cause: validationResult.error,
|
3568
3575
|
text: accumulatedText,
|
3569
3576
|
response,
|
3570
|
-
usage
|
3577
|
+
usage,
|
3578
|
+
finishReason
|
3571
3579
|
});
|
3572
3580
|
self.objectPromise.reject(error);
|
3573
3581
|
}
|
@@ -4395,7 +4403,11 @@ async function generateText({
|
|
4395
4403
|
}
|
4396
4404
|
return output.parseOutput(
|
4397
4405
|
{ text: text2 },
|
4398
|
-
{
|
4406
|
+
{
|
4407
|
+
response: currentModelResponse.response,
|
4408
|
+
usage,
|
4409
|
+
finishReason: currentModelResponse.finishReason
|
4410
|
+
}
|
4399
4411
|
);
|
4400
4412
|
},
|
4401
4413
|
toolCalls: currentToolCalls,
|
@@ -4640,7 +4652,8 @@ var object = ({
|
|
4640
4652
|
cause: parseResult.error,
|
4641
4653
|
text: text2,
|
4642
4654
|
response: context.response,
|
4643
|
-
usage: context.usage
|
4655
|
+
usage: context.usage,
|
4656
|
+
finishReason: context.finishReason
|
4644
4657
|
});
|
4645
4658
|
}
|
4646
4659
|
const validationResult = (0, import_provider_utils10.safeValidateTypes)({
|
@@ -4653,7 +4666,8 @@ var object = ({
|
|
4653
4666
|
cause: validationResult.error,
|
4654
4667
|
text: text2,
|
4655
4668
|
response: context.response,
|
4656
|
-
usage: context.usage
|
4669
|
+
usage: context.usage,
|
4670
|
+
finishReason: context.finishReason
|
4657
4671
|
});
|
4658
4672
|
}
|
4659
4673
|
return validationResult.value;
|
@@ -4662,23 +4676,49 @@ var object = ({
|
|
4662
4676
|
};
|
4663
4677
|
|
4664
4678
|
// core/generate-text/smooth-stream.ts
|
4665
|
-
var import_provider21 = require("@ai-sdk/provider");
|
4666
4679
|
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
4680
|
+
var import_provider21 = require("@ai-sdk/provider");
|
4667
4681
|
var CHUNKING_REGEXPS = {
|
4668
|
-
word: /\
|
4669
|
-
line:
|
4682
|
+
word: /\S+\s+/m,
|
4683
|
+
line: /\n+/m
|
4670
4684
|
};
|
4671
4685
|
function smoothStream({
|
4672
4686
|
delayInMs = 10,
|
4673
4687
|
chunking = "word",
|
4674
4688
|
_internal: { delay: delay2 = import_provider_utils11.delay } = {}
|
4675
4689
|
} = {}) {
|
4676
|
-
|
4677
|
-
if (
|
4678
|
-
|
4679
|
-
|
4680
|
-
|
4681
|
-
|
4690
|
+
let detectChunk;
|
4691
|
+
if (typeof chunking === "function") {
|
4692
|
+
detectChunk = (buffer) => {
|
4693
|
+
const match = chunking(buffer);
|
4694
|
+
if (match == null) {
|
4695
|
+
return null;
|
4696
|
+
}
|
4697
|
+
if (!match.length) {
|
4698
|
+
throw new Error(`Chunking function must return a non-empty string.`);
|
4699
|
+
}
|
4700
|
+
if (!buffer.startsWith(match)) {
|
4701
|
+
throw new Error(
|
4702
|
+
`Chunking function must return a match that is a prefix of the buffer. Received: "${match}" expected to start with "${buffer}"`
|
4703
|
+
);
|
4704
|
+
}
|
4705
|
+
return match;
|
4706
|
+
};
|
4707
|
+
} else {
|
4708
|
+
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
4709
|
+
if (chunkingRegex == null) {
|
4710
|
+
throw new import_provider21.InvalidArgumentError({
|
4711
|
+
argument: "chunking",
|
4712
|
+
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
4713
|
+
});
|
4714
|
+
}
|
4715
|
+
detectChunk = (buffer) => {
|
4716
|
+
const match = chunkingRegex.exec(buffer);
|
4717
|
+
if (!match) {
|
4718
|
+
return null;
|
4719
|
+
}
|
4720
|
+
return buffer.slice(0, match.index) + (match == null ? void 0 : match[0]);
|
4721
|
+
};
|
4682
4722
|
}
|
4683
4723
|
return () => {
|
4684
4724
|
let buffer = "";
|
@@ -4694,10 +4734,9 @@ function smoothStream({
|
|
4694
4734
|
}
|
4695
4735
|
buffer += chunk.textDelta;
|
4696
4736
|
let match;
|
4697
|
-
while ((match =
|
4698
|
-
|
4699
|
-
|
4700
|
-
buffer = buffer.slice(chunk2.length);
|
4737
|
+
while ((match = detectChunk(buffer)) != null) {
|
4738
|
+
controller.enqueue({ type: "text-delta", textDelta: match });
|
4739
|
+
buffer = buffer.slice(match.length);
|
4701
4740
|
await delay2(delayInMs);
|
4702
4741
|
}
|
4703
4742
|
}
|