ai 6.0.0-beta.117 → 6.0.0-beta.119

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 CHANGED
@@ -1,5 +1,34 @@
1
1
  # ai
2
2
 
3
+ ## 6.0.0-beta.119
4
+
5
+ ### Patch Changes
6
+
7
+ - b59d924: feat(ai): support SystemModelMessage in system and instructions properties
8
+
9
+ ## 6.0.0-beta.118
10
+
11
+ ### Patch Changes
12
+
13
+ - 8d9e8ad: chore(provider): remove generics from EmbeddingModelV3
14
+
15
+ Before
16
+
17
+ ```ts
18
+ model.textEmbeddingModel('my-model-id');
19
+ ```
20
+
21
+ After
22
+
23
+ ```ts
24
+ model.embeddingModel('my-model-id');
25
+ ```
26
+
27
+ - Updated dependencies [8d9e8ad]
28
+ - @ai-sdk/provider@3.0.0-beta.19
29
+ - @ai-sdk/gateway@2.0.0-beta.63
30
+ - @ai-sdk/provider-utils@4.0.0-beta.36
31
+
3
32
  ## 6.0.0-beta.117
4
33
 
5
34
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { GatewayModelId } from '@ai-sdk/gateway';
2
2
  export { GatewayModelId, createGateway, gateway } from '@ai-sdk/gateway';
