ai 6.0.0-beta.136 → 6.0.0-beta.138

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,20 @@
1
1
  # ai
2
2
 
3
+ ## 6.0.0-beta.138
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [53f3368]
8
+ - @ai-sdk/provider@3.0.0-beta.25
9
+ - @ai-sdk/gateway@2.0.0-beta.73
10
+ - @ai-sdk/provider-utils@4.0.0-beta.44
11
+
12
+ ## 6.0.0-beta.137
13
+
14
+ ### Patch Changes
15
+
16
+ - 9ba4324: feat(ai): support SystemModelMessage[] in system and instructions properties
17
+
3
18
  ## 6.0.0-beta.136
4
19
 
5
20
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -902,7 +902,7 @@ type Prompt = {
902
902
  /**
903
903
  System message to include in the prompt. Can be used with `prompt` or `messages`.
904
904
  */
905
- system?: string | SystemModelMessage;
905
+ system?: string | SystemModelMessage | Array<SystemModelMessage>;
906
906
  } & ({
907
907
  /**
908
908
  A prompt. It can be either a text prompt or a list of messages.
@@ -1013,7 +1013,7 @@ type PrepareStepResult<TOOLS extends Record<string, Tool> = Record<string, Tool>
1013
1013
  model?: LanguageModel;
1014
1014
  toolChoice?: ToolChoice<NoInfer<TOOLS>>;
1015
1015
  activeTools?: Array<keyof NoInfer<TOOLS>>;
1016
- system?: string | SystemModelMessage;
1016
+ system?: string | SystemModelMessage | Array<SystemModelMessage>;
1017
1017
  messages?: Array<ModelMessage>;
1018
1018
  } | undefined;
1019
1019
 
@@ -1070,7 +1070,7 @@ declare const modelMessageSchema: z.ZodType<ModelMessage>;
1070
1070
  * @param options.error - The error that occurred while parsing the tool call.
1071
1071
  */
1072
1072
  type ToolCallRepairFunction<TOOLS extends ToolSet> = (options: {
1073
- system: string | SystemModelMessage | undefined;
1073
+ system: string | SystemModelMessage | Array<SystemModelMessage> | undefined;
1074
1074
  messages: ModelMessage[];
1075
1075
  toolCall: LanguageModelV3ToolCall;
1076
1076
  tools: TOOLS;
@@ -2637,7 +2637,7 @@ type ToolLoopAgentSettings<CALL_OPTIONS = never, TOOLS extends ToolSet = {}, OUT
2637
2637
  *
2638
2638
  * It can be a string, or, if you need to pass additional provider options (e.g. for caching), a `SystemModelMessage`.
2639
2639
  */
2640
- instructions?: string | SystemModelMessage;
2640
+ instructions?: string | SystemModelMessage | Array<SystemModelMessage>;
2641
2641
  /**
2642
2642
  The language model to use.
2643
2643
  */
package/dist/index.d.ts CHANGED
@@ -902,7 +902,7 @@ type Prompt = {
902
902
  /**
903
903
  System message to include in the prompt. Can be used with `prompt` or `messages`.
904
904
  */
905
- system?: string | SystemModelMessage;
905
+ system?: string | SystemModelMessage | Array<SystemModelMessage>;
906
906
  } & ({
907
907
  /**
908
908
  A prompt. It can be either a text prompt or a list of messages.
@@ -1013,7 +1013,7 @@ type PrepareStepResult<TOOLS extends Record<string, Tool> = Record<string, Tool>
1013
1013
  model?: LanguageModel;
1014
1014
  toolChoice?: ToolChoice<NoInfer<TOOLS>>;
1015
1015
  activeTools?: Array<keyof NoInfer<TOOLS>>;
1016
- system?: string | SystemModelMessage;
1016
+ system?: string | SystemModelMessage | Array<SystemModelMessage>;
1017
1017
  messages?: Array<ModelMessage>;
1018
1018
  } | undefined;
1019
1019
 
@@ -1070,7 +1070,7 @@ declare const modelMessageSchema: z.ZodType<ModelMessage>;
1070
1070
  * @param options.error - The error that occurred while parsing the tool call.
1071
1071
  */
1072
1072
  type ToolCallRepairFunction<TOOLS extends ToolSet> = (options: {
1073
- system: string | SystemModelMessage | undefined;
1073
+ system: string | SystemModelMessage | Array<SystemModelMessage> | undefined;
1074
1074
  messages: ModelMessage[];
1075
1075
  toolCall: LanguageModelV3ToolCall;
1076
1076
  tools: TOOLS;
@@ -2637,7 +2637,7 @@ type ToolLoopAgentSettings<CALL_OPTIONS = never, TOOLS extends ToolSet = {}, OUT
2637
2637
  *
2638
2638
  * It can be a string, or, if you need to pass additional provider options (e.g. for caching), a `SystemModelMessage`.
2639
2639
  */
2640
- instructions?: string | SystemModelMessage;
2640
+ instructions?: string | SystemModelMessage | Array<SystemModelMessage>;
2641
2641
  /**
2642
2642
  The language model to use.
2643
2643
  */
package/dist/index.js CHANGED
@@ -909,7 +909,7 @@ function detectMediaType({
909
909
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
910
910
 
911
911
  // src/version.ts
912
- var VERSION = true ? "6.0.0-beta.136" : "0.0.0-test";
912
+ var VERSION = true ? "6.0.0-beta.138" : "0.0.0-test";
913
913
 
914
914
  // src/util/download/download.ts
915
915
  var download = async ({ url }) => {
@@ -1041,6 +1041,11 @@ function convertDataContentToUint8Array(content) {
1041
1041
  throw new InvalidDataContentError({ content });
1042
1042
  }
1043
1043
 
1044
+ // src/util/as-array.ts
1045
+ function asArray(value) {
1046
+ return value === void 0 ? [] : Array.isArray(value) ? value : [value];
1047
+ }
1048
+
1044
1049
  // src/prompt/convert-to-language-model-prompt.ts
1045
1050
  async function convertToLanguageModelPrompt({
1046
1051
  prompt,
@@ -1053,13 +1058,11 @@ async function convertToLanguageModelPrompt({
1053
1058
  supportedUrls
1054
1059
  );
1055
1060
  const messages = [
1056
- ...prompt.system != null ? typeof prompt.system === "string" ? [{ role: "system", content: prompt.system }] : [
1057
- {
1058
- role: "system",
1059
- content: prompt.system.content,
1060
- providerOptions: prompt.system.providerOptions
1061
- }
1062
- ] : [],
1061
+ ...prompt.system != null ? typeof prompt.system === "string" ? [{ role: "system", content: prompt.system }] : asArray(prompt.system).map((message) => ({
1062
+ role: "system",
1063
+ content: message.content,
1064
+ providerOptions: message.providerOptions
1065
+ })) : [],
1063
1066
  ...prompt.messages.map(
1064
1067
  (message) => convertToLanguageModelMessage({ message, downloadedAssets })
1065
1068
  )
@@ -1713,10 +1716,12 @@ async function standardizePrompt(prompt) {
1713
1716
  message: "prompt and messages cannot be defined at the same time"
1714
1717
  });
1715
1718
  }
1716
- if (prompt.system != null && typeof prompt.system !== "string" && "role" in prompt.system && prompt.system.role !== "system") {
1719
+ if (prompt.system != null && typeof prompt.system !== "string" && !asArray(prompt.system).every(
1720
+ (message) => typeof message === "object" && message !== null && "role" in message && message.role === "system"
1721
+ )) {
1717
1722
  throw new import_provider19.InvalidPromptError({
1718
1723
  prompt,
1719
- message: "system must be a string"
1724
+ message: "system must be a string, SystemModelMessage, or array of SystemModelMessage"
1720
1725
  });
1721
1726
  }
1722
1727
  let messages;
@@ -2019,11 +2024,6 @@ function addImageModelUsage(usage1, usage2) {
2019
2024
  };
2020
2025
  }
2021
2026
 
2022
- // src/util/as-array.ts
2023
- function asArray(value) {
2024
- return value === void 0 ? [] : Array.isArray(value) ? value : [value];
2025
- }
2026
-
2027
2027
  // src/util/retry-with-exponential-backoff.ts
2028
2028
  var import_provider21 = require("@ai-sdk/provider");
2029
2029
  var import_provider_utils7 = require("@ai-sdk/provider-utils");