ai 6.0.0-beta.118 → 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,11 @@
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
+
3
9
  ## 6.0.0-beta.118
4
10
 
5
11
  ### 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';
@@ -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
  */
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';
@@ -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
  */
package/dist/index.js CHANGED
@@ -884,7 +884,7 @@ function detectMediaType({
884
884
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
885
885
 
886
886
  // src/version.ts
887
- var VERSION = true ? "6.0.0-beta.118" : "0.0.0-test";
887
+ var VERSION = true ? "6.0.0-beta.119" : "0.0.0-test";
888
888
 
889
889
  // src/util/download/download.ts
890
890
  var download = async ({ url }) => {
@@ -1028,7 +1028,13 @@ async function convertToLanguageModelPrompt({
1028
1028
  supportedUrls
1029
1029
  );
1030
1030
  const messages = [
1031
- ...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
+ ] : [],
1032
1038
  ...prompt.messages.map(
1033
1039
  (message) => convertToLanguageModelMessage({ message, downloadedAssets })
1034
1040
  )
@@ -1685,7 +1691,7 @@ async function standardizePrompt(prompt) {
1685
1691
  message: "prompt and messages cannot be defined at the same time"
1686
1692
  });
1687
1693
  }
1688
- 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") {
1689
1695
  throw new import_provider19.InvalidPromptError({
1690
1696
  prompt,
1691
1697
  message: "system must be a string"