3
3
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
- import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, ModelMessage, SystemModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
4
+ import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, SystemModelMessage, ModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
5
5
  export { AssistantContent, AssistantModelMessage, DataContent, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
7
7
  import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, ImageModelV3, ImageModelV2, ImageModelV3CallWarning, ImageModelV2CallWarning, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, LanguageModelV3FinishReason, LanguageModelV3CallWarning, LanguageModelV3Source, LanguageModelV3Middleware, EmbeddingModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, SpeechModelV3CallWarning, TranscriptionModelV3, TranscriptionModelV2, TranscriptionModelV3CallWarning, LanguageModelV3Usage, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, JSONObject, SharedV3Warning, EmbeddingModelCallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
@@ -14,7 +14,7 @@ import { z } from 'zod/v4';
14
14
  /**
15
15
  Embedding model that is used by the AI SDK Core functions.
16
16
  */
17
- type EmbeddingModel<VALUE = string> = string | EmbeddingModelV3<VALUE> | EmbeddingModelV2<VALUE>;
17
+ type EmbeddingModel = string | EmbeddingModelV3 | EmbeddingModelV2<string>;
18
18
  /**
19
19
  Embedding.
20
20
  */
@@ -189,7 +189,7 @@ type Provider = {
189
189
 
190
190
  @throws {NoSuchModelError} If no such model exists.
191
191
  */
192
- textEmbeddingModel(modelId: string): EmbeddingModel<string>;
192
+ embeddingModel(modelId: string): EmbeddingModel;
193
193
  /**
194
194
  Returns the image model with the given id.
195
195
  The model id is then passed to the provider function to get the model.
@@ -911,7 +911,7 @@ type Prompt = {
911
911
  /**
912
912
  System message to include in the prompt. Can be used with `prompt` or `messages`.
913
913
  */
914
- system?: string;
914
+ system?: string | SystemModelMessage;
915
915
  } & ({
916
916
  /**
917
917
  A prompt. It can be either a text prompt or a list of messages.
@@ -1022,7 +1022,7 @@ type PrepareStepResult<TOOLS extends Record<string, Tool> = Record<string, Tool>
1022
1022
  model?: LanguageModel;
1023
1023
  toolChoice?: ToolChoice<NoInfer<TOOLS>>;
1024
1024
  activeTools?: Array<keyof NoInfer<TOOLS>>;
1025
- system?: string;
1025
+ system?: string | SystemModelMessage;
1026
1026
  messages?: Array<ModelMessage>;
1027
1027
  } | undefined;
1028
1028
 
@@ -1119,7 +1119,7 @@ declare const coreMessageSchema: z.ZodType<CoreMessage>;
1119
1119
  * @param options.error - The error that occurred while parsing the tool call.
1120
1120
  */
1121
1121
  type ToolCallRepairFunction<TOOLS extends ToolSet> = (options: {
1122
- system: string | undefined;
1122
+ system: string | SystemModelMessage | undefined;
1123
1123
  messages: ModelMessage[];
1124
1124
  toolCall: LanguageModelV3ToolCall;
1125
1125
  tools: TOOLS;
@@ -2683,8 +2683,10 @@ type ToolLoopAgentSettings<CALL_OPTIONS = never, TOOLS extends ToolSet = {}, OUT
2683
2683
  id?: string;
2684
2684
  /**
2685
2685
  * The instructions for the agent.
2686
+ *
2687
+ * It can be a string, or, if you need to pass additional provider options (e.g. for caching), a `SystemModelMessage`.
2686
2688
  */
2687
- instructions?: string;
2689
+ instructions?: string | SystemModelMessage;
2688
2690
  /**
2689
2691
  The language model to use.
2690
2692
  */
@@ -3521,11 +3523,11 @@ declare function pipeAgentUIStreamToResponse<CALL_OPTIONS = never, TOOLS extends
3521
3523
  The result of an `embed` call.
3522
3524
  It contains the embedding, the value, and additional information.
3523
3525
  */
3524
- interface EmbedResult<VALUE> {
3526
+ interface EmbedResult {
3525
3527
  /**
3526
3528
  The value that was embedded.
3527
3529
  */
3528
- readonly value: VALUE;
3530
+ readonly value: string;
3529
3531
  /**
3530
3532
  The embedding of the value.
3531
3533
  */
@@ -3565,15 +3567,15 @@ Embed a value using an embedding model. The type of the value is defined by the
3565
3567
 
3566
3568
  @returns A result object that contains the embedding, the value, and additional information.
3567
3569
  */
3568
- declare function embed<VALUE = string>({ model: modelArg, value, providerOptions, maxRetries: maxRetriesArg, abortSignal, headers, experimental_telemetry: telemetry, }: {
3570
+ declare function embed({ model: modelArg, value, providerOptions, maxRetries: maxRetriesArg, abortSignal, headers, experimental_telemetry: telemetry, }: {
3569
3571
  /**
3570
3572
  The embedding model to use.
3571
3573
  */
3572
- model: EmbeddingModel<VALUE>;
3574
+ model: EmbeddingModel;
3573
3575
  /**
3574
3576
  The value that should be embedded.
3575
3577
  */
3576
- value: VALUE;
3578
+ value: string;
3577
3579
  /**
3578
3580
  Maximum number of retries per embedding model call. Set to 0 to disable retries.
3579
3581
 
@@ -3599,17 +3601,17 @@ declare function embed<VALUE = string>({ model: modelArg, value, providerOptions
3599
3601
  * Optional telemetry configuration (experimental).
3600
3602
  */
3601
3603
  experimental_telemetry?: TelemetrySettings;
3602
- }): Promise<EmbedResult<VALUE>>;
3604
+ }): Promise<EmbedResult>;
3603
3605
 
3604
3606
  /**
3605
3607
  The result of a `embedMany` call.
3606
3608
  It contains the embeddings, the values, and additional information.
3607
3609
  */
3608
- interface EmbedManyResult<VALUE> {
3610
+ interface EmbedManyResult {
3609
3611
  /**
3610
3612
  The values that were embedded.
3611
3613
  */
3612
- readonly values: Array<VALUE>;
3614
+ readonly values: Array<string>;
3613
3615
  /**
3614
3616
  The embeddings. They are in the same order as the values.
3615
3617
  */
@@ -3653,15 +3655,15 @@ has a limit on how many embeddings can be generated in a single call.
3653
3655
 
3654
3656
  @returns A result object that contains the embeddings, the value, and additional information.
3655
3657
  */
3656
- declare function embedMany<VALUE = string>({ model: modelArg, values, maxParallelCalls, maxRetries: maxRetriesArg, abortSignal, headers, providerOptions, experimental_telemetry: telemetry, }: {
3658
+ declare function embedMany({ model: modelArg, values, maxParallelCalls, maxRetries: maxRetriesArg, abortSignal, headers, providerOptions, experimental_telemetry: telemetry, }: {
3657
3659
  /**
3658
3660
  The embedding model to use.
3659
3661
  */
3660
- model: EmbeddingModel<VALUE>;
3662
+ model: EmbeddingModel;
3661
3663
  /**
3662
3664
  The values that should be embedded.
3663
3665
  */
3664
- values: Array<VALUE>;
3666
+ values: Array<string>;
3665
3667
  /**
3666
3668
  Maximum number of retries per embedding model call. Set to 0 to disable retries.
3667
3669
 
@@ -3693,7 +3695,7 @@ declare function embedMany<VALUE = string>({ model: modelArg, values, maxParalle
3693
3695
  * @default Infinity
3694
3696
  */
3695
3697
  maxParallelCalls?: number;
3696
- }): Promise<EmbedManyResult<VALUE>>;
3698
+ }): Promise<EmbedManyResult>;
3697
3699
 
3698
3700
  declare const symbol$b: unique symbol;
3699
3701
  declare class InvalidArgumentError extends AISDKError {
@@ -4759,8 +4761,8 @@ type LogWarningsFunction = (options: {
4759
4761
  */
4760
4762
  declare function defaultEmbeddingSettingsMiddleware({ settings, }: {
4761
4763
  settings: Partial<{
4762
- headers?: EmbeddingModelCallOptions<string>['headers'];
4763
- providerOptions?: EmbeddingModelCallOptions<string>['providerOptions'];
4764
+ headers?: EmbeddingModelCallOptions['headers'];
4765
+ providerOptions?: EmbeddingModelCallOptions['providerOptions'];
4764
4766
  }>;
4765
4767
  }): EmbeddingModelMiddleware;
4766
4768
 
@@ -4836,11 +4838,11 @@ declare const wrapLanguageModel: ({ model, middleware: middlewareArg, modelId, p
4836
4838
  * @returns A new EmbeddingModelV3 instance with middleware applied.
4837
4839
  */
4838
4840
  declare const wrapEmbeddingModel: ({ model, middleware: middlewareArg, modelId, providerId, }: {
4839
- model: EmbeddingModelV3<string>;
4841
+ model: EmbeddingModelV3;
4840
4842
  middleware: EmbeddingModelMiddleware | EmbeddingModelMiddleware[];
4841
4843
  modelId?: string;
4842
4844
  providerId?: string;
4843
- }) => EmbeddingModelV3<string>;
4845
+ }) => EmbeddingModelV3;
4844
4846
 
4845
4847
  /**
4846
4848
  * Wraps a ProviderV3 instance with middleware functionality.
@@ -4863,19 +4865,19 @@ declare function wrapProvider({ provider, languageModelMiddleware, }: {
4863
4865
  *
4864
4866
  * @param {Object} options - The options for creating the custom provider.
4865
4867
  * @param {Record<string, LanguageModel>} [options.languageModels] - A record of language models, where keys are model IDs and values are LanguageModel instances.
4866
- * @param {Record<string, EmbeddingModel<string>>} [options.textEmbeddingModels] - A record of text embedding models, where keys are model IDs and values are EmbeddingModel<string> instances.
4868
+ * @param {Record<string, EmbeddingModel>} [options.embeddingModels] - A record of text embedding models, where keys are model IDs and values are EmbeddingModel instances.
4867
4869
  * @param {Record<string, ImageModel>} [options.imageModels] - A record of image models, where keys are model IDs and values are ImageModel instances.
4868
4870
  * @param {Record<string, TranscriptionModel>} [options.transcriptionModels] - A record of transcription models, where keys are model IDs and values are TranscriptionModel instances.
4869
4871
  * @param {Record<string, SpeechModel>} [options.speechModels] - A record of speech models, where keys are model IDs and values are SpeechModel instances.
4870
- * @param {Record<string, RerankingModel<string>>} [options.rerankingModels] - A record of reranking models, where keys are model IDs and values are RerankingModel<string> instances.
4872
+ * @param {Record<string, RerankingModel>} [options.rerankingModels] - A record of reranking models, where keys are model IDs and values are RerankingModel instances.
4871
4873
  * @param {Provider} [options.fallbackProvider] - An optional fallback provider to use when a requested model is not found in the custom provider.
4872
- * @returns {Provider} A Provider object with languageModel, textEmbeddingModel, imageModel, transcriptionModel, and speechModel methods.
4874
+ * @returns {Provider} A Provider object with languageModel, embeddingModel, imageModel, transcriptionModel, and speechModel methods.
4873
4875
  *
4874
4876
  * @throws {NoSuchModelError} Throws when a requested model is not found and no fallback provider is available.
4875
4877
  */
4876
- declare function customProvider<LANGUAGE_MODELS extends Record<string, LanguageModelV3>, EMBEDDING_MODELS extends Record<string, EmbeddingModelV3<string>>, IMAGE_MODELS extends Record<string, ImageModelV3>, TRANSCRIPTION_MODELS extends Record<string, TranscriptionModelV3>, SPEECH_MODELS extends Record<string, SpeechModelV3>, RERANKING_MODELS extends Record<string, RerankingModelV3>>({ languageModels, textEmbeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels, fallbackProvider: fallbackProviderArg, }: {
4878
+ declare function customProvider<LANGUAGE_MODELS extends Record<string, LanguageModelV3>, EMBEDDING_MODELS extends Record<string, EmbeddingModelV3>, IMAGE_MODELS extends Record<string, ImageModelV3>, TRANSCRIPTION_MODELS extends Record<string, TranscriptionModelV3>, SPEECH_MODELS extends Record<string, SpeechModelV3>, RERANKING_MODELS extends Record<string, RerankingModelV3>>({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels, fallbackProvider: fallbackProviderArg, }: {
4877
4879
  languageModels?: LANGUAGE_MODELS;
4878
- textEmbeddingModels?: EMBEDDING_MODELS;
4880
+ embeddingModels?: EMBEDDING_MODELS;
4879
4881
  imageModels?: IMAGE_MODELS;
4880
4882
  transcriptionModels?: TRANSCRIPTION_MODELS;
4881
4883
  speechModels?: SPEECH_MODELS;
@@ -4883,7 +4885,7 @@ declare function customProvider<LANGUAGE_MODELS extends Record<string, LanguageM
4883
4885
  fallbackProvider?: ProviderV3 | ProviderV2;
4884
4886
  }): ProviderV3 & {
4885
4887
  languageModel(modelId: ExtractModelId<LANGUAGE_MODELS>): LanguageModelV3;
4886
- textEmbeddingModel(modelId: ExtractModelId<EMBEDDING_MODELS>): EmbeddingModelV3<string>;
4888
+ embeddingModel(modelId: ExtractModelId<EMBEDDING_MODELS>): EmbeddingModelV3;
4887
4889
  imageModel(modelId: ExtractModelId<IMAGE_MODELS>): ImageModelV3;
4888
4890
  transcriptionModel(modelId: ExtractModelId<TRANSCRIPTION_MODELS>): TranscriptionModelV3;
4889
4891
  rerankingModel(modelId: ExtractModelId<RERANKING_MODELS>): RerankingModelV3;
@@ -4902,7 +4904,7 @@ declare class NoSuchProviderError extends NoSuchModelError {
4902
4904
  readonly availableProviders: string[];
4903
4905
  constructor({ modelId, modelType, providerId, availableProviders, message, }: {
4904
4906
  modelId: string;
4905
- modelType: 'languageModel' | 'textEmbeddingModel' | 'imageModel' | 'transcriptionModel' | 'speechModel' | 'rerankingModel';
4907
+ modelType: 'languageModel' | 'embeddingModel' | 'imageModel' | 'transcriptionModel' | 'speechModel' | 'rerankingModel';
4906
4908
  providerId: string;
4907
4909
  availableProviders: string[];
4908
4910
  message?: string;
@@ -4914,8 +4916,8 @@ type ExtractLiteralUnion<T> = T extends string ? string extends T ? never : T :
4914
4916
  interface ProviderRegistryProvider<PROVIDERS extends Record<string, ProviderV3> = Record<string, ProviderV3>, SEPARATOR extends string = ':'> {
4915
4917
  languageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['languageModel']>>[0]>}` : never): LanguageModelV3;
4916
4918
  languageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): LanguageModelV3;
4917
- textEmbeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['textEmbeddingModel']>>[0]>}` : never): EmbeddingModelV3<string>;
4918
- textEmbeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): EmbeddingModelV3<string>;
4919
+ embeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['embeddingModel']>>[0]>}` : never): EmbeddingModelV3;
4920
+ embeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): EmbeddingModelV3;
4919
4921
  imageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['imageModel']>>[0]>}` : never): ImageModelV3;
4920
4922
  imageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): ImageModelV3;
4921
4923
  transcriptionModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['transcriptionModel']>>[0]>}` : never): TranscriptionModelV3;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { GatewayModelId } from '@ai-sdk/gateway';
2
2
  export { GatewayModelId, createGateway, gateway } from '@ai-sdk/gateway';
3
3
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
4
- import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, ModelMessage, SystemModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
4
+ import { Tool, InferToolInput, InferToolOutput, FlexibleSchema, InferSchema, AssistantModelMessage, ToolModelMessage, ReasoningPart, SystemModelMessage, ModelMessage, UserModelMessage, ProviderOptions, IdGenerator, ToolCall, MaybePromiseLike, TextPart, FilePart, Resolvable, FetchFunction, DataContent } from '@ai-sdk/provider-utils';
5
5
  export { AssistantContent, AssistantModelMessage, DataContent, FilePart, FlexibleSchema, IdGenerator, ImagePart, InferSchema, InferToolInput, InferToolOutput, ModelMessage, Schema, SystemModelMessage, TextPart, Tool, ToolApprovalRequest, ToolApprovalResponse, ToolCallOptions, ToolCallPart, ToolContent, ToolExecuteFunction, ToolModelMessage, ToolResultPart, UserContent, UserModelMessage, asSchema, createIdGenerator, dynamicTool, generateId, jsonSchema, parseJsonEventStream, tool, zodSchema } from '@ai-sdk/provider-utils';
6
6
  import * as _ai_sdk_provider from '@ai-sdk/provider';
7
7
  import { EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV3Embedding, ImageModelV3, ImageModelV2, ImageModelV3CallWarning, ImageModelV2CallWarning, ImageModelV3ProviderMetadata, ImageModelV2ProviderMetadata, JSONValue as JSONValue$1, LanguageModelV3, LanguageModelV2, LanguageModelV3FinishReason, LanguageModelV3CallWarning, LanguageModelV3Source, LanguageModelV3Middleware, EmbeddingModelV3Middleware, RerankingModelV3, SharedV3ProviderMetadata, SpeechModelV3, SpeechModelV2, SpeechModelV3CallWarning, TranscriptionModelV3, TranscriptionModelV2, TranscriptionModelV3CallWarning, LanguageModelV3Usage, ImageModelV3Usage, LanguageModelV3CallOptions, AISDKError, LanguageModelV3ToolCall, JSONSchema7, JSONParseError, TypeValidationError, JSONObject, SharedV3Warning, EmbeddingModelCallOptions, ProviderV3, ProviderV2, NoSuchModelError } from '@ai-sdk/provider';
@@ -14,7 +14,7 @@ import { z } from 'zod/v4';
14
14
  /**
15
15
  Embedding model that is used by the AI SDK Core functions.
16
16
  */
17
- type EmbeddingModel<VALUE = string> = string | EmbeddingModelV3<VALUE> | EmbeddingModelV2<VALUE>;
17
+ type EmbeddingModel = string | EmbeddingModelV3 | EmbeddingModelV2<string>;
18
18
  /**
19
19
  Embedding.
20
20
  */
@@ -189,7 +189,7 @@ type Provider = {
189
189
 
190
190
  @throws {NoSuchModelError} If no such model exists.
191
191
  */
192
- textEmbeddingModel(modelId: string): EmbeddingModel<string>;
192
+ embeddingModel(modelId: string): EmbeddingModel;
193
193
  /**
194
194
  Returns the image model with the given id.
195
195
  The model id is then passed to the provider function to get the model.
@@ -911,7 +911,7 @@ type Prompt = {
911
911
  /**
912
912
  System message to include in the prompt. Can be used with `prompt` or `messages`.
913
913
  */
914
- system?: string;
914
+ system?: string | SystemModelMessage;
915
915
  } & ({
916
916
  /**
917
917
  A prompt. It can be either a text prompt or a list of messages.
@@ -1022,7 +1022,7 @@ type PrepareStepResult<TOOLS extends Record<string, Tool> = Record<string, Tool>
1022
1022
  model?: LanguageModel;
1023
1023
  toolChoice?: ToolChoice<NoInfer<TOOLS>>;
1024
1024
  activeTools?: Array<keyof NoInfer<TOOLS>>;
1025
- system?: string;
1025
+ system?: string | SystemModelMessage;
1026
1026
  messages?: Array<ModelMessage>;
1027
1027
  } | undefined;
1028
1028
 
@@ -1119,7 +1119,7 @@ declare const coreMessageSchema: z.ZodType<CoreMessage>;
1119
1119
  * @param options.error - The error that occurred while parsing the tool call.
1120
1120
  */
1121
1121
  type ToolCallRepairFunction<TOOLS extends ToolSet> = (options: {
1122
- system: string | undefined;
1122
+ system: string | SystemModelMessage | undefined;
1123
1123
  messages: ModelMessage[];
1124
1124
  toolCall: LanguageModelV3ToolCall;
1125
1125
  tools: TOOLS;
@@ -2683,8 +2683,10 @@ type ToolLoopAgentSettings<CALL_OPTIONS = never, TOOLS extends ToolSet = {}, OUT
2683
2683
  id?: string;
2684
2684
  /**
2685
2685
  * The instructions for the agent.
2686
+ *
2687
+ * It can be a string, or, if you need to pass additional provider options (e.g. for caching), a `SystemModelMessage`.
2686
2688
  */
2687
- instructions?: string;
2689
+ instructions?: string | SystemModelMessage;
2688
2690
  /**
2689
2691
  The language model to use.
2690
2692
  */
@@ -3521,11 +3523,11 @@ declare function pipeAgentUIStreamToResponse<CALL_OPTIONS = never, TOOLS extends
3521
3523
  The result of an `embed` call.
3522
3524
  It contains the embedding, the value, and additional information.
3523
3525
  */
3524
- interface EmbedResult<VALUE> {
3526
+ interface EmbedResult {
3525
3527
  /**
3526
3528
  The value that was embedded.
3527
3529
  */
3528
- readonly value: VALUE;
3530
+ readonly value: string;
3529
3531
  /**
3530
3532
  The embedding of the value.
3531
3533
  */
@@ -3565,15 +3567,15 @@ Embed a value using an embedding model. The type of the value is defined by the
3565
3567
 
3566
3568
  @returns A result object that contains the embedding, the value, and additional information.
3567
3569
  */
3568
- declare function embed<VALUE = string>({ model: modelArg, value, providerOptions, maxRetries: maxRetriesArg, abortSignal, headers, experimental_telemetry: telemetry, }: {
3570
+ declare function embed({ model: modelArg, value, providerOptions, maxRetries: maxRetriesArg, abortSignal, headers, experimental_telemetry: telemetry, }: {
3569
3571
  /**
3570
3572
  The embedding model to use.
3571
3573
  */
3572
- model: EmbeddingModel<VALUE>;
3574
+ model: EmbeddingModel;
3573
3575
  /**
3574
3576
  The value that should be embedded.
3575
3577
  */
3576
- value: VALUE;
3578
+ value: string;
3577
3579
  /**
3578
3580
  Maximum number of retries per embedding model call. Set to 0 to disable retries.
3579
3581
 
@@ -3599,17 +3601,17 @@ declare function embed<VALUE = string>({ model: modelArg, value, providerOptions
3599
3601
  * Optional telemetry configuration (experimental).
3600
3602
  */
3601
3603
  experimental_telemetry?: TelemetrySettings;
3602
- }): Promise<EmbedResult<VALUE>>;
3604
+ }): Promise<EmbedResult>;
3603
3605
 
3604
3606
  /**
3605
3607
  The result of a `embedMany` call.
3606
3608
  It contains the embeddings, the values, and additional information.
3607
3609
  */
3608
- interface EmbedManyResult<VALUE> {
3610
+ interface EmbedManyResult {
3609
3611
  /**
3610
3612
  The values that were embedded.
3611
3613
  */
3612
- readonly values: Array<VALUE>;
3614
+ readonly values: Array<string>;
3613
3615
  /**
3614
3616
  The embeddings. They are in the same order as the values.
3615
3617
  */
@@ -3653,15 +3655,15 @@ has a limit on how many embeddings can be generated in a single call.
3653
3655
 
3654
3656
  @returns A result object that contains the embeddings, the value, and additional information.
3655
3657
  */
3656
- declare function embedMany<VALUE = string>({ model: modelArg, values, maxParallelCalls, maxRetries: maxRetriesArg, abortSignal, headers, providerOptions, experimental_telemetry: telemetry, }: {
3658
+ declare function embedMany({ model: modelArg, values, maxParallelCalls, maxRetries: maxRetriesArg, abortSignal, headers, providerOptions, experimental_telemetry: telemetry, }: {
3657
3659
  /**
3658
3660
  The embedding model to use.
3659
3661
  */
3660
- model: EmbeddingModel<VALUE>;
3662
+ model: EmbeddingModel;
3661
3663
  /**
3662
3664
  The values that should be embedded.
3663
3665
  */
3664
- values: Array<VALUE>;
3666
+ values: Array<string>;
3665
3667
  /**
3666
3668
  Maximum number of retries per embedding model call. Set to 0 to disable retries.
3667
3669
 
@@ -3693,7 +3695,7 @@ declare function embedMany<VALUE = string>({ model: modelArg, values, maxParalle
3693
3695
  * @default Infinity
3694
3696
  */
3695
3697
  maxParallelCalls?: number;
3696
- }): Promise<EmbedManyResult<VALUE>>;
3698
+ }): Promise<EmbedManyResult>;
3697
3699
 
3698
3700
  declare const symbol$b: unique symbol;
3699
3701
  declare class InvalidArgumentError extends AISDKError {
@@ -4759,8 +4761,8 @@ type LogWarningsFunction = (options: {
4759
4761
  */
4760
4762
  declare function defaultEmbeddingSettingsMiddleware({ settings, }: {
4761
4763
  settings: Partial<{
4762
- headers?: EmbeddingModelCallOptions<string>['headers'];
4763
- providerOptions?: EmbeddingModelCallOptions<string>['providerOptions'];
4764
+ headers?: EmbeddingModelCallOptions['headers'];
4765
+ providerOptions?: EmbeddingModelCallOptions['providerOptions'];
4764
4766
  }>;
4765
4767
  }): EmbeddingModelMiddleware;
4766
4768
 
@@ -4836,11 +4838,11 @@ declare const wrapLanguageModel: ({ model, middleware: middlewareArg, modelId, p
4836
4838
  * @returns A new EmbeddingModelV3 instance with middleware applied.
4837
4839
  */
4838
4840
  declare const wrapEmbeddingModel: ({ model, middleware: middlewareArg, modelId, providerId, }: {
4839
- model: EmbeddingModelV3<string>;
4841
+ model: EmbeddingModelV3;
4840
4842
  middleware: EmbeddingModelMiddleware | EmbeddingModelMiddleware[];
4841
4843
  modelId?: string;
4842
4844
  providerId?: string;
4843
- }) => EmbeddingModelV3<string>;
4845
+ }) => EmbeddingModelV3;
4844
4846
 
4845
4847
  /**
4846
4848
  * Wraps a ProviderV3 instance with middleware functionality.
@@ -4863,19 +4865,19 @@ declare function wrapProvider({ provider, languageModelMiddleware, }: {
4863
4865
  *
4864
4866
  * @param {Object} options - The options for creating the custom provider.
4865
4867
  * @param {Record<string, LanguageModel>} [options.languageModels] - A record of language models, where keys are model IDs and values are LanguageModel instances.
4866
- * @param {Record<string, EmbeddingModel<string>>} [options.textEmbeddingModels] - A record of text embedding models, where keys are model IDs and values are EmbeddingModel<string> instances.
4868
+ * @param {Record<string, EmbeddingModel>} [options.embeddingModels] - A record of text embedding models, where keys are model IDs and values are EmbeddingModel instances.
4867
4869
  * @param {Record<string, ImageModel>} [options.imageModels] - A record of image models, where keys are model IDs and values are ImageModel instances.
4868
4870
  * @param {Record<string, TranscriptionModel>} [options.transcriptionModels] - A record of transcription models, where keys are model IDs and values are TranscriptionModel instances.
4869
4871
  * @param {Record<string, SpeechModel>} [options.speechModels] - A record of speech models, where keys are model IDs and values are SpeechModel instances.
4870
- * @param {Record<string, RerankingModel<string>>} [options.rerankingModels] - A record of reranking models, where keys are model IDs and values are RerankingModel<string> instances.
4872
+ * @param {Record<string, RerankingModel>} [options.rerankingModels] - A record of reranking models, where keys are model IDs and values are RerankingModel instances.
4871
4873
  * @param {Provider} [options.fallbackProvider] - An optional fallback provider to use when a requested model is not found in the custom provider.
4872
- * @returns {Provider} A Provider object with languageModel, textEmbeddingModel, imageModel, transcriptionModel, and speechModel methods.
4874
+ * @returns {Provider} A Provider object with languageModel, embeddingModel, imageModel, transcriptionModel, and speechModel methods.
4873
4875
  *
4874
4876
  * @throws {NoSuchModelError} Throws when a requested model is not found and no fallback provider is available.
4875
4877
  */
4876
- declare function customProvider<LANGUAGE_MODELS extends Record<string, LanguageModelV3>, EMBEDDING_MODELS extends Record<string, EmbeddingModelV3<string>>, IMAGE_MODELS extends Record<string, ImageModelV3>, TRANSCRIPTION_MODELS extends Record<string, TranscriptionModelV3>, SPEECH_MODELS extends Record<string, SpeechModelV3>, RERANKING_MODELS extends Record<string, RerankingModelV3>>({ languageModels, textEmbeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels, fallbackProvider: fallbackProviderArg, }: {
4878
+ declare function customProvider<LANGUAGE_MODELS extends Record<string, LanguageModelV3>, EMBEDDING_MODELS extends Record<string, EmbeddingModelV3>, IMAGE_MODELS extends Record<string, ImageModelV3>, TRANSCRIPTION_MODELS extends Record<string, TranscriptionModelV3>, SPEECH_MODELS extends Record<string, SpeechModelV3>, RERANKING_MODELS extends Record<string, RerankingModelV3>>({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels, fallbackProvider: fallbackProviderArg, }: {
4877
4879
  languageModels?: LANGUAGE_MODELS;
4878
- textEmbeddingModels?: EMBEDDING_MODELS;
4880
+ embeddingModels?: EMBEDDING_MODELS;
4879
4881
  imageModels?: IMAGE_MODELS;
4880
4882
  transcriptionModels?: TRANSCRIPTION_MODELS;
4881
4883
  speechModels?: SPEECH_MODELS;
@@ -4883,7 +4885,7 @@ declare function customProvider<LANGUAGE_MODELS extends Record<string, LanguageM
4883
4885
  fallbackProvider?: ProviderV3 | ProviderV2;
4884
4886
  }): ProviderV3 & {
4885
4887
  languageModel(modelId: ExtractModelId<LANGUAGE_MODELS>): LanguageModelV3;
4886
- textEmbeddingModel(modelId: ExtractModelId<EMBEDDING_MODELS>): EmbeddingModelV3<string>;
4888
+ embeddingModel(modelId: ExtractModelId<EMBEDDING_MODELS>): EmbeddingModelV3;
4887
4889
  imageModel(modelId: ExtractModelId<IMAGE_MODELS>): ImageModelV3;
4888
4890
  transcriptionModel(modelId: ExtractModelId<TRANSCRIPTION_MODELS>): TranscriptionModelV3;
4889
4891
  rerankingModel(modelId: ExtractModelId<RERANKING_MODELS>): RerankingModelV3;
@@ -4902,7 +4904,7 @@ declare class NoSuchProviderError extends NoSuchModelError {
4902
4904
  readonly availableProviders: string[];
4903
4905
  constructor({ modelId, modelType, providerId, availableProviders, message, }: {
4904
4906
  modelId: string;
4905
- modelType: 'languageModel' | 'textEmbeddingModel' | 'imageModel' | 'transcriptionModel' | 'speechModel' | 'rerankingModel';
4907
+ modelType: 'languageModel' | 'embeddingModel' | 'imageModel' | 'transcriptionModel' | 'speechModel' | 'rerankingModel';
4906
4908
  providerId: string;
4907
4909
  availableProviders: string[];
4908
4910
  message?: string;
@@ -4914,8 +4916,8 @@ type ExtractLiteralUnion<T> = T extends string ? string extends T ? never : T :
4914
4916
  interface ProviderRegistryProvider<PROVIDERS extends Record<string, ProviderV3> = Record<string, ProviderV3>, SEPARATOR extends string = ':'> {
4915
4917
  languageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['languageModel']>>[0]>}` : never): LanguageModelV3;
4916
4918
  languageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): LanguageModelV3;
4917
- textEmbeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['textEmbeddingModel']>>[0]>}` : never): EmbeddingModelV3<string>;
4918
- textEmbeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): EmbeddingModelV3<string>;
4919
+ embeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['embeddingModel']>>[0]>}` : never): EmbeddingModelV3;
4920
+ embeddingModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): EmbeddingModelV3;
4919
4921
  imageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['imageModel']>>[0]>}` : never): ImageModelV3;
4920
4922
  imageModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${string}` : never): ImageModelV3;
4921
4923
  transcriptionModel<KEY extends keyof PROVIDERS>(id: KEY extends string ? `${KEY & string}${SEPARATOR}${ExtractLiteralUnion<Parameters<NonNullable<PROVIDERS[KEY]['transcriptionModel']>>[0]>}` : never): TranscriptionModelV3;
package/dist/index.js CHANGED
@@ -641,9 +641,7 @@ function resolveEmbeddingModel(model) {
641
641
  }
642
642
  return asEmbeddingModelV3(model);
643
643
  }
644
- return getGlobalProvider().textEmbeddingModel(
645
- model
646
- );
644
+ return getGlobalProvider().embeddingModel(model);
647
645
  }
648
646
  function resolveTranscriptionModel(model) {
649
647
  var _a15, _b;
@@ -886,7 +884,7 @@ function detectMediaType({
886
884
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
887
885
 
888
886
  // src/version.ts
889
- var VERSION = true ? "6.0.0-beta.117" : "0.0.0-test";
887
+ var VERSION = true ? "6.0.0-beta.119" : "0.0.0-test";
890
888
 
891
889
  // src/util/download/download.ts
892
890
  var download = async ({ url }) => {
@@ -1030,7 +1028,13 @@ async function convertToLanguageModelPrompt({
1030
1028
  supportedUrls
1031
1029
  );
1032
1030
  const messages = [
1033
- ...prompt.system != null ? [{ role: "system", content: prompt.system }] : [],
1031
+ ...prompt.system != null ? typeof prompt.system === "string" ? [{ role: "system", content: prompt.system }] : [
1032
+ {
1033
+ role: "system",
1034
+ content: prompt.system.content,
1035
+ providerOptions: prompt.system.providerOptions
1036
+ }
1037
+ ] : [],
1034
1038
  ...prompt.messages.map(
1035
1039
  (message) => convertToLanguageModelMessage({ message, downloadedAssets })
1036
1040
  )
@@ -1687,7 +1691,7 @@ async function standardizePrompt(prompt) {
1687
1691
  message: "prompt and messages cannot be defined at the same time"
1688
1692
  });
1689
1693
  }
1690
- if (prompt.system != null && typeof prompt.system !== "string") {
1694
+ if (prompt.system != null && typeof prompt.system !== "string" && "role" in prompt.system && prompt.system.role !== "system") {
1691
1695
  throw new import_provider19.InvalidPromptError({
1692
1696
  prompt,
1693
1697
  message: "system must be a string"
@@ -9698,10 +9702,7 @@ function defaultEmbeddingSettingsMiddleware({
9698
9702
  return {
9699
9703
  specificationVersion: "v3",
9700
9704
  transformParams: async ({ params }) => {
9701
- return mergeObjects(
9702
- settings,
9703
- params
9704
- );
9705
+ return mergeObjects(settings, params);
9705
9706
  }
9706
9707
  };
9707
9708
  }
@@ -10065,13 +10066,14 @@ function asProviderV3(provider) {
10065
10066
  if ("specificationVersion" in provider && provider.specificationVersion === "v3") {
10066
10067
  return provider;
10067
10068
  }
10069
+ const v2Provider = provider;
10068
10070
  return {
10069
10071
  specificationVersion: "v3",
10070
- languageModel: (modelId) => asLanguageModelV3(provider.languageModel(modelId)),
10071
- textEmbeddingModel: (modelId) => asEmbeddingModelV3(provider.textEmbeddingModel(modelId)),
10072
- imageModel: (modelId) => asImageModelV3(provider.imageModel(modelId)),
10073
- transcriptionModel: provider.transcriptionModel ? (modelId) => asTranscriptionModelV3(provider.transcriptionModel(modelId)) : void 0,
10074
- speechModel: provider.speechModel ? (modelId) => asSpeechModelV3(provider.speechModel(modelId)) : void 0,
10072
+ languageModel: (modelId) => asLanguageModelV3(v2Provider.languageModel(modelId)),
10073
+ embeddingModel: (modelId) => asEmbeddingModelV3(v2Provider.textEmbeddingModel(modelId)),
10074
+ imageModel: (modelId) => asImageModelV3(v2Provider.imageModel(modelId)),
10075
+ transcriptionModel: v2Provider.transcriptionModel ? (modelId) => asTranscriptionModelV3(v2Provider.transcriptionModel(modelId)) : void 0,
10076
+ speechModel: v2Provider.speechModel ? (modelId) => asSpeechModelV3(v2Provider.speechModel(modelId)) : void 0,
10075
10077
  rerankingModel: void 0
10076
10078
  // v2 providers don't have reranking models
10077
10079
  };
@@ -10089,7 +10091,7 @@ function wrapProvider({
10089
10091
  model: providerV3.languageModel(modelId),
10090
10092
  middleware: languageModelMiddleware
10091
10093
  }),
10092
- textEmbeddingModel: providerV3.textEmbeddingModel,
10094
+ embeddingModel: providerV3.embeddingModel,
10093
10095
  imageModel: providerV3.imageModel,
10094
10096
  transcriptionModel: providerV3.transcriptionModel,
10095
10097
  speechModel: providerV3.speechModel,
@@ -10101,7 +10103,7 @@ function wrapProvider({
10101
10103
  var import_provider28 = require("@ai-sdk/provider");
10102
10104
  function customProvider({
10103
10105
  languageModels,
10104
- textEmbeddingModels,
10106
+ embeddingModels,
10105
10107
  imageModels,
10106
10108
  transcriptionModels,
10107
10109
  speechModels,
@@ -10120,14 +10122,14 @@ function customProvider({
10120
10122
  }
10121
10123
  throw new import_provider28.NoSuchModelError({ modelId, modelType: "languageModel" });
10122
10124
  },
10123
- textEmbeddingModel(modelId) {
10124
- if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
10125
- return textEmbeddingModels[modelId];
10125
+ embeddingModel(modelId) {
10126
+ if (embeddingModels != null && modelId in embeddingModels) {
10127
+ return embeddingModels[modelId];
10126
10128
  }
10127
10129
  if (fallbackProvider) {
10128
- return fallbackProvider.textEmbeddingModel(modelId);
10130
+ return fallbackProvider.embeddingModel(modelId);
10129
10131
  }
10130
- throw new import_provider28.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
10132
+ throw new import_provider28.NoSuchModelError({ modelId, modelType: "embeddingModel" });
10131
10133
  },
10132
10134
  imageModel(modelId) {
10133
10135
  if (imageModels != null && modelId in imageModels) {
@@ -10266,15 +10268,15 @@ var DefaultProviderRegistry = class {
10266
10268
  }
10267
10269
  return model;
10268
10270
  }
10269
- textEmbeddingModel(id) {
10271
+ embeddingModel(id) {
10270
10272
  var _a15;
10271
- const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
10272
- const provider = this.getProvider(providerId, "textEmbeddingModel");
10273
- const model = (_a15 = provider.textEmbeddingModel) == null ? void 0 : _a15.call(provider, modelId);
10273
+ const [providerId, modelId] = this.splitId(id, "embeddingModel");
10274
+ const provider = this.getProvider(providerId, "embeddingModel");
10275
+ const model = (_a15 = provider.embeddingModel) == null ? void 0 : _a15.call(provider, modelId);
10274
10276
  if (model == null) {
10275
10277
  throw new import_provider30.NoSuchModelError({
10276
10278
  modelId: id,
10277
- modelType: "textEmbeddingModel"
10279
+ modelType: "embeddingModel"
10278
10280
  });
10279
10281
  }
10280
10282
  return model;