ai 3.1.32 → 3.1.34
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/dist/index.d.mts +101 -2
- package/dist/index.d.ts +101 -2
- package/dist/index.js +188 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +182 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/rsc/dist/rsc-server.mjs +27 -3
- package/rsc/dist/rsc-server.mjs.map +1 -1
package/dist/index.d.mts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import { JSONValue, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
2
2
|
export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, parseComplexResponse, parseStreamPart, readDataStream } from '@ai-sdk/ui-utils';
|
3
|
-
export { generateId, generateId as nanoid } from '@ai-sdk/provider-utils';
|
4
3
|
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning } from '@ai-sdk/provider';
|
5
4
|
export { APICallError, EmptyResponseBodyError, InvalidArgumentError, InvalidDataContentError, InvalidPromptError, InvalidResponseDataError, InvalidToolArgumentsError, JSONParseError, LoadAPIKeyError, NoObjectGeneratedError, NoSuchToolError, RetryError, ToolCallParseError, TypeValidationError, UnsupportedFunctionalityError, UnsupportedJSONSchemaError } from '@ai-sdk/provider';
|
6
5
|
import { z } from 'zod';
|
@@ -835,6 +834,21 @@ declare function convertToCoreMessages(messages: Array<{
|
|
835
834
|
toolInvocations?: Array<ToolResult<string, unknown, unknown>>;
|
836
835
|
}>): CoreMessage[];
|
837
836
|
|
837
|
+
declare class InvalidMessageRoleError extends Error {
|
838
|
+
readonly role: string;
|
839
|
+
constructor({ role, message, }: {
|
840
|
+
role: string;
|
841
|
+
message?: string;
|
842
|
+
});
|
843
|
+
static isInvalidMessageRoleError(error: unknown): error is InvalidMessageRoleError;
|
844
|
+
toJSON(): {
|
845
|
+
name: string;
|
846
|
+
message: string;
|
847
|
+
stack: string | undefined;
|
848
|
+
role: string;
|
849
|
+
};
|
850
|
+
}
|
851
|
+
|
838
852
|
type ToToolCall<TOOLS extends Record<string, CoreTool>> = ValueOf<{
|
839
853
|
[NAME in keyof TOOLS]: {
|
840
854
|
type: 'tool-call';
|
@@ -1220,6 +1234,85 @@ declare class StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1220
1234
|
*/
|
1221
1235
|
declare const experimental_streamText: typeof streamText;
|
1222
1236
|
|
1237
|
+
/**
|
1238
|
+
Registry for managing models. It enables getting a model with a string id.
|
1239
|
+
*/
|
1240
|
+
type experimental_ModelRegistry = {
|
1241
|
+
/**
|
1242
|
+
Returns the language model with the given id in the format `providerId:modelId`.
|
1243
|
+
The model id is then passed to the provider function to get the model.
|
1244
|
+
|
1245
|
+
@param {string} id - The id of the model to return.
|
1246
|
+
|
1247
|
+
@throws {NoSuchModelError} If no model with the given id exists.
|
1248
|
+
@throws {NoSuchProviderError} If no provider with the given id exists.
|
1249
|
+
|
1250
|
+
@returns {LanguageModel} The language model associated with the id.
|
1251
|
+
*/
|
1252
|
+
languageModel(id: string): LanguageModel;
|
1253
|
+
};
|
1254
|
+
/**
|
1255
|
+
* Creates a model registry for the given providers.
|
1256
|
+
*/
|
1257
|
+
declare function experimental_createModelRegistry(providers: Record<string, (id: string) => LanguageModel>): experimental_ModelRegistry;
|
1258
|
+
|
1259
|
+
declare class NoSuchModelError extends Error {
|
1260
|
+
readonly modelId: string;
|
1261
|
+
constructor({ modelId, message, }: {
|
1262
|
+
modelId: string;
|
1263
|
+
message?: string;
|
1264
|
+
});
|
1265
|
+
static isNoSuchModelError(error: unknown): error is NoSuchModelError;
|
1266
|
+
toJSON(): {
|
1267
|
+
name: string;
|
1268
|
+
message: string;
|
1269
|
+
stack: string | undefined;
|
1270
|
+
modelId: string;
|
1271
|
+
};
|
1272
|
+
}
|
1273
|
+
|
1274
|
+
declare class NoSuchProviderError extends Error {
|
1275
|
+
readonly providerId: string;
|
1276
|
+
constructor({ providerId, message, }: {
|
1277
|
+
providerId: string;
|
1278
|
+
message?: string;
|
1279
|
+
});
|
1280
|
+
static isNoSuchProviderError(error: unknown): error is NoSuchProviderError;
|
1281
|
+
toJSON(): {
|
1282
|
+
name: string;
|
1283
|
+
message: string;
|
1284
|
+
stack: string | undefined;
|
1285
|
+
providerId: string;
|
1286
|
+
};
|
1287
|
+
}
|
1288
|
+
|
1289
|
+
declare class InvalidModelIdError extends Error {
|
1290
|
+
readonly id: string;
|
1291
|
+
constructor({ id, message, }: {
|
1292
|
+
id: string;
|
1293
|
+
message?: string;
|
1294
|
+
});
|
1295
|
+
static isInvalidModelIdError(error: unknown): error is InvalidModelIdError;
|
1296
|
+
toJSON(): {
|
1297
|
+
name: string;
|
1298
|
+
message: string;
|
1299
|
+
stack: string | undefined;
|
1300
|
+
id: string;
|
1301
|
+
};
|
1302
|
+
}
|
1303
|
+
|
1304
|
+
/**
|
1305
|
+
* Calculates the cosine similarity between two vectors. This is a useful metric for
|
1306
|
+
* comparing the similarity of two vectors such as embeddings.
|
1307
|
+
*
|
1308
|
+
* @param vector1 - The first vector.
|
1309
|
+
* @param vector2 - The second vector.
|
1310
|
+
*
|
1311
|
+
* @returns The cosine similarity between vector1 and vector2.
|
1312
|
+
* @throws {Error} If the vectors do not have the same length.
|
1313
|
+
*/
|
1314
|
+
declare function cosineSimilarity(vector1: number[], vector2: number[]): number;
|
1315
|
+
|
1223
1316
|
declare interface AzureChatCompletions {
|
1224
1317
|
id: string;
|
1225
1318
|
created: Date;
|
@@ -1942,4 +2035,10 @@ declare class StreamingTextResponse extends Response {
|
|
1942
2035
|
constructor(res: ReadableStream, init?: ResponseInit, data?: StreamData);
|
1943
2036
|
}
|
1944
2037
|
|
1945
|
-
|
2038
|
+
declare const generateId: (size?: number | undefined) => string;
|
2039
|
+
/**
|
2040
|
+
@deprecated Use `generateId` instead.
|
2041
|
+
*/
|
2042
|
+
declare const nanoid: (size?: number | undefined) => string;
|
2043
|
+
|
2044
|
+
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DeepPartial, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidMessageRoleError, InvalidModelIdError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LogProbs, MistralStream, NoSuchModelError, NoSuchProviderError, ObjectStreamInputPart, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, ReplicateStream, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertDataContentToBase64String, convertDataContentToUint8Array, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
package/dist/index.d.ts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import { JSONValue, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
2
2
|
export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, parseComplexResponse, parseStreamPart, readDataStream } from '@ai-sdk/ui-utils';
|
3
|
-
export { generateId, generateId as nanoid } from '@ai-sdk/provider-utils';
|
4
3
|
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning } from '@ai-sdk/provider';
|
5
4
|
export { APICallError, EmptyResponseBodyError, InvalidArgumentError, InvalidDataContentError, InvalidPromptError, InvalidResponseDataError, InvalidToolArgumentsError, JSONParseError, LoadAPIKeyError, NoObjectGeneratedError, NoSuchToolError, RetryError, ToolCallParseError, TypeValidationError, UnsupportedFunctionalityError, UnsupportedJSONSchemaError } from '@ai-sdk/provider';
|
6
5
|
import { z } from 'zod';
|
@@ -835,6 +834,21 @@ declare function convertToCoreMessages(messages: Array<{
|
|
835
834
|
toolInvocations?: Array<ToolResult<string, unknown, unknown>>;
|
836
835
|
}>): CoreMessage[];
|
837
836
|
|
837
|
+
declare class InvalidMessageRoleError extends Error {
|
838
|
+
readonly role: string;
|
839
|
+
constructor({ role, message, }: {
|
840
|
+
role: string;
|
841
|
+
message?: string;
|
842
|
+
});
|
843
|
+
static isInvalidMessageRoleError(error: unknown): error is InvalidMessageRoleError;
|
844
|
+
toJSON(): {
|
845
|
+
name: string;
|
846
|
+
message: string;
|
847
|
+
stack: string | undefined;
|
848
|
+
role: string;
|
849
|
+
};
|
850
|
+
}
|
851
|
+
|
838
852
|
type ToToolCall<TOOLS extends Record<string, CoreTool>> = ValueOf<{
|
839
853
|
[NAME in keyof TOOLS]: {
|
840
854
|
type: 'tool-call';
|
@@ -1220,6 +1234,85 @@ declare class StreamTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1220
1234
|
*/
|
1221
1235
|
declare const experimental_streamText: typeof streamText;
|
1222
1236
|
|
1237
|
+
/**
|
1238
|
+
Registry for managing models. It enables getting a model with a string id.
|
1239
|
+
*/
|
1240
|
+
type experimental_ModelRegistry = {
|
1241
|
+
/**
|
1242
|
+
Returns the language model with the given id in the format `providerId:modelId`.
|
1243
|
+
The model id is then passed to the provider function to get the model.
|
1244
|
+
|
1245
|
+
@param {string} id - The id of the model to return.
|
1246
|
+
|
1247
|
+
@throws {NoSuchModelError} If no model with the given id exists.
|
1248
|
+
@throws {NoSuchProviderError} If no provider with the given id exists.
|
1249
|
+
|
1250
|
+
@returns {LanguageModel} The language model associated with the id.
|
1251
|
+
*/
|
1252
|
+
languageModel(id: string): LanguageModel;
|
1253
|
+
};
|
1254
|
+
/**
|
1255
|
+
* Creates a model registry for the given providers.
|
1256
|
+
*/
|
1257
|
+
declare function experimental_createModelRegistry(providers: Record<string, (id: string) => LanguageModel>): experimental_ModelRegistry;
|
1258
|
+
|
1259
|
+
declare class NoSuchModelError extends Error {
|
1260
|
+
readonly modelId: string;
|
1261
|
+
constructor({ modelId, message, }: {
|
1262
|
+
modelId: string;
|
1263
|
+
message?: string;
|
1264
|
+
});
|
1265
|
+
static isNoSuchModelError(error: unknown): error is NoSuchModelError;
|
1266
|
+
toJSON(): {
|
1267
|
+
name: string;
|
1268
|
+
message: string;
|
1269
|
+
stack: string | undefined;
|
1270
|
+
modelId: string;
|
1271
|
+
};
|
1272
|
+
}
|
1273
|
+
|
1274
|
+
declare class NoSuchProviderError extends Error {
|
1275
|
+
readonly providerId: string;
|
1276
|
+
constructor({ providerId, message, }: {
|
1277
|
+
providerId: string;
|
1278
|
+
message?: string;
|
1279
|
+
});
|
1280
|
+
static isNoSuchProviderError(error: unknown): error is NoSuchProviderError;
|
1281
|
+
toJSON(): {
|
1282
|
+
name: string;
|
1283
|
+
message: string;
|
1284
|
+
stack: string | undefined;
|
1285
|
+
providerId: string;
|
1286
|
+
};
|
1287
|
+
}
|
1288
|
+
|
1289
|
+
declare class InvalidModelIdError extends Error {
|
1290
|
+
readonly id: string;
|
1291
|
+
constructor({ id, message, }: {
|
1292
|
+
id: string;
|
1293
|
+
message?: string;
|
1294
|
+
});
|
1295
|
+
static isInvalidModelIdError(error: unknown): error is InvalidModelIdError;
|
1296
|
+
toJSON(): {
|
1297
|
+
name: string;
|
1298
|
+
message: string;
|
1299
|
+
stack: string | undefined;
|
1300
|
+
id: string;
|
1301
|
+
};
|
1302
|
+
}
|
1303
|
+
|
1304
|
+
/**
|
1305
|
+
* Calculates the cosine similarity between two vectors. This is a useful metric for
|
1306
|
+
* comparing the similarity of two vectors such as embeddings.
|
1307
|
+
*
|
1308
|
+
* @param vector1 - The first vector.
|
1309
|
+
* @param vector2 - The second vector.
|
1310
|
+
*
|
1311
|
+
* @returns The cosine similarity between vector1 and vector2.
|
1312
|
+
* @throws {Error} If the vectors do not have the same length.
|
1313
|
+
*/
|
1314
|
+
declare function cosineSimilarity(vector1: number[], vector2: number[]): number;
|
1315
|
+
|
1223
1316
|
declare interface AzureChatCompletions {
|
1224
1317
|
id: string;
|
1225
1318
|
created: Date;
|
@@ -1942,4 +2035,10 @@ declare class StreamingTextResponse extends Response {
|
|
1942
2035
|
constructor(res: ReadableStream, init?: ResponseInit, data?: StreamData);
|
1943
2036
|
}
|
1944
2037
|
|
1945
|
-
|
2038
|
+
declare const generateId: (size?: number | undefined) => string;
|
2039
|
+
/**
|
2040
|
+
@deprecated Use `generateId` instead.
|
2041
|
+
*/
|
2042
|
+
declare const nanoid: (size?: number | undefined) => string;
|
2043
|
+
|
2044
|
+
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, DeepPartial, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidMessageRoleError, InvalidModelIdError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LogProbs, MistralStream, NoSuchModelError, NoSuchProviderError, ObjectStreamInputPart, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, ReplicateStream, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertDataContentToBase64String, convertDataContentToUint8Array, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
package/dist/index.js
CHANGED
@@ -50,6 +50,8 @@ __export(streams_exports, {
|
|
50
50
|
InkeepStream: () => InkeepStream,
|
51
51
|
InvalidArgumentError: () => import_provider8.InvalidArgumentError,
|
52
52
|
InvalidDataContentError: () => import_provider8.InvalidDataContentError,
|
53
|
+
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
54
|
+
InvalidModelIdError: () => InvalidModelIdError,
|
53
55
|
InvalidPromptError: () => import_provider8.InvalidPromptError,
|
54
56
|
InvalidResponseDataError: () => import_provider8.InvalidResponseDataError,
|
55
57
|
InvalidToolArgumentsError: () => import_provider8.InvalidToolArgumentsError,
|
@@ -59,6 +61,8 @@ __export(streams_exports, {
|
|
59
61
|
LoadAPIKeyError: () => import_provider8.LoadAPIKeyError,
|
60
62
|
MistralStream: () => MistralStream,
|
61
63
|
NoObjectGeneratedError: () => import_provider8.NoObjectGeneratedError,
|
64
|
+
NoSuchModelError: () => NoSuchModelError,
|
65
|
+
NoSuchProviderError: () => NoSuchProviderError,
|
62
66
|
NoSuchToolError: () => import_provider8.NoSuchToolError,
|
63
67
|
OpenAIStream: () => OpenAIStream,
|
64
68
|
ReplicateStream: () => ReplicateStream,
|
@@ -74,6 +78,7 @@ __export(streams_exports, {
|
|
74
78
|
convertDataContentToBase64String: () => convertDataContentToBase64String,
|
75
79
|
convertDataContentToUint8Array: () => convertDataContentToUint8Array,
|
76
80
|
convertToCoreMessages: () => convertToCoreMessages,
|
81
|
+
cosineSimilarity: () => cosineSimilarity,
|
77
82
|
createCallbacksTransformer: () => createCallbacksTransformer,
|
78
83
|
createEventStreamTransformer: () => createEventStreamTransformer,
|
79
84
|
createStreamDataTransformer: () => createStreamDataTransformer,
|
@@ -81,15 +86,16 @@ __export(streams_exports, {
|
|
81
86
|
embedMany: () => embedMany,
|
82
87
|
experimental_AssistantResponse: () => experimental_AssistantResponse,
|
83
88
|
experimental_StreamData: () => experimental_StreamData,
|
89
|
+
experimental_createModelRegistry: () => experimental_createModelRegistry,
|
84
90
|
experimental_generateObject: () => experimental_generateObject,
|
85
91
|
experimental_generateText: () => experimental_generateText,
|
86
92
|
experimental_streamObject: () => experimental_streamObject,
|
87
93
|
experimental_streamText: () => experimental_streamText,
|
88
94
|
formatStreamPart: () => import_ui_utils5.formatStreamPart,
|
89
|
-
generateId: () =>
|
95
|
+
generateId: () => generateId2,
|
90
96
|
generateObject: () => generateObject,
|
91
97
|
generateText: () => generateText,
|
92
|
-
nanoid: () =>
|
98
|
+
nanoid: () => nanoid,
|
93
99
|
parseComplexResponse: () => import_ui_utils5.parseComplexResponse,
|
94
100
|
parseStreamPart: () => import_ui_utils5.parseStreamPart,
|
95
101
|
readDataStream: () => import_ui_utils5.readDataStream,
|
@@ -303,6 +309,29 @@ function convertDataContentToUint8Array(content) {
|
|
303
309
|
throw new import_provider2.InvalidDataContentError({ content });
|
304
310
|
}
|
305
311
|
|
312
|
+
// core/prompt/invalid-message-role-error.ts
|
313
|
+
var InvalidMessageRoleError = class extends Error {
|
314
|
+
constructor({
|
315
|
+
role,
|
316
|
+
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
317
|
+
}) {
|
318
|
+
super(message);
|
319
|
+
this.name = "AI_InvalidMessageRoleError";
|
320
|
+
this.role = role;
|
321
|
+
}
|
322
|
+
static isInvalidMessageRoleError(error) {
|
323
|
+
return error instanceof Error && error.name === "AI_InvalidMessageRoleError" && typeof error.role === "string";
|
324
|
+
}
|
325
|
+
toJSON() {
|
326
|
+
return {
|
327
|
+
name: this.name,
|
328
|
+
message: this.message,
|
329
|
+
stack: this.stack,
|
330
|
+
role: this.role
|
331
|
+
};
|
332
|
+
}
|
333
|
+
};
|
334
|
+
|
306
335
|
// core/prompt/convert-to-language-model-prompt.ts
|
307
336
|
function convertToLanguageModelPrompt(prompt) {
|
308
337
|
const languageModelMessages = [];
|
@@ -332,7 +361,8 @@ function convertToLanguageModelPrompt(prompt) {
|
|
332
361
|
return languageModelMessages;
|
333
362
|
}
|
334
363
|
function convertToLanguageModelMessage(message) {
|
335
|
-
|
364
|
+
const role = message.role;
|
365
|
+
switch (role) {
|
336
366
|
case "system": {
|
337
367
|
return { role: "system", content: message.content };
|
338
368
|
}
|
@@ -391,8 +421,8 @@ function convertToLanguageModelMessage(message) {
|
|
391
421
|
return message;
|
392
422
|
}
|
393
423
|
default: {
|
394
|
-
const _exhaustiveCheck =
|
395
|
-
throw new
|
424
|
+
const _exhaustiveCheck = role;
|
425
|
+
throw new InvalidMessageRoleError({ role: _exhaustiveCheck });
|
396
426
|
}
|
397
427
|
}
|
398
428
|
}
|
@@ -2059,6 +2089,130 @@ function convertToCoreMessages(messages) {
|
|
2059
2089
|
return coreMessages;
|
2060
2090
|
}
|
2061
2091
|
|
2092
|
+
// core/registry/invalid-model-id-error.ts
|
2093
|
+
var InvalidModelIdError = class extends Error {
|
2094
|
+
constructor({
|
2095
|
+
id,
|
2096
|
+
message = `Invalid model id: ${id}`
|
2097
|
+
}) {
|
2098
|
+
super(message);
|
2099
|
+
this.name = "AI_InvalidModelIdError";
|
2100
|
+
this.id = id;
|
2101
|
+
}
|
2102
|
+
static isInvalidModelIdError(error) {
|
2103
|
+
return error instanceof Error && error.name === "AI_InvalidModelIdError" && typeof error.id === "string";
|
2104
|
+
}
|
2105
|
+
toJSON() {
|
2106
|
+
return {
|
2107
|
+
name: this.name,
|
2108
|
+
message: this.message,
|
2109
|
+
stack: this.stack,
|
2110
|
+
id: this.id
|
2111
|
+
};
|
2112
|
+
}
|
2113
|
+
};
|
2114
|
+
|
2115
|
+
// core/registry/no-such-model-error.ts
|
2116
|
+
var NoSuchModelError = class extends Error {
|
2117
|
+
constructor({
|
2118
|
+
modelId,
|
2119
|
+
message = `No such model: ${modelId}`
|
2120
|
+
}) {
|
2121
|
+
super(message);
|
2122
|
+
this.name = "AI_NoSuchModelError";
|
2123
|
+
this.modelId = modelId;
|
2124
|
+
}
|
2125
|
+
static isNoSuchModelError(error) {
|
2126
|
+
return error instanceof Error && error.name === "AI_NoSuchModelError" && typeof error.modelId === "string";
|
2127
|
+
}
|
2128
|
+
toJSON() {
|
2129
|
+
return {
|
2130
|
+
name: this.name,
|
2131
|
+
message: this.message,
|
2132
|
+
stack: this.stack,
|
2133
|
+
modelId: this.modelId
|
2134
|
+
};
|
2135
|
+
}
|
2136
|
+
};
|
2137
|
+
|
2138
|
+
// core/registry/no-such-provider-error.ts
|
2139
|
+
var NoSuchProviderError = class extends Error {
|
2140
|
+
constructor({
|
2141
|
+
providerId,
|
2142
|
+
message = `No such provider: ${providerId}`
|
2143
|
+
}) {
|
2144
|
+
super(message);
|
2145
|
+
this.name = "AI_NoSuchProviderError";
|
2146
|
+
this.providerId = providerId;
|
2147
|
+
}
|
2148
|
+
static isNoSuchProviderError(error) {
|
2149
|
+
return error instanceof Error && error.name === "AI_NoSuchProviderError" && typeof error.providerId === "string";
|
2150
|
+
}
|
2151
|
+
toJSON() {
|
2152
|
+
return {
|
2153
|
+
name: this.name,
|
2154
|
+
message: this.message,
|
2155
|
+
stack: this.stack,
|
2156
|
+
providerId: this.providerId
|
2157
|
+
};
|
2158
|
+
}
|
2159
|
+
};
|
2160
|
+
|
2161
|
+
// core/registry/model-registry.ts
|
2162
|
+
function experimental_createModelRegistry(providers) {
|
2163
|
+
const registry = new DefaultModelRegistry();
|
2164
|
+
for (const [id, provider] of Object.entries(providers)) {
|
2165
|
+
registry.registerLanguageModelProvider({ id, provider });
|
2166
|
+
}
|
2167
|
+
return registry;
|
2168
|
+
}
|
2169
|
+
var DefaultModelRegistry = class {
|
2170
|
+
constructor() {
|
2171
|
+
// Mapping of provider id to provider
|
2172
|
+
this.providers = {};
|
2173
|
+
}
|
2174
|
+
/**
|
2175
|
+
Registers a language model provider with a given id.
|
2176
|
+
|
2177
|
+
@param {string} id - The id of the provider.
|
2178
|
+
@param {(id: string) => LanguageModel} provider - The provider function to register.
|
2179
|
+
*/
|
2180
|
+
registerLanguageModelProvider({
|
2181
|
+
id,
|
2182
|
+
provider
|
2183
|
+
}) {
|
2184
|
+
this.providers[id] = provider;
|
2185
|
+
}
|
2186
|
+
/**
|
2187
|
+
Returns the language model with the given id.
|
2188
|
+
The id can either be a registered model id or use a provider prefix.
|
2189
|
+
Provider ids are separated from the model id by a colon: `providerId:modelId`.
|
2190
|
+
The model id is then passed to the provider function to get the model.
|
2191
|
+
|
2192
|
+
@param {string} id - The id of the model to return.
|
2193
|
+
|
2194
|
+
@throws {NoSuchModelError} If no model with the given id exists.
|
2195
|
+
@throws {NoSuchProviderError} If no provider with the given id exists.
|
2196
|
+
|
2197
|
+
@returns {LanguageModel} The language model associated with the id.
|
2198
|
+
*/
|
2199
|
+
languageModel(id) {
|
2200
|
+
if (!id.includes(":")) {
|
2201
|
+
throw new InvalidModelIdError({ id });
|
2202
|
+
}
|
2203
|
+
const [providerId, modelId] = id.split(":");
|
2204
|
+
const provider = this.providers[providerId];
|
2205
|
+
if (!provider) {
|
2206
|
+
throw new NoSuchProviderError({ providerId });
|
2207
|
+
}
|
2208
|
+
const model = provider(modelId);
|
2209
|
+
if (!model) {
|
2210
|
+
throw new NoSuchModelError({ modelId: id });
|
2211
|
+
}
|
2212
|
+
return model;
|
2213
|
+
}
|
2214
|
+
};
|
2215
|
+
|
2062
2216
|
// core/tool/tool.ts
|
2063
2217
|
function tool(tool2) {
|
2064
2218
|
return tool2;
|
@@ -2067,6 +2221,25 @@ function tool(tool2) {
|
|
2067
2221
|
// core/types/errors.ts
|
2068
2222
|
var import_provider8 = require("@ai-sdk/provider");
|
2069
2223
|
|
2224
|
+
// core/util/cosine-similarity.ts
|
2225
|
+
function cosineSimilarity(vector1, vector2) {
|
2226
|
+
if (vector1.length !== vector2.length) {
|
2227
|
+
throw new Error(
|
2228
|
+
`Vectors must have the same length (vector1: ${vector1.length} elements, vector2: ${vector2.length} elements)`
|
2229
|
+
);
|
2230
|
+
}
|
2231
|
+
return dotProduct(vector1, vector2) / (magnitude(vector1) * magnitude(vector2));
|
2232
|
+
}
|
2233
|
+
function dotProduct(vector1, vector2) {
|
2234
|
+
return vector1.reduce(
|
2235
|
+
(accumulator, value, index) => accumulator + value * vector2[index],
|
2236
|
+
0
|
2237
|
+
);
|
2238
|
+
}
|
2239
|
+
function magnitude(vector) {
|
2240
|
+
return Math.sqrt(dotProduct(vector, vector));
|
2241
|
+
}
|
2242
|
+
|
2070
2243
|
// streams/ai-stream.ts
|
2071
2244
|
var import_eventsource_parser = require("eventsource-parser");
|
2072
2245
|
function createEventStreamTransformer(customParser) {
|
@@ -3156,6 +3329,10 @@ var StreamingTextResponse = class extends Response {
|
|
3156
3329
|
});
|
3157
3330
|
}
|
3158
3331
|
};
|
3332
|
+
|
3333
|
+
// streams/index.ts
|
3334
|
+
var generateId2 = import_provider_utils6.generateId;
|
3335
|
+
var nanoid = import_provider_utils6.generateId;
|
3159
3336
|
// Annotate the CommonJS export names for ESM import in node:
|
3160
3337
|
0 && (module.exports = {
|
3161
3338
|
AIStream,
|
@@ -3178,6 +3355,8 @@ var StreamingTextResponse = class extends Response {
|
|
3178
3355
|
InkeepStream,
|
3179
3356
|
InvalidArgumentError,
|
3180
3357
|
InvalidDataContentError,
|
3358
|
+
InvalidMessageRoleError,
|
3359
|
+
InvalidModelIdError,
|
3181
3360
|
InvalidPromptError,
|
3182
3361
|
InvalidResponseDataError,
|
3183
3362
|
InvalidToolArgumentsError,
|
@@ -3187,6 +3366,8 @@ var StreamingTextResponse = class extends Response {
|
|
3187
3366
|
LoadAPIKeyError,
|
3188
3367
|
MistralStream,
|
3189
3368
|
NoObjectGeneratedError,
|
3369
|
+
NoSuchModelError,
|
3370
|
+
NoSuchProviderError,
|
3190
3371
|
NoSuchToolError,
|
3191
3372
|
OpenAIStream,
|
3192
3373
|
ReplicateStream,
|
@@ -3202,6 +3383,7 @@ var StreamingTextResponse = class extends Response {
|
|
3202
3383
|
convertDataContentToBase64String,
|
3203
3384
|
convertDataContentToUint8Array,
|
3204
3385
|
convertToCoreMessages,
|
3386
|
+
cosineSimilarity,
|
3205
3387
|
createCallbacksTransformer,
|
3206
3388
|
createEventStreamTransformer,
|
3207
3389
|
createStreamDataTransformer,
|
@@ -3209,6 +3391,7 @@ var StreamingTextResponse = class extends Response {
|
|
3209
3391
|
embedMany,
|
3210
3392
|
experimental_AssistantResponse,
|
3211
3393
|
experimental_StreamData,
|
3394
|
+
experimental_createModelRegistry,
|
3212
3395
|
experimental_generateObject,
|
3213
3396
|
experimental_generateText,
|
3214
3397
|
experimental_streamObject,
|