@byte_fluffy/nexra-sdk 0.1.0-alpha.26 → 0.1.0-alpha.28

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.
@@ -1,14 +1,375 @@
1
1
  import {
2
2
  sortRatioDisplayOrder
3
- } from "./chunk-KEAAHI25.js";
3
+ } from "./chunk-IEBCNRT4.js";
4
4
 
5
5
  // src/catalog/generated/audio.generated.json
6
6
  var audio_generated_default = [
7
+ {
8
+ id: "elevenlabs/eleven_multilingual_ttv_v2",
9
+ contractVersion: 1,
10
+ developer: "elevenlabs",
11
+ displayName: "ElevenLabs Voice Design V2",
12
+ summary: "Design three voice previews from a voice description and preview script. Save a selected preview as a private voice for speech and voice conversion.",
13
+ kind: "audio",
14
+ family: "ElevenLabs Voice Design",
15
+ versionLabel: "2",
16
+ aliases: [],
17
+ capabilities: {
18
+ inputModalities: [
19
+ "text",
20
+ "audio"
21
+ ],
22
+ outputModalities: [
23
+ "audio",
24
+ "voice"
25
+ ],
26
+ inputModes: [
27
+ "text-to-audio"
28
+ ],
29
+ features: [
30
+ "voice-design"
31
+ ]
32
+ },
33
+ operations: [
34
+ {
35
+ operation: "audio.generate",
36
+ inputModalities: [
37
+ "text"
38
+ ],
39
+ outputModalities: [
40
+ "audio"
41
+ ],
42
+ inputSchema: {
43
+ $schema: "https://json-schema.org/draft/2020-12/schema",
44
+ type: "object",
45
+ properties: {
46
+ content: {
47
+ type: "array",
48
+ minItems: 2,
49
+ maxItems: 2,
50
+ items: {
51
+ oneOf: [
52
+ {
53
+ type: "object",
54
+ additionalProperties: false,
55
+ required: [
56
+ "type",
57
+ "role",
58
+ "text"
59
+ ],
60
+ properties: {
61
+ type: {
62
+ const: "text"
63
+ },
64
+ role: {
65
+ const: "prompt"
66
+ },
67
+ text: {
68
+ type: "string",
69
+ minLength: 20,
70
+ maxLength: 1e3,
71
+ title: "\u97F3\u8272\u63CF\u8FF0"
72
+ }
73
+ }
74
+ },
75
+ {
76
+ type: "object",
77
+ additionalProperties: false,
78
+ required: [
79
+ "type",
80
+ "role",
81
+ "text"
82
+ ],
83
+ properties: {
84
+ type: {
85
+ const: "text"
86
+ },
87
+ role: {
88
+ const: "script"
89
+ },
90
+ text: {
91
+ type: "string",
92
+ minLength: 100,
93
+ maxLength: 1e3,
94
+ title: "\u8BD5\u542C\u6587\u672C"
95
+ }
96
+ }
97
+ }
98
+ ]
99
+ },
100
+ allOf: [
101
+ {
102
+ contains: {
103
+ type: "object",
104
+ additionalProperties: false,
105
+ required: [
106
+ "type",
107
+ "role",
108
+ "text"
109
+ ],
110
+ properties: {
111
+ type: {
112
+ const: "text"
113
+ },
114
+ role: {
115
+ const: "prompt"
116
+ },
117
+ text: {
118
+ type: "string",
119
+ minLength: 20,
120
+ maxLength: 1e3,
121
+ title: "\u97F3\u8272\u63CF\u8FF0"
122
+ }
123
+ }
124
+ },
125
+ minContains: 1,
126
+ maxContains: 1
127
+ },
128
+ {
129
+ contains: {
130
+ type: "object",
131
+ additionalProperties: false,
132
+ required: [
133
+ "type",
134
+ "role",
135
+ "text"
136
+ ],
137
+ properties: {
138
+ type: {
139
+ const: "text"
140
+ },
141
+ role: {
142
+ const: "script"
143
+ },
144
+ text: {
145
+ type: "string",
146
+ minLength: 100,
147
+ maxLength: 1e3,
148
+ title: "\u8BD5\u542C\u6587\u672C"
149
+ }
150
+ }
151
+ },
152
+ minContains: 1,
153
+ maxContains: 1
154
+ }
155
+ ]
156
+ },
157
+ seed: {
158
+ type: [
159
+ "integer",
160
+ "null"
161
+ ],
162
+ minimum: 0,
163
+ maximum: 2147483647,
164
+ "x-ui": {
165
+ order: 22,
166
+ control: "number"
167
+ }
168
+ },
169
+ output_format: {
170
+ type: "string",
171
+ enum: [
172
+ "mp3_22050_32",
173
+ "mp3_24000_48",
174
+ "mp3_44100_32",
175
+ "mp3_44100_64",
176
+ "mp3_44100_96",
177
+ "mp3_44100_128",
178
+ "mp3_44100_192",
179
+ "pcm_8000",
180
+ "pcm_16000",
181
+ "pcm_22050",
182
+ "pcm_24000",
183
+ "pcm_32000",
184
+ "pcm_44100",
185
+ "pcm_48000",
186
+ "ulaw_8000",
187
+ "alaw_8000",
188
+ "opus_48000_32",
189
+ "opus_48000_64",
190
+ "opus_48000_96",
191
+ "opus_48000_128",
192
+ "opus_48000_192"
193
+ ],
194
+ default: "mp3_44100_128"
195
+ }
196
+ },
197
+ required: [
198
+ "content"
199
+ ],
200
+ additionalProperties: false
201
+ },
202
+ outputSchema: {},
203
+ metering: {
204
+ schemaVersion: 1,
205
+ kind: "non_token",
206
+ metrics: [
207
+ {
208
+ metric: "requests",
209
+ requirement: "required"
210
+ },
211
+ {
212
+ metric: "input_characters",
213
+ requirement: "required"
214
+ },
215
+ {
216
+ metric: "output_audio_seconds",
217
+ requirement: "informational"
218
+ }
219
+ ]
220
+ }
221
+ },
222
+ {
223
+ operation: "voice.create",
224
+ inputModalities: [
225
+ "text"
226
+ ],
227
+ outputModalities: [
228
+ "voice"
229
+ ],
230
+ inputSchema: {
231
+ type: "object",
232
+ additionalProperties: false,
233
+ required: [
234
+ "name",
235
+ "source"
236
+ ],
237
+ properties: {
238
+ name: {
239
+ type: "string",
240
+ minLength: 1,
241
+ maxLength: 255
242
+ },
243
+ source: {
244
+ type: "object",
245
+ additionalProperties: false,
246
+ required: [
247
+ "kind",
248
+ "taskId",
249
+ "previewId"
250
+ ],
251
+ properties: {
252
+ kind: {
253
+ const: "design"
254
+ },
255
+ taskId: {
256
+ type: "string",
257
+ minLength: 1
258
+ },
259
+ previewId: {
260
+ type: "string",
261
+ minLength: 1
262
+ }
263
+ }
264
+ }
265
+ }
266
+ },
267
+ outputSchema: {
268
+ type: "object",
269
+ required: [
270
+ "taskId",
271
+ "voice"
272
+ ],
273
+ properties: {
274
+ taskId: {
275
+ type: "string"
276
+ },
277
+ voice: {
278
+ type: "object"
279
+ }
280
+ }
281
+ },
282
+ metering: {
283
+ schemaVersion: 1,
284
+ kind: "non_token",
285
+ metrics: [
286
+ {
287
+ metric: "requests",
288
+ requirement: "required"
289
+ }
290
+ ]
291
+ }
292
+ },
293
+ {
294
+ operation: "voice.clone",
295
+ inputModalities: [
296
+ "audio"
297
+ ],
298
+ outputModalities: [
299
+ "voice"
300
+ ],
301
+ inputSchema: {
302
+ type: "object",
303
+ additionalProperties: false,
304
+ required: [
305
+ "name",
306
+ "source"
307
+ ],
308
+ properties: {
309
+ name: {
310
+ type: "string",
311
+ minLength: 1,
312
+ maxLength: 255
313
+ },
314
+ source: {
315
+ type: "object",
316
+ additionalProperties: false,
317
+ required: [
318
+ "kind",
319
+ "samples"
320
+ ],
321
+ properties: {
322
+ kind: {
323
+ const: "clone"
324
+ },
325
+ samples: {
326
+ type: "array",
327
+ minItems: 1,
328
+ maxItems: 5,
329
+ uniqueItems: true,
330
+ items: {
331
+ type: "string",
332
+ format: "uuid"
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ },
339
+ outputSchema: {
340
+ type: "object",
341
+ required: [
342
+ "taskId",
343
+ "voice"
344
+ ],
345
+ properties: {
346
+ taskId: {
347
+ type: "string"
348
+ },
349
+ voice: {
350
+ type: "object"
351
+ }
352
+ }
353
+ },
354
+ metering: {
355
+ schemaVersion: 1,
356
+ kind: "non_token",
357
+ metrics: [
358
+ {
359
+ metric: "requests",
360
+ requirement: "required"
361
+ }
362
+ ]
363
+ }
364
+ }
365
+ ],
366
+ endpoints: []
367
+ },
7
368
  {
8
369
  id: "bytedance/doubao-tts-v1",
9
370
  contractVersion: 1,
10
371
  developer: "bytedance",
11
- displayName: "Doubao TTS v1",
372
+ displayName: "Doubao TTS V1",
12
373
  summary: "Synthesize expressive Chinese speech from text with a Volcengine TTS v1 preset voice.",
13
374
  kind: "audio",
14
375
  family: "Doubao TTS",
@@ -145,7 +506,7 @@ var audio_generated_default = [
145
506
  id: "bytedance/doubao-tts-v2",
146
507
  contractVersion: 1,
147
508
  developer: "bytedance",
148
- displayName: "Doubao TTS v2",
509
+ displayName: "Doubao TTS V2",
149
510
  summary: "Synthesize natural, expressive speech from text with a Volcengine TTS v2 preset voice.",
150
511
  kind: "audio",
151
512
  family: "Doubao TTS",
@@ -282,7 +643,7 @@ var audio_generated_default = [
282
643
  id: "elevenlabs/eleven_flash_v2_5",
283
644
  contractVersion: 1,
284
645
  developer: "elevenlabs",
285
- displayName: "Eleven Flash v2.5",
646
+ displayName: "Eleven Flash V2.5",
286
647
  summary: "Synthesize low-latency speech in 32 languages from up to 40,000 characters using an ElevenLabs preset or cloned voice.",
287
648
  kind: "audio",
288
649
  family: "ElevenLabs Flash",
@@ -487,7 +848,7 @@ var audio_generated_default = [
487
848
  id: "elevenlabs/eleven_multilingual_v2",
488
849
  contractVersion: 1,
489
850
  developer: "elevenlabs",
490
- displayName: "Eleven Multilingual v2",
851
+ displayName: "Eleven Multilingual V2",
491
852
  summary: "Synthesize stable, natural long-form speech in 29 languages from up to 10,000 characters using an ElevenLabs preset or cloned voice.",
492
853
  kind: "audio",
493
854
  family: "ElevenLabs Multilingual",
@@ -693,7 +1054,7 @@ var audio_generated_default = [
693
1054
  id: "elevenlabs/eleven_text_to_sound_v2",
694
1055
  contractVersion: 1,
695
1056
  developer: "elevenlabs",
696
- displayName: "Eleven Text to Sound v2",
1057
+ displayName: "Eleven Text To Sound V2",
697
1058
  summary: "Generate sound effects up to 30 seconds from a text prompt with duration, loop, and prompt-influence controls.",
698
1059
  kind: "audio",
699
1060
  family: "ElevenLabs Text to Sound",
@@ -918,7 +1279,7 @@ var audio_generated_default = [
918
1279
  id: "elevenlabs/eleven_v3",
919
1280
  contractVersion: 1,
920
1281
  developer: "elevenlabs",
921
- displayName: "Eleven v3",
1282
+ displayName: "Eleven V3",
922
1283
  summary: "Generate expressive multilingual speech from up to 5,000 characters using an ElevenLabs preset or cloned voice.",
923
1284
  kind: "audio",
924
1285
  family: "ElevenLabs Eleven",
@@ -1121,7 +1482,7 @@ var audio_generated_default = [
1121
1482
  id: "elevenlabs/music_v2",
1122
1483
  contractVersion: 1,
1123
1484
  developer: "elevenlabs",
1124
- displayName: "Eleven Music v2",
1485
+ displayName: "Eleven Music V2",
1125
1486
  summary: "Generate instrumental or vocal music from a text prompt with an optional duration from 3 seconds to 10 minutes.",
1126
1487
  kind: "audio",
1127
1488
  family: "ElevenLabs Music",
@@ -1534,7 +1895,7 @@ var audio_generated_default = [
1534
1895
  endpoints: []
1535
1896
  },
1536
1897
  {
1537
- id: "fish-audio/s2pro",
1898
+ id: "fish-audio/s2-pro",
1538
1899
  contractVersion: 1,
1539
1900
  developer: "fish-audio",
1540
1901
  displayName: "Fish Audio S2 Pro",
@@ -1542,10 +1903,7 @@ var audio_generated_default = [
1542
1903
  kind: "audio",
1543
1904
  family: "Fish Audio S Pro",
1544
1905
  versionLabel: "2",
1545
- aliases: [
1546
- "fish-audio-s2-pro",
1547
- "fish_audio/s2pro"
1548
- ],
1906
+ aliases: [],
1549
1907
  capabilities: {
1550
1908
  inputModalities: [
1551
1909
  "text"
@@ -3754,7 +4112,7 @@ var image_generated_default = [
3754
4112
  id: "alibaba/qwen-image-edit-plus",
3755
4113
  contractVersion: 2,
3756
4114
  developer: "alibaba",
3757
- displayName: "qwen-image-edit-plus",
4115
+ displayName: "Qwen Image Edit Plus",
3758
4116
  summary: "Qwen Image Edit Plus \u56FE\u7247\u7F16\u8F91\uFF0C\u652F\u6301 1\uFF5E3 \u5F20\u8F93\u5165\u56FE\u7247\u3002",
3759
4117
  kind: "image",
3760
4118
  family: "Qwen Image Edit Plus",
@@ -4011,18 +4369,15 @@ var image_generated_default = [
4011
4369
  endpoints: []
4012
4370
  },
4013
4371
  {
4014
- id: "alibaba/wan-2-7-image-pro",
4372
+ id: "alibaba/wan2.7-image-pro",
4015
4373
  contractVersion: 2,
4016
4374
  developer: "alibaba",
4017
- displayName: "wan-2-7-image-pro",
4375
+ displayName: "Wan 2.7 Image Pro",
4018
4376
  summary: "Wan 2.7 Image Pro \u56FE\u7247\u751F\u6210\u4E0E\u7F16\u8F91\uFF0C\u652F\u6301\u6700\u591A 9 \u5F20\u53C2\u8003\u56FE\u548C\u6700\u9AD8 4K \u6587\u751F\u56FE\u3002",
4019
4377
  kind: "image",
4020
4378
  family: "Wan Image Pro",
4021
4379
  versionLabel: "2.7",
4022
- aliases: [
4023
- "aliyun/wan-2-7-image-pro",
4024
- "wan2.7-image-pro"
4025
- ],
4380
+ aliases: [],
4026
4381
  capabilities: {
4027
4382
  inputModalities: [
4028
4383
  "text",
@@ -4281,7 +4636,7 @@ var image_generated_default = [
4281
4636
  id: "alibaba/z-image-turbo",
4282
4637
  contractVersion: 2,
4283
4638
  developer: "alibaba",
4284
- displayName: "z-image-turbo",
4639
+ displayName: "Z Image Turbo",
4285
4640
  summary: "Z-Image Turbo \u6587\u751F\u56FE\uFF0C\u652F\u6301\u81EA\u5B9A\u4E49\u5C3A\u5BF8\u4E0E\u63D0\u793A\u8BCD\u6269\u5199\u3002",
4286
4641
  kind: "image",
4287
4642
  family: "Z-Image Turbo",
@@ -4888,7 +5243,7 @@ var image_generated_default = [
4888
5243
  endpoints: []
4889
5244
  },
4890
5245
  {
4891
- id: "google/gemini-2-5-flash-image",
5246
+ id: "google/gemini-2.5-flash-image",
4892
5247
  contractVersion: 1,
4893
5248
  developer: "google",
4894
5249
  displayName: "Gemini 2.5 Flash Image",
@@ -4896,9 +5251,7 @@ var image_generated_default = [
4896
5251
  kind: "image",
4897
5252
  family: "Gemini Flash Image",
4898
5253
  versionLabel: "2.5",
4899
- aliases: [
4900
- "banana"
4901
- ],
5254
+ aliases: [],
4902
5255
  capabilities: {
4903
5256
  inputModalities: [
4904
5257
  "text",
@@ -5111,7 +5464,7 @@ var image_generated_default = [
5111
5464
  endpoints: []
5112
5465
  },
5113
5466
  {
5114
- id: "google/gemini-3-1-flash-image",
5467
+ id: "google/gemini-3.1-flash-image",
5115
5468
  contractVersion: 1,
5116
5469
  developer: "google",
5117
5470
  displayName: "Gemini 3.1 Flash Image",
@@ -5119,10 +5472,7 @@ var image_generated_default = [
5119
5472
  kind: "image",
5120
5473
  family: "Gemini Flash Image",
5121
5474
  versionLabel: "3.1",
5122
- aliases: [
5123
- "banana2",
5124
- "google/gemini-3.1-flash-image"
5125
- ],
5475
+ aliases: [],
5126
5476
  capabilities: {
5127
5477
  inputModalities: [
5128
5478
  "text",
@@ -5343,19 +5693,15 @@ var image_generated_default = [
5343
5693
  endpoints: []
5344
5694
  },
5345
5695
  {
5346
- id: "google/gemini-3-1-flash-lite-image",
5696
+ id: "google/gemini-3.1-flash-lite-image",
5347
5697
  contractVersion: 1,
5348
5698
  developer: "google",
5349
- displayName: "Gemini 3.1 Flash-Lite Image",
5699
+ displayName: "Gemini 3.1 Flash Lite Image",
5350
5700
  summary: "Generate or edit 1K images from text and up to fourteen reference images with expanded aspect-ratio support.",
5351
5701
  kind: "image",
5352
5702
  family: "Gemini Flash-Lite Image",
5353
5703
  versionLabel: "3.1",
5354
- aliases: [
5355
- "banana-2-lite",
5356
- "banana2-lite",
5357
- "google/gemini-3.1-flash-lite-image"
5358
- ],
5704
+ aliases: [],
5359
5705
  capabilities: {
5360
5706
  inputModalities: [
5361
5707
  "text",
@@ -5573,7 +5919,7 @@ var image_generated_default = [
5573
5919
  endpoints: []
5574
5920
  },
5575
5921
  {
5576
- id: "google/gemini-3-pro-image-preview",
5922
+ id: "google/gemini-3-pro-image",
5577
5923
  contractVersion: 1,
5578
5924
  developer: "google",
5579
5925
  displayName: "Gemini 3 Pro Image",
@@ -5581,9 +5927,7 @@ var image_generated_default = [
5581
5927
  kind: "image",
5582
5928
  family: "Gemini Pro Image",
5583
5929
  versionLabel: "3 Pro",
5584
- aliases: [
5585
- "banana-pro"
5586
- ],
5930
+ aliases: [],
5587
5931
  capabilities: {
5588
5932
  inputModalities: [
5589
5933
  "text",
@@ -6891,7 +7235,7 @@ var image_generated_default = [
6891
7235
  id: "xai/grok-imagine-image",
6892
7236
  contractVersion: 2,
6893
7237
  developer: "xai",
6894
- displayName: "grok-imagine-image",
7238
+ displayName: "Grok Imagine Image",
6895
7239
  summary: "Grok \u56FE\u7247\u751F\u6210\u4E0E\u7F16\u8F91\uFF0C\u652F\u6301\u591A\u56FE\u53C2\u8003\u53CA 1K / 2K \u8F93\u51FA\u3002",
6896
7240
  kind: "image",
6897
7241
  family: "Grok Image",
@@ -7142,7 +7486,7 @@ var image_generated_default = [
7142
7486
  id: "xai/grok-imagine-image-quality",
7143
7487
  contractVersion: 2,
7144
7488
  developer: "xai",
7145
- displayName: "grok-imagine-image-quality",
7489
+ displayName: "Grok Imagine Image Quality",
7146
7490
  summary: "Grok \u9AD8\u8D28\u91CF\u56FE\u7247\u751F\u6210\u4E0E\u7F16\u8F91\uFF0C\u652F\u6301\u591A\u56FE\u53C2\u8003\u53CA 1K / 2K \u8F93\u51FA\u3002",
7147
7491
  kind: "image",
7148
7492
  family: "Grok Image Quality",
@@ -9231,7 +9575,7 @@ var language_generated_default = [
9231
9575
  ]
9232
9576
  },
9233
9577
  {
9234
- id: "anthropic/claude-haiku-4-5",
9578
+ id: "anthropic/claude-haiku-4-5-20251001",
9235
9579
  contractVersion: 1,
9236
9580
  developer: "anthropic",
9237
9581
  displayName: "Claude Haiku 4.5",
@@ -9239,9 +9583,7 @@ var language_generated_default = [
9239
9583
  kind: "language",
9240
9584
  family: "Claude Haiku",
9241
9585
  versionLabel: "4.5",
9242
- aliases: [
9243
- "claude-haiku-4-5"
9244
- ],
9586
+ aliases: [],
9245
9587
  capabilities: {
9246
9588
  inputModalities: [
9247
9589
  "text",
@@ -14214,7 +14556,7 @@ var language_generated_default = [
14214
14556
  ]
14215
14557
  },
14216
14558
  {
14217
- id: "bytedance/seed-2-0-mini-260215",
14559
+ id: "bytedance/doubao-seed-2-0-mini-260428",
14218
14560
  contractVersion: 2,
14219
14561
  developer: "bytedance",
14220
14562
  displayName: "Doubao Seed 2.0 Mini",
@@ -14222,12 +14564,7 @@ var language_generated_default = [
14222
14564
  kind: "language",
14223
14565
  family: "Doubao Seed Mini",
14224
14566
  versionLabel: "2.0",
14225
- aliases: [
14226
- "doubao-seed-2-0-mini-260428",
14227
- "doubao-seed-2.0-mini",
14228
- "seed-2-0-mini",
14229
- "volcengine/seed-2-0-mini-260215"
14230
- ],
14567
+ aliases: [],
14231
14568
  capabilities: {
14232
14569
  inputModalities: [
14233
14570
  "text",
@@ -14271,12 +14608,12 @@ var language_generated_default = [
14271
14608
  title: "\u6A21\u578B ID",
14272
14609
  description: "Nexra \u516C\u5171\u6A21\u578B ID\uFF0C\u5FC5\u987B\u4E0E\u5916\u5C42 modelId \u76F8\u540C\u3002",
14273
14610
  examples: [
14274
- "bytedance/seed-2-0-mini-260215"
14611
+ "bytedance/doubao-seed-2-0-mini-260428"
14275
14612
  ],
14276
14613
  "x-ui": {
14277
14614
  order: 0
14278
14615
  },
14279
- const: "bytedance/seed-2-0-mini-260215"
14616
+ const: "bytedance/doubao-seed-2-0-mini-260428"
14280
14617
  },
14281
14618
  messages: {
14282
14619
  type: "array",
@@ -15049,10 +15386,10 @@ var language_generated_default = [
15049
15386
  model: {
15050
15387
  type: "string",
15051
15388
  title: "\u6A21\u578B ID",
15052
- const: "bytedance/seed-2-0-mini-260215",
15389
+ const: "bytedance/doubao-seed-2-0-mini-260428",
15053
15390
  description: "Nexra \u516C\u5171\u6A21\u578B ID\u3002",
15054
15391
  examples: [
15055
- "bytedance/seed-2-0-mini-260215"
15392
+ "bytedance/doubao-seed-2-0-mini-260428"
15056
15393
  ]
15057
15394
  },
15058
15395
  choices: {
@@ -15261,7 +15598,7 @@ var language_generated_default = [
15261
15598
  ]
15262
15599
  },
15263
15600
  {
15264
- id: "google/gemini-3-1-pro-preview",
15601
+ id: "google/gemini-3.1-pro-preview",
15265
15602
  contractVersion: 1,
15266
15603
  developer: "google",
15267
15604
  displayName: "Gemini 3.1 Pro Preview",
@@ -15269,10 +15606,7 @@ var language_generated_default = [
15269
15606
  kind: "language",
15270
15607
  family: "Gemini Pro",
15271
15608
  versionLabel: "3.1 Preview",
15272
- aliases: [
15273
- "gemini-3.1-pro",
15274
- "google/gemini-3.1-pro-preview"
15275
- ],
15609
+ aliases: [],
15276
15610
  capabilities: {
15277
15611
  inputModalities: [
15278
15612
  "text",
@@ -15676,7 +16010,7 @@ var language_generated_default = [
15676
16010
  ]
15677
16011
  },
15678
16012
  {
15679
- id: "google/gemini-3-5-flash",
16013
+ id: "google/gemini-3.5-flash",
15680
16014
  contractVersion: 1,
15681
16015
  developer: "google",
15682
16016
  displayName: "Gemini 3.5 Flash",
@@ -15684,10 +16018,7 @@ var language_generated_default = [
15684
16018
  kind: "language",
15685
16019
  family: "Gemini Flash",
15686
16020
  versionLabel: "3.5",
15687
- aliases: [
15688
- "gemini-3.5-flash",
15689
- "google/gemini-3.5-flash"
15690
- ],
16021
+ aliases: [],
15691
16022
  capabilities: {
15692
16023
  inputModalities: [
15693
16024
  "text",
@@ -16092,7 +16423,7 @@ var language_generated_default = [
16092
16423
  ]
16093
16424
  },
16094
16425
  {
16095
- id: "google/gemini-3-6-flash",
16426
+ id: "google/gemini-3.6-flash",
16096
16427
  contractVersion: 1,
16097
16428
  developer: "google",
16098
16429
  displayName: "Gemini 3.6 Flash",
@@ -16100,10 +16431,7 @@ var language_generated_default = [
16100
16431
  kind: "language",
16101
16432
  family: "Gemini Flash",
16102
16433
  versionLabel: "3.6",
16103
- aliases: [
16104
- "gemini-3.6-flash",
16105
- "google/gemini-3.6-flash"
16106
- ],
16434
+ aliases: [],
16107
16435
  capabilities: {
16108
16436
  inputModalities: [
16109
16437
  "text",
@@ -16923,18 +17251,15 @@ var language_generated_default = [
16923
17251
  ]
16924
17252
  },
16925
17253
  {
16926
- id: "moonshot-ai/kimi-k2-5",
17254
+ id: "moonshot-ai/moonshotai.kimi-k2.5",
16927
17255
  contractVersion: 1,
16928
17256
  developer: "moonshot-ai",
16929
- displayName: "Kimi K2.5 on Bedrock",
17257
+ displayName: "Kimi K2.5",
16930
17258
  summary: "Generate up to 16,000 output tokens from text and optional images with the multimodal Kimi K2.5 model through Amazon Bedrock.",
16931
17259
  kind: "language",
16932
17260
  family: "Kimi K2",
16933
17261
  versionLabel: "2.5",
16934
- aliases: [
16935
- "aws/kimi-k2-5",
16936
- "kimi-k2.5"
16937
- ],
17262
+ aliases: [],
16938
17263
  capabilities: {
16939
17264
  inputModalities: [
16940
17265
  "text",
@@ -17154,18 +17479,15 @@ var language_generated_default = [
17154
17479
  ]
17155
17480
  },
17156
17481
  {
17157
- id: "openai/gpt-5-4",
17482
+ id: "openai/gpt-5.4",
17158
17483
  contractVersion: 1,
17159
17484
  developer: "openai",
17160
- displayName: "GPT-5.4",
17485
+ displayName: "GPT 5.4",
17161
17486
  summary: "Generate streaming or complete text responses through the Azure AI Foundry Chat Completions deployment.",
17162
17487
  kind: "language",
17163
17488
  family: "GPT",
17164
17489
  versionLabel: "5.4",
17165
- aliases: [
17166
- "azure/gpt-5-4",
17167
- "gpt-5.4"
17168
- ],
17490
+ aliases: [],
17169
17491
  capabilities: {
17170
17492
  inputModalities: [
17171
17493
  "text"
@@ -17271,18 +17593,15 @@ var language_generated_default = [
17271
17593
  ]
17272
17594
  },
17273
17595
  {
17274
- id: "openai/gpt-5-5",
17596
+ id: "openai/gpt-5.5",
17275
17597
  contractVersion: 1,
17276
17598
  developer: "openai",
17277
- displayName: "GPT-5.5",
17599
+ displayName: "GPT 5.5",
17278
17600
  summary: "Generate text and structured responses through the Azure AI Foundry Responses API with image input, configurable reasoning, and continuation support.",
17279
17601
  kind: "language",
17280
17602
  family: "GPT",
17281
17603
  versionLabel: "5.5",
17282
- aliases: [
17283
- "azure/gpt-5-5",
17284
- "gpt-5.5"
17285
- ],
17604
+ aliases: [],
17286
17605
  capabilities: {
17287
17606
  inputModalities: [
17288
17607
  "text",
@@ -17620,18 +17939,15 @@ var language_generated_default = [
17620
17939
  ]
17621
17940
  },
17622
17941
  {
17623
- id: "openai/gpt-5-6-luna",
17942
+ id: "openai/gpt-5.6-luna",
17624
17943
  contractVersion: 1,
17625
17944
  developer: "openai",
17626
- displayName: "GPT-5.6 Luna",
17945
+ displayName: "GPT 5.6 Luna",
17627
17946
  summary: "Generate efficient text and structured responses with image input, standard or pro reasoning mode, and up to max reasoning effort through Azure AI Foundry.",
17628
17947
  kind: "language",
17629
17948
  family: "GPT Luna",
17630
17949
  versionLabel: "5.6",
17631
- aliases: [
17632
- "azure/gpt-5-6-luna",
17633
- "gpt-5.6-luna"
17634
- ],
17950
+ aliases: [],
17635
17951
  capabilities: {
17636
17952
  inputModalities: [
17637
17953
  "text",
@@ -18001,19 +18317,15 @@ var language_generated_default = [
18001
18317
  ]
18002
18318
  },
18003
18319
  {
18004
- id: "openai/gpt-5-6-sol",
18320
+ id: "openai/gpt-5.6-sol",
18005
18321
  contractVersion: 1,
18006
18322
  developer: "openai",
18007
- displayName: "GPT-5.6 Sol",
18323
+ displayName: "GPT 5.6 Sol",
18008
18324
  summary: "Generate frontier text and structured responses with image input, standard or pro reasoning mode, and up to max reasoning effort through Azure AI Foundry.",
18009
18325
  kind: "language",
18010
18326
  family: "GPT Sol",
18011
18327
  versionLabel: "5.6",
18012
- aliases: [
18013
- "azure/gpt-5-6-sol",
18014
- "gpt-5.6",
18015
- "gpt-5.6-sol"
18016
- ],
18328
+ aliases: [],
18017
18329
  capabilities: {
18018
18330
  inputModalities: [
18019
18331
  "text",
@@ -18383,18 +18695,15 @@ var language_generated_default = [
18383
18695
  ]
18384
18696
  },
18385
18697
  {
18386
- id: "openai/gpt-5-6-terra",
18698
+ id: "openai/gpt-5.6-terra",
18387
18699
  contractVersion: 1,
18388
18700
  developer: "openai",
18389
- displayName: "GPT-5.6 Terra",
18701
+ displayName: "GPT 5.6 Terra",
18390
18702
  summary: "Generate balanced text and structured responses with image input, standard or pro reasoning mode, and up to max reasoning effort through Azure AI Foundry.",
18391
18703
  kind: "language",
18392
18704
  family: "GPT Terra",
18393
18705
  versionLabel: "5.6",
18394
- aliases: [
18395
- "azure/gpt-5-6-terra",
18396
- "gpt-5.6-terra"
18397
- ],
18706
+ aliases: [],
18398
18707
  capabilities: {
18399
18708
  inputModalities: [
18400
18709
  "text",
@@ -18767,7 +19076,7 @@ var language_generated_default = [
18767
19076
  id: "xai/grok-4.3",
18768
19077
  contractVersion: 1,
18769
19078
  developer: "xai",
18770
- displayName: "grok-4.3",
19079
+ displayName: "Grok 4.3",
18771
19080
  summary: "Generate text and structured responses from text or image input with reasoning and response continuation support.",
18772
19081
  kind: "language",
18773
19082
  family: "Grok",
@@ -19026,7 +19335,7 @@ var language_generated_default = [
19026
19335
  id: "xai/grok-4.7",
19027
19336
  contractVersion: 1,
19028
19337
  developer: "xai",
19029
- displayName: "grok-4.7",
19338
+ displayName: "Grok 4.7",
19030
19339
  summary: "Generate text and structured responses from text or image input with reasoning and response continuation support.",
19031
19340
  kind: "language",
19032
19341
  family: "Grok",
@@ -19594,7 +19903,7 @@ var language_generated_default = [
19594
19903
  id: "openai/gpt-6-astra",
19595
19904
  contractVersion: 1,
19596
19905
  developer: "openai",
19597
- displayName: "GPT-6 Astra",
19906
+ displayName: "GPT 6 Astra",
19598
19907
  summary: "Generate text from text and image inputs with configurable reasoning.",
19599
19908
  kind: "language",
19600
19909
  aliases: [
@@ -19948,7 +20257,7 @@ var language_generated_default = [
19948
20257
  id: "openai/gpt-6-sol",
19949
20258
  contractVersion: 1,
19950
20259
  developer: "openai",
19951
- displayName: "GPT-6 Sol",
20260
+ displayName: "GPT 6 Sol",
19952
20261
  summary: "Generate text and structured responses with image input and configurable reasoning through Azure AI Foundry GPT-6 Sol.",
19953
20262
  kind: "language",
19954
20263
  family: "GPT Sol",
@@ -20332,7 +20641,7 @@ var language_generated_default = [
20332
20641
  id: "openai/gpt-6-luna",
20333
20642
  contractVersion: 1,
20334
20643
  developer: "openai",
20335
- displayName: "GPT-6 Luna",
20644
+ displayName: "GPT 6 Luna",
20336
20645
  summary: "Generate text and structured responses with image input and configurable reasoning through Azure AI Foundry GPT-6 Luna.",
20337
20646
  kind: "language",
20338
20647
  family: "GPT Luna",
@@ -20720,7 +21029,7 @@ var video_generated_default = [
20720
21029
  id: "yadan/minimax-h3-local",
20721
21030
  contractVersion: 3,
20722
21031
  developer: "minimax",
20723
- displayName: "MiniMax H3 Local\uFF08\u81EA\u90E8\u7F72\uFF09",
21032
+ displayName: "MiniMax H3 Pruned INT8",
20724
21033
  summary: "Generate a roughly five-second video with audio from a text prompt.",
20725
21034
  kind: "video",
20726
21035
  family: "H3 Local",
@@ -25072,21 +25381,15 @@ var video_generated_default = [
25072
25381
  endpoints: []
25073
25382
  },
25074
25383
  {
25075
- id: "alibaba/happy-horse",
25384
+ id: "alibaba/happyhorse-1.0",
25076
25385
  contractVersion: 2,
25077
25386
  developer: "alibaba",
25078
- displayName: "HappyHorse",
25387
+ displayName: "HappyHorse 1.0",
25079
25388
  summary: "HappyHorse 1.0 text, first-frame, and reference-image video generation at 480P, 720P, or 1080P.",
25080
25389
  kind: "video",
25081
25390
  family: "HappyHorse",
25082
25391
  versionLabel: "1.0",
25083
- aliases: [
25084
- "aliyun/happy-horse",
25085
- "happyhorse-1.0",
25086
- "happyhorse-1.0-t2v",
25087
- "happyhorse-1.0-i2v",
25088
- "happyhorse-1.0-r2v"
25089
- ],
25392
+ aliases: [],
25090
25393
  capabilities: {
25091
25394
  inputModalities: [
25092
25395
  "text",
@@ -25511,7 +25814,7 @@ var video_generated_default = [
25511
25814
  endpoints: []
25512
25815
  },
25513
25816
  {
25514
- id: "alibaba/happy-horse-1.1",
25817
+ id: "alibaba/happyhorse-1.1",
25515
25818
  contractVersion: 2,
25516
25819
  developer: "alibaba",
25517
25820
  displayName: "HappyHorse 1.1",
@@ -25519,13 +25822,7 @@ var video_generated_default = [
25519
25822
  kind: "video",
25520
25823
  family: "HappyHorse",
25521
25824
  versionLabel: "1.1",
25522
- aliases: [
25523
- "aliyun/happy-horse-1.1",
25524
- "happyhorse-1.1",
25525
- "happyhorse-1.1-t2v",
25526
- "happyhorse-1.1-i2v",
25527
- "happyhorse-1.1-r2v"
25528
- ],
25825
+ aliases: [],
25529
25826
  capabilities: {
25530
25827
  inputModalities: [
25531
25828
  "text",
@@ -26219,7 +26516,7 @@ var video_generated_default = [
26219
26516
  id: "alibaba/wan-2-6-i2v",
26220
26517
  contractVersion: 2,
26221
26518
  developer: "alibaba",
26222
- displayName: "Wan 2.6 Image-to-Video",
26519
+ displayName: "Wan 2.6 Image To Video",
26223
26520
  summary: "Generate a 2\u201315 second Wan 2.6 video from one first-frame image, an optional prompt, and optional driving audio at 720P or 1080P.",
26224
26521
  kind: "video",
26225
26522
  family: "Wan I2V",
@@ -26532,7 +26829,7 @@ var video_generated_default = [
26532
26829
  endpoints: []
26533
26830
  },
26534
26831
  {
26535
- id: "alibaba/wan-2-7",
26832
+ id: "alibaba/wan2.7",
26536
26833
  contractVersion: 2,
26537
26834
  developer: "alibaba",
26538
26835
  displayName: "Wan 2.7 Video",
@@ -26540,16 +26837,7 @@ var video_generated_default = [
26540
26837
  kind: "video",
26541
26838
  family: "Wan Video",
26542
26839
  versionLabel: "2.7",
26543
- aliases: [
26544
- "aliyun/wan-2-7",
26545
- "wan2.7",
26546
- "wan2.7-t2v",
26547
- "wan2.7-i2v",
26548
- "wan2.7-r2v",
26549
- "wan2.7-t2v-2026-06-12",
26550
- "wan2.7-i2v-2026-04-25",
26551
- "wan2.7-r2v-2026-06-12"
26552
- ],
26840
+ aliases: [],
26553
26841
  capabilities: {
26554
26842
  inputModalities: [
26555
26843
  "text",
@@ -27491,7 +27779,7 @@ var video_generated_default = [
27491
27779
  id: "bytedance/byteplus-seedance-2-0",
27492
27780
  contractVersion: 4,
27493
27781
  developer: "bytedance",
27494
- displayName: "BytePlus Seedance 2.0",
27782
+ displayName: "Seedance 2.0",
27495
27783
  summary: "\u901A\u8FC7 BytePlus Seedance 2.0\uFF0C\u4F7F\u7528\u6587\u672C\u3001\u56FE\u7247\u3001\u89C6\u9891\u548C\u97F3\u9891\u53C2\u8003\u751F\u6210 4\uFF5E15 \u79D2\u89C6\u9891\uFF0C\u652F\u6301\u6700\u9AD8 4K \u8F93\u51FA\u3002",
27496
27784
  kind: "video",
27497
27785
  family: "Seedance",
@@ -28100,7 +28388,7 @@ var video_generated_default = [
28100
28388
  id: "bytedance/byteplus-seedance-2-0-fast",
28101
28389
  contractVersion: 2,
28102
28390
  developer: "bytedance",
28103
- displayName: "BytePlus Seedance 2.0 Fast",
28391
+ displayName: "Seedance 2.0 Fast",
28104
28392
  summary: "BytePlus Seedance 2.0 Fast\uFF0C\u652F\u6301\u6587\u672C\u3001\u56FE\u7247\u3001\u89C6\u9891\u548C\u97F3\u9891\u53C2\u8003\uFF0C\u751F\u6210 4\uFF5E15 \u79D2\u89C6\u9891\uFF0C\u6700\u9AD8 720p\u3002",
28105
28393
  kind: "video",
28106
28394
  family: "Seedance Fast",
@@ -28729,7 +29017,7 @@ var video_generated_default = [
28729
29017
  id: "bytedance/byteplus-seedance-2-0-mini",
28730
29018
  contractVersion: 2,
28731
29019
  developer: "bytedance",
28732
- displayName: "BytePlus Seedance 2.0 Mini",
29020
+ displayName: "Seedance 2.0 Mini",
28733
29021
  summary: "BytePlus Seedance 2.0 Mini\uFF0C\u652F\u6301\u6587\u672C\u3001\u56FE\u7247\u3001\u89C6\u9891\u548C\u97F3\u9891\u53C2\u8003\uFF0C\u751F\u6210 4\uFF5E15 \u79D2\u89C6\u9891\uFF0C\u6700\u9AD8 720p\u3002",
28734
29022
  kind: "video",
28735
29023
  family: "Seedance Mini",
@@ -32853,7 +33141,7 @@ var video_generated_default = [
32853
33141
  id: "google/veo-3-1-fast",
32854
33142
  contractVersion: 1,
32855
33143
  developer: "google",
32856
- displayName: "API Mart Veo 3.1 Fast",
33144
+ displayName: "Veo 3.1 Fast",
32857
33145
  summary: "Generate an eight-second Veo 3.1 Fast video through API Mart from text, first/last frames, or up to three reference images at up to 4K.",
32858
33146
  kind: "video",
32859
33147
  family: "Veo Fast",
@@ -33767,7 +34055,7 @@ var video_generated_default = [
33767
34055
  endpoints: []
33768
34056
  },
33769
34057
  {
33770
- id: "google/veo-3-1-generate-001",
34058
+ id: "google/veo-3.1-generate-001",
33771
34059
  contractVersion: 1,
33772
34060
  developer: "google",
33773
34061
  displayName: "Veo 3.1",
@@ -33775,9 +34063,7 @@ var video_generated_default = [
33775
34063
  kind: "video",
33776
34064
  family: "Veo",
33777
34065
  versionLabel: "3.1",
33778
- aliases: [
33779
- "veo"
33780
- ],
34066
+ aliases: [],
33781
34067
  capabilities: {
33782
34068
  inputModalities: [
33783
34069
  "text",
@@ -34310,7 +34596,7 @@ var video_generated_default = [
34310
34596
  endpoints: []
34311
34597
  },
34312
34598
  {
34313
- id: "google/veo-3-1-lite-generate-001",
34599
+ id: "google/veo-3.1-lite-generate-001",
34314
34600
  contractVersion: 1,
34315
34601
  developer: "google",
34316
34602
  displayName: "Veo 3.1 Lite",
@@ -34318,9 +34604,7 @@ var video_generated_default = [
34318
34604
  kind: "video",
34319
34605
  family: "Veo Lite",
34320
34606
  versionLabel: "3.1",
34321
- aliases: [
34322
- "veo-lite"
34323
- ],
34607
+ aliases: [],
34324
34608
  capabilities: {
34325
34609
  inputModalities: [
34326
34610
  "text",
@@ -36675,7 +36959,7 @@ var video_generated_default = [
36675
36959
  endpoints: []
36676
36960
  },
36677
36961
  {
36678
- id: "minimax/minimax-h3",
36962
+ id: "minimax/MiniMax-H3",
36679
36963
  contractVersion: 1,
36680
36964
  developer: "minimax",
36681
36965
  displayName: "MiniMax H3",
@@ -36683,9 +36967,7 @@ var video_generated_default = [
36683
36967
  kind: "video",
36684
36968
  family: "MiniMax H3",
36685
36969
  versionLabel: "H3",
36686
- aliases: [
36687
- "minimax-h3"
36688
- ],
36970
+ aliases: [],
36689
36971
  capabilities: {
36690
36972
  inputModalities: [
36691
36973
  "text",
@@ -38629,7 +38911,7 @@ var video_generated_default = [
38629
38911
  id: "xai/grok-imagine-video",
38630
38912
  contractVersion: 2,
38631
38913
  developer: "xai",
38632
- displayName: "grok-imagine-video",
38914
+ displayName: "Grok Imagine Video",
38633
38915
  summary: "Generate, edit, or extend video from text, image, or video input with 1\u201315 second output at 480p or 720p.",
38634
38916
  kind: "video",
38635
38917
  family: "Grok Video",
@@ -39257,7 +39539,7 @@ var video_generated_default = [
39257
39539
  id: "xai/grok-imagine-video-1.5",
39258
39540
  contractVersion: 1,
39259
39541
  developer: "xai",
39260
- displayName: "grok-imagine-video-1.5",
39542
+ displayName: "Grok Imagine Video 1.5",
39261
39543
  summary: "Generate video from text, first and last frames, up to four timed keyframes, up to seven reference images, or up to three preset voices. Supports 1\u201315 seconds and up to 1080p; reference-to-video is capped at 720p.",
39262
39544
  kind: "video",
39263
39545
  family: "Grok Video",
@@ -39830,7 +40112,7 @@ var video_generated_default = [
39830
40112
  endpoints: []
39831
40113
  },
39832
40114
  {
39833
- id: "alibaba/wan-3-0",
40115
+ id: "alibaba/wan3.0-video",
39834
40116
  contractVersion: 2,
39835
40117
  developer: "alibaba",
39836
40118
  displayName: "Wan 3.0 Video",
@@ -39838,12 +40120,7 @@ var video_generated_default = [
39838
40120
  kind: "video",
39839
40121
  family: "Wan Video",
39840
40122
  versionLabel: "3.0",
39841
- aliases: [
39842
- "aliyun/wan-3-0",
39843
- "wan-3-0",
39844
- "wan3",
39845
- "wan3.0-video"
39846
- ],
40123
+ aliases: [],
39847
40124
  capabilities: {
39848
40125
  inputModalities: [
39849
40126
  "text",
@@ -40753,7 +41030,7 @@ var NexraWaitTimeoutError = class extends Error {
40753
41030
  };
40754
41031
 
40755
41032
  // src/generated/version.generated.ts
40756
- var SDK_VERSION = "0.1.0-alpha.26";
41033
+ var SDK_VERSION = "0.1.0-alpha.28";
40757
41034
 
40758
41035
  // src/transport.ts
40759
41036
  var DEFAULT_BASE_URL = "https://api.nexra-ai.com/v1";
@@ -40875,6 +41152,83 @@ async function waitForRetry(response, attempt, signal) {
40875
41152
  await sleep(Number.isFinite(seconds) ? seconds * 1e3 : 200 * 2 ** attempt, signal);
40876
41153
  }
40877
41154
 
41155
+ // src/sse.ts
41156
+ async function* parseServerSentEvents(response) {
41157
+ if (!response.body) throw new Error("SSE response did not contain a body");
41158
+ const reader = response.body.getReader();
41159
+ const decoder = new TextDecoder();
41160
+ let buffer = "";
41161
+ let current = emptyEvent();
41162
+ try {
41163
+ while (true) {
41164
+ const { value, done } = await reader.read();
41165
+ buffer += decoder.decode(value, { stream: !done });
41166
+ const lines = buffer.split(/\r?\n/);
41167
+ buffer = done ? "" : lines.pop() ?? "";
41168
+ for (const line of lines) {
41169
+ if (line === "") {
41170
+ const event = buildEvent(current);
41171
+ current = emptyEvent();
41172
+ if (event) yield event;
41173
+ continue;
41174
+ }
41175
+ if (line.startsWith(":")) continue;
41176
+ const separator = line.indexOf(":");
41177
+ const field2 = separator === -1 ? line : line.slice(0, separator);
41178
+ let content = separator === -1 ? "" : line.slice(separator + 1);
41179
+ if (content.startsWith(" ")) content = content.slice(1);
41180
+ if (field2 === "data") current.data.push(content);
41181
+ else if (field2 === "event") current.event = content;
41182
+ else if (field2 === "id") current.id = content;
41183
+ else if (field2 === "retry") current.retry = Number(content);
41184
+ }
41185
+ if (done) {
41186
+ const event = buildEvent(current);
41187
+ if (event) yield event;
41188
+ return;
41189
+ }
41190
+ }
41191
+ } finally {
41192
+ await reader.cancel().catch(() => void 0);
41193
+ reader.releaseLock();
41194
+ }
41195
+ }
41196
+ function emptyEvent() {
41197
+ return { data: [] };
41198
+ }
41199
+ function buildEvent(pending) {
41200
+ if (pending.data.length === 0) return void 0;
41201
+ return {
41202
+ id: pending.id,
41203
+ event: pending.event,
41204
+ retry: Number.isFinite(pending.retry) ? pending.retry : void 0,
41205
+ data: pending.data.join("\n")
41206
+ };
41207
+ }
41208
+
41209
+ // src/model-display-name.ts
41210
+ var canonicalTokens = /* @__PURE__ */ new Map([
41211
+ ["deepseek", "DeepSeek"],
41212
+ ["elevenlabs", "ElevenLabs"],
41213
+ ["gpt", "GPT"],
41214
+ ["happyhorse", "HappyHorse"],
41215
+ ["hd", "HD"],
41216
+ ["heygen", "HeyGen"],
41217
+ ["int8", "INT8"],
41218
+ ["minimax", "MiniMax"],
41219
+ ["pixverse", "PixVerse"],
41220
+ ["tts", "TTS"]
41221
+ ]);
41222
+ var displayNameOverrides = /* @__PURE__ */ new Map([
41223
+ ["wan-2-7-image-pro", "Wan 2.7 Image Pro"]
41224
+ ]);
41225
+ function formatModelDisplayName(displayName) {
41226
+ const name = displayName.trim();
41227
+ const override = displayNameOverrides.get(name.toLowerCase());
41228
+ if (override) return override;
41229
+ return name.replace(/[-_\u2010-\u2015\u2212]+/g, " ").split(/\s+/).filter(Boolean).map((token) => canonicalTokens.get(token.toLowerCase()) ?? token.charAt(0).toUpperCase() + token.slice(1)).join(" ");
41230
+ }
41231
+
40878
41232
  // src/catalog/index.ts
40879
41233
  var modelSpecs = deepFreeze(structuredClone(generatedCatalog));
40880
41234
  var byIdentifier = /* @__PURE__ */ new Map();
@@ -40889,6 +41243,30 @@ var CatalogClient = class {
40889
41243
  this.transport = transport;
40890
41244
  }
40891
41245
  transport;
41246
+ changes(params = {}, signal) {
41247
+ return this.transport.json(`/catalog/changes${queryString({ ...params })}`, { signal });
41248
+ }
41249
+ async model(modelId, operation, signal) {
41250
+ const state = await this.transport.json(
41251
+ `/catalog/models/${encodeURIComponent(modelId)}${queryString({ operation })}`,
41252
+ { signal }
41253
+ );
41254
+ return state.displayName === void 0 ? state : { ...state, displayName: formatModelDisplayName(state.displayName) };
41255
+ }
41256
+ async *events(options = {}) {
41257
+ const response = await this.transport.response(`/catalog/events${queryString({ after: options.after })}`, {
41258
+ headers: { accept: "text/event-stream" },
41259
+ signal: options.signal
41260
+ });
41261
+ for await (const event of parseServerSentEvents(response)) {
41262
+ if (event.event !== "catalog.quote-context.changed") continue;
41263
+ const page = JSON.parse(event.data);
41264
+ if (!page || !/^\d+$/.test(page.revision) || !Number.isFinite(Date.parse(page.changedAt)) || !Array.isArray(page.data) || page.data.some((entry) => !entry || typeof entry.modelId !== "string" || !entry.modelId || typeof entry.operation !== "string" || !entry.operation || !/^\d+$/.test(entry.revision) || BigInt(entry.revision) > BigInt(page.revision) || typeof entry.available !== "boolean")) {
41265
+ throw new Error("Catalog event payload is invalid");
41266
+ }
41267
+ yield page;
41268
+ }
41269
+ }
40892
41270
  listPrices(signal) {
40893
41271
  return this.transport.json(
40894
41272
  "/catalog/prices",
@@ -40953,6 +41331,8 @@ export {
40953
41331
  decodeMediaGeometry,
40954
41332
  applyMediaGeometry,
40955
41333
  applyNoWatermark,
41334
+ parseServerSentEvents,
41335
+ formatModelDisplayName,
40956
41336
  CatalogClient,
40957
41337
  getModelSpec,
40958
41338
  listModelSpecs