@jupyterlite/ai 0.17.0 → 0.18.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.
@@ -0,0 +1,508 @@
1
+ /**
2
+ * This file is generated by `jlpm sync:model-info`.
3
+ * Source: https://models.dev/api.json
4
+ * Backed by: https://github.com/anomalyco/models.dev
5
+ * Generated: 2026-04-28T11:55:05.327Z
6
+ */
7
+
8
+ import type { IProviderModelInfo } from '../tokens';
9
+
10
+ export const BUILT_IN_PROVIDER_MODEL_INFO: Record<
11
+ string,
12
+ Record<string, IProviderModelInfo>
13
+ > = {
14
+ anthropic: {
15
+ 'claude-opus-4-6': {
16
+ contextWindow: 1000000,
17
+ supportsImages: true,
18
+ supportsPdf: true,
19
+ supportsAudio: false
20
+ },
21
+ 'claude-sonnet-4-6': {
22
+ contextWindow: 1000000,
23
+ supportsImages: true,
24
+ supportsPdf: true,
25
+ supportsAudio: false
26
+ },
27
+ 'claude-opus-4-5': {
28
+ contextWindow: 200000,
29
+ supportsImages: true,
30
+ supportsPdf: true,
31
+ supportsAudio: false
32
+ },
33
+ 'claude-opus-4-5-20251101': {
34
+ contextWindow: 200000,
35
+ supportsImages: true,
36
+ supportsPdf: true,
37
+ supportsAudio: false
38
+ },
39
+ 'claude-sonnet-4-5': {
40
+ contextWindow: 200000,
41
+ supportsImages: true,
42
+ supportsPdf: true,
43
+ supportsAudio: false
44
+ },
45
+ 'claude-sonnet-4-5-20250929': {
46
+ contextWindow: 200000,
47
+ supportsImages: true,
48
+ supportsPdf: true,
49
+ supportsAudio: false
50
+ },
51
+ 'claude-haiku-4-5': {
52
+ contextWindow: 200000,
53
+ supportsImages: true,
54
+ supportsPdf: true,
55
+ supportsAudio: false
56
+ },
57
+ 'claude-haiku-4-5-20251001': {
58
+ contextWindow: 200000,
59
+ supportsImages: true,
60
+ supportsPdf: true,
61
+ supportsAudio: false
62
+ },
63
+ 'claude-opus-4-1': {
64
+ contextWindow: 200000,
65
+ supportsImages: true,
66
+ supportsPdf: true,
67
+ supportsAudio: false
68
+ },
69
+ 'claude-opus-4-1-20250805': {
70
+ contextWindow: 200000,
71
+ supportsImages: true,
72
+ supportsPdf: true,
73
+ supportsAudio: false
74
+ },
75
+ 'claude-opus-4-0': {
76
+ contextWindow: 200000,
77
+ supportsImages: true,
78
+ supportsPdf: true,
79
+ supportsAudio: false
80
+ },
81
+ 'claude-opus-4-20250514': {
82
+ contextWindow: 200000,
83
+ supportsImages: true,
84
+ supportsPdf: true,
85
+ supportsAudio: false
86
+ },
87
+ 'claude-sonnet-4-0': {
88
+ contextWindow: 200000,
89
+ supportsImages: true,
90
+ supportsPdf: true,
91
+ supportsAudio: false
92
+ },
93
+ 'claude-sonnet-4-20250514': {
94
+ contextWindow: 200000,
95
+ supportsImages: true,
96
+ supportsPdf: true,
97
+ supportsAudio: false
98
+ }
99
+ },
100
+ google: {
101
+ 'gemini-3.1-pro-preview': {
102
+ contextWindow: 1048576,
103
+ supportsImages: true,
104
+ supportsPdf: true,
105
+ supportsAudio: true
106
+ },
107
+ 'gemini-3.1-pro-preview-customtools': {
108
+ contextWindow: 1048576,
109
+ supportsImages: true,
110
+ supportsPdf: true,
111
+ supportsAudio: true
112
+ },
113
+ 'gemini-3.1-flash-image-preview': {
114
+ contextWindow: 131072,
115
+ supportsImages: true,
116
+ supportsPdf: true,
117
+ supportsAudio: false
118
+ },
119
+ 'gemini-3.1-flash-lite-preview': {
120
+ contextWindow: 1048576,
121
+ supportsImages: true,
122
+ supportsPdf: true,
123
+ supportsAudio: true
124
+ },
125
+ 'gemini-3-flash-preview': {
126
+ contextWindow: 1048576,
127
+ supportsImages: true,
128
+ supportsPdf: true,
129
+ supportsAudio: true
130
+ },
131
+ 'gemini-2.5-pro': {
132
+ contextWindow: 1048576,
133
+ supportsImages: true,
134
+ supportsPdf: true,
135
+ supportsAudio: true
136
+ },
137
+ 'gemini-2.5-flash': {
138
+ contextWindow: 1048576,
139
+ supportsImages: true,
140
+ supportsPdf: true,
141
+ supportsAudio: true
142
+ },
143
+ 'gemini-2.5-flash-image': {
144
+ contextWindow: 32768,
145
+ supportsImages: true,
146
+ supportsPdf: false,
147
+ supportsAudio: false
148
+ },
149
+ 'gemini-2.5-flash-lite': {
150
+ contextWindow: 1048576,
151
+ supportsImages: true,
152
+ supportsPdf: true,
153
+ supportsAudio: true
154
+ },
155
+ 'gemini-flash-latest': {
156
+ contextWindow: 1048576,
157
+ supportsImages: true,
158
+ supportsPdf: true,
159
+ supportsAudio: true
160
+ },
161
+ 'gemini-flash-lite-latest': {
162
+ contextWindow: 1048576,
163
+ supportsImages: true,
164
+ supportsPdf: true,
165
+ supportsAudio: true
166
+ }
167
+ },
168
+ mistral: {
169
+ 'mistral-large-latest': {
170
+ contextWindow: 262144,
171
+ supportsImages: true,
172
+ supportsPdf: false,
173
+ supportsAudio: false
174
+ },
175
+ 'mistral-medium-latest': {
176
+ contextWindow: 128000,
177
+ supportsImages: true,
178
+ supportsPdf: false,
179
+ supportsAudio: false
180
+ },
181
+ 'mistral-medium-2508': {
182
+ contextWindow: 262144,
183
+ supportsImages: true,
184
+ supportsPdf: false,
185
+ supportsAudio: false
186
+ },
187
+ 'mistral-small-latest': {
188
+ contextWindow: 256000,
189
+ supportsImages: true,
190
+ supportsPdf: false,
191
+ supportsAudio: false
192
+ },
193
+ 'mistral-small-2506': {
194
+ contextWindow: 128000,
195
+ supportsImages: true,
196
+ supportsPdf: false,
197
+ supportsAudio: false
198
+ },
199
+ 'ministral-3b-latest': {
200
+ contextWindow: 128000,
201
+ supportsImages: false,
202
+ supportsPdf: false,
203
+ supportsAudio: false
204
+ },
205
+ 'ministral-8b-latest': {
206
+ contextWindow: 128000,
207
+ supportsImages: false,
208
+ supportsPdf: false,
209
+ supportsAudio: false
210
+ },
211
+ 'magistral-small-latest': {
212
+ contextWindow: 128000,
213
+ supportsImages: false,
214
+ supportsPdf: false,
215
+ supportsAudio: false
216
+ },
217
+ 'magistral-small': {
218
+ contextWindow: 128000,
219
+ supportsImages: false,
220
+ supportsPdf: false,
221
+ supportsAudio: false
222
+ },
223
+ 'magistral-medium-latest': {
224
+ contextWindow: 128000,
225
+ supportsImages: false,
226
+ supportsPdf: false,
227
+ supportsAudio: false
228
+ },
229
+ 'pixtral-large-latest': {
230
+ contextWindow: 128000,
231
+ supportsImages: true,
232
+ supportsPdf: false,
233
+ supportsAudio: false
234
+ },
235
+ 'codestral-latest': {
236
+ contextWindow: 256000,
237
+ supportsImages: false,
238
+ supportsPdf: false,
239
+ supportsAudio: false
240
+ },
241
+ 'devstral-latest': {
242
+ contextWindow: 128000,
243
+ supportsImages: false,
244
+ supportsPdf: false,
245
+ supportsAudio: false
246
+ },
247
+ 'devstral-small-2507': {
248
+ contextWindow: 128000,
249
+ supportsImages: false,
250
+ supportsPdf: false,
251
+ supportsAudio: false
252
+ }
253
+ },
254
+ openai: {
255
+ 'gpt-5.4': {
256
+ contextWindow: 1050000,
257
+ supportsImages: true,
258
+ supportsPdf: true,
259
+ supportsAudio: false
260
+ },
261
+ 'gpt-5.4-mini': {
262
+ contextWindow: 400000,
263
+ supportsImages: true,
264
+ supportsPdf: false,
265
+ supportsAudio: false
266
+ },
267
+ 'gpt-5.4-nano': {
268
+ contextWindow: 400000,
269
+ supportsImages: true,
270
+ supportsPdf: false,
271
+ supportsAudio: false
272
+ },
273
+ 'gpt-5.2': {
274
+ contextWindow: 400000,
275
+ supportsImages: true,
276
+ supportsPdf: false,
277
+ supportsAudio: false
278
+ },
279
+ 'gpt-5.2-2025-12-11': {
280
+ contextWindow: 400000,
281
+ supportsImages: true,
282
+ supportsPdf: false,
283
+ supportsAudio: false
284
+ },
285
+ 'gpt-5.2-chat-latest': {
286
+ contextWindow: 128000,
287
+ supportsImages: true,
288
+ supportsPdf: false,
289
+ supportsAudio: false
290
+ },
291
+ 'gpt-5.2-pro': {
292
+ contextWindow: 400000,
293
+ supportsImages: true,
294
+ supportsPdf: false,
295
+ supportsAudio: false
296
+ },
297
+ 'gpt-5.2-pro-2025-12-11': {
298
+ contextWindow: 400000,
299
+ supportsImages: true,
300
+ supportsPdf: false,
301
+ supportsAudio: false
302
+ },
303
+ 'gpt-5.2-codex': {
304
+ contextWindow: 400000,
305
+ supportsImages: true,
306
+ supportsPdf: true,
307
+ supportsAudio: false
308
+ },
309
+ 'gpt-5.1': {
310
+ contextWindow: 400000,
311
+ supportsImages: true,
312
+ supportsPdf: false,
313
+ supportsAudio: false
314
+ },
315
+ 'gpt-5.1-2025-11-13': {
316
+ contextWindow: 400000,
317
+ supportsImages: true,
318
+ supportsPdf: false,
319
+ supportsAudio: false
320
+ },
321
+ 'gpt-5.1-chat-latest': {
322
+ contextWindow: 128000,
323
+ supportsImages: true,
324
+ supportsPdf: false,
325
+ supportsAudio: false
326
+ },
327
+ 'gpt-5': {
328
+ contextWindow: 400000,
329
+ supportsImages: true,
330
+ supportsPdf: false,
331
+ supportsAudio: false
332
+ },
333
+ 'gpt-5-2025-08-07': {
334
+ contextWindow: 400000,
335
+ supportsImages: true,
336
+ supportsPdf: false,
337
+ supportsAudio: false
338
+ },
339
+ 'gpt-5-chat-latest': {
340
+ contextWindow: 400000,
341
+ supportsImages: true,
342
+ supportsPdf: false,
343
+ supportsAudio: false
344
+ },
345
+ 'gpt-5-mini': {
346
+ contextWindow: 400000,
347
+ supportsImages: true,
348
+ supportsPdf: false,
349
+ supportsAudio: false
350
+ },
351
+ 'gpt-5-mini-2025-08-07': {
352
+ contextWindow: 400000,
353
+ supportsImages: true,
354
+ supportsPdf: false,
355
+ supportsAudio: false
356
+ },
357
+ 'gpt-5-nano': {
358
+ contextWindow: 400000,
359
+ supportsImages: true,
360
+ supportsPdf: false,
361
+ supportsAudio: false
362
+ },
363
+ 'gpt-5-nano-2025-08-07': {
364
+ contextWindow: 400000,
365
+ supportsImages: true,
366
+ supportsPdf: false,
367
+ supportsAudio: false
368
+ },
369
+ 'o4-mini': {
370
+ contextWindow: 200000,
371
+ supportsImages: true,
372
+ supportsPdf: false,
373
+ supportsAudio: false
374
+ },
375
+ 'o4-mini-2025-04-16': {
376
+ contextWindow: 200000,
377
+ supportsImages: true,
378
+ supportsPdf: false,
379
+ supportsAudio: false
380
+ },
381
+ 'o3-pro': {
382
+ contextWindow: 200000,
383
+ supportsImages: true,
384
+ supportsPdf: false,
385
+ supportsAudio: false
386
+ },
387
+ o3: {
388
+ contextWindow: 200000,
389
+ supportsImages: true,
390
+ supportsPdf: true,
391
+ supportsAudio: false
392
+ },
393
+ 'o3-2025-04-16': {
394
+ contextWindow: 200000,
395
+ supportsImages: true,
396
+ supportsPdf: true,
397
+ supportsAudio: false
398
+ },
399
+ 'o3-mini': {
400
+ contextWindow: 200000,
401
+ supportsImages: false,
402
+ supportsPdf: false,
403
+ supportsAudio: false
404
+ },
405
+ 'o3-mini-2025-01-31': {
406
+ contextWindow: 200000,
407
+ supportsImages: false,
408
+ supportsPdf: false,
409
+ supportsAudio: false
410
+ },
411
+ o1: {
412
+ contextWindow: 200000,
413
+ supportsImages: true,
414
+ supportsPdf: true,
415
+ supportsAudio: false
416
+ },
417
+ 'o1-2024-12-17': {
418
+ contextWindow: 200000,
419
+ supportsImages: true,
420
+ supportsPdf: true,
421
+ supportsAudio: false
422
+ },
423
+ 'gpt-4.1': {
424
+ contextWindow: 1047576,
425
+ supportsImages: true,
426
+ supportsPdf: true,
427
+ supportsAudio: false
428
+ },
429
+ 'gpt-4.1-2025-04-14': {
430
+ contextWindow: 1047576,
431
+ supportsImages: true,
432
+ supportsPdf: true,
433
+ supportsAudio: false
434
+ },
435
+ 'gpt-4.1-mini': {
436
+ contextWindow: 1047576,
437
+ supportsImages: true,
438
+ supportsPdf: true,
439
+ supportsAudio: false
440
+ },
441
+ 'gpt-4.1-mini-2025-04-14': {
442
+ contextWindow: 1047576,
443
+ supportsImages: true,
444
+ supportsPdf: true,
445
+ supportsAudio: false
446
+ },
447
+ 'gpt-4.1-nano': {
448
+ contextWindow: 1047576,
449
+ supportsImages: true,
450
+ supportsPdf: false,
451
+ supportsAudio: false
452
+ },
453
+ 'gpt-4.1-nano-2025-04-14': {
454
+ contextWindow: 1047576,
455
+ supportsImages: true,
456
+ supportsPdf: false,
457
+ supportsAudio: false
458
+ },
459
+ 'gpt-4o': {
460
+ contextWindow: 128000,
461
+ supportsImages: true,
462
+ supportsPdf: true,
463
+ supportsAudio: false
464
+ },
465
+ 'gpt-4o-2024-05-13': {
466
+ contextWindow: 128000,
467
+ supportsImages: true,
468
+ supportsPdf: false,
469
+ supportsAudio: false
470
+ },
471
+ 'gpt-4o-2024-08-06': {
472
+ contextWindow: 128000,
473
+ supportsImages: true,
474
+ supportsPdf: false,
475
+ supportsAudio: false
476
+ },
477
+ 'gpt-4o-2024-11-20': {
478
+ contextWindow: 128000,
479
+ supportsImages: true,
480
+ supportsPdf: false,
481
+ supportsAudio: false
482
+ },
483
+ 'gpt-4o-mini': {
484
+ contextWindow: 128000,
485
+ supportsImages: true,
486
+ supportsPdf: true,
487
+ supportsAudio: false
488
+ },
489
+ 'gpt-4o-mini-2024-07-18': {
490
+ contextWindow: 128000,
491
+ supportsImages: true,
492
+ supportsPdf: true,
493
+ supportsAudio: false
494
+ },
495
+ 'gpt-3.5-turbo': {
496
+ contextWindow: 16385,
497
+ supportsImages: false,
498
+ supportsPdf: false,
499
+ supportsAudio: false
500
+ },
501
+ 'gpt-3.5-turbo-0125': {
502
+ contextWindow: 16385,
503
+ supportsImages: false,
504
+ supportsPdf: false,
505
+ supportsAudio: false
506
+ }
507
+ }
508
+ };
@@ -68,6 +68,63 @@ export function getProviderModelInfo(
68
68
  })?.[1];
