@ai-sdk/gateway 3.0.52 → 3.0.53

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
@@ -946,11 +946,12 @@ var gatewayImageResponseSchema = z7.object({
946
946
  });
947
947
 
948
948
  // src/gateway-video-model.ts
949
+ import { APICallError as APICallError2 } from "@ai-sdk/provider";
949
950
  import {
950
951
  combineHeaders as combineHeaders4,
951
952
  convertUint8ArrayToBase64 as convertUint8ArrayToBase642,
952
- createJsonResponseHandler as createJsonResponseHandler5,
953
953
  createJsonErrorResponseHandler as createJsonErrorResponseHandler5,
954
+ parseJsonEventStream,
954
955
  postJsonToApi as postJsonToApi4,
955
956
  resolve as resolve5
956
957
  } from "@ai-sdk/provider-utils";
@@ -982,17 +983,14 @@ var GatewayVideoModel = class {
982
983
  var _a9;
983
984
  const resolvedHeaders = await resolve5(this.config.headers());
984
985
  try {
985
- const {
986
- responseHeaders,
987
- value: responseBody,
988
- rawValue
989
- } = await postJsonToApi4({
986
+ const { responseHeaders, value: responseBody } = await postJsonToApi4({
990
987
  url: this.getUrl(),
991
988
  headers: combineHeaders4(
992
989
  resolvedHeaders,
993
990
  headers != null ? headers : {},
994
991
  this.getModelConfigHeaders(),
995
- await resolve5(this.config.o11yHeaders)
992
+ await resolve5(this.config.o11yHeaders),
993
+ { accept: "text/event-stream" }
996
994
  ),
997
995
  body: {
998
996
  prompt,
@@ -1005,9 +1003,70 @@ var GatewayVideoModel = class {
1005
1003
  ...providerOptions && { providerOptions },
1006
1004
  ...image && { image: maybeEncodeVideoFile(image) }
1007
1005
  },
1008
- successfulResponseHandler: createJsonResponseHandler5(
1009
- gatewayVideoResponseSchema
1010
- ),
1006
+ successfulResponseHandler: async ({
1007
+ response,
1008
+ url,
1009
+ requestBodyValues
1010
+ }) => {
1011
+ if (response.body == null) {
1012
+ throw new APICallError2({
1013
+ message: "SSE response body is empty",
1014
+ url,
1015
+ requestBodyValues,
1016
+ statusCode: response.status
1017
+ });
1018
+ }
1019
+ const eventStream = parseJsonEventStream({
1020
+ stream: response.body,
1021
+ schema: gatewayVideoEventSchema
1022
+ });
1023
+ const reader = eventStream.getReader();
1024
+ const { done, value: parseResult } = await reader.read();
1025
+ reader.releaseLock();
1026
+ if (done || !parseResult) {
1027
+ throw new APICallError2({
1028
+ message: "SSE stream ended without a data event",
1029
+ url,
1030
+ requestBodyValues,
1031
+ statusCode: response.status
1032
+ });
1033
+ }
1034
+ if (!parseResult.success) {
1035
+ throw new APICallError2({
1036
+ message: "Failed to parse video SSE event",
1037
+ cause: parseResult.error,
1038
+ url,
1039
+ requestBodyValues,
1040
+ statusCode: response.status
1041
+ });
1042
+ }
1043
+ const event = parseResult.value;
1044
+ if (event.type === "error") {
1045
+ throw new APICallError2({
1046
+ message: event.message,
1047
+ statusCode: event.statusCode,
1048
+ url,
1049
+ requestBodyValues,
1050
+ responseHeaders: Object.fromEntries([...response.headers]),
1051
+ responseBody: JSON.stringify(event),
1052
+ data: {
1053
+ error: {
1054
+ message: event.message,
1055
+ type: event.errorType,
1056
+ param: event.param
1057
+ }
1058
+ }
1059
+ });
1060
+ }
1061
+ return {
1062
+ value: {
1063
+ videos: event.videos,
1064
+ warnings: event.warnings,
1065
+ providerMetadata: event.providerMetadata
1066
+ },
1067
+ responseHeaders: Object.fromEntries([...response.headers])
1068
+ };
1069
+ },
1011
1070
  failedResponseHandler: createJsonErrorResponseHandler5({
1012
1071
  errorSchema: z8.any(),
1013
1072
  errorToMessage: (data) => data
@@ -1079,11 +1138,21 @@ var gatewayVideoWarningSchema = z8.discriminatedUnion("type", [
1079
1138
  message: z8.string()
1080
1139
  })
1081
1140
  ]);
1082
- var gatewayVideoResponseSchema = z8.object({
1083
- videos: z8.array(gatewayVideoDataSchema),
1084
- warnings: z8.array(gatewayVideoWarningSchema).optional(),
1085
- providerMetadata: z8.record(z8.string(), providerMetadataEntrySchema2).optional()
1086
- });
1141
+ var gatewayVideoEventSchema = z8.discriminatedUnion("type", [
1142
+ z8.object({
1143
+ type: z8.literal("result"),
1144
+ videos: z8.array(gatewayVideoDataSchema),
1145
+ warnings: z8.array(gatewayVideoWarningSchema).optional(),
1146
+ providerMetadata: z8.record(z8.string(), providerMetadataEntrySchema2).optional()
1147
+ }),
1148
+ z8.object({
1149
+ type: z8.literal("error"),
1150
+ message: z8.string(),
1151
+ errorType: z8.string(),
1152
+ statusCode: z8.number(),
1153
+ param: z8.unknown().nullable()
1154
+ })
1155
+ ]);
1087
1156
 
1088
1157
  // src/tool/parallel-search.ts
1089
1158
  import {
@@ -1287,7 +1356,7 @@ async function getVercelRequestId() {
1287
1356
  import { withUserAgentSuffix } from "@ai-sdk/provider-utils";
1288
1357
 
1289
1358
  // src/version.ts
1290
- var VERSION = true ? "3.0.52" : "0.0.0-test";
1359
+ var VERSION = true ? "3.0.53" : "0.0.0-test";
1291
1360
 
1292
1361
  // src/gateway-provider.ts
1293
1362
  var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";