ai 3.1.35 → 3.1.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1234,32 +1234,27 @@ declare class StreamTextResult<TOOLS extends Record<string, CoreTool>> {
1234
1234
  */
1235
1235
  declare const experimental_streamText: typeof streamText;
1236
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;
1237
+ declare class InvalidModelIdError extends Error {
1238
+ readonly id: string;
1239
+ constructor({ id, message, }: {
1240
+ id: string;
1241
+ message?: string;
1242
+ });
1243
+ static isInvalidModelIdError(error: unknown): error is InvalidModelIdError;
1244
+ toJSON(): {
1245
+ name: string;
1246
+ message: string;
1247
+ stack: string | undefined;
1248
+ id: string;
1249
+ };
1250
+ }
1258
1251
 
1259
1252
  declare class NoSuchModelError extends Error {
1260
1253
  readonly modelId: string;
1261
- constructor({ modelId, message, }: {
1254
+ readonly modelType: string;
1255
+ constructor({ modelId, modelType, message, }: {
1262
1256
  modelId: string;
1257
+ modelType: string;
1263
1258
  message?: string;
1264
1259
  });
1265
1260
  static isNoSuchModelError(error: unknown): error is NoSuchModelError;
@@ -1268,13 +1263,16 @@ declare class NoSuchModelError extends Error {
1268
1263
  message: string;
1269
1264
  stack: string | undefined;
1270
1265
  modelId: string;
1266
+ modelType: string;
1271
1267
  };
1272
1268
  }
1273
1269
 
1274
1270
  declare class NoSuchProviderError extends Error {
1275
1271
  readonly providerId: string;
1276
- constructor({ providerId, message, }: {
1272
+ readonly availableProviders: string[];
1273
+ constructor({ providerId, availableProviders, message, }: {
1277
1274
  providerId: string;
1275
+ availableProviders: string[];
1278
1276
  message?: string;
1279
1277
  });
1280
1278
  static isNoSuchProviderError(error: unknown): error is NoSuchProviderError;
@@ -1283,23 +1281,65 @@ declare class NoSuchProviderError extends Error {
1283
1281
  message: string;
1284
1282
  stack: string | undefined;
1285
1283
  providerId: string;
1284
+ availableProviders: string[];
1286
1285
  };
1287
1286
  }
1288
1287
 
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
- };
1288
+ /**
1289
+ Registry for managing models. It enables getting a model with a string id.
1290
+ */
1291
+ type experimental_ProviderRegistry = {
1292
+ /**
1293
+ Returns the language model with the given id in the format `providerId:modelId`.
1294
+ The model id is then passed to the provider function to get the model.
1295
+
1296
+ @param {string} id - The id of the model to return.
1297
+
1298
+ @throws {NoSuchModelError} If no model with the given id exists.
1299
+ @throws {NoSuchProviderError} If no provider with the given id exists.
1300
+
1301
+ @returns {LanguageModel} The language model associated with the id.
1302
+ */
1303
+ languageModel(id: string): LanguageModel;
1304
+ /**
1305
+ Returns the text embedding model with the given id in the format `providerId:modelId`.
1306
+ The model id is then passed to the provider function to get the model.
1307
+
1308
+ @param {string} id - The id of the model to return.
1309
+
1310
+ @throws {NoSuchModelError} If no model with the given id exists.
1311
+ @throws {NoSuchProviderError} If no provider with the given id exists.
1312
+
1313
+ @returns {LanguageModel} The language model associated with the id.
1314
+ */
1315
+ textEmbeddingModel(id: string): EmbeddingModel<string>;
1316
+ };
1317
+ /**
1318
+ * @deprecated Use `experimental_ProviderRegistry` instead.
1319
+ */
1320
+ type experimental_ModelRegistry = experimental_ProviderRegistry;
1321
+ /**
1322
+ * Provider for language and text embedding models. Compatible with the
1323
+ * provider registry.
1324
+ */
1325
+ interface Provider {
1326
+ /**
1327
+ * Returns a language model with the given id.
1328
+ */
1329
+ languageModel?: (modelId: string) => LanguageModel;
1330
+ /**
1331
+ * Returns a text embedding model with the given id.
1332
+ */
1333
+ textEmbedding?: (modelId: string) => EmbeddingModel<string>;
1302
1334
  }
1335
+ /**
1336
+ * Creates a registry for the given providers.
1337
+ */
1338
+ declare function experimental_createProviderRegistry(providers: Record<string, Provider>): experimental_ProviderRegistry;
1339
+ /**
1340
+ * @deprecated Use `experimental_createProviderRegistry` instead.
1341
+ */
1342
+ declare const experimental_createModelRegistry: typeof experimental_createProviderRegistry;
1303
1343
 
1304
1344
  /**
1305
1345
  * Calculates the cosine similarity between two vectors. This is a useful metric for
@@ -2041,4 +2081,4 @@ declare const generateId: (size?: number | undefined) => string;
2041
2081
  */
2042
2082
  declare const nanoid: (size?: number | undefined) => string;
2043
2083
 
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 };
2084
+ 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_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
package/dist/index.d.ts CHANGED
@@ -1234,32 +1234,27 @@ declare class StreamTextResult<TOOLS extends Record<string, CoreTool>> {
1234
1234
  */
1235
1235
  declare const experimental_streamText: typeof streamText;
1236
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;
1237
+ declare class InvalidModelIdError extends Error {
1238
+ readonly id: string;
1239
+ constructor({ id, message, }: {
1240
+ id: string;
1241
+ message?: string;
1242
+ });
1243
+ static isInvalidModelIdError(error: unknown): error is InvalidModelIdError;
1244
+ toJSON(): {
1245
+ name: string;
1246
+ message: string;
1247
+ stack: string | undefined;
1248
+ id: string;
1249
+ };
1250
+ }
1258
1251
 
1259
1252
  declare class NoSuchModelError extends Error {
1260
1253
  readonly modelId: string;
1261
- constructor({ modelId, message, }: {
1254
+ readonly modelType: string;
1255
+ constructor({ modelId, modelType, message, }: {
1262
1256
  modelId: string;
1257
+ modelType: string;
1263
1258
  message?: string;
1264
1259
  });
1265
1260
  static isNoSuchModelError(error: unknown): error is NoSuchModelError;
@@ -1268,13 +1263,16 @@ declare class NoSuchModelError extends Error {
1268
1263
  message: string;
1269
1264
  stack: string | undefined;
1270
1265
  modelId: string;
1266
+ modelType: string;
1271
1267
  };
1272
1268
  }
1273
1269
 
1274
1270
  declare class NoSuchProviderError extends Error {
1275
1271
  readonly providerId: string;
1276
- constructor({ providerId, message, }: {
1272
+ readonly availableProviders: string[];
1273
+ constructor({ providerId, availableProviders, message, }: {
1277
1274
  providerId: string;
1275
+ availableProviders: string[];
1278
1276
  message?: string;
1279
1277
  });
1280
1278
  static isNoSuchProviderError(error: unknown): error is NoSuchProviderError;
@@ -1283,23 +1281,65 @@ declare class NoSuchProviderError extends Error {
1283
1281
  message: string;
1284
1282
  stack: string | undefined;
1285
1283
  providerId: string;
1284
+ availableProviders: string[];
1286
1285
  };
1287
1286
  }
1288
1287
 
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
- };
1288
+ /**
1289
+ Registry for managing models. It enables getting a model with a string id.
1290
+ */
1291
+ type experimental_ProviderRegistry = {
1292
+ /**
1293
+ Returns the language model with the given id in the format `providerId:modelId`.
1294
+ The model id is then passed to the provider function to get the model.
1295
+
1296
+ @param {string} id - The id of the model to return.
1297
+
1298
+ @throws {NoSuchModelError} If no model with the given id exists.
1299
+ @throws {NoSuchProviderError} If no provider with the given id exists.
1300
+
1301
+ @returns {LanguageModel} The language model associated with the id.
1302
+ */
1303
+ languageModel(id: string): LanguageModel;
1304
+ /**
1305
+ Returns the text embedding model with the given id in the format `providerId:modelId`.
1306
+ The model id is then passed to the provider function to get the model.
1307
+
1308
+ @param {string} id - The id of the model to return.
1309
+
1310
+ @throws {NoSuchModelError} If no model with the given id exists.
1311
+ @throws {NoSuchProviderError} If no provider with the given id exists.
1312
+
1313
+ @returns {LanguageModel} The language model associated with the id.
1314
+ */
1315
+ textEmbeddingModel(id: string): EmbeddingModel<string>;
1316
+ };
1317
+ /**
1318
+ * @deprecated Use `experimental_ProviderRegistry` instead.
1319
+ */
1320
+ type experimental_ModelRegistry = experimental_ProviderRegistry;
1321
+ /**
1322
+ * Provider for language and text embedding models. Compatible with the
1323
+ * provider registry.
1324
+ */
1325
+ interface Provider {
1326
+ /**
1327
+ * Returns a language model with the given id.
1328
+ */
1329
+ languageModel?: (modelId: string) => LanguageModel;
1330
+ /**
1331
+ * Returns a text embedding model with the given id.
1332
+ */
1333
+ textEmbedding?: (modelId: string) => EmbeddingModel<string>;
1302
1334
  }
1335
+ /**
1336
+ * Creates a registry for the given providers.
1337
+ */
1338
+ declare function experimental_createProviderRegistry(providers: Record<string, Provider>): experimental_ProviderRegistry;
1339
+ /**
1340
+ * @deprecated Use `experimental_createProviderRegistry` instead.
1341
+ */
1342
+ declare const experimental_createModelRegistry: typeof experimental_createProviderRegistry;
1303
1343
 
1304
1344
  /**
1305
1345
  * Calculates the cosine similarity between two vectors. This is a useful metric for
@@ -2041,4 +2081,4 @@ declare const generateId: (size?: number | undefined) => string;
2041
2081
  */
2042
2082
  declare const nanoid: (size?: number | undefined) => string;
2043
2083
 
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 };
2084
+ 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_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
package/dist/index.js CHANGED
@@ -87,6 +87,7 @@ __export(streams_exports, {
87
87
  experimental_AssistantResponse: () => experimental_AssistantResponse,
88
88
  experimental_StreamData: () => experimental_StreamData,
89
89
  experimental_createModelRegistry: () => experimental_createModelRegistry,
90
+ experimental_createProviderRegistry: () => experimental_createProviderRegistry,
90
91
  experimental_generateObject: () => experimental_generateObject,
91
92
  experimental_generateText: () => experimental_generateText,
92
93
  experimental_streamObject: () => experimental_streamObject,
@@ -2158,21 +2159,24 @@ var InvalidModelIdError = class extends Error {
2158
2159
  var NoSuchModelError = class extends Error {
2159
2160
  constructor({
2160
2161
  modelId,
2161
- message = `No such model: ${modelId}`
2162
+ modelType,
2163
+ message = `No such ${modelType}: ${modelId}`
2162
2164
  }) {
2163
2165
  super(message);
2164
2166
  this.name = "AI_NoSuchModelError";
2165
2167
  this.modelId = modelId;
2168
+ this.modelType = modelType;
2166
2169
  }
2167
2170
  static isNoSuchModelError(error) {
2168
- return error instanceof Error && error.name === "AI_NoSuchModelError" && typeof error.modelId === "string";
2171
+ return error instanceof Error && error.name === "AI_NoSuchModelError" && typeof error.modelId === "string" && typeof error.modelType === "string";
2169
2172
  }
2170
2173
  toJSON() {
2171
2174
  return {
2172
2175
  name: this.name,
2173
2176
  message: this.message,
2174
2177
  stack: this.stack,
2175
- modelId: this.modelId
2178
+ modelId: this.modelId,
2179
+ modelType: this.modelType
2176
2180
  };
2177
2181
  }
2178
2182
  };
@@ -2181,75 +2185,78 @@ var NoSuchModelError = class extends Error {
2181
2185
  var NoSuchProviderError = class extends Error {
2182
2186
  constructor({
2183
2187
  providerId,
2184
- message = `No such provider: ${providerId}`
2188
+ availableProviders,
2189
+ message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
2185
2190
  }) {
2186
2191
  super(message);
2187
2192
  this.name = "AI_NoSuchProviderError";
2188
2193
  this.providerId = providerId;
2194
+ this.availableProviders = availableProviders;
2189
2195
  }
2190
2196
  static isNoSuchProviderError(error) {
2191
- return error instanceof Error && error.name === "AI_NoSuchProviderError" && typeof error.providerId === "string";
2197
+ return error instanceof Error && error.name === "AI_NoSuchProviderError" && typeof error.providerId === "string" && Array.isArray(error.availableProviders);
2192
2198
  }
2193
2199
  toJSON() {
2194
2200
  return {
2195
2201
  name: this.name,
2196
2202
  message: this.message,
2197
2203
  stack: this.stack,
2198
- providerId: this.providerId
2204
+ providerId: this.providerId,
2205
+ availableProviders: this.availableProviders
2199
2206
  };
2200
2207
  }
2201
2208
  };
2202
2209
 
2203
- // core/registry/model-registry.ts
2204
- function experimental_createModelRegistry(providers) {
2205
- const registry = new DefaultModelRegistry();
2210
+ // core/registry/provider-registry.ts
2211
+ function experimental_createProviderRegistry(providers) {
2212
+ const registry = new DefaultProviderRegistry();
2206
2213
  for (const [id, provider] of Object.entries(providers)) {
2207
- registry.registerLanguageModelProvider({ id, provider });
2214
+ registry.registerProvider({ id, provider });
2208
2215
  }
2209
2216
  return registry;
2210
2217
  }
2211
- var DefaultModelRegistry = class {
2218
+ var experimental_createModelRegistry = experimental_createProviderRegistry;
2219
+ var DefaultProviderRegistry = class {
2212
2220
  constructor() {
2213
- // Mapping of provider id to provider
2214
2221
  this.providers = {};
2215
2222
  }
2216
- /**
2217
- Registers a language model provider with a given id.
2218
-
2219
- @param {string} id - The id of the provider.
2220
- @param {(id: string) => LanguageModel} provider - The provider function to register.
2221
- */
2222
- registerLanguageModelProvider({
2223
- id,
2224
- provider
2225
- }) {
2223
+ registerProvider({ id, provider }) {
2226
2224
  this.providers[id] = provider;
2227
2225
  }
2228
- /**
2229
- Returns the language model with the given id.
2230
- The id can either be a registered model id or use a provider prefix.
2231
- Provider ids are separated from the model id by a colon: `providerId:modelId`.
2232
- The model id is then passed to the provider function to get the model.
2233
-
2234
- @param {string} id - The id of the model to return.
2235
-
2236
- @throws {NoSuchModelError} If no model with the given id exists.
2237
- @throws {NoSuchProviderError} If no provider with the given id exists.
2238
-
2239
- @returns {LanguageModel} The language model associated with the id.
2240
- */
2241
- languageModel(id) {
2226
+ getProvider(id) {
2227
+ const provider = this.providers[id];
2228
+ if (provider == null) {
2229
+ throw new NoSuchProviderError({
2230
+ providerId: id,
2231
+ availableProviders: Object.keys(this.providers)
2232
+ });
2233
+ }
2234
+ return provider;
2235
+ }
2236
+ splitId(id) {
2242
2237
  if (!id.includes(":")) {
2243
2238
  throw new InvalidModelIdError({ id });
2244
2239
  }
2245
- const [providerId, modelId] = id.split(":");
2246
- const provider = this.providers[providerId];
2247
- if (!provider) {
2248
- throw new NoSuchProviderError({ providerId });
2240
+ return id.split(":");
2241
+ }
2242
+ languageModel(id) {
2243
+ var _a, _b;
2244
+ const [providerId, modelId] = this.splitId(id);
2245
+ const model = (_b = (_a = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a, modelId);
2246
+ if (model == null) {
2247
+ throw new NoSuchModelError({ modelId: id, modelType: "language model" });
2249
2248
  }
2250
- const model = provider(modelId);
2251
- if (!model) {
2252
- throw new NoSuchModelError({ modelId: id });
2249
+ return model;
2250
+ }
2251
+ textEmbeddingModel(id) {
2252
+ var _a, _b;
2253
+ const [providerId, modelId] = this.splitId(id);
2254
+ const model = (_b = (_a = this.getProvider(providerId)).textEmbedding) == null ? void 0 : _b.call(_a, modelId);
2255
+ if (model == null) {
2256
+ throw new NoSuchModelError({
2257
+ modelId: id,
2258
+ modelType: "text embedding model"
2259
+ });
2253
2260
  }
2254
2261
  return model;
2255
2262
  }
@@ -3434,6 +3441,7 @@ var nanoid = import_provider_utils7.generateId;
3434
3441
  experimental_AssistantResponse,
3435
3442
  experimental_StreamData,
3436
3443
  experimental_createModelRegistry,
3444
+ experimental_createProviderRegistry,
3437
3445
  experimental_generateObject,
3438
3446
  experimental_generateText,
3439
3447
  experimental_streamObject,