69
69
  }
70
70
 
71
+ export function modelSupportsImages(
72
+ providerConfig: IProviderConfig | undefined,
73
+ providerRegistry?: IProviderRegistry
74
+ ): boolean {
75
+ if (!providerConfig) {
76
+ return true;
77
+ }
78
+
79
+ const providerInfo = providerRegistry?.getProviderInfo(
80
+ providerConfig.provider
81
+ );
82
+ const modelInfo = getProviderModelInfo(providerInfo, providerConfig.model);
83
+ if (!modelInfo) {
84
+ return true;
85
+ }
86
+
87
+ return modelInfo.supportsImages ?? true;
88
+ }
89
+
90
+ export function modelSupportsPdf(
91
+ providerConfig: IProviderConfig | undefined,
92
+ providerRegistry?: IProviderRegistry
93
+ ): boolean {
94
+ if (!providerConfig) {
95
+ return true;
96
+ }
97
+
98
+ const providerInfo = providerRegistry?.getProviderInfo(
99
+ providerConfig.provider
100
+ );
101
+ const modelInfo = getProviderModelInfo(providerInfo, providerConfig.model);
102
+ if (!modelInfo) {
103
+ return true;
104
+ }
105
+
106
+ return modelInfo.supportsPdf ?? true;
107
+ }
108
+
109
+ export function modelSupportsAudio(
110
+ providerConfig: IProviderConfig | undefined,
111
+ providerRegistry?: IProviderRegistry
112
+ ): boolean {
113
+ if (!providerConfig) {
114
+ return true;
115
+ }
116
+
117
+ const providerInfo = providerRegistry?.getProviderInfo(
118
+ providerConfig.provider
119
+ );
120
+ const modelInfo = getProviderModelInfo(providerInfo, providerConfig.model);
121
+ if (!modelInfo) {
122
+ return true;
123
+ }
124
+
125
+ return modelInfo.supportsAudio ?? true;
126
+ }
127
+
71
128
  export function getEffectiveContextWindow(
72
129
  providerConfig: IProviderConfig | undefined,
73
130
  providerRegistry?: IProviderRegistry