@ai-sdk/provider 2.1.0-beta.5 → 3.0.0-beta.10

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,35 @@
1
1
  # @ai-sdk/provider
2
2
 
3
+ ## 3.0.0-beta.10
4
+
5
+ ### Patch Changes
6
+
7
+ - 0c3b58b: fix(provider): add specificationVersion to ProviderV3
8
+
9
+ ## 3.0.0-beta.9
10
+
11
+ ### Patch Changes
12
+
13
+ - a755db5: feat(provider): Add SharedV3Warning type
14
+
15
+ ## 3.0.0-beta.8
16
+
17
+ ### Patch Changes
18
+
19
+ - 3794514: feat: flexible tool output content support
20
+
21
+ ## 3.0.0-beta.7
22
+
23
+ ### Patch Changes
24
+
25
+ - 81d4308: feat: provider-executed dynamic tools
26
+
27
+ ## 3.0.0-beta.6
28
+
29
+ ### Major Changes
30
+
31
+ - dee8b05: ai SDK 6 beta
32
+
3
33
  ## 2.1.0-beta.5
4
34
 
5
35
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -59,6 +59,32 @@ type SharedV3ProviderMetadata = Record<string, Record<string, JSONValue>>;
59
59
  */
60
60
  type SharedV3ProviderOptions = Record<string, Record<string, JSONValue>>;
61
61
 
62
+ /**
63
+ * Warning from the model that certain features are e.g. unsupported or that compatibility
64
+ * functionality is used (which might lead to suboptimal results).
65
+ */
66
+ type SharedV3Warning = {
67
+ /**
68
+ * A configuration setting is not supported by the model.
69
+ */
70
+ type: 'unsupported-setting';
71
+ setting: string;
72
+ details?: string;
73
+ } | {
74
+ /**
75
+ * A compatibility feature is used that might lead to suboptimal results.
76
+ */
77
+ type: 'compatibility';
78
+ feature: string;
79
+ details?: string;
80
+ } | {
81
+ /**
82
+ * Other warning.
83
+ */
84
+ type: 'other';
85
+ message: string;
86
+ };
87
+
62
88
  type SharedV2Headers = Record<string, string>;
63
89
 
64
90
  /**
@@ -1020,11 +1046,22 @@ interface LanguageModelV3ToolResultPart {
1020
1046
  * Result of a tool call.
1021
1047
  */
