@stll/ai-catalog 0.4.0 → 0.6.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,613 @@
1
+ import { D as getModelRate, G as getStandardModelRate, W as MODEL_RATE_UNITS_PER_USD } from "./src-DaH9EEfe.js";
2
+ //#region src/benchmark-sources.ts
3
+ const MODEL_BENCHMARK_NAME = "Text Arena";
4
+ const MODEL_BENCHMARK_LICENCE = "CC BY 4.0";
5
+ const MODEL_BENCHMARK_DATASET = "lmarena-ai/leaderboard-dataset";
6
+ const MODEL_BENCHMARK_SOURCE_URL = `https://huggingface.co/datasets/${MODEL_BENCHMARK_DATASET}`;
7
+ /** Style-controlled ratings discount formatting and length preferences. */
8
+ const MODEL_BENCHMARK_CONFIG = "text_style_control";
9
+ const MODEL_BENCHMARK_SPLIT = "latest";
10
+ const MODEL_BENCHMARK_CATEGORY = "overall";
11
+ const MODEL_BENCHMARK_SOURCES = {
12
+ "gemini-3.8-flash": [{
13
+ sourceModelId: "gemini-3.8-flash-high",
14
+ reasoningEffort: "high"
15
+ }],
16
+ "gemini-3.7-flash": [{
17
+ sourceModelId: "gemini-3.7-flash-high",
18
+ reasoningEffort: "high"
19
+ }],
20
+ "gemini-3.6-flash": [{
21
+ sourceModelId: "gemini-3.6-flash-high",
22
+ reasoningEffort: "high"
23
+ }],
24
+ "gemini-3.5-flash-lite": [{
25
+ sourceModelId: "gemini-3.5-flash-lite",
26
+ reasoningEffort: null
27
+ }],
28
+ "gemini-3.1-pro-preview": [{
29
+ sourceModelId: "gemini-3.1-pro-preview",
30
+ reasoningEffort: null
31
+ }],
32
+ "gemini-3.5-flash": [{
33
+ sourceModelId: "gemini-3.5-flash-medium",
34
+ reasoningEffort: "medium"
35
+ }, {
36
+ sourceModelId: "gemini-3.5-flash-high",
37
+ reasoningEffort: "high"
38
+ }],
39
+ "gemini-3.1-flash-lite": [],
40
+ "openai/gpt-6.1-sol": [],
41
+ "openai/gpt-6-astra": [{
42
+ sourceModelId: "gpt-6-astra-max",
43
+ reasoningEffort: "max"
44
+ }],
45
+ "openai/gpt-6-sol": [{
46
+ sourceModelId: "gpt-6-sol-max",
47
+ reasoningEffort: "max"
48
+ }],
49
+ "openai/gpt-6-luna": [{
50
+ sourceModelId: "gpt-6-luna-max",
51
+ reasoningEffort: "max"
52
+ }],
53
+ "openai/gpt-5.6-sol": [{
54
+ sourceModelId: "gpt-5.6-sol-xhigh",
55
+ reasoningEffort: "xhigh"
56
+ }],
57
+ "openai/gpt-5.6-terra": [{
58
+ sourceModelId: "gpt-5.6-terra-xhigh",
59
+ reasoningEffort: "xhigh"
60
+ }],
61
+ "openai/gpt-5.6-luna": [{
62
+ sourceModelId: "gpt-5.6-luna-xhigh",
63
+ reasoningEffort: "xhigh"
64
+ }],
65
+ "google/gemini-3.8-flash": [{
66
+ sourceModelId: "gemini-3.8-flash-high",
67
+ reasoningEffort: "high"
68
+ }],
69
+ "google/gemini-3.7-flash": [{
70
+ sourceModelId: "gemini-3.7-flash-high",
71
+ reasoningEffort: "high"
72
+ }],
73
+ "google/gemini-3.6-flash": [{
74
+ sourceModelId: "gemini-3.6-flash-high",
75
+ reasoningEffort: "high"
76
+ }],
77
+ "google/gemini-3.5-flash-lite": [],
78
+ "google/gemini-3.1-pro-preview": [],
79
+ "google/gemini-3.5-flash": [{
80
+ sourceModelId: "gemini-3.5-flash-medium",
81
+ reasoningEffort: "medium"
82
+ }, {
83
+ sourceModelId: "gemini-3.5-flash-high",
84
+ reasoningEffort: "high"
85
+ }],
86
+ "google/gemini-3.1-flash-lite": [],
87
+ "anthropic/claude-sonnet-5.5": [],
88
+ "anthropic/claude-sonnet-5": [{
89
+ sourceModelId: "claude-sonnet-5-high",
90
+ reasoningEffort: "high"
91
+ }],
92
+ "anthropic/claude-opus-5": [{
93
+ sourceModelId: "claude-opus-5-high",
94
+ reasoningEffort: "high"
95
+ }, {
96
+ sourceModelId: "claude-opus-5-max",
97
+ reasoningEffort: "max"
98
+ }],
99
+ "anthropic/claude-opus-4.8": [{
100
+ sourceModelId: "claude-opus-4-8-high",
101
+ reasoningEffort: "high"
102
+ }],
103
+ "anthropic/claude-sonnet-4.6": [],
104
+ "openai/gpt-5.5": [{
105
+ sourceModelId: "gpt-5.5-high",
106
+ reasoningEffort: "high"
107
+ }],
108
+ "openai/gpt-5.4-mini": [{
109
+ sourceModelId: "gpt-5.4-mini-high",
110
+ reasoningEffort: "high"
111
+ }],
112
+ "gpt-6.1-sol": [],
113
+ "gpt-6-astra": [{
114
+ sourceModelId: "gpt-6-astra-max",
115
+ reasoningEffort: "max"
116
+ }],
117
+ "gpt-6-sol": [{
118
+ sourceModelId: "gpt-6-sol-max",
119
+ reasoningEffort: "max"
120
+ }],
121
+ "gpt-6-luna": [{
122
+ sourceModelId: "gpt-6-luna-max",
123
+ reasoningEffort: "max"
124
+ }],
125
+ "gpt-5.6": [{
126
+ sourceModelId: "gpt-5.6-sol-xhigh",
127
+ reasoningEffort: "xhigh"
128
+ }],
129
+ "gpt-5.6-terra": [{
130
+ sourceModelId: "gpt-5.6-terra-xhigh",
131
+ reasoningEffort: "xhigh"
132
+ }],
133
+ "gpt-5.6-luna": [{
134
+ sourceModelId: "gpt-5.6-luna-xhigh",
135
+ reasoningEffort: "xhigh"
136
+ }],
137
+ "gpt-5.5": [{
138
+ sourceModelId: "gpt-5.5",
139
+ reasoningEffort: null
140
+ }, {
141
+ sourceModelId: "gpt-5.5-high",
142
+ reasoningEffort: "high"
143
+ }],
144
+ "gpt-5.4": [{
145
+ sourceModelId: "gpt-5.4",
146
+ reasoningEffort: null
147
+ }, {
148
+ sourceModelId: "gpt-5.4-high",
149
+ reasoningEffort: "high"
150
+ }],
151
+ "gpt-5.4-mini": [{
152
+ sourceModelId: "gpt-5.4-mini-high",
153
+ reasoningEffort: "high"
154
+ }],
155
+ "gpt-5.4-nano": [{
156
+ sourceModelId: "gpt-5.4-nano-high",
157
+ reasoningEffort: "high"
158
+ }],
159
+ "gpt-5.2": [{
160
+ sourceModelId: "gpt-5.2",
161
+ reasoningEffort: null
162
+ }, {
163
+ sourceModelId: "gpt-5.2-high",
164
+ reasoningEffort: "high"
165
+ }],
166
+ "claude-sonnet-5-5": [],
167
+ "claude-sonnet-5": [{
168
+ sourceModelId: "claude-sonnet-5-high",
169
+ reasoningEffort: "high"
170
+ }],
171
+ "claude-fable-5-1": [{
172
+ sourceModelId: "claude-fable-5.1-max",
173
+ reasoningEffort: "max"
174
+ }],
175
+ "claude-fable-5": [{
176
+ sourceModelId: "claude-fable-5-high",
177
+ reasoningEffort: "high"
178
+ }],
179
+ "claude-opus-5-5": [{
180
+ sourceModelId: "claude-opus-5.5-high",
181
+ reasoningEffort: "high"
182
+ }],
183
+ "claude-opus-5": [{
184
+ sourceModelId: "claude-opus-5-high",
185
+ reasoningEffort: "high"
186
+ }, {
187
+ sourceModelId: "claude-opus-5-max",
188
+ reasoningEffort: "max"
189
+ }],
190
+ "claude-opus-4-8": [{
191
+ sourceModelId: "claude-opus-4-8",
192
+ reasoningEffort: null
193
+ }, {
194
+ sourceModelId: "claude-opus-4-8-high",
195
+ reasoningEffort: "high"
196
+ }],
197
+ "claude-opus-4-7": [{
198
+ sourceModelId: "claude-opus-4-7",
199
+ reasoningEffort: null
200
+ }, {
201
+ sourceModelId: "claude-opus-4-7-high",
202
+ reasoningEffort: "high"
203
+ }],
204
+ "claude-sonnet-4-6": [{
205
+ sourceModelId: "claude-sonnet-4-6",
206
+ reasoningEffort: null
207
+ }],
208
+ "claude-opus-4-6": [{
209
+ sourceModelId: "claude-opus-4-6",
210
+ reasoningEffort: null
211
+ }, {
212
+ sourceModelId: "claude-opus-4-6-high",
213
+ reasoningEffort: "high"
214
+ }],
215
+ "claude-haiku-4-5-20251001": [{
216
+ sourceModelId: "claude-haiku-4-5-20251001",
217
+ reasoningEffort: null
218
+ }],
219
+ "us.anthropic.claude-sonnet-4-5-20250929-v1:0": [{
220
+ sourceModelId: "claude-sonnet-4-5-20250929",
221
+ reasoningEffort: null
222
+ }],
223
+ "us.anthropic.claude-haiku-4-5-20251001-v1:0": [{
224
+ sourceModelId: "claude-haiku-4-5-20251001",
225
+ reasoningEffort: null
226
+ }],
227
+ "us.amazon.nova-pro-v1:0": [{
228
+ sourceModelId: "amazon-nova-pro-v1.0",
229
+ reasoningEffort: null
230
+ }],
231
+ "us.amazon.nova-lite-v1:0": [{
232
+ sourceModelId: "amazon-nova-lite-v1.0",
233
+ reasoningEffort: null
234
+ }],
235
+ "us.amazon.nova-micro-v1:0": [{
236
+ sourceModelId: "amazon-nova-micro-v1.0",
237
+ reasoningEffort: null
238
+ }],
239
+ "openai.gpt-oss-120b-1:0": [{
240
+ sourceModelId: "gpt-oss-120b",
241
+ reasoningEffort: null
242
+ }],
243
+ "openai.gpt-oss-20b-1:0": [{
244
+ sourceModelId: "gpt-oss-20b",
245
+ reasoningEffort: null
246
+ }],
247
+ "mistral-large-4": [],
248
+ "mistral-large-latest": [],
249
+ "mistral-medium-latest": [],
250
+ "mistral-small-latest": []
251
+ };
252
+ const MODEL_UNRATED_REASONS = [
253
+ "too_new",
254
+ "preview_only",
255
+ "named_default_effort",
256
+ "floating_alias"
257
+ ];
258
+ /**
259
+ * A reviewed reason for every offered model without an exact Text Arena row.
260
+ * A newly offered unrated model fails typecheck until it has one, and mapping
261
+ * a source later makes its entry here an excess key, so the lists cannot
262
+ * drift. `too_new` drives the picker's "New" recommendation.
263
+ */
264
+ const MODEL_UNRATED_REASON = {
265
+ "gemini-3.1-flash-lite": "preview_only",
266
+ "openai/gpt-6.1-sol": "too_new",
267
+ "google/gemini-3.5-flash-lite": "named_default_effort",
268
+ "google/gemini-3.1-pro-preview": "named_default_effort",
269
+ "google/gemini-3.1-flash-lite": "preview_only",
270
+ "anthropic/claude-sonnet-5.5": "too_new",
271
+ "anthropic/claude-sonnet-4.6": "named_default_effort",
272
+ "gpt-6.1-sol": "too_new",
273
+ "claude-sonnet-5-5": "too_new",
274
+ "mistral-large-4": "too_new",
275
+ "mistral-large-latest": "floating_alias",
276
+ "mistral-medium-latest": "floating_alias",
277
+ "mistral-small-latest": "floating_alias"
278
+ };
279
+ //#endregion
280
+ //#region src/benchmarks.gen.ts
281
+ const MODEL_BENCHMARK_PUBLISH_DATE = "2026-09-30";
282
+ const MODEL_BENCHMARK_RATINGS = {
283
+ "gemini-3.8-flash-high": {
284
+ rating: 1494.09,
285
+ ratingLower: 1489,
286
+ ratingUpper: 1499.18,
287
+ rank: 11,
288
+ voteCount: 24828
289
+ },
290
+ "gemini-3.7-flash-high": {
291
+ rating: 1488.3,
292
+ ratingLower: 1483.08,
293
+ ratingUpper: 1493.52,
294
+ rank: 16,
295
+ voteCount: 20851
296
+ },
297
+ "gemini-3.6-flash-high": {
298
+ rating: 1483.09,
299
+ ratingLower: 1478.64,
300
+ ratingUpper: 1487.53,
301
+ rank: 21,
302
+ voteCount: 35640
303
+ },
304
+ "gemini-3.5-flash-lite": {
305
+ rating: 1454.11,
306
+ ratingLower: 1449.62,
307
+ ratingUpper: 1458.6,
308
+ rank: 70,
309
+ voteCount: 35335
310
+ },
311
+ "gemini-3.1-pro-preview": {
312
+ rating: 1486.96,
313
+ ratingLower: 1483.95,
314
+ ratingUpper: 1489.98,
315
+ rank: 18,
316
+ voteCount: 121225
317
+ },
318
+ "gemini-3.5-flash-medium": {
319
+ rating: 1476.2,
320
+ ratingLower: 1472.04,
321
+ ratingUpper: 1480.36,
322
+ rank: 29,
323
+ voteCount: 46735
324
+ },
325
+ "gemini-3.5-flash-high": {
326
+ rating: 1477.07,
327
+ ratingLower: 1473.17,
328
+ ratingUpper: 1480.97,
329
+ rank: 27,
330
+ voteCount: 47981
331
+ },
332
+ "gpt-6-astra-max": {
333
+ rating: 1476.18,
334
+ ratingLower: 1469.17,
335
+ ratingUpper: 1483.19,
336
+ rank: 30,
337
+ voteCount: 8565
338
+ },
339
+ "gpt-6-sol-max": {
340
+ rating: 1455.82,
341
+ ratingLower: 1448.52,
342
+ ratingUpper: 1463.12,
343
+ rank: 66,
344
+ voteCount: 7574
345
+ },
346
+ "gpt-6-luna-max": {
347
+ rating: 1443.84,
348
+ ratingLower: 1436.67,
349
+ ratingUpper: 1451.02,
350
+ rank: 85,
351
+ voteCount: 7654
352
+ },
353
+ "gpt-5.6-sol-xhigh": {
354
+ rating: 1483.76,
355
+ ratingLower: 1479.3,
356
+ ratingUpper: 1488.22,
357
+ rank: 20,
358
+ voteCount: 36002
359
+ },
360
+ "gpt-5.6-terra-xhigh": {
361
+ rating: 1465.13,
362
+ ratingLower: 1460.7,
363
+ ratingUpper: 1469.56,
364
+ rank: 50,
365
+ voteCount: 37056
366
+ },
367
+ "gpt-5.6-luna-xhigh": {
368
+ rating: 1453.41,
369
+ ratingLower: 1448.99,
370
+ ratingUpper: 1457.82,
371
+ rank: 72,
372
+ voteCount: 37593
373
+ },
374
+ "claude-sonnet-5-high": {
375
+ rating: 1461.83,
376
+ ratingLower: 1457.61,
377
+ ratingUpper: 1466.05,
378
+ rank: 55,
379
+ voteCount: 45191
380
+ },
381
+ "claude-opus-5-high": {
382
+ rating: 1491.19,
383
+ ratingLower: 1487.38,
384
+ ratingUpper: 1495,
385
+ rank: 13,
386
+ voteCount: 58380
387
+ },
388
+ "claude-opus-5-max": {
389
+ rating: 1489.08,
390
+ ratingLower: 1484.09,
391
+ ratingUpper: 1494.07,
392
+ rank: 14,
393
+ voteCount: 28351
394
+ },
395
+ "claude-opus-4-8-high": {
396
+ rating: 1481.29,
397
+ ratingLower: 1477.4,
398
+ ratingUpper: 1485.17,
399
+ rank: 23,
400
+ voteCount: 63577
401
+ },
402
+ "gpt-5.5-high": {
403
+ rating: 1481.34,
404
+ ratingLower: 1477.61,
405
+ ratingUpper: 1485.07,
406
+ rank: 22,
407
+ voteCount: 69312
408
+ },
409
+ "gpt-5.4-mini-high": {
410
+ rating: 1447.05,
411
+ ratingLower: 1443.29,
412
+ ratingUpper: 1450.8,
413
+ rank: 81,
414
+ voteCount: 63311
415
+ },
416
+ "gpt-5.5": {
417
+ rating: 1476.73,
418
+ ratingLower: 1473.03,
419
+ ratingUpper: 1480.42,
420
+ rank: 28,
421
+ voteCount: 70894
422
+ },
423
+ "gpt-5.4": {
424
+ rating: 1464.86,
425
+ ratingLower: 1461.16,
426
+ ratingUpper: 1468.56,
427
+ rank: 51,
428
+ voteCount: 67753
429
+ },
430
+ "gpt-5.4-high": {
431
+ rating: 1475.18,
432
+ ratingLower: 1471.41,
433
+ ratingUpper: 1478.96,
434
+ rank: 33,
435
+ voteCount: 64648
436
+ },
437
+ "gpt-5.4-nano-high": {
438
+ rating: 1401.13,
439
+ ratingLower: 1397.34,
440
+ ratingUpper: 1404.92,
441
+ rank: 156,
442
+ voteCount: 62300
443
+ },
444
+ "gpt-5.2": {
445
+ rating: 1435.61,
446
+ ratingLower: 1432.43,
447
+ ratingUpper: 1438.79,
448
+ rank: 101,
449
+ voteCount: 83682
450
+ },
451
+ "gpt-5.2-high": {
452
+ rating: 1437.33,
453
+ ratingLower: 1433.77,
454
+ ratingUpper: 1440.89,
455
+ rank: 98,
456
+ voteCount: 49549
457
+ },
458
+ "claude-fable-5.1-max": {
459
+ rating: 1501.25,
460
+ ratingLower: 1494.75,
461
+ ratingUpper: 1507.75,
462
+ rank: 6,
463
+ voteCount: 11241
464
+ },
465
+ "claude-fable-5-high": {
466
+ rating: 1504.87,
467
+ ratingLower: 1500.46,
468
+ ratingUpper: 1509.28,
469
+ rank: 3,
470
+ voteCount: 37900
471
+ },
472
+ "claude-opus-5.5-high": {
473
+ rating: 1503.98,
474
+ ratingLower: 1494.32,
475
+ ratingUpper: 1513.64,
476
+ rank: 4,
477
+ voteCount: 3932
478
+ },
479
+ "claude-opus-4-8": {
480
+ rating: 1474.52,
481
+ ratingLower: 1470.67,
482
+ ratingUpper: 1478.38,
483
+ rank: 36,
484
+ voteCount: 64711
485
+ },
486
+ "claude-opus-4-7": {
487
+ rating: 1494.34,
488
+ ratingLower: 1490.57,
489
+ ratingUpper: 1498.11,
490
+ rank: 9,
491
+ voteCount: 65705
492
+ },
493
+ "claude-opus-4-7-high": {
494
+ rating: 1501.69,
495
+ ratingLower: 1497.92,
496
+ ratingUpper: 1505.46,
497
+ rank: 5,
498
+ voteCount: 64607
499
+ },
500
+ "claude-sonnet-4-6": {
501
+ rating: 1472.13,
502
+ ratingLower: 1468.61,
503
+ ratingUpper: 1475.65,
504
+ rank: 42,
505
+ voteCount: 70828
506
+ },
507
+ "claude-opus-4-6": {
508
+ rating: 1497.37,
509
+ ratingLower: 1494.03,
510
+ ratingUpper: 1500.7,
511
+ rank: 7,
512
+ voteCount: 81769
513
+ },
514
+ "claude-opus-4-6-high": {
515
+ rating: 1505.49,
516
+ ratingLower: 1502.06,
517
+ ratingUpper: 1508.91,
518
+ rank: 2,
519
+ voteCount: 77193
520
+ },
521
+ "claude-haiku-4-5-20251001": {
522
+ rating: 1413.56,
523
+ ratingLower: 1411.12,
524
+ ratingUpper: 1415.99,
525
+ rank: 139,
526
+ voteCount: 142743
527
+ },
528
+ "claude-sonnet-4-5-20250929": {
529
+ rating: 1455.18,
530
+ ratingLower: 1452.31,
531
+ ratingUpper: 1458.05,
532
+ rank: 68,
533
+ voteCount: 82438
534
+ },
535
+ "amazon-nova-pro-v1.0": {
536
+ rating: 1290.1,
537
+ ratingLower: 1285.51,
538
+ ratingUpper: 1294.69,
539
+ rank: 284,
540
+ voteCount: 24745
541
+ },
542
+ "amazon-nova-lite-v1.0": {
543
+ rating: 1260.43,
544
+ ratingLower: 1255.24,
545
+ ratingUpper: 1265.62,
546
+ rank: 312,
547
+ voteCount: 19372
548
+ },
549
+ "amazon-nova-micro-v1.0": {
550
+ rating: 1240.7,
551
+ ratingLower: 1235.52,
552
+ ratingUpper: 1245.88,
553
+ rank: 318,
554
+ voteCount: 19364
555
+ },
556
+ "gpt-oss-120b": {
557
+ rating: 1351.7,
558
+ ratingLower: 1347.32,
559
+ ratingUpper: 1356.08,
560
+ rank: 209,
561
+ voteCount: 30039
562
+ },
563
+ "gpt-oss-20b": {
564
+ rating: 1317.59,
565
+ ratingLower: 1311.16,
566
+ ratingUpper: 1324.01,
567
+ rank: 260,
568
+ voteCount: 10371
569
+ }
570
+ };
571
+ //#endregion
572
+ //#region src/benchmarks.ts
573
+ /**
574
+ * Cost and quality trade-offs across the offered catalog.
575
+ *
576
+ * Quality is the Text Arena (LMArena) rating of an exactly matched model and
577
+ * reasoning-effort variant (`benchmark-sources.ts` + `benchmarks.gen.ts`).
578
+ * Cost is the list price of one typical call. The API classifies once over the
579
+ * whole catalog (`benchmark-frontier.ts`) so clients never ship the rate table
580
+ * or the snapshot.
581
+ */
582
+ const TYPICAL_CALL_INPUT_TOKENS = 2e4;
583
+ const TYPICAL_CALL_OUTPUT_TOKENS = 2e3;
584
+ const TOKENS_PER_RATE_UNIT = 1e6;
585
+ /**
586
+ * List price in USD of one typical call at the standard (non-cached,
587
+ * below-threshold) rate. Rates are per model, not per effort, so this does not
588
+ * vary with reasoning effort even though higher efforts usually emit more
589
+ * output tokens; the comparison states that assumption beside the chart.
590
+ */
591
+ const getTypicalCallCostUsd = (modelId) => {
592
+ const rate = getModelRate(modelId);
593
+ if (rate === void 0) return null;
594
+ const { inputPerMTok, outputPerMTok } = getStandardModelRate(rate);
595
+ return (inputPerMTok * TYPICAL_CALL_INPUT_TOKENS + outputPerMTok * TYPICAL_CALL_OUTPUT_TOKENS) / TOKENS_PER_RATE_UNIT / MODEL_RATE_UNITS_PER_USD;
596
+ };
597
+ const MODEL_BENCHMARK_RATINGS_BY_ID = MODEL_BENCHMARK_RATINGS;
598
+ /** Every measured variant of an offered model, in source order. */
599
+ const getModelBenchmarkMeasurements = (modelId) => MODEL_BENCHMARK_SOURCES[modelId].flatMap(({ sourceModelId, reasoningEffort }) => {
600
+ const measured = MODEL_BENCHMARK_RATINGS_BY_ID[sourceModelId];
601
+ return measured === void 0 ? [] : [{
602
+ sourceModelId,
603
+ reasoningEffort,
604
+ rating: measured.rating,
605
+ ratingLower: measured.ratingLower,
606
+ ratingUpper: measured.ratingUpper
607
+ }];
608
+ });
609
+ const MODEL_UNRATED_REASON_BY_ID = MODEL_UNRATED_REASON;
610
+ /** Why an offered model has no exact Text Arena row; `null` when it has one. */
611
+ const getModelUnratedReason = (modelId) => MODEL_UNRATED_REASON_BY_ID[modelId] ?? null;
612
+ //#endregion
613
+ export { MODEL_BENCHMARK_CATEGORY, MODEL_BENCHMARK_CONFIG, MODEL_BENCHMARK_DATASET, MODEL_BENCHMARK_LICENCE, MODEL_BENCHMARK_NAME, MODEL_BENCHMARK_PUBLISH_DATE, MODEL_BENCHMARK_RATINGS, MODEL_BENCHMARK_SOURCES, MODEL_BENCHMARK_SOURCE_URL, MODEL_BENCHMARK_SPLIT, MODEL_UNRATED_REASON, MODEL_UNRATED_REASONS, TYPICAL_CALL_INPUT_TOKENS, TYPICAL_CALL_OUTPUT_TOKENS, getModelBenchmarkMeasurements, getModelUnratedReason, getTypicalCallCostUsd };