ai 3.1.33 → 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 CHANGED
@@ -834,6 +834,21 @@ declare function convertToCoreMessages(messages: Array<{
834
834
  toolInvocations?: Array<ToolResult<string, unknown, unknown>>;
835
835
  }>): CoreMessage[];
836
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
+
837
852
  type ToToolCall<TOOLS extends Record<string, CoreTool>> = ValueOf<{
838
853
  [NAME in keyof TOOLS]: {
839
854
  type: 'tool-call';
@@ -1286,6 +1301,18 @@ declare class InvalidModelIdError extends Error {
1286
1301
  };
1287
1302
  }
1288
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
+
1289
1316
  declare interface AzureChatCompletions {
1290
1317
  id: string;
1291
1318
  created: Date;
@@ -2014,4 +2041,4 @@ declare const generateId: (size?: number | undefined) => string;
2014
2041
  */
2015
2042
  declare const nanoid: (size?: number | undefined) => string;
2016
2043
 
2017
- 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, 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, 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 };
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
@@ -834,6 +834,21 @@ declare function convertToCoreMessages(messages: Array<{
834
834
  toolInvocations?: Array<ToolResult<string, unknown, unknown>>;
835
835
  }>): CoreMessage[];
836
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
+
837
852
  type ToToolCall<TOOLS extends Record<string, CoreTool>> = ValueOf<{
838
853
  [NAME in keyof TOOLS]: {
839
854
  type: 'tool-call';
@@ -1286,6 +1301,18 @@ declare class InvalidModelIdError extends Error {
1286
1301
  };
1287
1302
  }
1288
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
+
1289
1316
  declare interface AzureChatCompletions {
1290
1317
  id: string;
1291
1318
  created: Date;
@@ -2014,4 +2041,4 @@ declare const generateId: (size?: number | undefined) => string;
2014
2041
  */
2015
2042
  declare const nanoid: (size?: number | undefined) => string;
2016
2043
 
2017
- 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, 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, 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 };
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,7 @@ __export(streams_exports, {
50
50
  InkeepStream: () => InkeepStream,
51
51
  InvalidArgumentError: () => import_provider8.InvalidArgumentError,
52
52
  InvalidDataContentError: () => import_provider8.InvalidDataContentError,
53
+ InvalidMessageRoleError: () => InvalidMessageRoleError,
53
54
  InvalidModelIdError: () => InvalidModelIdError,
54
55
  InvalidPromptError: () => import_provider8.InvalidPromptError,
55
56
  InvalidResponseDataError: () => import_provider8.InvalidResponseDataError,
@@ -77,6 +78,7 @@ __export(streams_exports, {
77
78
  convertDataContentToBase64String: () => convertDataContentToBase64String,
78
79
  convertDataContentToUint8Array: () => convertDataContentToUint8Array,
79
80
  convertToCoreMessages: () => convertToCoreMessages,
81
+ cosineSimilarity: () => cosineSimilarity,
80
82
  createCallbacksTransformer: () => createCallbacksTransformer,
81
83
  createEventStreamTransformer: () => createEventStreamTransformer,
82
84
  createStreamDataTransformer: () => createStreamDataTransformer,
@@ -307,6 +309,29 @@ function convertDataContentToUint8Array(content) {
307
309
  throw new import_provider2.InvalidDataContentError({ content });
308
310
  }
309
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
+
310
335
  // core/prompt/convert-to-language-model-prompt.ts
311
336
  function convertToLanguageModelPrompt(prompt) {
312
337
  const languageModelMessages = [];
@@ -336,7 +361,8 @@ function convertToLanguageModelPrompt(prompt) {
336
361
  return languageModelMessages;
337
362
  }
338
363
  function convertToLanguageModelMessage(message) {
339
- switch (message.role) {
364
+ const role = message.role;
365
+ switch (role) {
340
366
  case "system": {
341
367
  return { role: "system", content: message.content };
342
368
  }
@@ -395,8 +421,8 @@ function convertToLanguageModelMessage(message) {
395
421
  return message;
396
422
  }
397
423
  default: {
398
- const _exhaustiveCheck = message;
399
- throw new Error(`Unsupported message role: ${_exhaustiveCheck}`);
424
+ const _exhaustiveCheck = role;
425
+ throw new InvalidMessageRoleError({ role: _exhaustiveCheck });
400
426
  }
401
427
  }
402
428
  }
@@ -2195,6 +2221,25 @@ function tool(tool2) {
2195
2221
  // core/types/errors.ts
2196
2222
  var import_provider8 = require("@ai-sdk/provider");
2197
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
+
2198
2243
  // streams/ai-stream.ts
2199
2244
  var import_eventsource_parser = require("eventsource-parser");
2200
2245
  function createEventStreamTransformer(customParser) {
@@ -3310,6 +3355,7 @@ var nanoid = import_provider_utils6.generateId;
3310
3355
  InkeepStream,
3311
3356
  InvalidArgumentError,
3312
3357
  InvalidDataContentError,
3358
+ InvalidMessageRoleError,
3313
3359
  InvalidModelIdError,
3314
3360
  InvalidPromptError,
3315
3361
  InvalidResponseDataError,
@@ -3337,6 +3383,7 @@ var nanoid = import_provider_utils6.generateId;
3337
3383
  convertDataContentToBase64String,
3338
3384
  convertDataContentToUint8Array,
3339
3385
  convertToCoreMessages,
3386
+ cosineSimilarity,
3340
3387
  createCallbacksTransformer,
3341
3388
  createEventStreamTransformer,
3342
3389
  createStreamDataTransformer,