@ai-sdk/replicate 1.0.0-canary.8 → 1.0.0

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,496 @@
1
1
  # @ai-sdk/replicate
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - d5f588f: AI SDK 5
8
+ - 516be5b: ### Move Image Model Settings into generate options
9
+
10
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
11
+
12
+ Before
13
+
14
+ ```js
15
+ await generateImage({
16
+ model: luma.image('photon-flash-1', {
17
+ maxImagesPerCall: 5,
18
+ pollIntervalMillis: 500,
19
+ }),
20
+ prompt,
21
+ n: 10,
22
+ });
23
+ ```
24
+
25
+ After
26
+
27
+ ```js
28
+ await generateImage({
29
+ model: luma.image('photon-flash-1'),
30
+ prompt,
31
+ n: 10,
32
+ maxImagesPerCall: 5,
33
+ providerOptions: {
34
+ luma: { pollIntervalMillis: 5 },
35
+ },
36
+ });
37
+ ```
38
+
39
+ Pull Request: https://github.com/vercel/ai/pull/6180
40
+
41
+ ### Patch Changes
42
+
43
+ - eb173f1: chore (providers): remove model shorthand deprecation warnings
44
+ - d9209ca: fix (image-model): `specificationVersion: v1` -> `v2`
45
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
46
+ - d1a034f: feature: using Zod 4 for internal stuff
47
+ - 205077b: fix: improve Zod compatibility
48
+ - Updated dependencies [a571d6e]
49
+ - Updated dependencies [742b7be]
50
+ - Updated dependencies [e7fcc86]
51
+ - Updated dependencies [7cddb72]
52
+ - Updated dependencies [ccce59b]
53
+ - Updated dependencies [e2b9e4b]
54
+ - Updated dependencies [95857aa]
55
+ - Updated dependencies [45c1ea2]
56
+ - Updated dependencies [6f6bb89]
57
+ - Updated dependencies [060370c]
58
+ - Updated dependencies [dc714f3]
59
+ - Updated dependencies [b5da06a]
60
+ - Updated dependencies [d1a1aa1]
61
+ - Updated dependencies [63f9e9b]
62
+ - Updated dependencies [5d142ab]
63
+ - Updated dependencies [d5f588f]
64
+ - Updated dependencies [e025824]
65
+ - Updated dependencies [0571b98]
66
+ - Updated dependencies [b6b43c7]
67
+ - Updated dependencies [4fef487]
68
+ - Updated dependencies [48d257a]
69
+ - Updated dependencies [0c0c0b3]
70
+ - Updated dependencies [0d2c085]
71
+ - Updated dependencies [40acf9b]
72
+ - Updated dependencies [9222aeb]
73
+ - Updated dependencies [e2aceaf]
74
+ - Updated dependencies [411e483]
75
+ - Updated dependencies [8ba77a7]
76
+ - Updated dependencies [7b3ae3f]
77
+ - Updated dependencies [a166433]
78
+ - Updated dependencies [26735b5]
79
+ - Updated dependencies [443d8ec]
80
+ - Updated dependencies [a8c8bd5]
81
+ - Updated dependencies [abf9a79]
82
+ - Updated dependencies [14c9410]
83
+ - Updated dependencies [e86be6f]
84
+ - Updated dependencies [9bf7291]
85
+ - Updated dependencies [2e13791]
86
+ - Updated dependencies [9f95b35]
87
+ - Updated dependencies [66962ed]
88
+ - Updated dependencies [0d06df6]
89
+ - Updated dependencies [472524a]
90
+ - Updated dependencies [dd3ff01]
91
+ - Updated dependencies [d9c98f4]
92
+ - Updated dependencies [05d2819]
93
+ - Updated dependencies [9301f86]
94
+ - Updated dependencies [0a87932]
95
+ - Updated dependencies [c4a2fec]
96
+ - Updated dependencies [957b739]
97
+ - Updated dependencies [79457bd]
98
+ - Updated dependencies [a3f768e]
99
+ - Updated dependencies [7435eb5]
100
+ - Updated dependencies [8aa9e20]
101
+ - Updated dependencies [4617fab]
102
+ - Updated dependencies [ac34802]
103
+ - Updated dependencies [0054544]
104
+ - Updated dependencies [cb68df0]
105
+ - Updated dependencies [ad80501]
106
+ - Updated dependencies [68ecf2f]
107
+ - Updated dependencies [9e9c809]
108
+ - Updated dependencies [32831c6]
109
+ - Updated dependencies [6dc848c]
110
+ - Updated dependencies [6b98118]
111
+ - Updated dependencies [d0f9495]
112
+ - Updated dependencies [63d791d]
113
+ - Updated dependencies [87b828f]
114
+ - Updated dependencies [3f2f00c]
115
+ - Updated dependencies [bfdca8d]
116
+ - Updated dependencies [0ff02bb]
117
+ - Updated dependencies [7979f7f]
118
+ - Updated dependencies [39a4fab]
119
+ - Updated dependencies [44f4aba]
120
+ - Updated dependencies [9bd5ab5]
121
+ - Updated dependencies [57edfcb]
122
+ - Updated dependencies [faf8446]
123
+ - Updated dependencies [7ea4132]
124
+ - Updated dependencies [d1a034f]
125
+ - Updated dependencies [5c56081]
126
+ - Updated dependencies [fd65bc6]
127
+ - Updated dependencies [023ba40]
128
+ - Updated dependencies [ea7a7c9]
129
+ - Updated dependencies [26535e0]
130
+ - Updated dependencies [e030615]
131
+ - Updated dependencies [5e57fae]
132
+ - Updated dependencies [393138b]
133
+ - Updated dependencies [c57e248]
134
+ - Updated dependencies [88a8ee5]
135
+ - Updated dependencies [41fa418]
136
+ - Updated dependencies [205077b]
137
+ - Updated dependencies [71f938d]
138
+ - Updated dependencies [3795467]
139
+ - Updated dependencies [28a5ed5]
140
+ - Updated dependencies [7182d14]
141
+ - Updated dependencies [c1e6647]
142
+ - Updated dependencies [1766ede]
143
+ - Updated dependencies [811dff3]
144
+ - Updated dependencies [f10304b]
145
+ - Updated dependencies [dd5fd43]
146
+ - Updated dependencies [33f4a6a]
147
+ - Updated dependencies [383cbfa]
148
+ - Updated dependencies [27deb4d]
149
+ - Updated dependencies [c4df419]
150
+ - @ai-sdk/provider-utils@3.0.0
151
+ - @ai-sdk/provider@2.0.0
152
+
153
+ ## 1.0.0-beta.10
154
+
155
+ ### Patch Changes
156
+
157
+ - Updated dependencies [88a8ee5]
158
+ - @ai-sdk/provider-utils@3.0.0-beta.10
159
+
160
+ ## 1.0.0-beta.9
161
+
162
+ ### Patch Changes
163
+
164
+ - Updated dependencies [27deb4d]
165
+ - @ai-sdk/provider@2.0.0-beta.2
166
+ - @ai-sdk/provider-utils@3.0.0-beta.9
167
+
168
+ ## 1.0.0-beta.8
169
+
170
+ ### Patch Changes
171
+
172
+ - eb173f1: chore (providers): remove model shorthand deprecation warnings
173
+ - Updated dependencies [dd5fd43]
174
+ - @ai-sdk/provider-utils@3.0.0-beta.8
175
+
176
+ ## 1.0.0-beta.7
177
+
178
+ ### Patch Changes
179
+
180
+ - Updated dependencies [e7fcc86]
181
+ - @ai-sdk/provider-utils@3.0.0-beta.7
182
+
183
+ ## 1.0.0-beta.6
184
+
185
+ ### Patch Changes
186
+
187
+ - Updated dependencies [ac34802]
188
+ - @ai-sdk/provider-utils@3.0.0-beta.6
189
+
190
+ ## 1.0.0-beta.5
191
+
192
+ ### Patch Changes
193
+
194
+ - Updated dependencies [57edfcb]
195
+ - Updated dependencies [383cbfa]
196
+ - @ai-sdk/provider-utils@3.0.0-beta.5
197
+
198
+ ## 1.0.0-beta.4
199
+
200
+ ### Patch Changes
201
+
202
+ - 205077b: fix: improve Zod compatibility
203
+ - Updated dependencies [205077b]
204
+ - @ai-sdk/provider-utils@3.0.0-beta.4
205
+
206
+ ## 1.0.0-beta.3
207
+
208
+ ### Patch Changes
209
+
210
+ - Updated dependencies [05d2819]
211
+ - @ai-sdk/provider-utils@3.0.0-beta.3
212
+
213
+ ## 1.0.0-beta.2
214
+
215
+ ### Patch Changes
216
+
217
+ - d1a034f: feature: using Zod 4 for internal stuff
218
+ - Updated dependencies [0571b98]
219
+ - Updated dependencies [39a4fab]
220
+ - Updated dependencies [d1a034f]
221
+ - @ai-sdk/provider-utils@3.0.0-beta.2
222
+
223
+ ## 1.0.0-beta.1
224
+
225
+ ### Patch Changes
226
+
227
+ - Updated dependencies [742b7be]
228
+ - Updated dependencies [7cddb72]
229
+ - Updated dependencies [ccce59b]
230
+ - Updated dependencies [e2b9e4b]
231
+ - Updated dependencies [45c1ea2]
232
+ - Updated dependencies [e025824]
233
+ - Updated dependencies [0d06df6]
234
+ - Updated dependencies [472524a]
235
+ - Updated dependencies [dd3ff01]
236
+ - Updated dependencies [7435eb5]
237
+ - Updated dependencies [cb68df0]
238
+ - Updated dependencies [bfdca8d]
239
+ - Updated dependencies [44f4aba]
240
+ - Updated dependencies [023ba40]
241
+ - Updated dependencies [5e57fae]
242
+ - Updated dependencies [71f938d]
243
+ - Updated dependencies [28a5ed5]
244
+ - @ai-sdk/provider@2.0.0-beta.1
245
+ - @ai-sdk/provider-utils@3.0.0-beta.1
246
+
247
+ ## 1.0.0-alpha.15
248
+
249
+ ### Patch Changes
250
+
251
+ - Updated dependencies [48d257a]
252
+ - Updated dependencies [8ba77a7]
253
+ - @ai-sdk/provider@2.0.0-alpha.15
254
+ - @ai-sdk/provider-utils@3.0.0-alpha.15
255
+
256
+ ## 1.0.0-alpha.14
257
+
258
+ ### Patch Changes
259
+
260
+ - Updated dependencies [b5da06a]
261
+ - Updated dependencies [63f9e9b]
262
+ - Updated dependencies [2e13791]
263
+ - @ai-sdk/provider@2.0.0-alpha.14
264
+ - @ai-sdk/provider-utils@3.0.0-alpha.14
265
+
266
+ ## 1.0.0-alpha.13
267
+
268
+ ### Patch Changes
269
+
270
+ - Updated dependencies [68ecf2f]
271
+ - @ai-sdk/provider@2.0.0-alpha.13
272
+ - @ai-sdk/provider-utils@3.0.0-alpha.13
273
+
274
+ ## 1.0.0-alpha.12
275
+
276
+ ### Patch Changes
277
+
278
+ - Updated dependencies [e2aceaf]
279
+ - @ai-sdk/provider@2.0.0-alpha.12
280
+ - @ai-sdk/provider-utils@3.0.0-alpha.12
281
+
282
+ ## 1.0.0-alpha.11
283
+
284
+ ### Patch Changes
285
+
286
+ - Updated dependencies [c1e6647]
287
+ - @ai-sdk/provider@2.0.0-alpha.11
288
+ - @ai-sdk/provider-utils@3.0.0-alpha.11
289
+
290
+ ## 1.0.0-alpha.10
291
+
292
+ ### Patch Changes
293
+
294
+ - Updated dependencies [c4df419]
295
+ - @ai-sdk/provider@2.0.0-alpha.10
296
+ - @ai-sdk/provider-utils@3.0.0-alpha.10
297
+
298
+ ## 1.0.0-alpha.9
299
+
300
+ ### Patch Changes
301
+
302
+ - Updated dependencies [811dff3]
303
+ - @ai-sdk/provider@2.0.0-alpha.9
304
+ - @ai-sdk/provider-utils@3.0.0-alpha.9
305
+
306
+ ## 1.0.0-alpha.8
307
+
308
+ ### Patch Changes
309
+
310
+ - Updated dependencies [4fef487]
311
+ - Updated dependencies [9222aeb]
312
+ - @ai-sdk/provider-utils@3.0.0-alpha.8
313
+ - @ai-sdk/provider@2.0.0-alpha.8
314
+
315
+ ## 1.0.0-alpha.7
316
+
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies [5c56081]
320
+ - @ai-sdk/provider@2.0.0-alpha.7
321
+ - @ai-sdk/provider-utils@3.0.0-alpha.7
322
+
323
+ ## 1.0.0-alpha.6
324
+
325
+ ### Patch Changes
326
+
327
+ - Updated dependencies [0d2c085]
328
+ - @ai-sdk/provider@2.0.0-alpha.6
329
+ - @ai-sdk/provider-utils@3.0.0-alpha.6
330
+
331
+ ## 1.0.0-alpha.4
332
+
333
+ ### Patch Changes
334
+
335
+ - Updated dependencies [dc714f3]
336
+ - @ai-sdk/provider@2.0.0-alpha.4
337
+ - @ai-sdk/provider-utils@3.0.0-alpha.4
338
+
339
+ ## 1.0.0-alpha.3
340
+
341
+ ### Patch Changes
342
+
343
+ - Updated dependencies [6b98118]
344
+ - @ai-sdk/provider@2.0.0-alpha.3
345
+ - @ai-sdk/provider-utils@3.0.0-alpha.3
346
+
347
+ ## 1.0.0-alpha.2
348
+
349
+ ### Patch Changes
350
+
351
+ - Updated dependencies [26535e0]
352
+ - @ai-sdk/provider@2.0.0-alpha.2
353
+ - @ai-sdk/provider-utils@3.0.0-alpha.2
354
+
355
+ ## 1.0.0-alpha.1
356
+
357
+ ### Patch Changes
358
+
359
+ - Updated dependencies [3f2f00c]
360
+ - @ai-sdk/provider@2.0.0-alpha.1
361
+ - @ai-sdk/provider-utils@3.0.0-alpha.1
362
+
363
+ ## 1.0.0-canary.19
364
+
365
+ ### Patch Changes
366
+
367
+ - Updated dependencies [faf8446]
368
+ - @ai-sdk/provider-utils@3.0.0-canary.19
369
+
370
+ ## 1.0.0-canary.18
371
+
372
+ ### Patch Changes
373
+
374
+ - Updated dependencies [40acf9b]
375
+ - @ai-sdk/provider-utils@3.0.0-canary.18
376
+
377
+ ## 1.0.0-canary.17
378
+
379
+ ### Major Changes
380
+
381
+ - 516be5b: ### Move Image Model Settings into generate options
382
+
383
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
384
+
385
+ Before
386
+
387
+ ```js
388
+ await generateImage({
389
+ model: luma.image('photon-flash-1', {
390
+ maxImagesPerCall: 5,
391
+ pollIntervalMillis: 500,
392
+ }),
393
+ prompt,
394
+ n: 10,
395
+ });
396
+ ```
397
+
398
+ After
399
+
400
+ ```js
401
+ await generateImage({
402
+ model: luma.image('photon-flash-1'),
403
+ prompt,
404
+ n: 10,
405
+ maxImagesPerCall: 5,
406
+ providerOptions: {
407
+ luma: { pollIntervalMillis: 5 },
408
+ },
409
+ });
410
+ ```
411
+
412
+ Pull Request: https://github.com/vercel/ai/pull/6180
413
+
414
+ ### Patch Changes
415
+
416
+ - Updated dependencies [ea7a7c9]
417
+ - @ai-sdk/provider-utils@3.0.0-canary.17
418
+
419
+ ## 1.0.0-canary.16
420
+
421
+ ### Patch Changes
422
+
423
+ - Updated dependencies [87b828f]
424
+ - @ai-sdk/provider-utils@3.0.0-canary.16
425
+
426
+ ## 1.0.0-canary.15
427
+
428
+ ### Patch Changes
429
+
430
+ - Updated dependencies [a571d6e]
431
+ - Updated dependencies [a8c8bd5]
432
+ - Updated dependencies [7979f7f]
433
+ - Updated dependencies [41fa418]
434
+ - @ai-sdk/provider-utils@3.0.0-canary.15
435
+ - @ai-sdk/provider@2.0.0-canary.14
436
+
437
+ ## 1.0.0-canary.14
438
+
439
+ ### Patch Changes
440
+
441
+ - Updated dependencies [957b739]
442
+ - Updated dependencies [9bd5ab5]
443
+ - @ai-sdk/provider-utils@3.0.0-canary.14
444
+ - @ai-sdk/provider@2.0.0-canary.13
445
+
446
+ ## 1.0.0-canary.13
447
+
448
+ ### Patch Changes
449
+
450
+ - d9209ca: fix (image-model): `specificationVersion: v1` -> `v2`
451
+ - Updated dependencies [7b3ae3f]
452
+ - Updated dependencies [0ff02bb]
453
+ - @ai-sdk/provider@2.0.0-canary.12
454
+ - @ai-sdk/provider-utils@3.0.0-canary.13
455
+
456
+ ## 1.0.0-canary.12
457
+
458
+ ### Patch Changes
459
+
460
+ - Updated dependencies [9bf7291]
461
+ - Updated dependencies [4617fab]
462
+ - Updated dependencies [e030615]
463
+ - @ai-sdk/provider@2.0.0-canary.11
464
+ - @ai-sdk/provider-utils@3.0.0-canary.12
465
+
466
+ ## 1.0.0-canary.11
467
+
468
+ ### Patch Changes
469
+
470
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
471
+ - Updated dependencies [66962ed]
472
+ - Updated dependencies [9301f86]
473
+ - Updated dependencies [a3f768e]
474
+ - @ai-sdk/provider-utils@3.0.0-canary.11
475
+ - @ai-sdk/provider@2.0.0-canary.10
476
+
477
+ ## 1.0.0-canary.10
478
+
479
+ ### Patch Changes
480
+
481
+ - Updated dependencies [e86be6f]
482
+ - @ai-sdk/provider@2.0.0-canary.9
483
+ - @ai-sdk/provider-utils@3.0.0-canary.10
484
+
485
+ ## 1.0.0-canary.9
486
+
487
+ ### Patch Changes
488
+
489
+ - Updated dependencies [95857aa]
490
+ - Updated dependencies [7ea4132]
491
+ - @ai-sdk/provider@2.0.0-canary.8
492
+ - @ai-sdk/provider-utils@3.0.0-canary.9
493
+
3
494
  ## 1.0.0-canary.8
