ai 3.3.27 → 3.3.29
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 +12 -0
- package/dist/index.d.mts +83 -21
- package/dist/index.d.ts +83 -21
- package/dist/index.js +117 -61
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +116 -61
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# ai
|
2
2
|
|
3
|
+
## 3.3.29
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 1e3dfd2: feat (ai/core): enhance pipeToData/TextStreamResponse methods
|
8
|
+
|
9
|
+
## 3.3.28
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- db61c53: feat (ai/core): middleware support
|
14
|
+
|
3
15
|
## 3.3.27
|
4
16
|
|
5
17
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import { Schema, DeepPartial, ToolInvocation, Attachment, JSONValue as JSONValue$1, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
2
2
|
export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DeepPartial, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, Schema, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, jsonSchema, parseStreamPart, processDataProtocolResponse, readDataStream } from '@ai-sdk/ui-utils';
|
3
3
|
import { AttributeValue } from '@opentelemetry/api';
|
4
|
-
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
|
5
|
-
export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
|
4
|
+
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, LanguageModelV1CallOptions, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
|
5
|
+
export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LanguageModelV1, LanguageModelV1CallOptions, LanguageModelV1Prompt, LanguageModelV1StreamPart, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
|
6
6
|
import { z } from 'zod';
|
7
7
|
import { ServerResponse } from 'http';
|
8
8
|
import { ServerResponse as ServerResponse$1 } from 'node:http';
|
@@ -870,19 +870,16 @@ interface StreamObjectResult<PARTIAL, RESULT, ELEMENT_STREAM> {
|
|
870
870
|
writes each text delta as a separate chunk.
|
871
871
|
|
872
872
|
@param response A Node.js response-like object (ServerResponse).
|
873
|
-
@param init Optional headers and status
|
873
|
+
@param init Optional headers, status code, and status text.
|
874
874
|
*/
|
875
|
-
pipeTextStreamToResponse(response: ServerResponse, init?:
|
876
|
-
headers?: Record<string, string>;
|
877
|
-
status?: number;
|
878
|
-
}): void;
|
875
|
+
pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit): void;
|
879
876
|
/**
|
880
877
|
Creates a simple text stream response.
|
881
878
|
The response has a `Content-Type` header set to `text/plain; charset=utf-8`.
|
882
879
|
Each text delta is encoded as UTF-8 and sent as a separate chunk.
|
883
880
|
Non-text-delta events are ignored.
|
884
881
|
|
885
|
-
@param init Optional headers and status
|
882
|
+
@param init Optional headers, status code, and status text.
|
886
883
|
*/
|
887
884
|
toTextStreamResponse(init?: ResponseInit): Response;
|
888
885
|
}
|
@@ -1541,15 +1538,15 @@ interface StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1541
1538
|
}): void;
|
1542
1539
|
/**
|
1543
1540
|
Writes data stream output to a Node.js response-like object.
|
1544
|
-
It sets a `Content-Type` header to `text/plain; charset=utf-8` and
|
1545
|
-
writes each data stream part as a separate chunk.
|
1546
1541
|
|
1547
1542
|
@param response A Node.js response-like object (ServerResponse).
|
1548
|
-
@param init
|
1543
|
+
@param options An object with an init property (ResponseInit) and a data property.
|
1544
|
+
You can also pass in a ResponseInit directly (deprecated).
|
1549
1545
|
*/
|
1550
|
-
pipeDataStreamToResponse(response: ServerResponse$1,
|
1551
|
-
|
1552
|
-
|
1546
|
+
pipeDataStreamToResponse(response: ServerResponse$1, options?: ResponseInit | {
|
1547
|
+
init?: ResponseInit;
|
1548
|
+
data?: StreamData;
|
1549
|
+
getErrorMessage?: (error: unknown) => string;
|
1553
1550
|
}): void;
|
1554
1551
|
/**
|
1555
1552
|
Writes text delta output to a Node.js response-like object.
|
@@ -1557,12 +1554,9 @@ interface StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1557
1554
|
writes each text delta as a separate chunk.
|
1558
1555
|
|
1559
1556
|
@param response A Node.js response-like object (ServerResponse).
|
1560
|
-
@param init Optional headers and status
|
1557
|
+
@param init Optional headers, status code, and status text.
|
1561
1558
|
*/
|
1562
|
-
pipeTextStreamToResponse(response: ServerResponse$1, init?:
|
1563
|
-
headers?: Record<string, string>;
|
1564
|
-
status?: number;
|
1565
|
-
}): void;
|
1559
|
+
pipeTextStreamToResponse(response: ServerResponse$1, init?: ResponseInit): void;
|
1566
1560
|
/**
|
1567
1561
|
Converts the result to a streamed response object with a stream data part stream.
|
1568
1562
|
It can be used with the `useChat` and `useCompletion` hooks.
|
@@ -1597,7 +1591,7 @@ interface StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1597
1591
|
Each text delta is encoded as UTF-8 and sent as a separate chunk.
|
1598
1592
|
Non-text-delta events are ignored.
|
1599
1593
|
|
1600
|
-
@param init Optional headers and status
|
1594
|
+
@param init Optional headers, status code, and status text.
|
1601
1595
|
*/
|
1602
1596
|
toTextStreamResponse(init?: ResponseInit): Response;
|
1603
1597
|
}
|
@@ -1789,6 +1783,72 @@ Callback that is called when the LLM response and all request tool executions
|
|
1789
1783
|
*/
|
1790
1784
|
declare const experimental_streamText: typeof streamText;
|
1791
1785
|
|
1786
|
+
/**
|
1787
|
+
* Experimental middleware for LanguageModelV1.
|
1788
|
+
* This type defines the structure for middleware that can be used to modify
|
1789
|
+
* the behavior of LanguageModelV1 operations.
|
1790
|
+
*/
|
1791
|
+
type Experimental_LanguageModelV1Middleware = {
|
1792
|
+
/**
|
1793
|
+
* Transforms the parameters before they are passed to the language model.
|
1794
|
+
* @param options - Object containing the type of operation and the parameters.
|
1795
|
+
* @param options.type - The type of operation ('generate' or 'stream').
|
1796
|
+
* @param options.params - The original parameters for the language model call.
|
1797
|
+
* @returns A promise that resolves to the transformed parameters.
|
1798
|
+
*/
|
1799
|
+
transformParams?: (options: {
|
1800
|
+
type: 'generate' | 'stream';
|
1801
|
+
params: LanguageModelV1CallOptions;
|
1802
|
+
}) => PromiseLike<LanguageModelV1CallOptions>;
|
1803
|
+
/**
|
1804
|
+
* Wraps the generate operation of the language model.
|
1805
|
+
* @param options - Object containing the generate function, parameters, and model.
|
1806
|
+
* @param options.doGenerate - The original generate function.
|
1807
|
+
* @param options.params - The parameters for the generate call. If the
|
1808
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
1809
|
+
* @param options.model - The language model instance.
|
1810
|
+
* @returns A promise that resolves to the result of the generate operation.
|
1811
|
+
*/
|
1812
|
+
wrapGenerate?: (options: {
|
1813
|
+
doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
|
1814
|
+
params: LanguageModelV1CallOptions;
|
1815
|
+
model: LanguageModelV1;
|
1816
|
+
}) => Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
|
1817
|
+
/**
|
1818
|
+
* Wraps the stream operation of the language model.
|
1819
|
+
* @param options - Object containing the stream function, parameters, and model.
|
1820
|
+
* @param options.doStream - The original stream function.
|
1821
|
+
* @param options.params - The parameters for the stream call. If the
|
1822
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
1823
|
+
* @param options.model - The language model instance.
|
1824
|
+
* @returns A promise that resolves to the result of the stream operation.
|
1825
|
+
*/
|
1826
|
+
wrapStream?: (options: {
|
1827
|
+
doStream: () => ReturnType<LanguageModelV1['doStream']>;
|
1828
|
+
params: LanguageModelV1CallOptions;
|
1829
|
+
model: LanguageModelV1;
|
1830
|
+
}) => PromiseLike<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
|
1831
|
+
};
|
1832
|
+
|
1833
|
+
/**
|
1834
|
+
* Wraps a LanguageModelV1 instance with middleware functionality.
|
1835
|
+
* This function allows you to apply middleware to transform parameters,
|
1836
|
+
* wrap generate operations, and wrap stream operations of a language model.
|
1837
|
+
*
|
1838
|
+
* @param options - Configuration options for wrapping the language model.
|
1839
|
+
* @param options.model - The original LanguageModelV1 instance to be wrapped.
|
1840
|
+
* @param options.middleware - The middleware to be applied to the language model.
|
1841
|
+
* @param options.modelId - Optional custom model ID to override the original model's ID.
|
1842
|
+
* @param options.providerId - Optional custom provider ID to override the original model's provider.
|
1843
|
+
* @returns A new LanguageModelV1 instance with middleware applied.
|
1844
|
+
*/
|
1845
|
+
declare const experimental_wrapLanguageModel: ({ model, middleware: { transformParams, wrapGenerate, wrapStream }, modelId, providerId, }: {
|
1846
|
+
model: LanguageModelV1;
|
1847
|
+
middleware: Experimental_LanguageModelV1Middleware;
|
1848
|
+
modelId?: string;
|
1849
|
+
providerId?: string;
|
1850
|
+
}) => LanguageModelV1;
|
1851
|
+
|
1792
1852
|
/**
|
1793
1853
|
* Creates a custom provider with specified language models, text embedding models, and an optional fallback provider.
|
1794
1854
|
*
|
@@ -2872,6 +2932,8 @@ declare function ReplicateStream(res: Prediction, cb?: AIStreamCallbacksAndOptio
|
|
2872
2932
|
|
2873
2933
|
/**
|
2874
2934
|
* A utility function to stream a ReadableStream to a Node.js response-like object.
|
2935
|
+
*
|
2936
|
+
* @deprecated Use `pipeDataStreamToResponse` (part of `StreamTextResult`) instead.
|
2875
2937
|
*/
|
2876
2938
|
declare function streamToResponse(res: ReadableStream, response: ServerResponse$1, init?: {
|
2877
2939
|
headers?: Record<string, string>;
|
@@ -2901,4 +2963,4 @@ declare const generateId: () => string;
|
|
2901
2963
|
*/
|
2902
2964
|
declare const nanoid: () => string;
|
2903
2965
|
|
2904
|
-
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
2966
|
+
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, Experimental_LanguageModelV1Middleware, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, experimental_wrapLanguageModel, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
package/dist/index.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import { Schema, DeepPartial, ToolInvocation, Attachment, JSONValue as JSONValue$1, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
2
2
|
export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DeepPartial, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, Schema, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, jsonSchema, parseStreamPart, processDataProtocolResponse, readDataStream } from '@ai-sdk/ui-utils';
|
3
3
|
import { AttributeValue } from '@opentelemetry/api';
|
4
|
-
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
|
5
|
-
export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
|
4
|
+
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1ProviderMetadata, JSONValue, LanguageModelV1CallOptions, NoSuchModelError, AISDKError } from '@ai-sdk/provider';
|
5
|
+
export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, LanguageModelV1, LanguageModelV1CallOptions, LanguageModelV1Prompt, LanguageModelV1StreamPart, LoadAPIKeyError, NoContentGeneratedError, NoSuchModelError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
|
6
6
|
import { z } from 'zod';
|
7
7
|
import { ServerResponse } from 'http';
|
8
8
|
import { ServerResponse as ServerResponse$1 } from 'node:http';
|
@@ -870,19 +870,16 @@ interface StreamObjectResult<PARTIAL, RESULT, ELEMENT_STREAM> {
|
|
870
870
|
writes each text delta as a separate chunk.
|
871
871
|
|
872
872
|
@param response A Node.js response-like object (ServerResponse).
|
873
|
-
@param init Optional headers and status
|
873
|
+
@param init Optional headers, status code, and status text.
|
874
874
|
*/
|
875
|
-
pipeTextStreamToResponse(response: ServerResponse, init?:
|
876
|
-
headers?: Record<string, string>;
|
877
|
-
status?: number;
|
878
|
-
}): void;
|
875
|
+
pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit): void;
|
879
876
|
/**
|
880
877
|
Creates a simple text stream response.
|
881
878
|
The response has a `Content-Type` header set to `text/plain; charset=utf-8`.
|
882
879
|
Each text delta is encoded as UTF-8 and sent as a separate chunk.
|
883
880
|
Non-text-delta events are ignored.
|
884
881
|
|
885
|
-
@param init Optional headers and status
|
882
|
+
@param init Optional headers, status code, and status text.
|
886
883
|
*/
|
887
884
|
toTextStreamResponse(init?: ResponseInit): Response;
|
888
885
|
}
|
@@ -1541,15 +1538,15 @@ interface StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1541
1538
|
}): void;
|
1542
1539
|
/**
|
1543
1540
|
Writes data stream output to a Node.js response-like object.
|
1544
|
-
It sets a `Content-Type` header to `text/plain; charset=utf-8` and
|
1545
|
-
writes each data stream part as a separate chunk.
|
1546
1541
|
|
1547
1542
|
@param response A Node.js response-like object (ServerResponse).
|
1548
|
-
@param init
|
1543
|
+
@param options An object with an init property (ResponseInit) and a data property.
|
1544
|
+
You can also pass in a ResponseInit directly (deprecated).
|
1549
1545
|
*/
|
1550
|
-
pipeDataStreamToResponse(response: ServerResponse$1,
|
1551
|
-
|
1552
|
-
|
1546
|
+
pipeDataStreamToResponse(response: ServerResponse$1, options?: ResponseInit | {
|
1547
|
+
init?: ResponseInit;
|
1548
|
+
data?: StreamData;
|
1549
|
+
getErrorMessage?: (error: unknown) => string;
|
1553
1550
|
}): void;
|
1554
1551
|
/**
|
1555
1552
|
Writes text delta output to a Node.js response-like object.
|
@@ -1557,12 +1554,9 @@ interface StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1557
1554
|
writes each text delta as a separate chunk.
|
1558
1555
|
|
1559
1556
|
@param response A Node.js response-like object (ServerResponse).
|
1560
|
-
@param init Optional headers and status
|
1557
|
+
@param init Optional headers, status code, and status text.
|
1561
1558
|
*/
|
1562
|
-
pipeTextStreamToResponse(response: ServerResponse$1, init?:
|
1563
|
-
headers?: Record<string, string>;
|
1564
|
-
status?: number;
|
1565
|
-
}): void;
|
1559
|
+
pipeTextStreamToResponse(response: ServerResponse$1, init?: ResponseInit): void;
|
1566
1560
|
/**
|
1567
1561
|
Converts the result to a streamed response object with a stream data part stream.
|
1568
1562
|
It can be used with the `useChat` and `useCompletion` hooks.
|
@@ -1597,7 +1591,7 @@ interface StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1597
1591
|
Each text delta is encoded as UTF-8 and sent as a separate chunk.
|
1598
1592
|
Non-text-delta events are ignored.
|
1599
1593
|
|
1600
|
-
@param init Optional headers and status
|
1594
|
+
@param init Optional headers, status code, and status text.
|
1601
1595
|
*/
|
1602
1596
|
toTextStreamResponse(init?: ResponseInit): Response;
|
1603
1597
|
}
|
@@ -1789,6 +1783,72 @@ Callback that is called when the LLM response and all request tool executions
|
|
1789
1783
|
*/
|
1790
1784
|
declare const experimental_streamText: typeof streamText;
|
1791
1785
|
|
1786
|
+
/**
|
1787
|
+
* Experimental middleware for LanguageModelV1.
|
1788
|
+
* This type defines the structure for middleware that can be used to modify
|
1789
|
+
* the behavior of LanguageModelV1 operations.
|
1790
|
+
*/
|
1791
|
+
type Experimental_LanguageModelV1Middleware = {
|
1792
|
+
/**
|
1793
|
+
* Transforms the parameters before they are passed to the language model.
|
1794
|
+
* @param options - Object containing the type of operation and the parameters.
|
1795
|
+
* @param options.type - The type of operation ('generate' or 'stream').
|
1796
|
+
* @param options.params - The original parameters for the language model call.
|
1797
|
+
* @returns A promise that resolves to the transformed parameters.
|
1798
|
+
*/
|
1799
|
+
transformParams?: (options: {
|
1800
|
+
type: 'generate' | 'stream';
|
1801
|
+
params: LanguageModelV1CallOptions;
|
1802
|
+
}) => PromiseLike<LanguageModelV1CallOptions>;
|
1803
|
+
/**
|
1804
|
+
* Wraps the generate operation of the language model.
|
1805
|
+
* @param options - Object containing the generate function, parameters, and model.
|
1806
|
+
* @param options.doGenerate - The original generate function.
|
1807
|
+
* @param options.params - The parameters for the generate call. If the
|
1808
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
1809
|
+
* @param options.model - The language model instance.
|
1810
|
+
* @returns A promise that resolves to the result of the generate operation.
|
1811
|
+
*/
|
1812
|
+
wrapGenerate?: (options: {
|
1813
|
+
doGenerate: () => ReturnType<LanguageModelV1['doGenerate']>;
|
1814
|
+
params: LanguageModelV1CallOptions;
|
1815
|
+
model: LanguageModelV1;
|
1816
|
+
}) => Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
|
1817
|
+
/**
|
1818
|
+
* Wraps the stream operation of the language model.
|
1819
|
+
* @param options - Object containing the stream function, parameters, and model.
|
1820
|
+
* @param options.doStream - The original stream function.
|
1821
|
+
* @param options.params - The parameters for the stream call. If the
|
1822
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
1823
|
+
* @param options.model - The language model instance.
|
1824
|
+
* @returns A promise that resolves to the result of the stream operation.
|
1825
|
+
*/
|
1826
|
+
wrapStream?: (options: {
|
1827
|
+
doStream: () => ReturnType<LanguageModelV1['doStream']>;
|
1828
|
+
params: LanguageModelV1CallOptions;
|
1829
|
+
model: LanguageModelV1;
|
1830
|
+
}) => PromiseLike<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
|
1831
|
+
};
|
1832
|
+
|
1833
|
+
/**
|
1834
|
+
* Wraps a LanguageModelV1 instance with middleware functionality.
|
1835
|
+
* This function allows you to apply middleware to transform parameters,
|
1836
|
+
* wrap generate operations, and wrap stream operations of a language model.
|
1837
|
+
*
|
1838
|
+
* @param options - Configuration options for wrapping the language model.
|
1839
|
+
* @param options.model - The original LanguageModelV1 instance to be wrapped.
|
1840
|
+
* @param options.middleware - The middleware to be applied to the language model.
|
1841
|
+
* @param options.modelId - Optional custom model ID to override the original model's ID.
|
1842
|
+
* @param options.providerId - Optional custom provider ID to override the original model's provider.
|
1843
|
+
* @returns A new LanguageModelV1 instance with middleware applied.
|
1844
|
+
*/
|
1845
|
+
declare const experimental_wrapLanguageModel: ({ model, middleware: { transformParams, wrapGenerate, wrapStream }, modelId, providerId, }: {
|
1846
|
+
model: LanguageModelV1;
|
1847
|
+
middleware: Experimental_LanguageModelV1Middleware;
|
1848
|
+
modelId?: string;
|
1849
|
+
providerId?: string;
|
1850
|
+
}) => LanguageModelV1;
|
1851
|
+
|
1792
1852
|
/**
|
1793
1853
|
* Creates a custom provider with specified language models, text embedding models, and an optional fallback provider.
|
1794
1854
|
*
|
@@ -2872,6 +2932,8 @@ declare function ReplicateStream(res: Prediction, cb?: AIStreamCallbacksAndOptio
|
|
2872
2932
|
|
2873
2933
|
/**
|
2874
2934
|
* A utility function to stream a ReadableStream to a Node.js response-like object.
|
2935
|
+
*
|
2936
|
+
* @deprecated Use `pipeDataStreamToResponse` (part of `StreamTextResult`) instead.
|
2875
2937
|
*/
|
2876
2938
|
declare function streamToResponse(res: ReadableStream, response: ServerResponse$1, init?: {
|
2877
2939
|
headers?: Record<string, string>;
|
@@ -2901,4 +2963,4 @@ declare const generateId: () => string;
|
|
2901
2963
|
*/
|
2902
2964
|
declare const nanoid: () => string;
|
2903
2965
|
|
2904
|
-
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
2966
|
+
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, Experimental_LanguageModelV1Middleware, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidToolArgumentsError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LanguageModelResponseMetadata, LanguageModelResponseMetadataWithHeaders, LanguageModelUsage, LogProbs, MessageConversionError, MistralStream, NoObjectGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, Provider, ProviderMetadata, ReplicateStream, RetryError, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_Provider, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_customProvider, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, experimental_wrapLanguageModel, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
package/dist/index.js
CHANGED
@@ -76,6 +76,7 @@ __export(streams_exports, {
|
|
76
76
|
experimental_generateText: () => experimental_generateText,
|
77
77
|
experimental_streamObject: () => experimental_streamObject,
|
78
78
|
experimental_streamText: () => experimental_streamText,
|
79
|
+
experimental_wrapLanguageModel: () => experimental_wrapLanguageModel,
|
79
80
|
formatStreamPart: () => import_ui_utils10.formatStreamPart,
|
80
81
|
generateId: () => generateId2,
|
81
82
|
generateObject: () => generateObject,
|
@@ -2151,6 +2152,55 @@ function now() {
|
|
2151
2152
|
|
2152
2153
|
// core/generate-object/stream-object.ts
|
2153
2154
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
2155
|
+
|
2156
|
+
// core/util/prepare-outgoing-http-headers.ts
|
2157
|
+
function prepareOutgoingHttpHeaders(init, {
|
2158
|
+
contentType,
|
2159
|
+
dataStreamVersion
|
2160
|
+
}) {
|
2161
|
+
const headers = {};
|
2162
|
+
if ((init == null ? void 0 : init.headers) != null) {
|
2163
|
+
for (const [key, value] of Object.entries(init.headers)) {
|
2164
|
+
headers[key] = value;
|
2165
|
+
}
|
2166
|
+
}
|
2167
|
+
if (headers["Content-Type"] == null) {
|
2168
|
+
headers["Content-Type"] = contentType;
|
2169
|
+
}
|
2170
|
+
if (dataStreamVersion !== void 0) {
|
2171
|
+
headers["X-Vercel-AI-Data-Stream"] = dataStreamVersion;
|
2172
|
+
}
|
2173
|
+
return headers;
|
2174
|
+
}
|
2175
|
+
|
2176
|
+
// core/util/write-to-server-response.ts
|
2177
|
+
function writeToServerResponse({
|
2178
|
+
response,
|
2179
|
+
status,
|
2180
|
+
statusText,
|
2181
|
+
headers,
|
2182
|
+
stream
|
2183
|
+
}) {
|
2184
|
+
response.writeHead(status != null ? status : 200, statusText, headers);
|
2185
|
+
const reader = stream.getReader();
|
2186
|
+
const read = async () => {
|
2187
|
+
try {
|
2188
|
+
while (true) {
|
2189
|
+
const { done, value } = await reader.read();
|
2190
|
+
if (done)
|
2191
|
+
break;
|
2192
|
+
response.write(value);
|
2193
|
+
}
|
2194
|
+
} catch (error) {
|
2195
|
+
throw error;
|
2196
|
+
} finally {
|
2197
|
+
response.end();
|
2198
|
+
}
|
2199
|
+
};
|
2200
|
+
read();
|
2201
|
+
}
|
2202
|
+
|
2203
|
+
// core/generate-object/stream-object.ts
|
2154
2204
|
var originalGenerateId2 = (0, import_provider_utils7.createIdGenerator)({ prefix: "aiobj-", length: 24 });
|
2155
2205
|
async function streamObject({
|
2156
2206
|
model,
|
@@ -2629,27 +2679,15 @@ var DefaultStreamObjectResult = class {
|
|
2629
2679
|
});
|
2630
2680
|
}
|
2631
2681
|
pipeTextStreamToResponse(response, init) {
|
2632
|
-
|
2633
|
-
|
2634
|
-
|
2635
|
-
|
2682
|
+
writeToServerResponse({
|
2683
|
+
response,
|
2684
|
+
status: init == null ? void 0 : init.status,
|
2685
|
+
statusText: init == null ? void 0 : init.statusText,
|
2686
|
+
headers: prepareOutgoingHttpHeaders(init, {
|
2687
|
+
contentType: "text/plain; charset=utf-8"
|
2688
|
+
}),
|
2689
|
+
stream: this.textStream.pipeThrough(new TextEncoderStream())
|
2636
2690
|
});
|
2637
|
-
const reader = this.textStream.pipeThrough(new TextEncoderStream()).getReader();
|
2638
|
-
const read = async () => {
|
2639
|
-
try {
|
2640
|
-
while (true) {
|
2641
|
-
const { done, value } = await reader.read();
|
2642
|
-
if (done)
|
2643
|
-
break;
|
2644
|
-
response.write(value);
|
2645
|
-
}
|
2646
|
-
} catch (error) {
|
2647
|
-
throw error;
|
2648
|
-
} finally {
|
2649
|
-
response.end();
|
2650
|
-
}
|
2651
|
-
};
|
2652
|
-
read();
|
2653
2691
|
}
|
2654
2692
|
toTextStreamResponse(init) {
|
2655
2693
|
var _a11;
|
@@ -4128,51 +4166,35 @@ var DefaultStreamTextResult = class {
|
|
4128
4166
|
pipeAIStreamToResponse(response, init) {
|
4129
4167
|
return this.pipeDataStreamToResponse(response, init);
|
4130
4168
|
}
|
4131
|
-
pipeDataStreamToResponse(response,
|
4132
|
-
|
4133
|
-
|
4134
|
-
"
|
4135
|
-
|
4136
|
-
});
|
4137
|
-
const reader = this.toDataStream().getReader();
|
4138
|
-
const read = async () => {
|
4139
|
-
try {
|
4140
|
-
while (true) {
|
4141
|
-
const { done, value } = await reader.read();
|
4142
|
-
if (done)
|
4143
|
-
break;
|
4144
|
-
response.write(value);
|
4145
|
-
}
|
4146
|
-
} catch (error) {
|
4147
|
-
throw error;
|
4148
|
-
} finally {
|
4149
|
-
response.end();
|
4150
|
-
}
|
4169
|
+
pipeDataStreamToResponse(response, options) {
|
4170
|
+
const init = options == null ? void 0 : "init" in options ? options.init : {
|
4171
|
+
headers: "headers" in options ? options.headers : void 0,
|
4172
|
+
status: "status" in options ? options.status : void 0,
|
4173
|
+
statusText: "statusText" in options ? options.statusText : void 0
|
4151
4174
|
};
|
4152
|
-
|
4175
|
+
const data = options == null ? void 0 : "data" in options ? options.data : void 0;
|
4176
|
+
const getErrorMessage4 = options == null ? void 0 : "getErrorMessage" in options ? options.getErrorMessage : void 0;
|
4177
|
+
writeToServerResponse({
|
4178
|
+
response,
|
4179
|
+
status: init == null ? void 0 : init.status,
|
4180
|
+
statusText: init == null ? void 0 : init.statusText,
|
4181
|
+
headers: prepareOutgoingHttpHeaders(init, {
|
4182
|
+
contentType: "text/plain; charset=utf-8",
|
4183
|
+
dataStreamVersion: "v1"
|
4184
|
+
}),
|
4185
|
+
stream: data ? mergeStreams(data.stream, this.toDataStream({ getErrorMessage: getErrorMessage4 })) : this.toDataStream({ getErrorMessage: getErrorMessage4 })
|
4186
|
+
});
|
4153
4187
|
}
|
4154
4188
|
pipeTextStreamToResponse(response, init) {
|
4155
|
-
|
4156
|
-
|
4157
|
-
|
4158
|
-
|
4189
|
+
writeToServerResponse({
|
4190
|
+
response,
|
4191
|
+
status: init == null ? void 0 : init.status,
|
4192
|
+
statusText: init == null ? void 0 : init.statusText,
|
4193
|
+
headers: prepareOutgoingHttpHeaders(init, {
|
4194
|
+
contentType: "text/plain; charset=utf-8"
|
4195
|
+
}),
|
4196
|
+
stream: this.textStream.pipeThrough(new TextEncoderStream())
|
4159
4197
|
});
|
4160
|
-
const reader = this.textStream.pipeThrough(new TextEncoderStream()).getReader();
|
4161
|
-
const read = async () => {
|
4162
|
-
try {
|
4163
|
-
while (true) {
|
4164
|
-
const { done, value } = await reader.read();
|
4165
|
-
if (done)
|
4166
|
-
break;
|
4167
|
-
response.write(value);
|
4168
|
-
}
|
4169
|
-
} catch (error) {
|
4170
|
-
throw error;
|
4171
|
-
} finally {
|
4172
|
-
response.end();
|
4173
|
-
}
|
4174
|
-
};
|
4175
|
-
read();
|
4176
4198
|
}
|
4177
4199
|
toAIStreamResponse(options) {
|
4178
4200
|
return this.toDataStreamResponse(options);
|
@@ -4208,6 +4230,39 @@ var DefaultStreamTextResult = class {
|
|
4208
4230
|
};
|
4209
4231
|
var experimental_streamText = streamText;
|
4210
4232
|
|
4233
|
+
// core/middleware/wrap-language-model.ts
|
4234
|
+
var experimental_wrapLanguageModel = ({
|
4235
|
+
model,
|
4236
|
+
middleware: { transformParams, wrapGenerate, wrapStream },
|
4237
|
+
modelId,
|
4238
|
+
providerId
|
4239
|
+
}) => {
|
4240
|
+
async function doTransform({
|
4241
|
+
params,
|
4242
|
+
type
|
4243
|
+
}) {
|
4244
|
+
return transformParams ? await transformParams({ params, type }) : params;
|
4245
|
+
}
|
4246
|
+
return {
|
4247
|
+
specificationVersion: "v1",
|
4248
|
+
provider: providerId != null ? providerId : model.provider,
|
4249
|
+
modelId: modelId != null ? modelId : model.modelId,
|
4250
|
+
defaultObjectGenerationMode: model.defaultObjectGenerationMode,
|
4251
|
+
supportsImageUrls: model.supportsImageUrls,
|
4252
|
+
supportsStructuredOutputs: model.supportsStructuredOutputs,
|
4253
|
+
async doGenerate(params) {
|
4254
|
+
const transformedParams = await doTransform({ params, type: "generate" });
|
4255
|
+
const doGenerate = async () => model.doGenerate(transformedParams);
|
4256
|
+
return wrapGenerate ? wrapGenerate({ doGenerate, params: transformedParams, model }) : doGenerate();
|
4257
|
+
},
|
4258
|
+
async doStream(params) {
|
4259
|
+
const transformedParams = await doTransform({ params, type: "stream" });
|
4260
|
+
const doStream = async () => model.doStream(transformedParams);
|
4261
|
+
return wrapStream ? wrapStream({ doStream, params: transformedParams, model }) : doStream();
|
4262
|
+
}
|
4263
|
+
};
|
4264
|
+
};
|
4265
|
+
|
4211
4266
|
// core/prompt/attachments-to-parts.ts
|
4212
4267
|
function attachmentsToParts(attachments) {
|
4213
4268
|
var _a11, _b, _c;
|
@@ -5639,6 +5694,7 @@ var nanoid = import_provider_utils11.generateId;
|
|
5639
5694
|
experimental_generateText,
|
5640
5695
|
experimental_streamObject,
|
5641
5696
|
experimental_streamText,
|
5697
|
+
experimental_wrapLanguageModel,
|
5642
5698
|
formatStreamPart,
|
5643
5699
|
generateId,
|
5644
5700
|
generateObject,
|