@ai-sdk/replicate 3.0.0-beta.20 → 3.0.0-beta.21
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 +12 -0
- package/dist/index.js +107 -110
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/index.d.mts +0 -117
- package/dist/index.mjs +0 -519
- package/dist/index.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ai-sdk/replicate
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.21
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [ef992f8]
|
|
12
|
+
- @ai-sdk/provider@4.0.0-beta.11
|
|
13
|
+
- @ai-sdk/provider-utils@5.0.0-beta.19
|
|
14
|
+
|
|
3
15
|
## 3.0.0-beta.20
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -1,47 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var index_exports = {};
|
|
22
|
-
__export(index_exports, {
|
|
23
|
-
VERSION: () => VERSION,
|
|
24
|
-
createReplicate: () => createReplicate,
|
|
25
|
-
replicate: () => replicate
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(index_exports);
|
|
28
|
-
|
|
29
1
|
// src/replicate-provider.ts
|
|
30
|
-
|
|
31
|
-
|
|
2
|
+
import {
|
|
3
|
+
NoSuchModelError
|
|
4
|
+
} from "@ai-sdk/provider";
|
|
5
|
+
import { loadApiKey, withUserAgentSuffix } from "@ai-sdk/provider-utils";
|
|
32
6
|
|
|
33
7
|
// src/replicate-image-model.ts
|
|
34
|
-
|
|
35
|
-
|
|
8
|
+
import {
|
|
9
|
+
combineHeaders,
|
|
10
|
+
convertImageModelFileToDataUri,
|
|
11
|
+
createBinaryResponseHandler,
|
|
12
|
+
createJsonResponseHandler,
|
|
13
|
+
getFromApi,
|
|
14
|
+
lazySchema,
|
|
15
|
+
parseProviderOptions,
|
|
16
|
+
postJsonToApi,
|
|
17
|
+
resolve,
|
|
18
|
+
zodSchema
|
|
19
|
+
} from "@ai-sdk/provider-utils";
|
|
20
|
+
import { z as z2 } from "zod/v4";
|
|
36
21
|
|
|
37
22
|
// src/replicate-error.ts
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var replicateErrorSchema =
|
|
41
|
-
detail:
|
|
42
|
-
error:
|
|
23
|
+
import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
|
|
24
|
+
import { z } from "zod/v4";
|
|
25
|
+
var replicateErrorSchema = z.object({
|
|
26
|
+
detail: z.string().optional(),
|
|
27
|
+
error: z.string().optional()
|
|
43
28
|
});
|
|
44
|
-
var replicateFailedResponseHandler =
|
|
29
|
+
var replicateFailedResponseHandler = createJsonErrorResponseHandler({
|
|
45
30
|
errorSchema: replicateErrorSchema,
|
|
46
31
|
errorToMessage: (error) => {
|
|
47
32
|
var _a, _b;
|
|
@@ -83,7 +68,7 @@ var ReplicateImageModel = class {
|
|
|
83
68
|
const warnings = [];
|
|
84
69
|
const [modelId, version] = this.modelId.split(":");
|
|
85
70
|
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
86
|
-
const replicateOptions = await
|
|
71
|
+
const replicateOptions = await parseProviderOptions({
|
|
87
72
|
provider: "replicate",
|
|
88
73
|
providerOptions,
|
|
89
74
|
schema: replicateImageModelOptionsSchema
|
|
@@ -93,7 +78,7 @@ var ReplicateImageModel = class {
|
|
|
93
78
|
if (this.isFlux2Model) {
|
|
94
79
|
for (let i = 0; i < Math.min(files.length, MAX_FLUX_2_INPUT_IMAGES); i++) {
|
|
95
80
|
const key = i === 0 ? "input_image" : `input_image_${i + 1}`;
|
|
96
|
-
imageInputs[key] =
|
|
81
|
+
imageInputs[key] = convertImageModelFileToDataUri(files[i]);
|
|
97
82
|
}
|
|
98
83
|
if (files.length > MAX_FLUX_2_INPUT_IMAGES) {
|
|
99
84
|
warnings.push({
|
|
@@ -102,7 +87,7 @@ var ReplicateImageModel = class {
|
|
|
102
87
|
});
|
|
103
88
|
}
|
|
104
89
|
} else {
|
|
105
|
-
imageInputs = { image:
|
|
90
|
+
imageInputs = { image: convertImageModelFileToDataUri(files[0]) };
|
|
106
91
|
if (files.length > 1) {
|
|
107
92
|
warnings.push({
|
|
108
93
|
type: "other",
|
|
@@ -119,7 +104,7 @@ var ReplicateImageModel = class {
|
|
|
119
104
|
message: "Flux-2 models do not support mask input. The mask will be ignored."
|
|
120
105
|
});
|
|
121
106
|
} else {
|
|
122
|
-
maskInput =
|
|
107
|
+
maskInput = convertImageModelFileToDataUri(mask);
|
|
123
108
|
}
|
|
124
109
|
}
|
|
125
110
|
const { maxWaitTimeInSeconds, ...inputOptions } = replicateOptions != null ? replicateOptions : {};
|
|
@@ -127,13 +112,13 @@ var ReplicateImageModel = class {
|
|
|
127
112
|
const {
|
|
128
113
|
value: { output },
|
|
129
114
|
responseHeaders
|
|
130
|
-
} = await
|
|
115
|
+
} = await postJsonToApi({
|
|
131
116
|
url: (
|
|
132
117
|
// different endpoints for versioned vs unversioned models:
|
|
133
118
|
version != null ? `${this.config.baseURL}/predictions` : `${this.config.baseURL}/models/${modelId}/predictions`
|
|
134
119
|
),
|
|
135
|
-
headers:
|
|
136
|
-
await
|
|
120
|
+
headers: combineHeaders(
|
|
121
|
+
await resolve(this.config.headers),
|
|
137
122
|
headers,
|
|
138
123
|
preferHeader
|
|
139
124
|
),
|
|
@@ -151,7 +136,7 @@ var ReplicateImageModel = class {
|
|
|
151
136
|
// for versioned models, include the version in the body:
|
|
152
137
|
...version != null ? { version } : {}
|
|
153
138
|
},
|
|
154
|
-
successfulResponseHandler:
|
|
139
|
+
successfulResponseHandler: createJsonResponseHandler(
|
|
155
140
|
replicateImageResponseSchema
|
|
156
141
|
),
|
|
157
142
|
failedResponseHandler: replicateFailedResponseHandler,
|
|
@@ -161,9 +146,9 @@ var ReplicateImageModel = class {
|
|
|
161
146
|
const outputArray = Array.isArray(output) ? output : [output];
|
|
162
147
|
const images = await Promise.all(
|
|
163
148
|
outputArray.map(async (url) => {
|
|
164
|
-
const { value: image } = await
|
|
149
|
+
const { value: image } = await getFromApi({
|
|
165
150
|
url,
|
|
166
|
-
successfulResponseHandler:
|
|
151
|
+
successfulResponseHandler: createBinaryResponseHandler(),
|
|
167
152
|
failedResponseHandler: replicateFailedResponseHandler,
|
|
168
153
|
abortSignal,
|
|
169
154
|
fetch: this.config.fetch
|
|
@@ -182,12 +167,12 @@ var ReplicateImageModel = class {
|
|
|
182
167
|
};
|
|
183
168
|
}
|
|
184
169
|
};
|
|
185
|
-
var replicateImageResponseSchema =
|
|
186
|
-
output:
|
|
170
|
+
var replicateImageResponseSchema = z2.object({
|
|
171
|
+
output: z2.union([z2.array(z2.string()), z2.string()])
|
|
187
172
|
});
|
|
188
|
-
var replicateImageModelOptionsSchema =
|
|
189
|
-
() =>
|
|
190
|
-
|
|
173
|
+
var replicateImageModelOptionsSchema = lazySchema(
|
|
174
|
+
() => zodSchema(
|
|
175
|
+
z2.object({
|
|
191
176
|
/**
|
|
192
177
|
* Maximum time in seconds to wait for the prediction to complete in sync mode.
|
|
193
178
|
* By default, Replicate uses sync mode with a 60-second timeout.
|
|
@@ -195,41 +180,54 @@ var replicateImageModelOptionsSchema = (0, import_provider_utils2.lazySchema)(
|
|
|
195
180
|
* - When not specified: Uses default 60-second sync wait (`prefer: wait`)
|
|
196
181
|
* - When set to a positive number: Uses that duration (`prefer: wait=N`)
|
|
197
182
|
*/
|
|
198
|
-
maxWaitTimeInSeconds:
|
|
183
|
+
maxWaitTimeInSeconds: z2.number().positive().nullish(),
|
|
199
184
|
/**
|
|
200
185
|
* Guidance scale for classifier-free guidance.
|
|
201
186
|
* Higher values make the output more closely match the prompt.
|
|
202
187
|
*/
|
|
203
|
-
guidance_scale:
|
|
188
|
+
guidance_scale: z2.number().nullish(),
|
|
204
189
|
/**
|
|
205
190
|
* Number of denoising steps. More steps = higher quality but slower.
|
|
206
191
|
*/
|
|
207
|
-
num_inference_steps:
|
|
192
|
+
num_inference_steps: z2.number().nullish(),
|
|
208
193
|
/**
|
|
209
194
|
* Negative prompt to guide what to avoid in the generation.
|
|
210
195
|
*/
|
|
211
|
-
negative_prompt:
|
|
196
|
+
negative_prompt: z2.string().nullish(),
|
|
212
197
|
/**
|
|
213
198
|
* Output image format.
|
|
214
199
|
*/
|
|
215
|
-
output_format:
|
|
200
|
+
output_format: z2.enum(["png", "jpg", "webp"]).nullish(),
|
|
216
201
|
/**
|
|
217
202
|
* Output image quality (1-100). Only applies to jpg and webp.
|
|
218
203
|
*/
|
|
219
|
-
output_quality:
|
|
204
|
+
output_quality: z2.number().min(1).max(100).nullish(),
|
|
220
205
|
/**
|
|
221
206
|
* Strength of the transformation for img2img (0-1).
|
|
222
207
|
* Lower values keep more of the original image.
|
|
223
208
|
*/
|
|
224
|
-
strength:
|
|
209
|
+
strength: z2.number().min(0).max(1).nullish()
|
|
225
210
|
}).passthrough()
|
|
226
211
|
)
|
|
227
212
|
);
|
|
228
213
|
|
|
229
214
|
// src/replicate-video-model.ts
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
215
|
+
import {
|
|
216
|
+
AISDKError
|
|
217
|
+
} from "@ai-sdk/provider";
|
|
218
|
+
import {
|
|
219
|
+
combineHeaders as combineHeaders2,
|
|
220
|
+
convertImageModelFileToDataUri as convertImageModelFileToDataUri2,
|
|
221
|
+
createJsonResponseHandler as createJsonResponseHandler2,
|
|
222
|
+
delay,
|
|
223
|
+
getFromApi as getFromApi2,
|
|
224
|
+
lazySchema as lazySchema2,
|
|
225
|
+
parseProviderOptions as parseProviderOptions2,
|
|
226
|
+
postJsonToApi as postJsonToApi2,
|
|
227
|
+
resolve as resolve2,
|
|
228
|
+
zodSchema as zodSchema2
|
|
229
|
+
} from "@ai-sdk/provider-utils";
|
|
230
|
+
import { z as z3 } from "zod/v4";
|
|
233
231
|
var ReplicateVideoModel = class {
|
|
234
232
|
constructor(modelId, config) {
|
|
235
233
|
this.modelId = modelId;
|
|
@@ -245,7 +243,7 @@ var ReplicateVideoModel = class {
|
|
|
245
243
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
246
244
|
const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
|
|
247
245
|
const warnings = [];
|
|
248
|
-
const replicateOptions = await (
|
|
246
|
+
const replicateOptions = await parseProviderOptions2({
|
|
249
247
|
provider: "replicate",
|
|
250
248
|
providerOptions: options.providerOptions,
|
|
251
249
|
schema: replicateVideoModelOptionsSchema
|
|
@@ -259,7 +257,7 @@ var ReplicateVideoModel = class {
|
|
|
259
257
|
if (options.image.type === "url") {
|
|
260
258
|
input.image = options.image.url;
|
|
261
259
|
} else {
|
|
262
|
-
input.image = (
|
|
260
|
+
input.image = convertImageModelFileToDataUri2(options.image);
|
|
263
261
|
}
|
|
264
262
|
}
|
|
265
263
|
if (options.aspectRatio) {
|
|
@@ -328,10 +326,10 @@ var ReplicateVideoModel = class {
|
|
|
328
326
|
const maxWaitTimeInSeconds = replicateOptions == null ? void 0 : replicateOptions.maxWaitTimeInSeconds;
|
|
329
327
|
const preferHeader = maxWaitTimeInSeconds != null ? { prefer: `wait=${maxWaitTimeInSeconds}` } : { prefer: "wait" };
|
|
330
328
|
const predictionUrl = version != null ? `${this.config.baseURL}/predictions` : `${this.config.baseURL}/models/${modelId}/predictions`;
|
|
331
|
-
const { value: prediction, responseHeaders } = await (
|
|
329
|
+
const { value: prediction, responseHeaders } = await postJsonToApi2({
|
|
332
330
|
url: predictionUrl,
|
|
333
|
-
headers: (
|
|
334
|
-
await (
|
|
331
|
+
headers: combineHeaders2(
|
|
332
|
+
await resolve2(this.config.headers),
|
|
335
333
|
options.headers,
|
|
336
334
|
preferHeader
|
|
337
335
|
),
|
|
@@ -339,7 +337,7 @@ var ReplicateVideoModel = class {
|
|
|
339
337
|
input,
|
|
340
338
|
...version != null ? { version } : {}
|
|
341
339
|
},
|
|
342
|
-
successfulResponseHandler: (
|
|
340
|
+
successfulResponseHandler: createJsonResponseHandler2(
|
|
343
341
|
replicatePredictionSchema
|
|
344
342
|
),
|
|
345
343
|
failedResponseHandler: replicateFailedResponseHandler,
|
|
@@ -353,22 +351,22 @@ var ReplicateVideoModel = class {
|
|
|
353
351
|
const startTime = Date.now();
|
|
354
352
|
while (finalPrediction.status === "starting" || finalPrediction.status === "processing") {
|
|
355
353
|
if (Date.now() - startTime > pollTimeoutMs) {
|
|
356
|
-
throw new
|
|
354
|
+
throw new AISDKError({
|
|
357
355
|
name: "REPLICATE_VIDEO_GENERATION_TIMEOUT",
|
|
358
356
|
message: `Video generation timed out after ${pollTimeoutMs}ms`
|
|
359
357
|
});
|
|
360
358
|
}
|
|
361
|
-
await
|
|
359
|
+
await delay(pollIntervalMs);
|
|
362
360
|
if ((_f = options.abortSignal) == null ? void 0 : _f.aborted) {
|
|
363
|
-
throw new
|
|
361
|
+
throw new AISDKError({
|
|
364
362
|
name: "REPLICATE_VIDEO_GENERATION_ABORTED",
|
|
365
363
|
message: "Video generation request was aborted"
|
|
366
364
|
});
|
|
367
365
|
}
|
|
368
|
-
const { value: statusPrediction } = await (
|
|
366
|
+
const { value: statusPrediction } = await getFromApi2({
|
|
369
367
|
url: finalPrediction.urls.get,
|
|
370
|
-
headers: await (
|
|
371
|
-
successfulResponseHandler: (
|
|
368
|
+
headers: await resolve2(this.config.headers),
|
|
369
|
+
successfulResponseHandler: createJsonResponseHandler2(
|
|
372
370
|
replicatePredictionSchema
|
|
373
371
|
),
|
|
374
372
|
failedResponseHandler: replicateFailedResponseHandler,
|
|
@@ -379,20 +377,20 @@ var ReplicateVideoModel = class {
|
|
|
379
377
|
}
|
|
380
378
|
}
|
|
381
379
|
if (finalPrediction.status === "failed") {
|
|
382
|
-
throw new
|
|
380
|
+
throw new AISDKError({
|
|
383
381
|
name: "REPLICATE_VIDEO_GENERATION_FAILED",
|
|
384
382
|
message: `Video generation failed: ${(_g = finalPrediction.error) != null ? _g : "Unknown error"}`
|
|
385
383
|
});
|
|
386
384
|
}
|
|
387
385
|
if (finalPrediction.status === "canceled") {
|
|
388
|
-
throw new
|
|
386
|
+
throw new AISDKError({
|
|
389
387
|
name: "REPLICATE_VIDEO_GENERATION_CANCELED",
|
|
390
388
|
message: "Video generation was canceled"
|
|
391
389
|
});
|
|
392
390
|
}
|
|
393
391
|
const videoUrl = finalPrediction.output;
|
|
394
392
|
if (!videoUrl) {
|
|
395
|
-
throw new
|
|
393
|
+
throw new AISDKError({
|
|
396
394
|
name: "REPLICATE_VIDEO_GENERATION_ERROR",
|
|
397
395
|
message: "No video URL in response"
|
|
398
396
|
});
|
|
@@ -425,45 +423,45 @@ var ReplicateVideoModel = class {
|
|
|
425
423
|
};
|
|
426
424
|
}
|
|
427
425
|
};
|
|
428
|
-
var replicatePredictionSchema =
|
|
429
|
-
id:
|
|
430
|
-
status:
|
|
431
|
-
output:
|
|
432
|
-
error:
|
|
433
|
-
urls:
|
|
434
|
-
get:
|
|
426
|
+
var replicatePredictionSchema = z3.object({
|
|
427
|
+
id: z3.string(),
|
|
428
|
+
status: z3.enum(["starting", "processing", "succeeded", "failed", "canceled"]),
|
|
429
|
+
output: z3.string().nullish(),
|
|
430
|
+
error: z3.string().nullish(),
|
|
431
|
+
urls: z3.object({
|
|
432
|
+
get: z3.string()
|
|
435
433
|
}),
|
|
436
|
-
metrics:
|
|
437
|
-
predict_time:
|
|
434
|
+
metrics: z3.object({
|
|
435
|
+
predict_time: z3.number().nullish()
|
|
438
436
|
}).nullish()
|
|
439
437
|
});
|
|
440
|
-
var replicateVideoModelOptionsSchema = (
|
|
441
|
-
() => (
|
|
442
|
-
|
|
443
|
-
pollIntervalMs:
|
|
444
|
-
pollTimeoutMs:
|
|
445
|
-
maxWaitTimeInSeconds:
|
|
446
|
-
guidance_scale:
|
|
447
|
-
num_inference_steps:
|
|
448
|
-
motion_bucket_id:
|
|
449
|
-
cond_aug:
|
|
450
|
-
decoding_t:
|
|
451
|
-
video_length:
|
|
452
|
-
sizing_strategy:
|
|
453
|
-
frames_per_second:
|
|
454
|
-
prompt_optimizer:
|
|
438
|
+
var replicateVideoModelOptionsSchema = lazySchema2(
|
|
439
|
+
() => zodSchema2(
|
|
440
|
+
z3.object({
|
|
441
|
+
pollIntervalMs: z3.number().positive().nullish(),
|
|
442
|
+
pollTimeoutMs: z3.number().positive().nullish(),
|
|
443
|
+
maxWaitTimeInSeconds: z3.number().positive().nullish(),
|
|
444
|
+
guidance_scale: z3.number().nullish(),
|
|
445
|
+
num_inference_steps: z3.number().nullish(),
|
|
446
|
+
motion_bucket_id: z3.number().nullish(),
|
|
447
|
+
cond_aug: z3.number().nullish(),
|
|
448
|
+
decoding_t: z3.number().nullish(),
|
|
449
|
+
video_length: z3.string().nullish(),
|
|
450
|
+
sizing_strategy: z3.string().nullish(),
|
|
451
|
+
frames_per_second: z3.number().nullish(),
|
|
452
|
+
prompt_optimizer: z3.boolean().nullish()
|
|
455
453
|
}).loose()
|
|
456
454
|
)
|
|
457
455
|
);
|
|
458
456
|
|
|
459
457
|
// src/version.ts
|
|
460
|
-
var VERSION = true ? "3.0.0-beta.
|
|
458
|
+
var VERSION = true ? "3.0.0-beta.21" : "0.0.0-test";
|
|
461
459
|
|
|
462
460
|
// src/replicate-provider.ts
|
|
463
461
|
function createReplicate(options = {}) {
|
|
464
|
-
const getHeaders = () =>
|
|
462
|
+
const getHeaders = () => withUserAgentSuffix(
|
|
465
463
|
{
|
|
466
|
-
Authorization: `Bearer ${
|
|
464
|
+
Authorization: `Bearer ${loadApiKey({
|
|
467
465
|
apiKey: options.apiToken,
|
|
468
466
|
environmentVariableName: "REPLICATE_API_TOKEN",
|
|
469
467
|
description: "Replicate"
|
|
@@ -491,7 +489,7 @@ function createReplicate(options = {}) {
|
|
|
491
489
|
});
|
|
492
490
|
};
|
|
493
491
|
const embeddingModel = (modelId) => {
|
|
494
|
-
throw new
|
|
492
|
+
throw new NoSuchModelError({
|
|
495
493
|
modelId,
|
|
496
494
|
modelType: "embeddingModel"
|
|
497
495
|
});
|
|
@@ -501,7 +499,7 @@ function createReplicate(options = {}) {
|
|
|
501
499
|
image: createImageModel,
|
|
502
500
|
imageModel: createImageModel,
|
|
503
501
|
languageModel: (modelId) => {
|
|
504
|
-
throw new
|
|
502
|
+
throw new NoSuchModelError({
|
|
505
503
|
modelId,
|
|
506
504
|
modelType: "languageModel"
|
|
507
505
|
});
|
|
@@ -513,10 +511,9 @@ function createReplicate(options = {}) {
|
|
|
513
511
|
};
|
|
514
512
|
}
|
|
515
513
|
var replicate = createReplicate();
|
|
516
|
-
|
|
517
|
-
0 && (module.exports = {
|
|
514
|
+
export {
|
|
518
515
|
VERSION,
|
|
519
516
|
createReplicate,
|
|
520
517
|
replicate
|
|
521
|
-
}
|
|
518
|
+
};
|
|
522
519
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts","../src/replicate-video-model.ts","../src/version.ts"],"sourcesContent":["export { createReplicate, replicate } from './replicate-provider';\nexport type {\n ReplicateProvider,\n ReplicateProviderSettings,\n} from './replicate-provider';\nexport type {\n ReplicateImageModelOptions,\n /** @deprecated Use `ReplicateImageModelOptions` instead. */\n ReplicateImageModelOptions as ReplicateImageProviderOptions,\n} from './replicate-image-model';\nexport type {\n ReplicateVideoModelOptions,\n /** @deprecated Use `ReplicateVideoModelOptions` instead. */\n ReplicateVideoModelOptions as ReplicateVideoProviderOptions,\n} from './replicate-video-model';\nexport type { ReplicateVideoModelId } from './replicate-video-settings';\nexport { VERSION } from './version';\n","import {\n Experimental_VideoModelV4,\n NoSuchModelError,\n ProviderV4,\n} from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey, withUserAgentSuffix } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport { ReplicateImageModelId } from './replicate-image-settings';\nimport { ReplicateVideoModel } from './replicate-video-model';\nimport { ReplicateVideoModelId } from './replicate-video-settings';\nimport { VERSION } from './version';\n\nexport interface ReplicateProviderSettings {\n /**\n * API token that is being send using the `Authorization` header.\n * It defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\n * Use a different URL prefix for API calls, e.g. to use proxy servers.\n * The default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV4 {\n /**\n * Creates a Replicate image generation model.\n */\n image(modelId: ReplicateImageModelId): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n\n /**\n * Creates a Replicate video generation model.\n */\n video(modelId: ReplicateVideoModelId): Experimental_VideoModelV4;\n\n /**\n * Creates a Replicate video generation model.\n */\n videoModel(modelId: ReplicateVideoModelId): Experimental_VideoModelV4;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n `ai-sdk/replicate/${VERSION}`,\n );\n\n const createImageModel = (modelId: ReplicateImageModelId) =>\n new ReplicateImageModel(modelId, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: getHeaders(),\n fetch: options.fetch,\n });\n\n const createVideoModel = (modelId: ReplicateVideoModelId) =>\n new ReplicateVideoModel(modelId, {\n provider: 'replicate.video',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n });\n };\n\n return {\n specificationVersion: 'v4' as const,\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n });\n },\n embeddingModel,\n textEmbeddingModel: embeddingModel,\n video: createVideoModel,\n videoModel: createVideoModel,\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n getFromApi,\n InferSchema,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\ninterface ReplicateImageModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\n// Flux-2 models support up to 8 input images with input_image, input_image_2, etc.\nconst FLUX_2_MODEL_PATTERN = /^black-forest-labs\\/flux-2-/;\nconst MAX_FLUX_2_INPUT_IMAGES = 8;\n\nexport class ReplicateImageModel implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n\n get maxImagesPerCall(): number {\n // Flux-2 models support up to 8 input images\n return this.isFlux2Model ? MAX_FLUX_2_INPUT_IMAGES : 1;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n private get isFlux2Model(): boolean {\n return FLUX_2_MODEL_PATTERN.test(this.modelId);\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly config: ReplicateImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: Parameters<ImageModelV4['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV4['doGenerate']>>\n > {\n const warnings: Array<SharedV4Warning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Parse provider options\n const replicateOptions = await parseProviderOptions({\n provider: 'replicate',\n providerOptions,\n schema: replicateImageModelOptionsSchema,\n });\n\n // Handle image input from files\n let imageInputs: Record<string, string> = {};\n if (files != null && files.length > 0) {\n if (this.isFlux2Model) {\n // Flux-2 models use input_image, input_image_2, input_image_3, etc.\n for (\n let i = 0;\n i < Math.min(files.length, MAX_FLUX_2_INPUT_IMAGES);\n i++\n ) {\n const key = i === 0 ? 'input_image' : `input_image_${i + 1}`;\n imageInputs[key] = convertImageModelFileToDataUri(files[i]);\n }\n if (files.length > MAX_FLUX_2_INPUT_IMAGES) {\n warnings.push({\n type: 'other',\n message: `Flux-2 models support up to ${MAX_FLUX_2_INPUT_IMAGES} input images. Additional images are ignored.`,\n });\n }\n } else {\n // Other models use single 'image' parameter\n imageInputs = { image: convertImageModelFileToDataUri(files[0]) };\n if (files.length > 1) {\n warnings.push({\n type: 'other',\n message:\n 'This Replicate model only supports a single input image. Additional images are ignored.',\n });\n }\n }\n }\n\n // Handle mask input (not supported by Flux-2 models)\n let maskInput: string | undefined;\n if (mask != null) {\n if (this.isFlux2Model) {\n warnings.push({\n type: 'other',\n message:\n 'Flux-2 models do not support mask input. The mask will be ignored.',\n });\n } else {\n maskInput = convertImageModelFileToDataUri(mask);\n }\n }\n\n // Extract maxWaitTimeInSeconds from provider options and prepare the rest for the request body\n const { maxWaitTimeInSeconds, ...inputOptions } = replicateOptions ?? {};\n\n // Build the prefer header based on maxWaitTimeInSeconds:\n // - undefined/null: use default sync wait (prefer: wait)\n // - positive number: use custom wait duration (prefer: wait=N)\n const preferHeader: Record<string, string> =\n maxWaitTimeInSeconds != null\n ? { prefer: `wait=${maxWaitTimeInSeconds}` }\n : { prefer: 'wait' };\n\n const {\n value: { output },\n responseHeaders,\n } = await postJsonToApi({\n url:\n // different endpoints for versioned vs unversioned models:\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`,\n\n headers: combineHeaders(\n await resolve(this.config.headers),\n headers,\n preferHeader,\n ),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...imageInputs,\n ...(maskInput != null ? { mask: maskInput } : {}),\n ...inputOptions,\n },\n // for versioned models, include the version in the body:\n ...(version != null ? { version } : {}),\n },\n\n successfulResponseHandler: createJsonResponseHandler(\n replicateImageResponseSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n\n // download the images:\n const outputArray = Array.isArray(output) ? output : [output];\n const images = await Promise.all(\n outputArray.map(async url => {\n const { value: image } = await getFromApi({\n url,\n successfulResponseHandler: createBinaryResponseHandler(),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n return image;\n }),\n );\n\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\nconst replicateImageResponseSchema = z.object({\n output: z.union([z.array(z.string()), z.string()]),\n});\n\n/**\n * Provider options schema for Replicate image generation.\n *\n * Note: Different Replicate models support different parameters.\n * This schema includes common parameters, but you can pass any\n * model-specific parameters through the passthrough.\n */\nexport const replicateImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n /**\n * Maximum time in seconds to wait for the prediction to complete in sync mode.\n * By default, Replicate uses sync mode with a 60-second timeout.\n *\n * - When not specified: Uses default 60-second sync wait (`prefer: wait`)\n * - When set to a positive number: Uses that duration (`prefer: wait=N`)\n */\n maxWaitTimeInSeconds: z.number().positive().nullish(),\n\n /**\n * Guidance scale for classifier-free guidance.\n * Higher values make the output more closely match the prompt.\n */\n guidance_scale: z.number().nullish(),\n\n /**\n * Number of denoising steps. More steps = higher quality but slower.\n */\n num_inference_steps: z.number().nullish(),\n\n /**\n * Negative prompt to guide what to avoid in the generation.\n */\n negative_prompt: z.string().nullish(),\n\n /**\n * Output image format.\n */\n output_format: z.enum(['png', 'jpg', 'webp']).nullish(),\n\n /**\n * Output image quality (1-100). Only applies to jpg and webp.\n */\n output_quality: z.number().min(1).max(100).nullish(),\n\n /**\n * Strength of the transformation for img2img (0-1).\n * Lower values keep more of the original image.\n */\n strength: z.number().min(0).max(1).nullish(),\n })\n .passthrough(),\n ),\n);\n\nexport type ReplicateImageModelOptions = InferSchema<\n typeof replicateImageModelOptionsSchema\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst replicateErrorSchema = z.object({\n detail: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const replicateFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: replicateErrorSchema,\n errorToMessage: error =>\n error.detail ?? error.error ?? 'Unknown Replicate error',\n});\n","import {\n AISDKError,\n type Experimental_VideoModelV4,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonResponseHandler,\n delay,\n type FetchFunction,\n getFromApi,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n type Resolvable,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport type { ReplicateVideoModelId } from './replicate-video-settings';\n\nexport type ReplicateVideoModelOptions = {\n // Polling configuration\n pollIntervalMs?: number | null;\n pollTimeoutMs?: number | null;\n maxWaitTimeInSeconds?: number | null;\n\n // Common video generation options\n guidance_scale?: number | null;\n num_inference_steps?: number | null;\n\n // Stable Video Diffusion specific\n motion_bucket_id?: number | null;\n cond_aug?: number | null;\n decoding_t?: number | null;\n video_length?: string | null;\n sizing_strategy?: string | null;\n frames_per_second?: number | null;\n\n // MiniMax specific\n prompt_optimizer?: boolean | null;\n\n [key: string]: unknown; // For passthrough\n};\n\ninterface ReplicateVideoModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ReplicateVideoModel implements Experimental_VideoModelV4 {\n readonly specificationVersion = 'v4';\n readonly maxVideosPerCall = 1; // Replicate video models support 1 video at a time\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ReplicateVideoModelId,\n private readonly config: ReplicateVideoModelConfig,\n ) {}\n\n async doGenerate(\n options: Parameters<Experimental_VideoModelV4['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<Experimental_VideoModelV4['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const warnings: SharedV4Warning[] = [];\n\n const replicateOptions = (await parseProviderOptions({\n provider: 'replicate',\n providerOptions: options.providerOptions,\n schema: replicateVideoModelOptionsSchema,\n })) as ReplicateVideoModelOptions | undefined;\n\n const [modelId, version] = this.modelId.split(':');\n const input: Record<string, unknown> = {};\n\n if (options.prompt != null) {\n input.prompt = options.prompt;\n }\n\n if (options.image != null) {\n if (options.image.type === 'url') {\n input.image = options.image.url;\n } else {\n input.image = convertImageModelFileToDataUri(options.image);\n }\n }\n\n if (options.aspectRatio) {\n input.aspect_ratio = options.aspectRatio;\n }\n\n if (options.resolution) {\n input.size = options.resolution;\n }\n\n if (options.duration) {\n input.duration = options.duration;\n }\n\n if (options.fps) {\n input.fps = options.fps;\n }\n\n if (options.seed) {\n input.seed = options.seed;\n }\n\n if (replicateOptions != null) {\n const opts = replicateOptions;\n if (opts.guidance_scale !== undefined && opts.guidance_scale !== null) {\n input.guidance_scale = opts.guidance_scale;\n }\n if (\n opts.num_inference_steps !== undefined &&\n opts.num_inference_steps !== null\n ) {\n input.num_inference_steps = opts.num_inference_steps;\n }\n if (\n opts.motion_bucket_id !== undefined &&\n opts.motion_bucket_id !== null\n ) {\n input.motion_bucket_id = opts.motion_bucket_id;\n }\n if (opts.cond_aug !== undefined && opts.cond_aug !== null) {\n input.cond_aug = opts.cond_aug;\n }\n if (opts.decoding_t !== undefined && opts.decoding_t !== null) {\n input.decoding_t = opts.decoding_t;\n }\n if (opts.video_length !== undefined && opts.video_length !== null) {\n input.video_length = opts.video_length;\n }\n if (opts.sizing_strategy !== undefined && opts.sizing_strategy !== null) {\n input.sizing_strategy = opts.sizing_strategy;\n }\n if (\n opts.frames_per_second !== undefined &&\n opts.frames_per_second !== null\n ) {\n input.frames_per_second = opts.frames_per_second;\n }\n if (\n opts.prompt_optimizer !== undefined &&\n opts.prompt_optimizer !== null\n ) {\n input.prompt_optimizer = opts.prompt_optimizer;\n }\n\n for (const [key, value] of Object.entries(opts)) {\n if (\n ![\n 'pollIntervalMs',\n 'pollTimeoutMs',\n 'maxWaitTimeInSeconds',\n 'guidance_scale',\n 'num_inference_steps',\n 'motion_bucket_id',\n 'cond_aug',\n 'decoding_t',\n 'video_length',\n 'sizing_strategy',\n 'frames_per_second',\n 'prompt_optimizer',\n ].includes(key)\n ) {\n input[key] = value;\n }\n }\n }\n\n const maxWaitTimeInSeconds = replicateOptions?.maxWaitTimeInSeconds;\n const preferHeader: Record<string, string> =\n maxWaitTimeInSeconds != null\n ? { prefer: `wait=${maxWaitTimeInSeconds}` }\n : { prefer: 'wait' };\n\n const predictionUrl =\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`;\n\n const { value: prediction, responseHeaders } = await postJsonToApi({\n url: predictionUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n preferHeader,\n ),\n body: {\n input,\n ...(version != null ? { version } : {}),\n },\n successfulResponseHandler: createJsonResponseHandler(\n replicatePredictionSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let finalPrediction = prediction;\n if (\n prediction.status === 'starting' ||\n prediction.status === 'processing'\n ) {\n const pollIntervalMs = replicateOptions?.pollIntervalMs ?? 2000; // 2 seconds\n const pollTimeoutMs = replicateOptions?.pollTimeoutMs ?? 300000; // 5 minutes\n\n const startTime = Date.now();\n\n while (\n finalPrediction.status === 'starting' ||\n finalPrediction.status === 'processing'\n ) {\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_TIMEOUT',\n message: `Video generation timed out after ${pollTimeoutMs}ms`,\n });\n }\n\n await delay(pollIntervalMs);\n\n if (options.abortSignal?.aborted) {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_ABORTED',\n message: 'Video generation request was aborted',\n });\n }\n\n const { value: statusPrediction } = await getFromApi({\n url: finalPrediction.urls.get,\n headers: await resolve(this.config.headers),\n successfulResponseHandler: createJsonResponseHandler(\n replicatePredictionSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n finalPrediction = statusPrediction;\n }\n }\n\n if (finalPrediction.status === 'failed') {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_FAILED',\n message: `Video generation failed: ${finalPrediction.error ?? 'Unknown error'}`,\n });\n }\n\n if (finalPrediction.status === 'canceled') {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_CANCELED',\n message: 'Video generation was canceled',\n });\n }\n\n const videoUrl = finalPrediction.output;\n if (!videoUrl) {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_ERROR',\n message: 'No video URL in response',\n });\n }\n\n return {\n videos: [\n {\n type: 'url',\n url: videoUrl,\n mediaType: 'video/mp4',\n },\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n replicate: {\n videos: [\n {\n url: videoUrl,\n },\n ],\n predictionId: finalPrediction.id,\n metrics: finalPrediction.metrics,\n },\n },\n };\n }\n}\n\nconst replicatePredictionSchema = z.object({\n id: z.string(),\n status: z.enum(['starting', 'processing', 'succeeded', 'failed', 'canceled']),\n output: z.string().nullish(),\n error: z.string().nullish(),\n urls: z.object({\n get: z.string(),\n }),\n metrics: z\n .object({\n predict_time: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst replicateVideoModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n pollIntervalMs: z.number().positive().nullish(),\n pollTimeoutMs: z.number().positive().nullish(),\n maxWaitTimeInSeconds: z.number().positive().nullish(),\n guidance_scale: z.number().nullish(),\n num_inference_steps: z.number().nullish(),\n motion_bucket_id: z.number().nullish(),\n cond_aug: z.number().nullish(),\n decoding_t: z.number().nullish(),\n video_length: z.string().nullish(),\n sizing_strategy: z.string().nullish(),\n frames_per_second: z.number().nullish(),\n prompt_optimizer: z.boolean().nullish(),\n })\n .loose(),\n ),\n);\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["import_provider","import_provider_utils","import_provider_utils","import_v4","import_provider_utils","import_v4"]}
|
|
1
|
+
{"version":3,"sources":["../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts","../src/replicate-video-model.ts","../src/version.ts"],"sourcesContent":["import {\n Experimental_VideoModelV4,\n NoSuchModelError,\n ProviderV4,\n} from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey, withUserAgentSuffix } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport { ReplicateImageModelId } from './replicate-image-settings';\nimport { ReplicateVideoModel } from './replicate-video-model';\nimport { ReplicateVideoModelId } from './replicate-video-settings';\nimport { VERSION } from './version';\n\nexport interface ReplicateProviderSettings {\n /**\n * API token that is being send using the `Authorization` header.\n * It defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\n * Use a different URL prefix for API calls, e.g. to use proxy servers.\n * The default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV4 {\n /**\n * Creates a Replicate image generation model.\n */\n image(modelId: ReplicateImageModelId): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n\n /**\n * Creates a Replicate video generation model.\n */\n video(modelId: ReplicateVideoModelId): Experimental_VideoModelV4;\n\n /**\n * Creates a Replicate video generation model.\n */\n videoModel(modelId: ReplicateVideoModelId): Experimental_VideoModelV4;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n `ai-sdk/replicate/${VERSION}`,\n );\n\n const createImageModel = (modelId: ReplicateImageModelId) =>\n new ReplicateImageModel(modelId, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: getHeaders(),\n fetch: options.fetch,\n });\n\n const createVideoModel = (modelId: ReplicateVideoModelId) =>\n new ReplicateVideoModel(modelId, {\n provider: 'replicate.video',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n });\n };\n\n return {\n specificationVersion: 'v4' as const,\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n });\n },\n embeddingModel,\n textEmbeddingModel: embeddingModel,\n video: createVideoModel,\n videoModel: createVideoModel,\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV4, SharedV4Warning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n FetchFunction,\n getFromApi,\n InferSchema,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\ninterface ReplicateImageModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\n// Flux-2 models support up to 8 input images with input_image, input_image_2, etc.\nconst FLUX_2_MODEL_PATTERN = /^black-forest-labs\\/flux-2-/;\nconst MAX_FLUX_2_INPUT_IMAGES = 8;\n\nexport class ReplicateImageModel implements ImageModelV4 {\n readonly specificationVersion = 'v4';\n\n get maxImagesPerCall(): number {\n // Flux-2 models support up to 8 input images\n return this.isFlux2Model ? MAX_FLUX_2_INPUT_IMAGES : 1;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n private get isFlux2Model(): boolean {\n return FLUX_2_MODEL_PATTERN.test(this.modelId);\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly config: ReplicateImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask,\n }: Parameters<ImageModelV4['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV4['doGenerate']>>\n > {\n const warnings: Array<SharedV4Warning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Parse provider options\n const replicateOptions = await parseProviderOptions({\n provider: 'replicate',\n providerOptions,\n schema: replicateImageModelOptionsSchema,\n });\n\n // Handle image input from files\n let imageInputs: Record<string, string> = {};\n if (files != null && files.length > 0) {\n if (this.isFlux2Model) {\n // Flux-2 models use input_image, input_image_2, input_image_3, etc.\n for (\n let i = 0;\n i < Math.min(files.length, MAX_FLUX_2_INPUT_IMAGES);\n i++\n ) {\n const key = i === 0 ? 'input_image' : `input_image_${i + 1}`;\n imageInputs[key] = convertImageModelFileToDataUri(files[i]);\n }\n if (files.length > MAX_FLUX_2_INPUT_IMAGES) {\n warnings.push({\n type: 'other',\n message: `Flux-2 models support up to ${MAX_FLUX_2_INPUT_IMAGES} input images. Additional images are ignored.`,\n });\n }\n } else {\n // Other models use single 'image' parameter\n imageInputs = { image: convertImageModelFileToDataUri(files[0]) };\n if (files.length > 1) {\n warnings.push({\n type: 'other',\n message:\n 'This Replicate model only supports a single input image. Additional images are ignored.',\n });\n }\n }\n }\n\n // Handle mask input (not supported by Flux-2 models)\n let maskInput: string | undefined;\n if (mask != null) {\n if (this.isFlux2Model) {\n warnings.push({\n type: 'other',\n message:\n 'Flux-2 models do not support mask input. The mask will be ignored.',\n });\n } else {\n maskInput = convertImageModelFileToDataUri(mask);\n }\n }\n\n // Extract maxWaitTimeInSeconds from provider options and prepare the rest for the request body\n const { maxWaitTimeInSeconds, ...inputOptions } = replicateOptions ?? {};\n\n // Build the prefer header based on maxWaitTimeInSeconds:\n // - undefined/null: use default sync wait (prefer: wait)\n // - positive number: use custom wait duration (prefer: wait=N)\n const preferHeader: Record<string, string> =\n maxWaitTimeInSeconds != null\n ? { prefer: `wait=${maxWaitTimeInSeconds}` }\n : { prefer: 'wait' };\n\n const {\n value: { output },\n responseHeaders,\n } = await postJsonToApi({\n url:\n // different endpoints for versioned vs unversioned models:\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`,\n\n headers: combineHeaders(\n await resolve(this.config.headers),\n headers,\n preferHeader,\n ),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...imageInputs,\n ...(maskInput != null ? { mask: maskInput } : {}),\n ...inputOptions,\n },\n // for versioned models, include the version in the body:\n ...(version != null ? { version } : {}),\n },\n\n successfulResponseHandler: createJsonResponseHandler(\n replicateImageResponseSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n\n // download the images:\n const outputArray = Array.isArray(output) ? output : [output];\n const images = await Promise.all(\n outputArray.map(async url => {\n const { value: image } = await getFromApi({\n url,\n successfulResponseHandler: createBinaryResponseHandler(),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal,\n fetch: this.config.fetch,\n });\n return image;\n }),\n );\n\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n\nconst replicateImageResponseSchema = z.object({\n output: z.union([z.array(z.string()), z.string()]),\n});\n\n/**\n * Provider options schema for Replicate image generation.\n *\n * Note: Different Replicate models support different parameters.\n * This schema includes common parameters, but you can pass any\n * model-specific parameters through the passthrough.\n */\nexport const replicateImageModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n /**\n * Maximum time in seconds to wait for the prediction to complete in sync mode.\n * By default, Replicate uses sync mode with a 60-second timeout.\n *\n * - When not specified: Uses default 60-second sync wait (`prefer: wait`)\n * - When set to a positive number: Uses that duration (`prefer: wait=N`)\n */\n maxWaitTimeInSeconds: z.number().positive().nullish(),\n\n /**\n * Guidance scale for classifier-free guidance.\n * Higher values make the output more closely match the prompt.\n */\n guidance_scale: z.number().nullish(),\n\n /**\n * Number of denoising steps. More steps = higher quality but slower.\n */\n num_inference_steps: z.number().nullish(),\n\n /**\n * Negative prompt to guide what to avoid in the generation.\n */\n negative_prompt: z.string().nullish(),\n\n /**\n * Output image format.\n */\n output_format: z.enum(['png', 'jpg', 'webp']).nullish(),\n\n /**\n * Output image quality (1-100). Only applies to jpg and webp.\n */\n output_quality: z.number().min(1).max(100).nullish(),\n\n /**\n * Strength of the transformation for img2img (0-1).\n * Lower values keep more of the original image.\n */\n strength: z.number().min(0).max(1).nullish(),\n })\n .passthrough(),\n ),\n);\n\nexport type ReplicateImageModelOptions = InferSchema<\n typeof replicateImageModelOptionsSchema\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst replicateErrorSchema = z.object({\n detail: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const replicateFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: replicateErrorSchema,\n errorToMessage: error =>\n error.detail ?? error.error ?? 'Unknown Replicate error',\n});\n","import {\n AISDKError,\n type Experimental_VideoModelV4,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertImageModelFileToDataUri,\n createJsonResponseHandler,\n delay,\n type FetchFunction,\n getFromApi,\n lazySchema,\n parseProviderOptions,\n postJsonToApi,\n type Resolvable,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport type { ReplicateVideoModelId } from './replicate-video-settings';\n\nexport type ReplicateVideoModelOptions = {\n // Polling configuration\n pollIntervalMs?: number | null;\n pollTimeoutMs?: number | null;\n maxWaitTimeInSeconds?: number | null;\n\n // Common video generation options\n guidance_scale?: number | null;\n num_inference_steps?: number | null;\n\n // Stable Video Diffusion specific\n motion_bucket_id?: number | null;\n cond_aug?: number | null;\n decoding_t?: number | null;\n video_length?: string | null;\n sizing_strategy?: string | null;\n frames_per_second?: number | null;\n\n // MiniMax specific\n prompt_optimizer?: boolean | null;\n\n [key: string]: unknown; // For passthrough\n};\n\ninterface ReplicateVideoModelConfig {\n provider: string;\n baseURL: string;\n headers?: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class ReplicateVideoModel implements Experimental_VideoModelV4 {\n readonly specificationVersion = 'v4';\n readonly maxVideosPerCall = 1; // Replicate video models support 1 video at a time\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: ReplicateVideoModelId,\n private readonly config: ReplicateVideoModelConfig,\n ) {}\n\n async doGenerate(\n options: Parameters<Experimental_VideoModelV4['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<Experimental_VideoModelV4['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const warnings: SharedV4Warning[] = [];\n\n const replicateOptions = (await parseProviderOptions({\n provider: 'replicate',\n providerOptions: options.providerOptions,\n schema: replicateVideoModelOptionsSchema,\n })) as ReplicateVideoModelOptions | undefined;\n\n const [modelId, version] = this.modelId.split(':');\n const input: Record<string, unknown> = {};\n\n if (options.prompt != null) {\n input.prompt = options.prompt;\n }\n\n if (options.image != null) {\n if (options.image.type === 'url') {\n input.image = options.image.url;\n } else {\n input.image = convertImageModelFileToDataUri(options.image);\n }\n }\n\n if (options.aspectRatio) {\n input.aspect_ratio = options.aspectRatio;\n }\n\n if (options.resolution) {\n input.size = options.resolution;\n }\n\n if (options.duration) {\n input.duration = options.duration;\n }\n\n if (options.fps) {\n input.fps = options.fps;\n }\n\n if (options.seed) {\n input.seed = options.seed;\n }\n\n if (replicateOptions != null) {\n const opts = replicateOptions;\n if (opts.guidance_scale !== undefined && opts.guidance_scale !== null) {\n input.guidance_scale = opts.guidance_scale;\n }\n if (\n opts.num_inference_steps !== undefined &&\n opts.num_inference_steps !== null\n ) {\n input.num_inference_steps = opts.num_inference_steps;\n }\n if (\n opts.motion_bucket_id !== undefined &&\n opts.motion_bucket_id !== null\n ) {\n input.motion_bucket_id = opts.motion_bucket_id;\n }\n if (opts.cond_aug !== undefined && opts.cond_aug !== null) {\n input.cond_aug = opts.cond_aug;\n }\n if (opts.decoding_t !== undefined && opts.decoding_t !== null) {\n input.decoding_t = opts.decoding_t;\n }\n if (opts.video_length !== undefined && opts.video_length !== null) {\n input.video_length = opts.video_length;\n }\n if (opts.sizing_strategy !== undefined && opts.sizing_strategy !== null) {\n input.sizing_strategy = opts.sizing_strategy;\n }\n if (\n opts.frames_per_second !== undefined &&\n opts.frames_per_second !== null\n ) {\n input.frames_per_second = opts.frames_per_second;\n }\n if (\n opts.prompt_optimizer !== undefined &&\n opts.prompt_optimizer !== null\n ) {\n input.prompt_optimizer = opts.prompt_optimizer;\n }\n\n for (const [key, value] of Object.entries(opts)) {\n if (\n ![\n 'pollIntervalMs',\n 'pollTimeoutMs',\n 'maxWaitTimeInSeconds',\n 'guidance_scale',\n 'num_inference_steps',\n 'motion_bucket_id',\n 'cond_aug',\n 'decoding_t',\n 'video_length',\n 'sizing_strategy',\n 'frames_per_second',\n 'prompt_optimizer',\n ].includes(key)\n ) {\n input[key] = value;\n }\n }\n }\n\n const maxWaitTimeInSeconds = replicateOptions?.maxWaitTimeInSeconds;\n const preferHeader: Record<string, string> =\n maxWaitTimeInSeconds != null\n ? { prefer: `wait=${maxWaitTimeInSeconds}` }\n : { prefer: 'wait' };\n\n const predictionUrl =\n version != null\n ? `${this.config.baseURL}/predictions`\n : `${this.config.baseURL}/models/${modelId}/predictions`;\n\n const { value: prediction, responseHeaders } = await postJsonToApi({\n url: predictionUrl,\n headers: combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n preferHeader,\n ),\n body: {\n input,\n ...(version != null ? { version } : {}),\n },\n successfulResponseHandler: createJsonResponseHandler(\n replicatePredictionSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let finalPrediction = prediction;\n if (\n prediction.status === 'starting' ||\n prediction.status === 'processing'\n ) {\n const pollIntervalMs = replicateOptions?.pollIntervalMs ?? 2000; // 2 seconds\n const pollTimeoutMs = replicateOptions?.pollTimeoutMs ?? 300000; // 5 minutes\n\n const startTime = Date.now();\n\n while (\n finalPrediction.status === 'starting' ||\n finalPrediction.status === 'processing'\n ) {\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_TIMEOUT',\n message: `Video generation timed out after ${pollTimeoutMs}ms`,\n });\n }\n\n await delay(pollIntervalMs);\n\n if (options.abortSignal?.aborted) {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_ABORTED',\n message: 'Video generation request was aborted',\n });\n }\n\n const { value: statusPrediction } = await getFromApi({\n url: finalPrediction.urls.get,\n headers: await resolve(this.config.headers),\n successfulResponseHandler: createJsonResponseHandler(\n replicatePredictionSchema,\n ),\n failedResponseHandler: replicateFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n finalPrediction = statusPrediction;\n }\n }\n\n if (finalPrediction.status === 'failed') {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_FAILED',\n message: `Video generation failed: ${finalPrediction.error ?? 'Unknown error'}`,\n });\n }\n\n if (finalPrediction.status === 'canceled') {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_CANCELED',\n message: 'Video generation was canceled',\n });\n }\n\n const videoUrl = finalPrediction.output;\n if (!videoUrl) {\n throw new AISDKError({\n name: 'REPLICATE_VIDEO_GENERATION_ERROR',\n message: 'No video URL in response',\n });\n }\n\n return {\n videos: [\n {\n type: 'url',\n url: videoUrl,\n mediaType: 'video/mp4',\n },\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n providerMetadata: {\n replicate: {\n videos: [\n {\n url: videoUrl,\n },\n ],\n predictionId: finalPrediction.id,\n metrics: finalPrediction.metrics,\n },\n },\n };\n }\n}\n\nconst replicatePredictionSchema = z.object({\n id: z.string(),\n status: z.enum(['starting', 'processing', 'succeeded', 'failed', 'canceled']),\n output: z.string().nullish(),\n error: z.string().nullish(),\n urls: z.object({\n get: z.string(),\n }),\n metrics: z\n .object({\n predict_time: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst replicateVideoModelOptionsSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n pollIntervalMs: z.number().positive().nullish(),\n pollTimeoutMs: z.number().positive().nullish(),\n maxWaitTimeInSeconds: z.number().positive().nullish(),\n guidance_scale: z.number().nullish(),\n num_inference_steps: z.number().nullish(),\n motion_bucket_id: z.number().nullish(),\n cond_aug: z.number().nullish(),\n decoding_t: z.number().nullish(),\n video_length: z.string().nullish(),\n sizing_strategy: z.string().nullish(),\n frames_per_second: z.number().nullish(),\n prompt_optimizer: z.boolean().nullish(),\n })\n .loose(),\n ),\n);\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":";AAAA;AAAA,EAEE;AAAA,OAEK;AAEP,SAAS,YAAY,2BAA2B;;;ACJhD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAAA,UAAS;;;AChBlB,SAAS,sCAAsC;AAC/C,SAAS,SAAS;AAElB,IAAM,uBAAuB,EAAE,OAAO;AAAA,EACpC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,OAAO,EAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAEM,IAAM,iCAAiC,+BAA+B;AAAA,EAC3E,aAAa;AAAA,EACb,gBAAgB,WAAM;AAVxB;AAWI,6BAAM,WAAN,YAAgB,MAAM,UAAtB,YAA+B;AAAA;AACnC,CAAC;;;ADmBD,IAAM,uBAAuB;AAC7B,IAAM,0BAA0B;AAEzB,IAAM,sBAAN,MAAkD;AAAA,EAgBvD,YACW,SACQ,QACjB;AAFS;AACQ;AAjBnB,SAAS,uBAAuB;AAAA,EAkB7B;AAAA,EAhBH,IAAI,mBAA2B;AAE7B,WAAO,KAAK,eAAe,0BAA0B;AAAA,EACvD;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAY,eAAwB;AAClC,WAAO,qBAAqB,KAAK,KAAK,OAAO;AAAA,EAC/C;AAAA,EAOA,MAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AApEJ;AAqEI,UAAM,WAAmC,CAAC;AAE1C,UAAM,CAAC,SAAS,OAAO,IAAI,KAAK,QAAQ,MAAM,GAAG;AAEjD,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AAGvE,UAAM,mBAAmB,MAAM,qBAAqB;AAAA,MAClD,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAGD,QAAI,cAAsC,CAAC;AAC3C,QAAI,SAAS,QAAQ,MAAM,SAAS,GAAG;AACrC,UAAI,KAAK,cAAc;AAErB,iBACM,IAAI,GACR,IAAI,KAAK,IAAI,MAAM,QAAQ,uBAAuB,GAClD,KACA;AACA,gBAAM,MAAM,MAAM,IAAI,gBAAgB,eAAe,IAAI,CAAC;AAC1D,sBAAY,GAAG,IAAI,+BAA+B,MAAM,CAAC,CAAC;AAAA,QAC5D;AACA,YAAI,MAAM,SAAS,yBAAyB;AAC1C,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SAAS,+BAA+B,uBAAuB;AAAA,UACjE,CAAC;AAAA,QACH;AAAA,MACF,OAAO;AAEL,sBAAc,EAAE,OAAO,+BAA+B,MAAM,CAAC,CAAC,EAAE;AAChE,YAAI,MAAM,SAAS,GAAG;AACpB,mBAAS,KAAK;AAAA,YACZ,MAAM;AAAA,YACN,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAGA,QAAI;AACJ,QAAI,QAAQ,MAAM;AAChB,UAAI,KAAK,cAAc;AACrB,iBAAS,KAAK;AAAA,UACZ,MAAM;AAAA,UACN,SACE;AAAA,QACJ,CAAC;AAAA,MACH,OAAO;AACL,oBAAY,+BAA+B,IAAI;AAAA,MACjD;AAAA,IACF;AAGA,UAAM,EAAE,sBAAsB,GAAG,aAAa,IAAI,8CAAoB,CAAC;AAKvE,UAAM,eACJ,wBAAwB,OACpB,EAAE,QAAQ,QAAQ,oBAAoB,GAAG,IACzC,EAAE,QAAQ,OAAO;AAEvB,UAAM;AAAA,MACJ,OAAO,EAAE,OAAO;AAAA,MAChB;AAAA,IACF,IAAI,MAAM,cAAc;AAAA,MACtB;AAAA;AAAA,QAEE,WAAW,OACP,GAAG,KAAK,OAAO,OAAO,iBACtB,GAAG,KAAK,OAAO,OAAO,WAAW,OAAO;AAAA;AAAA,MAE9C,SAAS;AAAA,QACP,MAAM,QAAQ,KAAK,OAAO,OAAO;AAAA,QACjC;AAAA,QACA;AAAA,MACF;AAAA,MAEA,MAAM;AAAA,QACJ,OAAO;AAAA,UACL;AAAA,UACA,cAAc;AAAA,UACd;AAAA,UACA;AAAA,UACA,aAAa;AAAA,UACb,GAAG;AAAA,UACH,GAAI,aAAa,OAAO,EAAE,MAAM,UAAU,IAAI,CAAC;AAAA,UAC/C,GAAG;AAAA,QACL;AAAA;AAAA,QAEA,GAAI,WAAW,OAAO,EAAE,QAAQ,IAAI,CAAC;AAAA,MACvC;AAAA,MAEA,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,uBAAuB;AAAA,MACvB;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAGD,UAAM,cAAc,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AAC5D,UAAM,SAAS,MAAM,QAAQ;AAAA,MAC3B,YAAY,IAAI,OAAM,QAAO;AAC3B,cAAM,EAAE,OAAO,MAAM,IAAI,MAAM,WAAW;AAAA,UACxC;AAAA,UACA,2BAA2B,4BAA4B;AAAA,UACvD,uBAAuB;AAAA,UACvB;AAAA,UACA,OAAO,KAAK,OAAO;AAAA,QACrB,CAAC;AACD,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,+BAA+BC,GAAE,OAAO;AAAA,EAC5C,QAAQA,GAAE,MAAM,CAACA,GAAE,MAAMA,GAAE,OAAO,CAAC,GAAGA,GAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AASM,IAAM,mCAAmC;AAAA,EAAW,MACzD;AAAA,IACEA,GACG,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQN,sBAAsBA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAMpD,gBAAgBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKnC,qBAAqBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKxC,iBAAiBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKpC,eAAeA,GAAE,KAAK,CAAC,OAAO,OAAO,MAAM,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,MAKtD,gBAAgBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAMnD,UAAUA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ;AAAA,IAC7C,CAAC,EACA,YAAY;AAAA,EACjB;AACF;;;AEvQA;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE,kBAAAC;AAAA,EACA,kCAAAC;AAAA,EACA,6BAAAC;AAAA,EACA;AAAA,EAEA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,iBAAAC;AAAA,EAEA,WAAAC;AAAA,EACA,aAAAC;AAAA,OACK;AACP,SAAS,KAAAC,UAAS;AAsCX,IAAM,sBAAN,MAA+D;AAAA,EAQpE,YACW,SACQ,QACjB;AAFS;AACQ;AATnB,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAAA,EASzB;AAAA;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,WACJ,SACuE;AAxE3E;AAyEI,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,WAA8B,CAAC;AAErC,UAAM,mBAAoB,MAAMC,sBAAqB;AAAA,MACnD,UAAU;AAAA,MACV,iBAAiB,QAAQ;AAAA,MACzB,QAAQ;AAAA,IACV,CAAC;AAED,UAAM,CAAC,SAAS,OAAO,IAAI,KAAK,QAAQ,MAAM,GAAG;AACjD,UAAM,QAAiC,CAAC;AAExC,QAAI,QAAQ,UAAU,MAAM;AAC1B,YAAM,SAAS,QAAQ;AAAA,IACzB;AAEA,QAAI,QAAQ,SAAS,MAAM;AACzB,UAAI,QAAQ,MAAM,SAAS,OAAO;AAChC,cAAM,QAAQ,QAAQ,MAAM;AAAA,MAC9B,OAAO;AACL,cAAM,QAAQC,gCAA+B,QAAQ,KAAK;AAAA,MAC5D;AAAA,IACF;AAEA,QAAI,QAAQ,aAAa;AACvB,YAAM,eAAe,QAAQ;AAAA,IAC/B;AAEA,QAAI,QAAQ,YAAY;AACtB,YAAM,OAAO,QAAQ;AAAA,IACvB;AAEA,QAAI,QAAQ,UAAU;AACpB,YAAM,WAAW,QAAQ;AAAA,IAC3B;AAEA,QAAI,QAAQ,KAAK;AACf,YAAM,MAAM,QAAQ;AAAA,IACtB;AAEA,QAAI,QAAQ,MAAM;AAChB,YAAM,OAAO,QAAQ;AAAA,IACvB;AAEA,QAAI,oBAAoB,MAAM;AAC5B,YAAM,OAAO;AACb,UAAI,KAAK,mBAAmB,UAAa,KAAK,mBAAmB,MAAM;AACrE,cAAM,iBAAiB,KAAK;AAAA,MAC9B;AACA,UACE,KAAK,wBAAwB,UAC7B,KAAK,wBAAwB,MAC7B;AACA,cAAM,sBAAsB,KAAK;AAAA,MACnC;AACA,UACE,KAAK,qBAAqB,UAC1B,KAAK,qBAAqB,MAC1B;AACA,cAAM,mBAAmB,KAAK;AAAA,MAChC;AACA,UAAI,KAAK,aAAa,UAAa,KAAK,aAAa,MAAM;AACzD,cAAM,WAAW,KAAK;AAAA,MACxB;AACA,UAAI,KAAK,eAAe,UAAa,KAAK,eAAe,MAAM;AAC7D,cAAM,aAAa,KAAK;AAAA,MAC1B;AACA,UAAI,KAAK,iBAAiB,UAAa,KAAK,iBAAiB,MAAM;AACjE,cAAM,eAAe,KAAK;AAAA,MAC5B;AACA,UAAI,KAAK,oBAAoB,UAAa,KAAK,oBAAoB,MAAM;AACvE,cAAM,kBAAkB,KAAK;AAAA,MAC/B;AACA,UACE,KAAK,sBAAsB,UAC3B,KAAK,sBAAsB,MAC3B;AACA,cAAM,oBAAoB,KAAK;AAAA,MACjC;AACA,UACE,KAAK,qBAAqB,UAC1B,KAAK,qBAAqB,MAC1B;AACA,cAAM,mBAAmB,KAAK;AAAA,MAChC;AAEA,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,GAAG;AAC/C,YACE,CAAC;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,EAAE,SAAS,GAAG,GACd;AACA,gBAAM,GAAG,IAAI;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAEA,UAAM,uBAAuB,qDAAkB;AAC/C,UAAM,eACJ,wBAAwB,OACpB,EAAE,QAAQ,QAAQ,oBAAoB,GAAG,IACzC,EAAE,QAAQ,OAAO;AAEvB,UAAM,gBACJ,WAAW,OACP,GAAG,KAAK,OAAO,OAAO,iBACtB,GAAG,KAAK,OAAO,OAAO,WAAW,OAAO;AAE9C,UAAM,EAAE,OAAO,YAAY,gBAAgB,IAAI,MAAMC,eAAc;AAAA,MACjE,KAAK;AAAA,MACL,SAASC;AAAA,QACP,MAAMC,SAAQ,KAAK,OAAO,OAAO;AAAA,QACjC,QAAQ;AAAA,QACR;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACJ;AAAA,QACA,GAAI,WAAW,OAAO,EAAE,QAAQ,IAAI,CAAC;AAAA,MACvC;AAAA,MACA,2BAA2BC;AAAA,QACzB;AAAA,MACF;AAAA,MACA,uBAAuB;AAAA,MACvB,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,QAAI,kBAAkB;AACtB,QACE,WAAW,WAAW,cACtB,WAAW,WAAW,cACtB;AACA,YAAM,kBAAiB,0DAAkB,mBAAlB,YAAoC;AAC3D,YAAM,iBAAgB,0DAAkB,kBAAlB,YAAmC;AAEzD,YAAM,YAAY,KAAK,IAAI;AAE3B,aACE,gBAAgB,WAAW,cAC3B,gBAAgB,WAAW,cAC3B;AACA,YAAI,KAAK,IAAI,IAAI,YAAY,eAAe;AAC1C,gBAAM,IAAI,WAAW;AAAA,YACnB,MAAM;AAAA,YACN,SAAS,oCAAoC,aAAa;AAAA,UAC5D,CAAC;AAAA,QACH;AAEA,cAAM,MAAM,cAAc;AAE1B,aAAI,aAAQ,gBAAR,mBAAqB,SAAS;AAChC,gBAAM,IAAI,WAAW;AAAA,YACnB,MAAM;AAAA,YACN,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAEA,cAAM,EAAE,OAAO,iBAAiB,IAAI,MAAMC,YAAW;AAAA,UACnD,KAAK,gBAAgB,KAAK;AAAA,UAC1B,SAAS,MAAMF,SAAQ,KAAK,OAAO,OAAO;AAAA,UAC1C,2BAA2BC;AAAA,YACzB;AAAA,UACF;AAAA,UACA,uBAAuB;AAAA,UACvB,aAAa,QAAQ;AAAA,UACrB,OAAO,KAAK,OAAO;AAAA,QACrB,CAAC;AAED,0BAAkB;AAAA,MACpB;AAAA,IACF;AAEA,QAAI,gBAAgB,WAAW,UAAU;AACvC,YAAM,IAAI,WAAW;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,6BAA4B,qBAAgB,UAAhB,YAAyB,eAAe;AAAA,MAC/E,CAAC;AAAA,IACH;AAEA,QAAI,gBAAgB,WAAW,YAAY;AACzC,YAAM,IAAI,WAAW;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,WAAW,gBAAgB;AACjC,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,WAAW;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL,QAAQ;AAAA,QACN;AAAA,UACE,MAAM;AAAA,UACN,KAAK;AAAA,UACL,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,MACA,kBAAkB;AAAA,QAChB,WAAW;AAAA,UACT,QAAQ;AAAA,YACN;AAAA,cACE,KAAK;AAAA,YACP;AAAA,UACF;AAAA,UACA,cAAc,gBAAgB;AAAA,UAC9B,SAAS,gBAAgB;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,4BAA4BE,GAAE,OAAO;AAAA,EACzC,IAAIA,GAAE,OAAO;AAAA,EACb,QAAQA,GAAE,KAAK,CAAC,YAAY,cAAc,aAAa,UAAU,UAAU,CAAC;AAAA,EAC5E,QAAQA,GAAE,OAAO,EAAE,QAAQ;AAAA,EAC3B,OAAOA,GAAE,OAAO,EAAE,QAAQ;AAAA,EAC1B,MAAMA,GAAE,OAAO;AAAA,IACb,KAAKA,GAAE,OAAO;AAAA,EAChB,CAAC;AAAA,EACD,SAASA,GACN,OAAO;AAAA,IACN,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,EACnC,CAAC,EACA,QAAQ;AACb,CAAC;AAED,IAAM,mCAAmCC;AAAA,EAAW,MAClDC;AAAA,IACEF,GACG,OAAO;AAAA,MACN,gBAAgBA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;AAAA,MAC9C,eAAeA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;AAAA,MAC7C,sBAAsBA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ;AAAA,MACpD,gBAAgBA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACnC,qBAAqBA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACxC,kBAAkBA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACrC,UAAUA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC7B,YAAYA,GAAE,OAAO,EAAE,QAAQ;AAAA,MAC/B,cAAcA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACjC,iBAAiBA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACpC,mBAAmBA,GAAE,OAAO,EAAE,QAAQ;AAAA,MACtC,kBAAkBA,GAAE,QAAQ,EAAE,QAAQ;AAAA,IACxC,CAAC,EACA,MAAM;AAAA,EACX;AACF;;;ACnVO,IAAM,UACX,OACI,kBACA;;;AJ+DC,SAAS,gBACd,UAAqC,CAAC,GACnB;AACnB,QAAM,aAAa,MACjB;AAAA,IACE;AAAA,MACE,eAAe,UAAU,WAAW;AAAA,QAClC,QAAQ,QAAQ;AAAA,QAChB,yBAAyB;AAAA,QACzB,aAAa;AAAA,MACf,CAAC,CAAC;AAAA,MACF,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,oBAAoB,OAAO;AAAA,EAC7B;AAEF,QAAM,mBAAmB,CAAC,YAAgC;AApF5D;AAqFI,eAAI,oBAAoB,SAAS;AAAA,MAC/B,UAAU;AAAA,MACV,UAAS,aAAQ,YAAR,YAAmB;AAAA,MAC5B,SAAS,WAAW;AAAA,MACpB,OAAO,QAAQ;AAAA,IACjB,CAAC;AAAA;AAEH,QAAM,mBAAmB,CAAC,YAAgC;AA5F5D;AA6FI,eAAI,oBAAoB,SAAS;AAAA,MAC/B,UAAU;AAAA,MACV,UAAS,aAAQ,YAAR,YAAmB;AAAA,MAC5B,SAAS;AAAA,MACT,OAAO,QAAQ;AAAA,IACjB,CAAC;AAAA;AAEH,QAAM,iBAAiB,CAAC,YAAoB;AAC1C,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,IACb,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,sBAAsB;AAAA,IACtB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe,CAAC,YAAoB;AAClC,YAAM,IAAI,iBAAiB;AAAA,QACzB;AAAA,QACA,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AAKO,IAAM,YAAY,gBAAgB;","names":["z","z","combineHeaders","convertImageModelFileToDataUri","createJsonResponseHandler","getFromApi","lazySchema","parseProviderOptions","postJsonToApi","resolve","zodSchema","z","parseProviderOptions","convertImageModelFileToDataUri","postJsonToApi","combineHeaders","resolve","createJsonResponseHandler","getFromApi","z","lazySchema","zodSchema"]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/replicate",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.21",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"license": "Apache-2.0",
|
|
5
6
|
"sideEffects": false,
|
|
6
7
|
"main": "./dist/index.js",
|
|
7
|
-
"module": "./dist/index.mjs",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/**/*",
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"./package.json": "./package.json",
|
|
25
25
|
".": {
|
|
26
26
|
"types": "./dist/index.d.ts",
|
|
27
|
-
"import": "./dist/index.
|
|
28
|
-
"
|
|
27
|
+
"import": "./dist/index.js",
|
|
28
|
+
"default": "./dist/index.js"
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@ai-sdk/provider": "4.0.0-beta.
|
|
33
|
-
"@ai-sdk/provider-utils": "5.0.0-beta.
|
|
32
|
+
"@ai-sdk/provider": "4.0.0-beta.11",
|
|
33
|
+
"@ai-sdk/provider-utils": "5.0.0-beta.19"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "20.17.24",
|
|
37
37
|
"tsup": "^8",
|
|
38
38
|
"typescript": "5.8.3",
|
|
39
39
|
"zod": "3.25.76",
|
|
40
|
-
"@ai-sdk/test-server": "2.0.0-beta.
|
|
40
|
+
"@ai-sdk/test-server": "2.0.0-beta.1",
|
|
41
41
|
"@vercel/ai-tsconfig": "0.0.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|