ai 3.3.11 → 3.3.13

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.mjs CHANGED
@@ -730,15 +730,20 @@ var InvalidDataContentError = class extends AISDKError3 {
730
730
  _a3 = symbol3;
731
731
 
732
732
  // core/prompt/data-content.ts
733
- function convertDataContentToBase64String(content) {
734
- if (typeof content === "string") {
735
- return content;
736
- }
737
- if (content instanceof ArrayBuffer) {
738
- return convertUint8ArrayToBase64(new Uint8Array(content));
739
- }
740
- return convertUint8ArrayToBase64(content);
741
- }
733
+ import { z } from "zod";
734
+ var dataContentSchema = z.union([
735
+ z.string(),
736
+ z.instanceof(Uint8Array),
737
+ z.instanceof(ArrayBuffer),
738
+ z.custom(
739
+ // Buffer might not be available in some environments such as CloudFlare:
740
+ (value) => {
741
+ var _a12, _b;
742
+ return (_b = (_a12 = globalThis.Buffer) == null ? void 0 : _a12.isBuffer(value)) != null ? _b : false;
743
+ },
744
+ { message: "Must be a Buffer" }
745
+ )
746
+ ]);
742
747
  function convertDataContentToUint8Array(content) {
743
748
  if (content instanceof Uint8Array) {
744
749
  return content;
@@ -1013,45 +1018,6 @@ async function downloadImages(messages, downloadImplementation) {
1013
1018
  );
1014
1019
  }
1015
1020
 
1016
- // core/prompt/get-validated-prompt.ts
1017
- import { InvalidPromptError } from "@ai-sdk/provider";
1018
- function getValidatedPrompt(prompt) {
1019
- if (prompt.prompt == null && prompt.messages == null) {
1020
- throw new InvalidPromptError({
1021
- prompt,
1022
- message: "prompt or messages must be defined"
1023
- });
1024
- }
1025
- if (prompt.prompt != null && prompt.messages != null) {
1026
- throw new InvalidPromptError({
1027
- prompt,
1028
- message: "prompt and messages cannot be defined at the same time"
1029
- });
1030
- }
1031
- if (prompt.messages != null) {
1032
- for (const message of prompt.messages) {
1033
- if (message.role === "system" && typeof message.content !== "string") {
1034
- throw new InvalidPromptError({
1035
- prompt,
1036
- message: "system message content must be a string"
1037
- });
1038
- }
1039
- }
1040
- }
1041
- return prompt.prompt != null ? {
1042
- type: "prompt",
1043
- prompt: prompt.prompt,
1044
- messages: void 0,
1045
- system: prompt.system
1046
- } : {
1047
- type: "messages",
1048
- prompt: void 0,
1049
- messages: prompt.messages,
1050
- // only possible case bc of checks above
1051
- system: prompt.system
1052
- };
1053
- }
1054
-
1055
1021
  // errors/invalid-argument-error.ts
1056
1022
  import { AISDKError as AISDKError5 } from "@ai-sdk/provider";
1057
1023
  var name5 = "AI_InvalidArgumentError";
@@ -1193,6 +1159,155 @@ function prepareCallSettings({
1193
1159
  };
1194
1160
  }
1195
1161
 
1162
+ // core/prompt/validate-prompt.ts
1163
+ import { InvalidPromptError } from "@ai-sdk/provider";
1164
+ import { safeValidateTypes } from "@ai-sdk/provider-utils";
1165
+ import { z as z6 } from "zod";
1166
+
1167
+ // core/prompt/message.ts
1168
+ import { z as z5 } from "zod";
1169
+
1170
+ // core/types/provider-metadata.ts
1171
+ import { z as z3 } from "zod";
1172
+
1173
+ // core/types/json-value.ts
1174
+ import { z as z2 } from "zod";
1175
+ var jsonValueSchema = z2.lazy(
1176
+ () => z2.union([
1177
+ z2.null(),
1178
+ z2.string(),
1179
+ z2.number(),
1180
+ z2.boolean(),
1181
+ z2.record(z2.string(), jsonValueSchema),
1182
+ z2.array(jsonValueSchema)
1183
+ ])
1184
+ );
1185
+
1186
+ // core/types/provider-metadata.ts
1187
+ var providerMetadataSchema = z3.record(
1188
+ z3.string(),
1189
+ z3.record(z3.string(), jsonValueSchema)
1190
+ );
1191
+
1192
+ // core/prompt/content-part.ts
1193
+ import { z as z4 } from "zod";
1194
+ var textPartSchema = z4.object({
1195
+ type: z4.literal("text"),
1196
+ text: z4.string(),
1197
+ experimental_providerMetadata: providerMetadataSchema.optional()
1198
+ });
1199
+ var imagePartSchema = z4.object({
1200
+ type: z4.literal("image"),
1201
+ image: z4.union([dataContentSchema, z4.instanceof(URL)]),
1202
+ mimeType: z4.string().optional(),
1203
+ experimental_providerMetadata: providerMetadataSchema.optional()
1204
+ });
1205
+ var toolCallPartSchema = z4.object({
1206
+ type: z4.literal("tool-call"),
1207
+ toolCallId: z4.string(),
1208
+ toolName: z4.string(),
1209
+ args: z4.unknown()
1210
+ });
1211
+ var toolResultPartSchema = z4.object({
1212
+ type: z4.literal("tool-result"),
1213
+ toolCallId: z4.string(),
1214
+ toolName: z4.string(),
1215
+ result: z4.unknown(),
1216
+ isError: z4.boolean().optional(),
1217
+ experimental_providerMetadata: providerMetadataSchema.optional()
1218
+ });
1219
+
1220
+ // core/prompt/message.ts
1221
+ var coreSystemMessageSchema = z5.object({
1222
+ role: z5.literal("system"),
1223
+ content: z5.string(),
1224
+ experimental_providerMetadata: providerMetadataSchema.optional()
1225
+ });
1226
+ var coreUserMessageSchema = z5.object({
1227
+ role: z5.literal("user"),
1228
+ content: z5.union([
1229
+ z5.string(),
1230
+ z5.array(z5.union([textPartSchema, imagePartSchema]))
1231
+ ]),
1232
+ experimental_providerMetadata: providerMetadataSchema.optional()
1233
+ });
1234
+ var coreAssistantMessageSchema = z5.object({
1235
+ role: z5.literal("assistant"),
1236
+ content: z5.union([
1237
+ z5.string(),
1238
+ z5.array(z5.union([textPartSchema, toolCallPartSchema]))
1239
+ ]),
1240
+ experimental_providerMetadata: providerMetadataSchema.optional()
1241
+ });
1242
+ var coreToolMessageSchema = z5.object({
1243
+ role: z5.literal("tool"),
1244
+ content: z5.array(toolResultPartSchema),
1245
+ experimental_providerMetadata: providerMetadataSchema.optional()
1246
+ });
1247
+ var coreMessageSchema = z5.union([
1248
+ coreSystemMessageSchema,
1249
+ coreUserMessageSchema,
1250
+ coreAssistantMessageSchema,
1251
+ coreToolMessageSchema
1252
+ ]);
1253
+
1254
+ // core/prompt/validate-prompt.ts
1255
+ function validatePrompt(prompt) {
1256
+ if (prompt.prompt == null && prompt.messages == null) {
1257
+ throw new InvalidPromptError({
1258
+ prompt,
1259
+ message: "prompt or messages must be defined"
1260
+ });
1261
+ }
1262
+ if (prompt.prompt != null && prompt.messages != null) {
1263
+ throw new InvalidPromptError({
1264
+ prompt,
1265
+ message: "prompt and messages cannot be defined at the same time"
1266
+ });
1267
+ }
1268
+ if (prompt.system != null && typeof prompt.system !== "string") {
1269
+ throw new InvalidPromptError({
1270
+ prompt,
1271
+ message: "system must be a string"
1272
+ });
1273
+ }
1274
+ if (prompt.prompt != null) {
1275
+ if (typeof prompt.prompt !== "string") {
1276
+ throw new InvalidPromptError({
1277
+ prompt,
1278
+ message: "prompt must be a string"
1279
+ });
1280
+ }
1281
+ return {
1282
+ type: "prompt",
1283
+ prompt: prompt.prompt,
1284
+ messages: void 0,
1285
+ system: prompt.system
1286
+ };
1287
+ }
1288
+ if (prompt.messages != null) {
1289
+ const validationResult = safeValidateTypes({
1290
+ value: prompt.messages,
1291
+ schema: z6.array(coreMessageSchema)
1292
+ });
1293
+ if (!validationResult.success) {
1294
+ throw new InvalidPromptError({
1295
+ prompt,
1296
+ message: "messages must be an array of CoreMessage",
1297
+ cause: validationResult.error
1298
+ });
1299
+ }
1300
+ return {
1301
+ type: "messages",
1302
+ prompt: void 0,
1303
+ messages: prompt.messages,
1304
+ // only possible case bc of checks above
1305
+ system: prompt.system
1306
+ };
1307
+ }
1308
+ throw new Error("unreachable");
1309
+ }
1310
+
1196
1311
  // core/types/token-usage.ts
1197
1312
  function calculateCompletionTokenUsage(usage) {
1198
1313
  return {
@@ -1334,7 +1449,7 @@ async function generateObject({
1334
1449
  let providerMetadata;
1335
1450
  switch (mode) {
1336
1451
  case "json": {
1337
- const validatedPrompt = getValidatedPrompt({
1452
+ const validatedPrompt = validatePrompt({
1338
1453
  system: model.supportsStructuredOutputs ? system : injectJsonSchemaIntoSystem({
1339
1454
  system,
1340
1455
  schema: schema.jsonSchema
@@ -1420,7 +1535,7 @@ async function generateObject({
1420
1535
  break;
1421
1536
  }
1422
1537
  case "tool": {
1423
- const validatedPrompt = getValidatedPrompt({
1538
+ const validatedPrompt = validatePrompt({
1424
1539
  system,
1425
1540
  prompt,
1426
1541
  messages
@@ -1569,7 +1684,7 @@ var DefaultGenerateObjectResult = class {
1569
1684
  var experimental_generateObject = generateObject;
1570
1685
 
1571
1686
  // core/generate-object/stream-object.ts
1572
- import { safeValidateTypes } from "@ai-sdk/provider-utils";
1687
+ import { safeValidateTypes as safeValidateTypes2 } from "@ai-sdk/provider-utils";
1573
1688
  import {
1574
1689
  asSchema as asSchema2,
1575
1690
  isDeepEqualData,
@@ -1703,7 +1818,7 @@ async function streamObject({
1703
1818
  let transformer;
1704
1819
  switch (mode) {
1705
1820
  case "json": {
1706
- const validatedPrompt = getValidatedPrompt({
1821
+ const validatedPrompt = validatePrompt({
1707
1822
  system: model.supportsStructuredOutputs ? system : injectJsonSchemaIntoSystem({
1708
1823
  system,
1709
1824
  schema: schema.jsonSchema
@@ -1743,7 +1858,7 @@ async function streamObject({
1743
1858
  break;
1744
1859
  }
1745
1860
  case "tool": {
1746
- const validatedPrompt = getValidatedPrompt({
1861
+ const validatedPrompt = validatePrompt({
1747
1862
  system,
1748
1863
  prompt,
1749
1864
  messages
@@ -1925,7 +2040,7 @@ var DefaultStreamObjectResult = class {
1925
2040
  controller.enqueue({ ...chunk, usage });
1926
2041
  resolveUsage(usage);
1927
2042
  resolveProviderMetadata(providerMetadata);
1928
- const validationResult = safeValidateTypes({
2043
+ const validationResult = safeValidateTypes2({
1929
2044
  value: latestObject,
1930
2045
  schema
1931
2046
  });
@@ -2286,7 +2401,7 @@ async function generateText({
2286
2401
  fn: async (span) => {
2287
2402
  var _a13, _b, _c, _d;
2288
2403
  const retry = retryWithExponentialBackoff({ maxRetries });
2289
- const validatedPrompt = getValidatedPrompt({
2404
+ const validatedPrompt = validatePrompt({
2290
2405
  system,
2291
2406
  prompt,
2292
2407
  messages
@@ -2863,7 +2978,7 @@ async function streamText({
2863
2978
  endWhenDone: false,
2864
2979
  fn: async (rootSpan) => {
2865
2980
  const retry = retryWithExponentialBackoff({ maxRetries });
2866
- const validatedPrompt = getValidatedPrompt({ system, prompt, messages });
2981
+ const validatedPrompt = validatePrompt({ system, prompt, messages });
2867
2982
  const promptMessages = await convertToLanguageModelPrompt({
2868
2983
  prompt: validatedPrompt,
2869
2984
  modelSupportsImageUrls: model.supportsImageUrls
@@ -4738,10 +4853,7 @@ export {
4738
4853
  StreamingTextResponse,
4739
4854
  TypeValidationError,
4740
4855
  UnsupportedFunctionalityError,
4741
- convertDataContentToBase64String,
4742
- convertDataContentToUint8Array,
4743
4856
  convertToCoreMessages,
4744
- convertUint8ArrayToText,
4745
4857
  cosineSimilarity,
4746
4858
  createCallbacksTransformer,
4747
4859
  createEventStreamTransformer,