1022
1048
  type LanguageModelV3ToolResultOutput = {
1049
+ /**
1050
+ * Text tool output that should be directly sent to the API.
1051
+ */
1023
1052
  type: 'text';
1024
1053
  value: string;
1054
+ /**
1055
+ * Provider-specific options.
1056
+ */
1057
+ providerOptions?: SharedV3ProviderOptions;
1025
1058
  } | {
1026
1059
  type: 'json';
1027
1060
  value: JSONValue;
1061
+ /**
1062
+ * Provider-specific options.
1063
+ */
1064
+ providerOptions?: SharedV3ProviderOptions;
1028
1065
  } | {
1029
1066
  /**
1030
1067
  * Type when the user has denied the execution of the tool call.
@@ -1034,12 +1071,24 @@ type LanguageModelV3ToolResultOutput = {
1034
1071
  * Optional reason for the execution denial.
1035
1072
  */
1036
1073
  reason?: string;
1074
+ /**
1075
+ * Provider-specific options.
1076
+ */
1077
+ providerOptions?: SharedV3ProviderOptions;
1037
1078
  } | {
1038
1079
  type: 'error-text';
1039
1080
  value: string;
1081
+ /**
1082
+ * Provider-specific options.
1083
+ */
1084
+ providerOptions?: SharedV3ProviderOptions;
1040
1085
  } | {
1041
1086
  type: 'error-json';
1042
1087
  value: JSONValue;
1088
+ /**
1089
+ * Provider-specific options.
1090
+ */
1091
+ providerOptions?: SharedV3ProviderOptions;
1043
1092
  } | {
1044
1093
  type: 'content';
1045
1094
  value: Array<{
@@ -1048,8 +1097,12 @@ type LanguageModelV3ToolResultOutput = {
1048
1097
  Text content.
1049
1098
  */
1050
1099
  text: string;
1100
+ /**
1101
+ * Provider-specific options.
1102
+ */
1103
+ providerOptions?: SharedV3ProviderOptions;
1051
1104
  } | {
1052
- type: 'media';
1105
+ type: 'file-data';
1053
1106
  /**
1054
1107
  Base-64 encoded media data.
1055
1108
  */
@@ -1059,28 +1112,120 @@ IANA media type.
1059
1112
  @see https://www.iana.org/assignments/media-types/media-types.xhtml
1060
1113
  */
1061
1114
  mediaType: string;
1115
+ /**
1116
+ * Optional filename of the file.
1117
+ */
1118
+ filename?: string;
1119
+ /**
1120
+ * Provider-specific options.
1121
+ */
1122
+ providerOptions?: SharedV3ProviderOptions;
1123
+ } | {
1124
+ type: 'file-url';
1125
+ /**
1126
+ * URL of the file.
1127
+ */
1128
+ url: string;
1129
+ /**
1130
+ * Provider-specific options.
1131
+ */
1132
+ providerOptions?: SharedV3ProviderOptions;
1133
+ } | {
1134
+ type: 'file-id';
1135
+ /**
1136
+ * ID of the file.
1137
+ *
1138
+ * If you use multiple providers, you need to
1139
+ * specify the provider specific ids using
1140
+ * the Record option. The key is the provider
1141
+ * name, e.g. 'openai' or 'anthropic'.
1142
+ */
1143
+ fileId: string | Record<string, string>;
1144
+ /**
1145
+ * Provider-specific options.
1146
+ */
1147
+ providerOptions?: SharedV3ProviderOptions;
1148
+ } | {
1149
+ /**
1150
+ * Images that are referenced using base64 encoded data.
1151
+ */
1152
+ type: 'image-data';
1153
+ /**
1154
+ Base-64 encoded image data.
1155
+ */
1156
+ data: string;
1157
+ /**
1158
+ IANA media type.
1159
+ @see https://www.iana.org/assignments/media-types/media-types.xhtml
1160
+ */
1161
+ mediaType: string;
1162
+ /**
1163
+ * Provider-specific options.
1164
+ */
1165
+ providerOptions?: SharedV3ProviderOptions;
1166
+ } | {
1167
+ /**
1168
+ * Images that are referenced using a URL.
1169
+ */
1170
+ type: 'image-url';
1171
+ /**
1172
+ * URL of the image.
1173
+ */
1174
+ url: string;
1175
+ /**
1176
+ * Provider-specific options.
1177
+ */
1178
+ providerOptions?: SharedV3ProviderOptions;
1179
+ } | {
1180
+ /**
1181
+ * Images that are referenced using a provider file id.
1182
+ */
1183
+ type: 'image-file-id';
1184
+ /**
1185
+ * Image that is referenced using a provider file id.
1186
+ *
1187
+ * If you use multiple providers, you need to
1188
+ * specify the provider specific ids using
1189
+ * the Record option. The key is the provider
1190
+ * name, e.g. 'openai' or 'anthropic'.
1191
+ */
1192
+ fileId: string | Record<string, string>;
1193
+ /**
1194
+ * Provider-specific options.
1195
+ */
1196
+ providerOptions?: SharedV3ProviderOptions;
1197
+ } | {
1198
+ /**
1199
+ * Custom content part. This can be used to implement
1200
+ * provider-specific content parts.
1201
+ */
1202
+ type: 'custom';
1203
+ /**
1204
+ * Provider-specific options.
1205
+ */
1206
+ providerOptions?: SharedV3ProviderOptions;
1062
1207
  }>;
1063
1208
  };
1064
1209
 
1065
1210
  /**
1066
- The configuration of a tool that is defined by the provider.
1211
+ * The configuration of a tool that is defined by the provider.
1067
1212
  */
1068
1213
  type LanguageModelV3ProviderDefinedTool = {
1069
1214
  /**
1070
- The type of the tool (always 'provider-defined').
1215
+ * The type of the tool (always 'provider-defined').
1071
1216
  */
1072
1217
  type: 'provider-defined';
1073
1218
  /**
1074
- The ID of the tool. Should follow the format `<provider-name>.<unique-tool-name>`.
1219
+ * The ID of the tool. Should follow the format `<provider-id>.<unique-tool-name>`.
1075
1220
  */
1076
1221
  id: `${string}.${string}`;
1077
1222
  /**
1078
- The name of the tool that the user must use in the tool set.
1223
+ * The name of the tool that the user must use in the tool set.
1079
1224
  */
1080
1225
  name: string;
1081
1226
  /**
1082
- The arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.
1083
- */
1227
+ * The arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.
1228
+ */
1084
1229
  args: Record<string, unknown>;
1085
1230
  };
1086
1231
 
@@ -1337,6 +1482,11 @@ type LanguageModelV3ToolCall = {
1337
1482
  * If this flag is not set or is false, the tool call will be executed by the client.
1338
1483
  */
1339
1484
  providerExecuted?: boolean;
1485
+ /**
1486
+ * Whether the tool is dynamic, i.e. defined at runtime.
1487
+ * For example, MCP (Model Context Protocol) tools that are executed by the provider.
1488
+ */
1489
+ dynamic?: boolean;
1340
1490
  /**
1341
1491
  * Additional provider-specific metadata for the tool call.
1342
1492
  */
@@ -1381,6 +1531,11 @@ type LanguageModelV3ToolResult = {
1381
1531
  * If this flag is not set or is false, the tool result is not preliminary.
1382
1532
  */
1383
1533
  preliminary?: boolean;
1534
+ /**
1535
+ * Whether the tool is dynamic, i.e. defined at runtime.
1536
+ * For example, MCP (Model Context Protocol) tools that are executed by the provider.
1537
+ */
1538
+ dynamic?: boolean;
1384
1539
  /**
1385
1540
  * Additional provider-specific metadata for the tool result.
1386
1541
  */
@@ -1481,6 +1636,8 @@ type LanguageModelV3StreamPart = {
1481
1636
  toolName: string;
1482
1637
  providerMetadata?: SharedV3ProviderMetadata;
1483
1638
  providerExecuted?: boolean;
1639
+ dynamic?: boolean;
1640
+ title?: string;
1484
1641
  } | {
1485
1642
  type: 'tool-input-delta';
1486
1643
  id: string;
@@ -1517,11 +1674,11 @@ type LanguageModelV3 = {
1517
1674
  */
1518
1675
  readonly specificationVersion: 'v3';
1519
1676
  /**
1520
- Name of the provider for logging purposes.
1677
+ Provider ID.
1521
1678
  */
1522
1679
  readonly provider: string;
1523
1680
  /**
1524
- Provider-specific model ID for logging purposes.
1681
+ Provider-specific model ID.
1525
1682
  */
1526
1683
  readonly modelId: string;
1527
1684
  /**
@@ -2832,6 +2989,7 @@ type TranscriptionModelV3 = {
2832
2989
  * Provider for language, text embedding, and image generation models.
2833
2990
  */
2834
2991
  interface ProviderV3 {
2992
+ readonly specificationVersion: 'v3';
2835
2993
  /**
2836
2994
  Returns the language model with the given id.
2837
2995
  The model id is then passed to the provider function to get the model.
@@ -3230,4 +3388,4 @@ interface ProviderV2 {
3230
3388
  speechModel?(modelId: string): SpeechModelV2;
3231
3389
  }
3232
3390
 
3233
- export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3CallWarning, type ImageModelV3ProviderMetadata, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderDefinedTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3CallWarning, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderDefinedTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, type SpeechModelV3CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, type TranscriptionModelV3CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
3391
+ export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3CallWarning, type ImageModelV3ProviderMetadata, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderDefinedTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3CallWarning, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderDefinedTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SharedV3Warning, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, type SpeechModelV3CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, type TranscriptionModelV3CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
package/dist/index.d.ts CHANGED
@@ -59,6 +59,32 @@ type SharedV3ProviderMetadata = Record<string, Record<string, JSONValue>>;
59
59
  */
60
60
  type SharedV3ProviderOptions = Record<string, Record<string, JSONValue>>;
61
61
 
62
+ /**
63
+ * Warning from the model that certain features are e.g. unsupported or that compatibility
64
+ * functionality is used (which might lead to suboptimal results).
65
+ */
66
+ type SharedV3Warning = {
67
+ /**
68
+ * A configuration setting is not supported by the model.
69
+ */
70
+ type: 'unsupported-setting';
71
+ setting: string;
72
+ details?: string;
73
+ } | {
74
+ /**
75
+ * A compatibility feature is used that might lead to suboptimal results.
76
+ */
77
+ type: 'compatibility';
78
+ feature: string;
79
+ details?: string;
80
+ } | {
81
+ /**
82
+ * Other warning.
83
+ */
84
+ type: 'other';
85
+ message: string;
86
+ };
87
+
62
88
  type SharedV2Headers = Record<string, string>;
63
89
 
64
90
  /**
@@ -1020,11 +1046,22 @@ interface LanguageModelV3ToolResultPart {
1020
1046
  * Result of a tool call.
1021
1047
  */
1022
1048
  type LanguageModelV3ToolResultOutput = {
1049
+ /**
1050
+ * Text tool output that should be directly sent to the API.
1051
+ */
1023
1052
  type: 'text';
1024
1053
  value: string;
1054
+ /**
1055
+ * Provider-specific options.
1056
+ */
1057
+ providerOptions?: SharedV3ProviderOptions;
1025
1058
  } | {
1026
1059
  type: 'json';
1027
1060
  value: JSONValue;
1061
+ /**
1062
+ * Provider-specific options.
1063
+ */
1064
+ providerOptions?: SharedV3ProviderOptions;
1028
1065
  } | {
1029
1066
  /**
1030
1067
  * Type when the user has denied the execution of the tool call.
@@ -1034,12 +1071,24 @@ type LanguageModelV3ToolResultOutput = {
1034
1071
  * Optional reason for the execution denial.
1035
1072
  */
1036
1073
  reason?: string;
1074
+ /**
1075
+ * Provider-specific options.
1076
+ */
1077
+ providerOptions?: SharedV3ProviderOptions;
1037
1078
  } | {
1038
1079
  type: 'error-text';
1039
1080
  value: string;
1081
+ /**
1082
+ * Provider-specific options.
1083
+ */
1084
+ providerOptions?: SharedV3ProviderOptions;
1040
1085
  } | {
1041
1086
  type: 'error-json';
1042
1087
  value: JSONValue;
1088
+ /**
1089
+ * Provider-specific options.
1090
+ */
1091
+ providerOptions?: SharedV3ProviderOptions;
1043
1092
  } | {
1044
1093
  type: 'content';
1045
1094
  value: Array<{
@@ -1048,8 +1097,12 @@ type LanguageModelV3ToolResultOutput = {
1048
1097
  Text content.
1049
1098
  */
1050
1099
  text: string;
1100
+ /**
1101
+ * Provider-specific options.
1102
+ */
1103
+ providerOptions?: SharedV3ProviderOptions;
1051
1104
  } | {
1052
- type: 'media';
1105
+ type: 'file-data';
1053
1106
  /**
1054
1107
  Base-64 encoded media data.
1055
1108
  */
@@ -1059,28 +1112,120 @@ IANA media type.
1059
1112
  @see https://www.iana.org/assignments/media-types/media-types.xhtml
1060
1113
  */
1061
1114
  mediaType: string;
1115
+ /**
1116
+ * Optional filename of the file.
1117
+ */
1118
+ filename?: string;
1119
+ /**
1120
+ * Provider-specific options.
1121
+ */
1122
+ providerOptions?: SharedV3ProviderOptions;
1123
+ } | {
1124
+ type: 'file-url';
1125
+ /**
1126
+ * URL of the file.
1127
+ */
1128
+ url: string;
1129
+ /**
1130
+ * Provider-specific options.
1131
+ */
1132
+ providerOptions?: SharedV3ProviderOptions;
1133
+ } | {
1134
+ type: 'file-id';
1135
+ /**
1136
+ * ID of the file.
1137
+ *
1138
+ * If you use multiple providers, you need to
1139
+ * specify the provider specific ids using
1140
+ * the Record option. The key is the provider
1141
+ * name, e.g. 'openai' or 'anthropic'.
1142
+ */
1143
+ fileId: string | Record<string, string>;
1144
+ /**
1145
+ * Provider-specific options.
1146
+ */
1147
+ providerOptions?: SharedV3ProviderOptions;
1148
+ } | {
1149
+ /**
1150
+ * Images that are referenced using base64 encoded data.
1151
+ */
1152
+ type: 'image-data';
1153
+ /**
1154
+ Base-64 encoded image data.
1155
+ */
1156
+ data: string;
1157
+ /**
1158
+ IANA media type.
1159
+ @see https://www.iana.org/assignments/media-types/media-types.xhtml
1160
+ */
1161
+ mediaType: string;
1162
+ /**
1163
+ * Provider-specific options.
1164
+ */
1165
+ providerOptions?: SharedV3ProviderOptions;
1166
+ } | {
1167
+ /**
1168
+ * Images that are referenced using a URL.
1169
+ */
1170
+ type: 'image-url';
1171
+ /**
1172
+ * URL of the image.
1173
+ */
1174
+ url: string;
1175
+ /**
1176
+ * Provider-specific options.
1177
+ */
1178
+ providerOptions?: SharedV3ProviderOptions;
1179
+ } | {
1180
+ /**
1181
+ * Images that are referenced using a provider file id.
1182
+ */
1183
+ type: 'image-file-id';
1184
+ /**
1185
+ * Image that is referenced using a provider file id.
1186
+ *
1187
+ * If you use multiple providers, you need to
1188
+ * specify the provider specific ids using
1189
+ * the Record option. The key is the provider
1190
+ * name, e.g. 'openai' or 'anthropic'.
1191
+ */
1192
+ fileId: string | Record<string, string>;
1193
+ /**
1194
+ * Provider-specific options.
1195
+ */
1196
+ providerOptions?: SharedV3ProviderOptions;
1197
+ } | {
1198
+ /**
1199
+ * Custom content part. This can be used to implement
1200
+ * provider-specific content parts.
1201
+ */
1202
+ type: 'custom';
1203
+ /**
1204
+ * Provider-specific options.
1205
+ */
1206
+ providerOptions?: SharedV3ProviderOptions;
1062
1207
  }>;
1063
1208
  };
1064
1209
 
1065
1210
  /**
1066
- The configuration of a tool that is defined by the provider.
1211
+ * The configuration of a tool that is defined by the provider.
1067
1212
  */
1068
1213
  type LanguageModelV3ProviderDefinedTool = {
1069
1214
  /**
1070
- The type of the tool (always 'provider-defined').
1215
+ * The type of the tool (always 'provider-defined').
1071
1216
  */
1072
1217
  type: 'provider-defined';
1073
1218
  /**
1074
- The ID of the tool. Should follow the format `<provider-name>.<unique-tool-name>`.
1219
+ * The ID of the tool. Should follow the format `<provider-id>.<unique-tool-name>`.
1075
1220
  */
1076
1221
  id: `${string}.${string}`;
1077
1222
  /**
1078
- The name of the tool that the user must use in the tool set.
1223
+ * The name of the tool that the user must use in the tool set.
1079
1224
  */
1080
1225
  name: string;
1081
1226
  /**
1082
- The arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.
1083
- */
1227
+ * The arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.
1228
+ */
1084
1229
  args: Record<string, unknown>;
1085
1230
  };
1086
1231
 
@@ -1337,6 +1482,11 @@ type LanguageModelV3ToolCall = {
1337
1482
  * If this flag is not set or is false, the tool call will be executed by the client.
1338
1483
  */
1339
1484
  providerExecuted?: boolean;
1485
+ /**
1486
+ * Whether the tool is dynamic, i.e. defined at runtime.
1487
+ * For example, MCP (Model Context Protocol) tools that are executed by the provider.
1488
+ */
1489
+ dynamic?: boolean;
1340
1490
  /**
1341
1491
  * Additional provider-specific metadata for the tool call.
1342
1492
  */
@@ -1381,6 +1531,11 @@ type LanguageModelV3ToolResult = {
1381
1531
  * If this flag is not set or is false, the tool result is not preliminary.
1382
1532
  */
1383
1533
  preliminary?: boolean;
1534
+ /**
1535
+ * Whether the tool is dynamic, i.e. defined at runtime.
1536
+ * For example, MCP (Model Context Protocol) tools that are executed by the provider.
1537
+ */
1538
+ dynamic?: boolean;
1384
1539
  /**
1385
1540
  * Additional provider-specific metadata for the tool result.
1386
1541
  */
@@ -1481,6 +1636,8 @@ type LanguageModelV3StreamPart = {
1481
1636
  toolName: string;
1482
1637
  providerMetadata?: SharedV3ProviderMetadata;
1483
1638
  providerExecuted?: boolean;
1639
+ dynamic?: boolean;
1640
+ title?: string;
1484
1641
  } | {
1485
1642
  type: 'tool-input-delta';
1486
1643
  id: string;
@@ -1517,11 +1674,11 @@ type LanguageModelV3 = {
1517
1674
  */
1518
1675
  readonly specificationVersion: 'v3';
1519
1676
  /**
1520
- Name of the provider for logging purposes.
1677
+ Provider ID.
1521
1678
  */
1522
1679
  readonly provider: string;
1523
1680
  /**
1524
- Provider-specific model ID for logging purposes.
1681
+ Provider-specific model ID.
1525
1682
  */
1526
1683
  readonly modelId: string;
1527
1684
  /**
@@ -2832,6 +2989,7 @@ type TranscriptionModelV3 = {
2832
2989
  * Provider for language, text embedding, and image generation models.
2833
2990
  */
2834
2991
  interface ProviderV3 {
2992
+ readonly specificationVersion: 'v3';
2835
2993
  /**
2836
2994
  Returns the language model with the given id.
2837
2995
  The model id is then passed to the provider function to get the model.
@@ -3230,4 +3388,4 @@ interface ProviderV2 {
3230
3388
  speechModel?(modelId: string): SpeechModelV2;
3231
3389
  }
3232
3390
 
3233
- export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3CallWarning, type ImageModelV3ProviderMetadata, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderDefinedTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3CallWarning, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderDefinedTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, type SpeechModelV3CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, type TranscriptionModelV3CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
3391
+ export { AISDKError, APICallError, type EmbeddingModelV2, type EmbeddingModelV2Embedding, type EmbeddingModelV3, type EmbeddingModelV3Embedding, EmptyResponseBodyError, type ImageModelV2, type ImageModelV2CallOptions, type ImageModelV2CallWarning, type ImageModelV2ProviderMetadata, type ImageModelV3, type ImageModelV3CallOptions, type ImageModelV3CallWarning, type ImageModelV3ProviderMetadata, InvalidArgumentError, InvalidPromptError, InvalidResponseDataError, type JSONArray, type JSONObject, JSONParseError, type JSONValue, type LanguageModelV2, type LanguageModelV2CallOptions, type LanguageModelV2CallWarning, type LanguageModelV2Content, type LanguageModelV2DataContent, type LanguageModelV2File, type LanguageModelV2FilePart, type LanguageModelV2FinishReason, type LanguageModelV2FunctionTool, type LanguageModelV2Message, type LanguageModelV2Middleware, type LanguageModelV2Prompt, type LanguageModelV2ProviderDefinedTool, type LanguageModelV2Reasoning, type LanguageModelV2ReasoningPart, type LanguageModelV2ResponseMetadata, type LanguageModelV2Source, type LanguageModelV2StreamPart, type LanguageModelV2Text, type LanguageModelV2TextPart, type LanguageModelV2ToolCall, type LanguageModelV2ToolCallPart, type LanguageModelV2ToolChoice, type LanguageModelV2ToolResultOutput, type LanguageModelV2ToolResultPart, type LanguageModelV2Usage, type LanguageModelV3, type LanguageModelV3CallOptions, type LanguageModelV3CallWarning, type LanguageModelV3Content, type LanguageModelV3DataContent, type LanguageModelV3File, type LanguageModelV3FilePart, type LanguageModelV3FinishReason, type LanguageModelV3FunctionTool, type LanguageModelV3Message, type LanguageModelV3Middleware, type LanguageModelV3Prompt, type LanguageModelV3ProviderDefinedTool, type LanguageModelV3Reasoning, type LanguageModelV3ReasoningPart, type LanguageModelV3ResponseMetadata, type LanguageModelV3Source, type LanguageModelV3StreamPart, type LanguageModelV3Text, type LanguageModelV3TextPart, type LanguageModelV3ToolCall, type LanguageModelV3ToolCallPart, type LanguageModelV3ToolChoice, type LanguageModelV3ToolResult, type LanguageModelV3ToolResultOutput, type LanguageModelV3ToolResultPart, type LanguageModelV3Usage, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, type ProviderV2, type ProviderV3, type SharedV2Headers, type SharedV2ProviderMetadata, type SharedV2ProviderOptions, type SharedV3Headers, type SharedV3ProviderMetadata, type SharedV3ProviderOptions, type SharedV3Warning, type SpeechModelV2, type SpeechModelV2CallOptions, type SpeechModelV2CallWarning, type SpeechModelV3, type SpeechModelV3CallOptions, type SpeechModelV3CallWarning, TooManyEmbeddingValuesForCallError, type TranscriptionModelV2, type TranscriptionModelV2CallOptions, type TranscriptionModelV2CallWarning, type TranscriptionModelV3, type TranscriptionModelV3CallOptions, type TranscriptionModelV3CallWarning, TypeValidationError, UnsupportedFunctionalityError, getErrorMessage, isJSONArray, isJSONObject, isJSONValue };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/provider",
3
- "version": "2.1.0-beta.5",
3
+ "version": "3.0.0-beta.10",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",