@oh-my-pi/pi-catalog 16.4.0 → 16.4.1
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 +18 -0
- package/dist/types/provider-models/openai-compat.d.ts +7 -7
- package/package.json +3 -3
- package/src/models.json +227 -139
- package/src/provider-models/openai-compat.ts +17 -11
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.4.1] - 2026-07-10
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added GPT-5.6 Luna, Sol, and Terra models
|
|
10
|
+
- Added perplexity-academic-researcher model
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Updated context windows for multiple GPT-5.6 models
|
|
15
|
+
- Increased max tokens for several models
|
|
16
|
+
- Updated cache write costs for GPT-5.6 variants
|
|
17
|
+
- Reduced pricing for select models
|
|
18
|
+
|
|
19
|
+
### Removed
|
|
20
|
+
|
|
21
|
+
- Removed the generated GPT-5.6 pro-reasoning aliases (`gpt-5.6-{luna,sol,terra}-pro`) from the `openai-codex` subscription provider — pro reasoning is not offered on subscriptions; the `openai` API-key aliases remain
|
|
22
|
+
|
|
5
23
|
## [16.4.0] - 2026-07-10
|
|
6
24
|
|
|
7
25
|
### Breaking Changes
|
|
@@ -56,14 +56,14 @@ export interface OpenAIModelManagerConfig {
|
|
|
56
56
|
export declare function openaiModelManagerOptions(config?: OpenAIModelManagerConfig): ModelManagerOptions<"openai-responses">;
|
|
57
57
|
/**
|
|
58
58
|
* Re-derive the generated pro-reasoning aliases (`gpt-5.6-*-pro`) for the
|
|
59
|
-
* first-party `openai
|
|
60
|
-
*
|
|
61
|
-
*
|
|
59
|
+
* first-party `openai` gpt-5.6 rows. Each alias inherits the base row's
|
|
60
|
+
* metadata, requests the base wire id via `requestModelId`, and sets
|
|
61
|
+
* `reasoningMode: "pro"` so Responses-family request builders emit
|
|
62
62
|
* `reasoning: { mode: "pro" }`. Called by the models.json generator after all
|
|
63
|
-
* sources merge: stale copies of the owned aliases (previous snapshot
|
|
64
|
-
* dropped and re-projected from the
|
|
65
|
-
*
|
|
66
|
-
* and suppresses the projection.
|
|
63
|
+
* sources merge: stale copies of the owned aliases (previous snapshot,
|
|
64
|
+
* including retired `openai-codex` rows) are dropped and re-projected from the
|
|
65
|
+
* current base rows so alias metadata always tracks the base, while a real
|
|
66
|
+
* upstream model that occupies an alias id wins and suppresses the projection.
|
|
67
67
|
*/
|
|
68
68
|
export declare function projectOpenAIProReasoningAliases(models: readonly ModelSpec<Api>[]): ModelSpec<Api>[];
|
|
69
69
|
export interface GroqModelManagerConfig {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "16.4.
|
|
4
|
+
"version": "16.4.1",
|
|
5
5
|
"description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@bufbuild/protobuf": "^2.12.0",
|
|
37
|
-
"@oh-my-pi/pi-utils": "16.4.
|
|
37
|
+
"@oh-my-pi/pi-utils": "16.4.1",
|
|
38
38
|
"arktype": "^2.2.0",
|
|
39
39
|
"zod": "^4"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "16.4.
|
|
42
|
+
"@oh-my-pi/pi-ai": "16.4.1",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/models.json
CHANGED
|
@@ -18667,7 +18667,7 @@
|
|
|
18667
18667
|
"cacheRead": 0.2,
|
|
18668
18668
|
"cacheWrite": 0
|
|
18669
18669
|
},
|
|
18670
|
-
"contextWindow":
|
|
18670
|
+
"contextWindow": 1000000,
|
|
18671
18671
|
"maxTokens": 64000,
|
|
18672
18672
|
"headers": {
|
|
18673
18673
|
"User-Agent": "opencode/1.3.15",
|
|
@@ -19190,7 +19190,7 @@
|
|
|
19190
19190
|
"cacheRead": 0.5,
|
|
19191
19191
|
"cacheWrite": 0
|
|
19192
19192
|
},
|
|
19193
|
-
"contextWindow":
|
|
19193
|
+
"contextWindow": 1050000,
|
|
19194
19194
|
"maxTokens": 128000,
|
|
19195
19195
|
"headers": {
|
|
19196
19196
|
"User-Agent": "opencode/1.3.15",
|
|
@@ -19207,6 +19207,108 @@
|
|
|
19207
19207
|
},
|
|
19208
19208
|
"contextPromotionTarget": "github-copilot/gpt-5.4"
|
|
19209
19209
|
},
|
|
19210
|
+
"gpt-5.6-luna": {
|
|
19211
|
+
"id": "gpt-5.6-luna",
|
|
19212
|
+
"name": "GPT-5.6 Luna",
|
|
19213
|
+
"api": "openai-responses",
|
|
19214
|
+
"provider": "github-copilot",
|
|
19215
|
+
"baseUrl": "https://api.githubcopilot.com",
|
|
19216
|
+
"reasoning": true,
|
|
19217
|
+
"input": [
|
|
19218
|
+
"text",
|
|
19219
|
+
"image"
|
|
19220
|
+
],
|
|
19221
|
+
"cost": {
|
|
19222
|
+
"input": 1,
|
|
19223
|
+
"output": 6,
|
|
19224
|
+
"cacheRead": 0.1,
|
|
19225
|
+
"cacheWrite": 0
|
|
19226
|
+
},
|
|
19227
|
+
"contextWindow": 1050000,
|
|
19228
|
+
"maxTokens": 128000,
|
|
19229
|
+
"headers": {
|
|
19230
|
+
"User-Agent": "opencode/1.3.15",
|
|
19231
|
+
"X-GitHub-Api-Version": "2026-06-01"
|
|
19232
|
+
},
|
|
19233
|
+
"thinking": {
|
|
19234
|
+
"mode": "effort",
|
|
19235
|
+
"efforts": [
|
|
19236
|
+
"low",
|
|
19237
|
+
"medium",
|
|
19238
|
+
"high",
|
|
19239
|
+
"xhigh",
|
|
19240
|
+
"max"
|
|
19241
|
+
]
|
|
19242
|
+
}
|
|
19243
|
+
},
|
|
19244
|
+
"gpt-5.6-sol": {
|
|
19245
|
+
"id": "gpt-5.6-sol",
|
|
19246
|
+
"name": "GPT-5.6 Sol",
|
|
19247
|
+
"api": "openai-responses",
|
|
19248
|
+
"provider": "github-copilot",
|
|
19249
|
+
"baseUrl": "https://api.githubcopilot.com",
|
|
19250
|
+
"reasoning": true,
|
|
19251
|
+
"input": [
|
|
19252
|
+
"text",
|
|
19253
|
+
"image"
|
|
19254
|
+
],
|
|
19255
|
+
"cost": {
|
|
19256
|
+
"input": 5,
|
|
19257
|
+
"output": 30,
|
|
19258
|
+
"cacheRead": 0.5,
|
|
19259
|
+
"cacheWrite": 0
|
|
19260
|
+
},
|
|
19261
|
+
"contextWindow": 1050000,
|
|
19262
|
+
"maxTokens": 128000,
|
|
19263
|
+
"headers": {
|
|
19264
|
+
"User-Agent": "opencode/1.3.15",
|
|
19265
|
+
"X-GitHub-Api-Version": "2026-06-01"
|
|
19266
|
+
},
|
|
19267
|
+
"thinking": {
|
|
19268
|
+
"mode": "effort",
|
|
19269
|
+
"efforts": [
|
|
19270
|
+
"low",
|
|
19271
|
+
"medium",
|
|
19272
|
+
"high",
|
|
19273
|
+
"xhigh",
|
|
19274
|
+
"max"
|
|
19275
|
+
]
|
|
19276
|
+
}
|
|
19277
|
+
},
|
|
19278
|
+
"gpt-5.6-terra": {
|
|
19279
|
+
"id": "gpt-5.6-terra",
|
|
19280
|
+
"name": "GPT-5.6 Terra",
|
|
19281
|
+
"api": "openai-responses",
|
|
19282
|
+
"provider": "github-copilot",
|
|
19283
|
+
"baseUrl": "https://api.githubcopilot.com",
|
|
19284
|
+
"reasoning": true,
|
|
19285
|
+
"input": [
|
|
19286
|
+
"text",
|
|
19287
|
+
"image"
|
|
19288
|
+
],
|
|
19289
|
+
"cost": {
|
|
19290
|
+
"input": 2.5,
|
|
19291
|
+
"output": 15,
|
|
19292
|
+
"cacheRead": 0.25,
|
|
19293
|
+
"cacheWrite": 0
|
|
19294
|
+
},
|
|
19295
|
+
"contextWindow": 1050000,
|
|
19296
|
+
"maxTokens": 128000,
|
|
19297
|
+
"headers": {
|
|
19298
|
+
"User-Agent": "opencode/1.3.15",
|
|
19299
|
+
"X-GitHub-Api-Version": "2026-06-01"
|
|
19300
|
+
},
|
|
19301
|
+
"thinking": {
|
|
19302
|
+
"mode": "effort",
|
|
19303
|
+
"efforts": [
|
|
19304
|
+
"low",
|
|
19305
|
+
"medium",
|
|
19306
|
+
"high",
|
|
19307
|
+
"xhigh",
|
|
19308
|
+
"max"
|
|
19309
|
+
]
|
|
19310
|
+
}
|
|
19311
|
+
},
|
|
19210
19312
|
"grok-code-fast-1": {
|
|
19211
19313
|
"id": "grok-code-fast-1",
|
|
19212
19314
|
"name": "Grok Code Fast 1",
|
|
@@ -48660,6 +48762,25 @@
|
|
|
48660
48762
|
"contextWindow": null,
|
|
48661
48763
|
"maxTokens": null
|
|
48662
48764
|
},
|
|
48765
|
+
"perplexity-academic-researcher": {
|
|
48766
|
+
"id": "perplexity-academic-researcher",
|
|
48767
|
+
"name": "perplexity-academic-researcher",
|
|
48768
|
+
"api": "openai-completions",
|
|
48769
|
+
"provider": "nanogpt",
|
|
48770
|
+
"baseUrl": "https://nano-gpt.com/api/v1",
|
|
48771
|
+
"reasoning": false,
|
|
48772
|
+
"input": [
|
|
48773
|
+
"text"
|
|
48774
|
+
],
|
|
48775
|
+
"cost": {
|
|
48776
|
+
"input": 0,
|
|
48777
|
+
"output": 0,
|
|
48778
|
+
"cacheRead": 0,
|
|
48779
|
+
"cacheWrite": 0
|
|
48780
|
+
},
|
|
48781
|
+
"contextWindow": null,
|
|
48782
|
+
"maxTokens": null
|
|
48783
|
+
},
|
|
48663
48784
|
"phi-4-mini-instruct": {
|
|
48664
48785
|
"id": "phi-4-mini-instruct",
|
|
48665
48786
|
"name": "phi-4-mini-instruct",
|
|
@@ -63390,47 +63511,6 @@
|
|
|
63390
63511
|
]
|
|
63391
63512
|
}
|
|
63392
63513
|
},
|
|
63393
|
-
"gpt-5.6-luna-pro": {
|
|
63394
|
-
"id": "gpt-5.6-luna-pro",
|
|
63395
|
-
"name": "GPT-5.6 Luna Pro",
|
|
63396
|
-
"api": "openai-codex-responses",
|
|
63397
|
-
"provider": "openai-codex",
|
|
63398
|
-
"baseUrl": "https://chatgpt.com/backend-api",
|
|
63399
|
-
"reasoning": true,
|
|
63400
|
-
"input": [
|
|
63401
|
-
"text",
|
|
63402
|
-
"image"
|
|
63403
|
-
],
|
|
63404
|
-
"cost": {
|
|
63405
|
-
"input": 1,
|
|
63406
|
-
"output": 6,
|
|
63407
|
-
"cacheRead": 0.1,
|
|
63408
|
-
"cacheWrite": 1.25
|
|
63409
|
-
},
|
|
63410
|
-
"remoteCompaction": {
|
|
63411
|
-
"enabled": true,
|
|
63412
|
-
"api": "openai-codex-responses",
|
|
63413
|
-
"v2StreamingEnabled": true
|
|
63414
|
-
},
|
|
63415
|
-
"contextWindow": 372000,
|
|
63416
|
-
"maxTokens": 128000,
|
|
63417
|
-
"preferWebsockets": true,
|
|
63418
|
-
"useResponsesLite": true,
|
|
63419
|
-
"priority": 3,
|
|
63420
|
-
"requestModelId": "gpt-5.6-luna",
|
|
63421
|
-
"reasoningMode": "pro",
|
|
63422
|
-
"applyPatchToolType": "freeform",
|
|
63423
|
-
"thinking": {
|
|
63424
|
-
"mode": "effort",
|
|
63425
|
-
"efforts": [
|
|
63426
|
-
"low",
|
|
63427
|
-
"medium",
|
|
63428
|
-
"high",
|
|
63429
|
-
"xhigh",
|
|
63430
|
-
"max"
|
|
63431
|
-
]
|
|
63432
|
-
}
|
|
63433
|
-
},
|
|
63434
63514
|
"gpt-5.6-sol": {
|
|
63435
63515
|
"id": "gpt-5.6-sol",
|
|
63436
63516
|
"name": "GPT-5.6 Sol",
|
|
@@ -63470,47 +63550,6 @@
|
|
|
63470
63550
|
]
|
|
63471
63551
|
}
|
|
63472
63552
|
},
|
|
63473
|
-
"gpt-5.6-sol-pro": {
|
|
63474
|
-
"id": "gpt-5.6-sol-pro",
|
|
63475
|
-
"name": "GPT-5.6 Sol Pro",
|
|
63476
|
-
"api": "openai-codex-responses",
|
|
63477
|
-
"provider": "openai-codex",
|
|
63478
|
-
"baseUrl": "https://chatgpt.com/backend-api",
|
|
63479
|
-
"reasoning": true,
|
|
63480
|
-
"input": [
|
|
63481
|
-
"text",
|
|
63482
|
-
"image"
|
|
63483
|
-
],
|
|
63484
|
-
"cost": {
|
|
63485
|
-
"input": 5,
|
|
63486
|
-
"output": 30,
|
|
63487
|
-
"cacheRead": 0.5,
|
|
63488
|
-
"cacheWrite": 6.25
|
|
63489
|
-
},
|
|
63490
|
-
"remoteCompaction": {
|
|
63491
|
-
"enabled": true,
|
|
63492
|
-
"api": "openai-codex-responses",
|
|
63493
|
-
"v2StreamingEnabled": true
|
|
63494
|
-
},
|
|
63495
|
-
"contextWindow": 372000,
|
|
63496
|
-
"maxTokens": 128000,
|
|
63497
|
-
"preferWebsockets": true,
|
|
63498
|
-
"useResponsesLite": true,
|
|
63499
|
-
"priority": 1,
|
|
63500
|
-
"requestModelId": "gpt-5.6-sol",
|
|
63501
|
-
"reasoningMode": "pro",
|
|
63502
|
-
"applyPatchToolType": "freeform",
|
|
63503
|
-
"thinking": {
|
|
63504
|
-
"mode": "effort",
|
|
63505
|
-
"efforts": [
|
|
63506
|
-
"low",
|
|
63507
|
-
"medium",
|
|
63508
|
-
"high",
|
|
63509
|
-
"xhigh",
|
|
63510
|
-
"max"
|
|
63511
|
-
]
|
|
63512
|
-
}
|
|
63513
|
-
},
|
|
63514
63553
|
"gpt-5.6-terra": {
|
|
63515
63554
|
"id": "gpt-5.6-terra",
|
|
63516
63555
|
"name": "GPT-5.6 Terra",
|
|
@@ -63549,47 +63588,6 @@
|
|
|
63549
63588
|
"max"
|
|
63550
63589
|
]
|
|
63551
63590
|
}
|
|
63552
|
-
},
|
|
63553
|
-
"gpt-5.6-terra-pro": {
|
|
63554
|
-
"id": "gpt-5.6-terra-pro",
|
|
63555
|
-
"name": "GPT-5.6 Terra Pro",
|
|
63556
|
-
"api": "openai-codex-responses",
|
|
63557
|
-
"provider": "openai-codex",
|
|
63558
|
-
"baseUrl": "https://chatgpt.com/backend-api",
|
|
63559
|
-
"reasoning": true,
|
|
63560
|
-
"input": [
|
|
63561
|
-
"text",
|
|
63562
|
-
"image"
|
|
63563
|
-
],
|
|
63564
|
-
"cost": {
|
|
63565
|
-
"input": 2.5,
|
|
63566
|
-
"output": 15,
|
|
63567
|
-
"cacheRead": 0.25,
|
|
63568
|
-
"cacheWrite": 3.125
|
|
63569
|
-
},
|
|
63570
|
-
"remoteCompaction": {
|
|
63571
|
-
"enabled": true,
|
|
63572
|
-
"api": "openai-codex-responses",
|
|
63573
|
-
"v2StreamingEnabled": true
|
|
63574
|
-
},
|
|
63575
|
-
"contextWindow": 372000,
|
|
63576
|
-
"maxTokens": 128000,
|
|
63577
|
-
"preferWebsockets": true,
|
|
63578
|
-
"useResponsesLite": true,
|
|
63579
|
-
"priority": 2,
|
|
63580
|
-
"requestModelId": "gpt-5.6-terra",
|
|
63581
|
-
"reasoningMode": "pro",
|
|
63582
|
-
"applyPatchToolType": "freeform",
|
|
63583
|
-
"thinking": {
|
|
63584
|
-
"mode": "effort",
|
|
63585
|
-
"efforts": [
|
|
63586
|
-
"low",
|
|
63587
|
-
"medium",
|
|
63588
|
-
"high",
|
|
63589
|
-
"xhigh",
|
|
63590
|
-
"max"
|
|
63591
|
-
]
|
|
63592
|
-
}
|
|
63593
63591
|
}
|
|
63594
63592
|
},
|
|
63595
63593
|
"opencode": {
|
|
@@ -65525,6 +65523,96 @@
|
|
|
65525
65523
|
},
|
|
65526
65524
|
"contextPromotionTarget": "opencode-zen/gpt-5.4"
|
|
65527
65525
|
},
|
|
65526
|
+
"gpt-5.6-luna": {
|
|
65527
|
+
"id": "gpt-5.6-luna",
|
|
65528
|
+
"name": "GPT-5.6 Luna",
|
|
65529
|
+
"api": "openai-responses",
|
|
65530
|
+
"provider": "opencode-zen",
|
|
65531
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
65532
|
+
"reasoning": true,
|
|
65533
|
+
"input": [
|
|
65534
|
+
"text",
|
|
65535
|
+
"image"
|
|
65536
|
+
],
|
|
65537
|
+
"cost": {
|
|
65538
|
+
"input": 1,
|
|
65539
|
+
"output": 6,
|
|
65540
|
+
"cacheRead": 0.1,
|
|
65541
|
+
"cacheWrite": 1.25
|
|
65542
|
+
},
|
|
65543
|
+
"contextWindow": 1050000,
|
|
65544
|
+
"maxTokens": 128000,
|
|
65545
|
+
"thinking": {
|
|
65546
|
+
"mode": "effort",
|
|
65547
|
+
"efforts": [
|
|
65548
|
+
"low",
|
|
65549
|
+
"medium",
|
|
65550
|
+
"high",
|
|
65551
|
+
"xhigh",
|
|
65552
|
+
"max"
|
|
65553
|
+
]
|
|
65554
|
+
}
|
|
65555
|
+
},
|
|
65556
|
+
"gpt-5.6-sol": {
|
|
65557
|
+
"id": "gpt-5.6-sol",
|
|
65558
|
+
"name": "GPT-5.6 Sol",
|
|
65559
|
+
"api": "openai-responses",
|
|
65560
|
+
"provider": "opencode-zen",
|
|
65561
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
65562
|
+
"reasoning": true,
|
|
65563
|
+
"input": [
|
|
65564
|
+
"text",
|
|
65565
|
+
"image"
|
|
65566
|
+
],
|
|
65567
|
+
"cost": {
|
|
65568
|
+
"input": 5,
|
|
65569
|
+
"output": 30,
|
|
65570
|
+
"cacheRead": 0.5,
|
|
65571
|
+
"cacheWrite": 6.25
|
|
65572
|
+
},
|
|
65573
|
+
"contextWindow": 1050000,
|
|
65574
|
+
"maxTokens": 128000,
|
|
65575
|
+
"thinking": {
|
|
65576
|
+
"mode": "effort",
|
|
65577
|
+
"efforts": [
|
|
65578
|
+
"low",
|
|
65579
|
+
"medium",
|
|
65580
|
+
"high",
|
|
65581
|
+
"xhigh",
|
|
65582
|
+
"max"
|
|
65583
|
+
]
|
|
65584
|
+
}
|
|
65585
|
+
},
|
|
65586
|
+
"gpt-5.6-terra": {
|
|
65587
|
+
"id": "gpt-5.6-terra",
|
|
65588
|
+
"name": "GPT-5.6 Terra",
|
|
65589
|
+
"api": "openai-responses",
|
|
65590
|
+
"provider": "opencode-zen",
|
|
65591
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
65592
|
+
"reasoning": true,
|
|
65593
|
+
"input": [
|
|
65594
|
+
"text",
|
|
65595
|
+
"image"
|
|
65596
|
+
],
|
|
65597
|
+
"cost": {
|
|
65598
|
+
"input": 2.5,
|
|
65599
|
+
"output": 15,
|
|
65600
|
+
"cacheRead": 0.25,
|
|
65601
|
+
"cacheWrite": 3.125
|
|
65602
|
+
},
|
|
65603
|
+
"contextWindow": 1050000,
|
|
65604
|
+
"maxTokens": 128000,
|
|
65605
|
+
"thinking": {
|
|
65606
|
+
"mode": "effort",
|
|
65607
|
+
"efforts": [
|
|
65608
|
+
"low",
|
|
65609
|
+
"medium",
|
|
65610
|
+
"high",
|
|
65611
|
+
"xhigh",
|
|
65612
|
+
"max"
|
|
65613
|
+
]
|
|
65614
|
+
}
|
|
65615
|
+
},
|
|
65528
65616
|
"grok-4.5": {
|
|
65529
65617
|
"id": "grok-4.5",
|
|
65530
65618
|
"name": "Grok 4.5",
|
|
@@ -65601,7 +65689,7 @@
|
|
|
65601
65689
|
"cacheRead": 0,
|
|
65602
65690
|
"cacheWrite": 0
|
|
65603
65691
|
},
|
|
65604
|
-
"contextWindow":
|
|
65692
|
+
"contextWindow": 190000,
|
|
65605
65693
|
"maxTokens": 64000,
|
|
65606
65694
|
"thinking": {
|
|
65607
65695
|
"mode": "effort",
|
|
@@ -68111,13 +68199,13 @@
|
|
|
68111
68199
|
"text"
|
|
68112
68200
|
],
|
|
68113
68201
|
"cost": {
|
|
68114
|
-
"input": 0.
|
|
68115
|
-
"output": 0.
|
|
68116
|
-
"cacheRead": 0.
|
|
68202
|
+
"input": 0.08399999999999999,
|
|
68203
|
+
"output": 0.16799999999999998,
|
|
68204
|
+
"cacheRead": 0.016800000000000002,
|
|
68117
68205
|
"cacheWrite": 0
|
|
68118
68206
|
},
|
|
68119
68207
|
"contextWindow": 1048576,
|
|
68120
|
-
"maxTokens":
|
|
68208
|
+
"maxTokens": 384000,
|
|
68121
68209
|
"thinking": {
|
|
68122
68210
|
"mode": "effort",
|
|
68123
68211
|
"efforts": [
|
|
@@ -75529,9 +75617,9 @@
|
|
|
75529
75617
|
"text"
|
|
75530
75618
|
],
|
|
75531
75619
|
"cost": {
|
|
75532
|
-
"input": 0.
|
|
75533
|
-
"output":
|
|
75534
|
-
"cacheRead": 0.
|
|
75620
|
+
"input": 0.42,
|
|
75621
|
+
"output": 1.32,
|
|
75622
|
+
"cacheRead": 0.078,
|
|
75535
75623
|
"cacheWrite": 0
|
|
75536
75624
|
},
|
|
75537
75625
|
"contextWindow": 1048576,
|
|
@@ -79347,7 +79435,7 @@
|
|
|
79347
79435
|
"input": 1.25,
|
|
79348
79436
|
"output": 7.5,
|
|
79349
79437
|
"cacheRead": 0.125,
|
|
79350
|
-
"cacheWrite":
|
|
79438
|
+
"cacheWrite": 1.5625
|
|
79351
79439
|
},
|
|
79352
79440
|
"contextWindow": 1000000,
|
|
79353
79441
|
"maxTokens": 128000,
|
|
@@ -79377,7 +79465,7 @@
|
|
|
79377
79465
|
"input": 1.25,
|
|
79378
79466
|
"output": 7.5,
|
|
79379
79467
|
"cacheRead": 0.125,
|
|
79380
|
-
"cacheWrite":
|
|
79468
|
+
"cacheWrite": 1.5625
|
|
79381
79469
|
},
|
|
79382
79470
|
"contextWindow": 1000000,
|
|
79383
79471
|
"maxTokens": 128000,
|
|
@@ -79407,7 +79495,7 @@
|
|
|
79407
79495
|
"input": 6.25,
|
|
79408
79496
|
"output": 37.5,
|
|
79409
79497
|
"cacheRead": 0.625,
|
|
79410
|
-
"cacheWrite":
|
|
79498
|
+
"cacheWrite": 7.8125
|
|
79411
79499
|
},
|
|
79412
79500
|
"contextWindow": 1000000,
|
|
79413
79501
|
"maxTokens": 128000,
|
|
@@ -79437,7 +79525,7 @@
|
|
|
79437
79525
|
"input": 6.25,
|
|
79438
79526
|
"output": 37.5,
|
|
79439
79527
|
"cacheRead": 0.625,
|
|
79440
|
-
"cacheWrite":
|
|
79528
|
+
"cacheWrite": 7.8125
|
|
79441
79529
|
},
|
|
79442
79530
|
"contextWindow": 1000000,
|
|
79443
79531
|
"maxTokens": 128000,
|
|
@@ -79467,7 +79555,7 @@
|
|
|
79467
79555
|
"input": 3.125,
|
|
79468
79556
|
"output": 18.75,
|
|
79469
79557
|
"cacheRead": 0.3125,
|
|
79470
|
-
"cacheWrite":
|
|
79558
|
+
"cacheWrite": 3.90625
|
|
79471
79559
|
},
|
|
79472
79560
|
"contextWindow": 1000000,
|
|
79473
79561
|
"maxTokens": 128000,
|
|
@@ -79497,7 +79585,7 @@
|
|
|
79497
79585
|
"input": 3.125,
|
|
79498
79586
|
"output": 18.75,
|
|
79499
79587
|
"cacheRead": 0.3125,
|
|
79500
|
-
"cacheWrite":
|
|
79588
|
+
"cacheWrite": 3.90625
|
|
79501
79589
|
},
|
|
79502
79590
|
"contextWindow": 1000000,
|
|
79503
79591
|
"maxTokens": 128000,
|
|
@@ -823,17 +823,23 @@ const OPENAI_PRO_REASONING_BASE_IDS: Record<string, true> = {
|
|
|
823
823
|
"gpt-5.6-sol": true,
|
|
824
824
|
"gpt-5.6-terra": true,
|
|
825
825
|
};
|
|
826
|
-
|
|
826
|
+
/**
|
|
827
|
+
* Providers whose generated pro aliases this pass owns. `openai-codex` stays in
|
|
828
|
+
* the sweep so stale aliases from earlier snapshots are dropped on regen, but
|
|
829
|
+
* projection is `openai`-only — subscription (Codex) auth does not offer pro
|
|
830
|
+
* reasoning.
|
|
831
|
+
*/
|
|
832
|
+
const OPENAI_PRO_REASONING_SWEEP_PROVIDERS: Record<string, true> = { openai: true, "openai-codex": true };
|
|
827
833
|
|
|
828
834
|
/**
|
|
829
835
|
* A row this generator pass owns: one of the derived `gpt-5.6-*-pro` alias ids
|
|
830
|
-
* on
|
|
836
|
+
* on a swept provider that carries the generated `reasoningMode` marker.
|
|
831
837
|
* A real upstream model occupying the same id has no `reasoningMode` and is
|
|
832
838
|
* never touched.
|
|
833
839
|
*/
|
|
834
840
|
function isGeneratedOpenAIProReasoningAlias(model: ModelSpec<Api>): boolean {
|
|
835
841
|
return (
|
|
836
|
-
|
|
842
|
+
OPENAI_PRO_REASONING_SWEEP_PROVIDERS[model.provider] === true &&
|
|
837
843
|
model.reasoningMode !== undefined &&
|
|
838
844
|
model.id.endsWith("-pro") &&
|
|
839
845
|
OPENAI_PRO_REASONING_BASE_IDS[model.id.slice(0, -"-pro".length)] === true
|
|
@@ -842,21 +848,21 @@ function isGeneratedOpenAIProReasoningAlias(model: ModelSpec<Api>): boolean {
|
|
|
842
848
|
|
|
843
849
|
/**
|
|
844
850
|
* Re-derive the generated pro-reasoning aliases (`gpt-5.6-*-pro`) for the
|
|
845
|
-
* first-party `openai
|
|
846
|
-
*
|
|
847
|
-
*
|
|
851
|
+
* first-party `openai` gpt-5.6 rows. Each alias inherits the base row's
|
|
852
|
+
* metadata, requests the base wire id via `requestModelId`, and sets
|
|
853
|
+
* `reasoningMode: "pro"` so Responses-family request builders emit
|
|
848
854
|
* `reasoning: { mode: "pro" }`. Called by the models.json generator after all
|
|
849
|
-
* sources merge: stale copies of the owned aliases (previous snapshot
|
|
850
|
-
* dropped and re-projected from the
|
|
851
|
-
*
|
|
852
|
-
* and suppresses the projection.
|
|
855
|
+
* sources merge: stale copies of the owned aliases (previous snapshot,
|
|
856
|
+
* including retired `openai-codex` rows) are dropped and re-projected from the
|
|
857
|
+
* current base rows so alias metadata always tracks the base, while a real
|
|
858
|
+
* upstream model that occupies an alias id wins and suppresses the projection.
|
|
853
859
|
*/
|
|
854
860
|
export function projectOpenAIProReasoningAliases(models: readonly ModelSpec<Api>[]): ModelSpec<Api>[] {
|
|
855
861
|
const kept = models.filter(model => !isGeneratedOpenAIProReasoningAlias(model));
|
|
856
862
|
const ids = new Set(kept.map(model => `${model.provider}/${model.id}`));
|
|
857
863
|
const out = [...kept];
|
|
858
864
|
for (const model of kept) {
|
|
859
|
-
if (
|
|
865
|
+
if (model.provider !== "openai") continue;
|
|
860
866
|
if (!OPENAI_PRO_REASONING_BASE_IDS[model.id]) continue;
|
|
861
867
|
const aliasId = `${model.id}-pro`;
|
|
862
868
|
const aliasKey = `${model.provider}/${aliasId}`;
|