4
495
 
5
496
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # AI SDK - Replicate Provider
2
2
 
3
- The **[Replicate provider](https://sdk.vercel.ai/providers/ai-sdk-providers/replicate)** for the [AI SDK](https://sdk.vercel.ai/docs) contains image model support for the Replicate API.
3
+ The **[Replicate provider](https://ai-sdk.dev/providers/ai-sdk-providers/replicate)** for the [AI SDK](https://ai-sdk.dev/docs) contains image model support for the Replicate API.
4
4
 
5
5
  ## Setup
6
6
 
@@ -43,4 +43,4 @@ const { image } = await generateImage({
43
43
 
44
44
  ## Documentation
45
45
 
46
- Please check out the **[Replicate provider](https://sdk.vercel.ai/providers/ai-sdk-providers/replicate)** for more information.
46
+ Please check out the **[Replicate provider](https://ai-sdk.dev/providers/ai-sdk-providers/replicate)** for more information.
package/dist/index.d.mts CHANGED
@@ -1,13 +1,7 @@
1
- import { ImageModelV1, ProviderV2 } from '@ai-sdk/provider';
1
+ import { ImageModelV2, ProviderV2 } from '@ai-sdk/provider';
2
2
  import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
3
3
 
4
4
  type ReplicateImageModelId = 'black-forest-labs/flux-1.1-pro' | 'black-forest-labs/flux-1.1-pro-ultra' | 'black-forest-labs/flux-dev' | 'black-forest-labs/flux-pro' | 'black-forest-labs/flux-schnell' | 'bytedance/sdxl-lightning-4step' | 'fofr/aura-flow' | 'fofr/latent-consistency-model' | 'fofr/realvisxl-v3-multi-controlnet-lora' | 'fofr/sdxl-emoji' | 'fofr/sdxl-multi-controlnet-lora' | 'ideogram-ai/ideogram-v2' | 'ideogram-ai/ideogram-v2-turbo' | 'lucataco/dreamshaper-xl-turbo' | 'lucataco/open-dalle-v1.1' | 'lucataco/realvisxl-v2.0' | 'lucataco/realvisxl2-lcm' | 'luma/photon' | 'luma/photon-flash' | 'nvidia/sana' | 'playgroundai/playground-v2.5-1024px-aesthetic' | 'recraft-ai/recraft-v3' | 'recraft-ai/recraft-v3-svg' | 'stability-ai/stable-diffusion-3.5-large' | 'stability-ai/stable-diffusion-3.5-large-turbo' | 'stability-ai/stable-diffusion-3.5-medium' | 'tstramer/material-diffusion' | (string & {});
5
- interface ReplicateImageSettings {
6
- /**
7
- Override the maximum number of images per call (default 1)
8
- */
9
- maxImagesPerCall?: number;
10
- }
11
5
 
12
6
  interface ReplicateImageModelConfig {
13
7
  provider: string;
@@ -18,15 +12,14 @@ interface ReplicateImageModelConfig {
18
12
  currentDate?: () => Date;
19
13
  };
20
14
  }
21
- declare class ReplicateImageModel implements ImageModelV1 {
15
+ declare class ReplicateImageModel implements ImageModelV2 {
22
16
  readonly modelId: ReplicateImageModelId;
23
- private readonly settings;
24
17
  private readonly config;
25
- readonly specificationVersion = "v1";
18
+ readonly specificationVersion = "v2";
19
+ readonly maxImagesPerCall = 1;
26
20
  get provider(): string;
27
- get maxImagesPerCall(): number;
28
- constructor(modelId: ReplicateImageModelId, settings: ReplicateImageSettings, config: ReplicateImageModelConfig);
29
- doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV1['doGenerate']>>>;
21
+ constructor(modelId: ReplicateImageModelId, config: ReplicateImageModelConfig);
22
+ doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>>;
30
23
  }
31
24
 
32
25
  interface ReplicateProviderSettings {
@@ -54,11 +47,11 @@ interface ReplicateProvider extends ProviderV2 {
54
47
  /**
55
48
  * Creates a Replicate image generation model.
56
49
  */
57
- image(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
50
+ image(modelId: ReplicateImageModelId): ReplicateImageModel;
58
51
  /**
59
52
  * Creates a Replicate image generation model.
60
53
  */
61
- imageModel(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
54
+ imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;
62
55
  }
63
56
  /**
64
57
  * Create a Replicate provider instance.
package/dist/index.d.ts CHANGED
@@ -1,13 +1,7 @@
1
- import { ImageModelV1, ProviderV2 } from '@ai-sdk/provider';
1
+ import { ImageModelV2, ProviderV2 } from '@ai-sdk/provider';
2
2
  import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
3
3
 
4
4
  type ReplicateImageModelId = 'black-forest-labs/flux-1.1-pro' | 'black-forest-labs/flux-1.1-pro-ultra' | 'black-forest-labs/flux-dev' | 'black-forest-labs/flux-pro' | 'black-forest-labs/flux-schnell' | 'bytedance/sdxl-lightning-4step' | 'fofr/aura-flow' | 'fofr/latent-consistency-model' | 'fofr/realvisxl-v3-multi-controlnet-lora' | 'fofr/sdxl-emoji' | 'fofr/sdxl-multi-controlnet-lora' | 'ideogram-ai/ideogram-v2' | 'ideogram-ai/ideogram-v2-turbo' | 'lucataco/dreamshaper-xl-turbo' | 'lucataco/open-dalle-v1.1' | 'lucataco/realvisxl-v2.0' | 'lucataco/realvisxl2-lcm' | 'luma/photon' | 'luma/photon-flash' | 'nvidia/sana' | 'playgroundai/playground-v2.5-1024px-aesthetic' | 'recraft-ai/recraft-v3' | 'recraft-ai/recraft-v3-svg' | 'stability-ai/stable-diffusion-3.5-large' | 'stability-ai/stable-diffusion-3.5-large-turbo' | 'stability-ai/stable-diffusion-3.5-medium' | 'tstramer/material-diffusion' | (string & {});
5
- interface ReplicateImageSettings {
6
- /**
7
- Override the maximum number of images per call (default 1)
8
- */
9
- maxImagesPerCall?: number;
10
- }
11
5
 
12
6
  interface ReplicateImageModelConfig {
13
7
  provider: string;
@@ -18,15 +12,14 @@ interface ReplicateImageModelConfig {
18
12
  currentDate?: () => Date;
19
13
  };
20
14
  }
21
- declare class ReplicateImageModel implements ImageModelV1 {
15
+ declare class ReplicateImageModel implements ImageModelV2 {
22
16
  readonly modelId: ReplicateImageModelId;
23
- private readonly settings;
24
17
  private readonly config;
25
- readonly specificationVersion = "v1";
18
+ readonly specificationVersion = "v2";
19
+ readonly maxImagesPerCall = 1;
26
20
  get provider(): string;
27
- get maxImagesPerCall(): number;
28
- constructor(modelId: ReplicateImageModelId, settings: ReplicateImageSettings, config: ReplicateImageModelConfig);
29
- doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV1['doGenerate']>>>;
21
+ constructor(modelId: ReplicateImageModelId, config: ReplicateImageModelConfig);
22
+ doGenerate({ prompt, n, aspectRatio, size, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>>;
30
23
  }
31
24
 
32
25
  interface ReplicateProviderSettings {
@@ -54,11 +47,11 @@ interface ReplicateProvider extends ProviderV2 {
54
47
  /**
55
48
  * Creates a Replicate image generation model.
56
49
  */
57
- image(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
50
+ image(modelId: ReplicateImageModelId): ReplicateImageModel;
58
51
  /**
59
52
  * Creates a Replicate image generation model.
60
53
  */
61
- imageModel(modelId: ReplicateImageModelId, settings?: ReplicateImageSettings): ReplicateImageModel;
54
+ imageModel(modelId: ReplicateImageModelId): ReplicateImageModel;
62
55
  }
63
56
  /**
64
57
  * Create a Replicate provider instance.
package/dist/index.js CHANGED
@@ -31,14 +31,14 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
31
31
 
32
32
  // src/replicate-image-model.ts
33
33
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
34
- var import_zod2 = require("zod");
34
+ var import_v42 = require("zod/v4");
35
35
 
36
36
  // src/replicate-error.ts
37
37
  var import_provider_utils = require("@ai-sdk/provider-utils");
38
- var import_zod = require("zod");
39
- var replicateErrorSchema = import_zod.z.object({
40
- detail: import_zod.z.string().optional(),
41
- error: import_zod.z.string().optional()
38
+ var import_v4 = require("zod/v4");
39
+ var replicateErrorSchema = import_v4.z.object({
40
+ detail: import_v4.z.string().optional(),
41
+ error: import_v4.z.string().optional()
42
42
  });
43
43
  var replicateFailedResponseHandler = (0, import_provider_utils.createJsonErrorResponseHandler)({
44
44
  errorSchema: replicateErrorSchema,
@@ -50,19 +50,15 @@ var replicateFailedResponseHandler = (0, import_provider_utils.createJsonErrorRe
50
50
 
51
51
  // src/replicate-image-model.ts
52
52
  var ReplicateImageModel = class {
53
- constructor(modelId, settings, config) {
53
+ constructor(modelId, config) {
54
54
  this.modelId = modelId;
55
- this.settings = settings;
56
55
  this.config = config;
57
- this.specificationVersion = "v1";
56
+ this.specificationVersion = "v2";
57
+ this.maxImagesPerCall = 1;
58
58
  }
59
59
  get provider() {
60
60
  return this.config.provider;
61
61
  }
62
- get maxImagesPerCall() {
63
- var _a;
64
- return (_a = this.settings.maxImagesPerCall) != null ? _a : 1;
65
- }
66
62
  async doGenerate({
67
63
  prompt,
68
64
  n,
@@ -131,15 +127,15 @@ var ReplicateImageModel = class {
131
127
  };
132
128
  }
133
129
  };
134
- var replicateImageResponseSchema = import_zod2.z.object({
135
- output: import_zod2.z.union([import_zod2.z.array(import_zod2.z.string()), import_zod2.z.string()])
130
+ var replicateImageResponseSchema = import_v42.z.object({
131
+ output: import_v42.z.union([import_v42.z.array(import_v42.z.string()), import_v42.z.string()])
136
132
  });
137
133
 
138
134
  // src/replicate-provider.ts
139
135
  function createReplicate(options = {}) {
140
- const createImageModel = (modelId, settings) => {
136
+ const createImageModel = (modelId) => {
141
137
  var _a;
142
- return new ReplicateImageModel(modelId, settings != null ? settings : {}, {
138
+ return new ReplicateImageModel(modelId, {
143
139
  provider: "replicate",
144
140
  baseURL: (_a = options.baseURL) != null ? _a : "https://api.replicate.com/v1",
145
141
  headers: {
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"],"sourcesContent":["export { createReplicate, replicate } from './replicate-provider';\nexport type {\n ReplicateProvider,\n ReplicateProviderSettings,\n} from './replicate-provider';\n","import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\n /**\n * Creates a Replicate image generation model.\n */\n image(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ) =>\n new ReplicateImageModel(modelId, settings ?? {}, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} 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\nexport class ReplicateImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxImagesPerCall(): number {\n return this.settings.maxImagesPerCall ?? 1;\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly settings: ReplicateImageSettings,\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 }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\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(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\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","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\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"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["export { createReplicate, replicate } from './replicate-provider';\nexport type {\n ReplicateProvider,\n ReplicateProviderSettings,\n} from './replicate-provider';\n","import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\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/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (modelId: ReplicateImageModelId) =>\n new ReplicateImageModel(modelId, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\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\nexport class ReplicateImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\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 }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV2['doGenerate']>>\n > {\n const warnings: Array<ImageModelV2CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\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(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\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","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"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_v4"]}
package/dist/index.mjs CHANGED
@@ -11,11 +11,11 @@ import {
11
11
  postJsonToApi,
12
12
  resolve
13
13
  } from "@ai-sdk/provider-utils";
14
- import { z as z2 } from "zod";
14
+ import { z as z2 } from "zod/v4";
15
15
 
16
16
  // src/replicate-error.ts
17
17
  import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
18
- import { z } from "zod";
18
+ import { z } from "zod/v4";
19
19
  var replicateErrorSchema = z.object({
20
20
  detail: z.string().optional(),
21
21
  error: z.string().optional()
@@ -30,19 +30,15 @@ var replicateFailedResponseHandler = createJsonErrorResponseHandler({
30
30
 
31
31
  // src/replicate-image-model.ts
32
32
  var ReplicateImageModel = class {
33
- constructor(modelId, settings, config) {
33
+ constructor(modelId, config) {
34
34
  this.modelId = modelId;
35
- this.settings = settings;
36
35
  this.config = config;
37
- this.specificationVersion = "v1";
36
+ this.specificationVersion = "v2";
37
+ this.maxImagesPerCall = 1;
38
38
  }
39
39
  get provider() {
40
40
  return this.config.provider;
41
41
  }
42
- get maxImagesPerCall() {
43
- var _a;
44
- return (_a = this.settings.maxImagesPerCall) != null ? _a : 1;
45
- }
46
42
  async doGenerate({
47
43
  prompt,
48
44
  n,
@@ -117,9 +113,9 @@ var replicateImageResponseSchema = z2.object({
117
113
 
118
114
  // src/replicate-provider.ts
119
115
  function createReplicate(options = {}) {
120
- const createImageModel = (modelId, settings) => {
116
+ const createImageModel = (modelId) => {
121
117
  var _a;
122
- return new ReplicateImageModel(modelId, settings != null ? settings : {}, {
118
+ return new ReplicateImageModel(modelId, {
123
119
  provider: "replicate",
124
120
  baseURL: (_a = options.baseURL) != null ? _a : "https://api.replicate.com/v1",
125
121
  headers: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\n /**\n * Creates a Replicate image generation model.\n */\n image(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n\n /**\n * Creates a Replicate image generation model.\n */\n imageModel(\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ): ReplicateImageModel;\n}\n\n/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (\n modelId: ReplicateImageModelId,\n settings?: ReplicateImageSettings,\n ) =>\n new ReplicateImageModel(modelId, settings ?? {}, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { replicateFailedResponseHandler } from './replicate-error';\nimport {\n ReplicateImageModelId,\n ReplicateImageSettings,\n} 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\nexport class ReplicateImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxImagesPerCall(): number {\n return this.settings.maxImagesPerCall ?? 1;\n }\n\n constructor(\n readonly modelId: ReplicateImageModelId,\n private readonly settings: ReplicateImageSettings,\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 }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\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(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\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","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\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"],"mappings":"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","names":["z","z"]}
1
+ {"version":3,"sources":["../src/replicate-provider.ts","../src/replicate-image-model.ts","../src/replicate-error.ts"],"sourcesContent":["import { NoSuchModelError, ProviderV2 } from '@ai-sdk/provider';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\nimport { loadApiKey } from '@ai-sdk/provider-utils';\nimport { ReplicateImageModel } from './replicate-image-model';\nimport { ReplicateImageModelId } from './replicate-image-settings';\n\nexport interface ReplicateProviderSettings {\n /**\nAPI token that is being send using the `Authorization` header.\nIt defaults to the `REPLICATE_API_TOKEN` environment variable.\n */\n apiToken?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://api.replicate.com/v1`.\n */\n baseURL?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface ReplicateProvider extends ProviderV2 {\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/**\n * Create a Replicate provider instance.\n */\nexport function createReplicate(\n options: ReplicateProviderSettings = {},\n): ReplicateProvider {\n const createImageModel = (modelId: ReplicateImageModelId) =>\n new ReplicateImageModel(modelId, {\n provider: 'replicate',\n baseURL: options.baseURL ?? 'https://api.replicate.com/v1',\n headers: {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiToken,\n environmentVariableName: 'REPLICATE_API_TOKEN',\n description: 'Replicate',\n })}`,\n ...options.headers,\n },\n fetch: options.fetch,\n });\n\n return {\n image: createImageModel,\n imageModel: createImageModel,\n languageModel: () => {\n throw new NoSuchModelError({\n modelId: 'languageModel',\n modelType: 'languageModel',\n });\n },\n textEmbeddingModel: () => {\n throw new NoSuchModelError({\n modelId: 'textEmbeddingModel',\n modelType: 'textEmbeddingModel',\n });\n },\n };\n}\n\n/**\n * Default Replicate provider instance.\n */\nexport const replicate = createReplicate();\n","import type { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport type { Resolvable } from '@ai-sdk/provider-utils';\nimport {\n FetchFunction,\n combineHeaders,\n createBinaryResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n postJsonToApi,\n resolve,\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\nexport class ReplicateImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\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 }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV2['doGenerate']>>\n > {\n const warnings: Array<ImageModelV2CallWarning> = [];\n\n const [modelId, version] = this.modelId.split(':');\n\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\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(await resolve(this.config.headers), headers, {\n prefer: 'wait',\n }),\n\n body: {\n input: {\n prompt,\n aspect_ratio: aspectRatio,\n size,\n seed,\n num_outputs: n,\n ...(providerOptions.replicate ?? {}),\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","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"],"mappings":"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","names":["z","z"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/replicate",
3
- "version": "1.0.0-canary.8",
3
+ "version": "1.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -19,18 +19,18 @@
19
19
  }
20
20
  },
21
21
  "dependencies": {
22
- "@ai-sdk/provider": "2.0.0-canary.7",
23
- "@ai-sdk/provider-utils": "3.0.0-canary.8"
22
+ "@ai-sdk/provider": "2.0.0",
23
+ "@ai-sdk/provider-utils": "3.0.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "20.17.24",
27
27
  "tsup": "^8",
28
28
  "typescript": "5.8.3",
29
- "zod": "3.23.8",
29
+ "zod": "3.25.76",
30
30
  "@vercel/ai-tsconfig": "0.0.0"
31
31
  },
32
32
  "peerDependencies": {
33
- "zod": "^3.0.0"
33
+ "zod": "^3.25.76 || ^4"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">=18"
@@ -38,7 +38,7 @@
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "homepage": "https://sdk.vercel.ai/docs",
41
+ "homepage": "https://ai-sdk.dev/docs",
42
42
  "repository": {
43
43
  "type": "git",
44
44
  "url": "git+https://github.com/vercel/ai.git"
@@ -57,6 +57,8 @@
57
57
  "type-check": "tsc --build",
58
58
  "prettier-check": "prettier --check \"./**/*.ts*\"",
59
59
  "test": "pnpm test:node && pnpm test:edge",
60
+ "test:update": "pnpm test:node -u",
61
+ "test:watch": "vitest --config vitest.node.config.js",
60
62
  "test:edge": "vitest --config vitest.edge.config.js --run",
61
63
  "test:node": "vitest --config vitest.node.config.js --run"
62
64
  }