@oh-my-pi/pi-catalog 18.6.1 → 18.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/dist/types/compat/auth-ids.d.ts +2 -2
- package/dist/types/compat/image-tokenization.d.ts +52 -0
- package/dist/types/compat/provider-ids.d.ts +1 -1
- package/dist/types/compat/types.d.ts +2 -0
- package/dist/types/hosts.d.ts +4 -0
- package/dist/types/types.d.ts +38 -4
- package/package.json +4 -4
- package/src/build.ts +4 -1
- package/src/compat/auth-ids.ts +2 -0
- package/src/compat/axes.ts +4 -0
- package/src/compat/image-tokenization.ts +166 -0
- package/src/compat/provider-ids.ts +1 -0
- package/src/compat/resolve.ts +11 -1
- package/src/compat/rules/README.md +4 -0
- package/src/compat/rules/auth/_order.kdl +1 -1
- package/src/compat/rules/auth/minimax-code-cn.kdl +1 -1
- package/src/compat/rules/auth/minimax-code.kdl +1 -1
- package/src/compat/rules/auth/snowflake.kdl +11 -0
- package/src/compat/rules/classes/anthropic.kdl +72 -7
- package/src/compat/rules/classes/gemini.kdl +12 -0
- package/src/compat/rules/classes/minimax.kdl +21 -1
- package/src/compat/rules/classes/openai.kdl +102 -0
- package/src/compat/rules/providers/apple.kdl +1 -0
- package/src/compat/rules/providers/google-antigravity.kdl +3 -0
- package/src/compat/rules/providers/image-tokenization.kdl +42 -0
- package/src/compat/rules/providers/minimax-code-cn.kdl +10 -5
- package/src/compat/rules/providers/minimax-code.kdl +10 -5
- package/src/compat/rules/providers/mistral.kdl +20 -0
- package/src/compat/rules/providers/muse-code.kdl +7 -0
- package/src/compat/rules/providers/openai-codex.kdl +7 -0
- package/src/compat/rules/providers/openai.kdl +5 -0
- package/src/compat/rules/providers/snowflake.kdl +135 -0
- package/src/compat/rules/runtime/behavior.kdl +2 -0
- package/src/compat/rules/taxonomy/_collapse.kdl +18 -0
- package/src/compat/rules.json +1 -1
- package/src/compat/types.ts +2 -0
- package/src/hosts.ts +2 -0
- package/src/models.json +1 -1
- package/src/provider-models/google.ts +2 -0
- package/src/provider-models/openai-compat.ts +6 -17
- package/src/provider-models/special.ts +2 -2
- package/src/types.ts +75 -3
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
// Model-lineage compat for "anthropic"; regenerated from the frozen census using class taxonomy selectors.
|
|
2
2
|
|
|
3
|
+
// Images bill ⌈w/28⌉·⌈h/28⌉ visual tokens on every host. Claude 4.7+ and
|
|
4
|
+
// Fable/Mythos read up to 2576px and 4,784 tokens; older lines fit 1568px and
|
|
5
|
+
// cap at 1,568 tokens, downscaling past it.
|
|
6
|
+
// https://platform.claude.com/docs/en/build-with-claude/vision#evaluate-image-size
|
|
7
|
+
// The class default is the high-res tier, so ids without a revision
|
|
8
|
+
// (`claude-opus-latest`, `~anthropic/claude-sonnet-latest`) and future lines
|
|
9
|
+
// are never undercounted; only Opus/Sonnet/Haiku revisions known to predate
|
|
10
|
+
// 4.7 take the standard tier. Separator-collapsed revisions parse as two
|
|
11
|
+
// digits (`claude-opus-45` is Opus 4.5 → 45), so 10–46 is standard too.
|
|
12
|
+
class "anthropic" {
|
|
13
|
+
image-tokenization {
|
|
14
|
+
regime "anthropic-patch"
|
|
15
|
+
max-edge 2576
|
|
16
|
+
max-tokens 4784
|
|
17
|
+
}
|
|
18
|
+
family "opus" {
|
|
19
|
+
revision "<4.7" {
|
|
20
|
+
image-tokenization {
|
|
21
|
+
regime "anthropic-patch"
|
|
22
|
+
max-edge 1568
|
|
23
|
+
max-tokens 1568
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
revision ">=10 <47" {
|
|
27
|
+
image-tokenization {
|
|
28
|
+
regime "anthropic-patch"
|
|
29
|
+
max-edge 1568
|
|
30
|
+
max-tokens 1568
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
family "sonnet" {
|
|
35
|
+
revision "<4.7" {
|
|
36
|
+
image-tokenization {
|
|
37
|
+
regime "anthropic-patch"
|
|
38
|
+
max-edge 1568
|
|
39
|
+
max-tokens 1568
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
revision ">=10 <47" {
|
|
43
|
+
image-tokenization {
|
|
44
|
+
regime "anthropic-patch"
|
|
45
|
+
max-edge 1568
|
|
46
|
+
max-tokens 1568
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
family "haiku" {
|
|
51
|
+
revision "<4.7" {
|
|
52
|
+
image-tokenization {
|
|
53
|
+
regime "anthropic-patch"
|
|
54
|
+
max-edge 1568
|
|
55
|
+
max-tokens 1568
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
revision ">=10 <47" {
|
|
59
|
+
image-tokenization {
|
|
60
|
+
regime "anthropic-patch"
|
|
61
|
+
max-edge 1568
|
|
62
|
+
max-tokens 1568
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
3
68
|
class "anthropic" {
|
|
4
69
|
family "fable" {
|
|
5
70
|
revision ">=5.1" {
|
|
@@ -181,7 +246,7 @@ class "anthropic" {
|
|
|
181
246
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
182
247
|
}
|
|
183
248
|
on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "gitlab-duo" \
|
|
184
|
-
"google-antigravity" "google-vertex" "opencode-zen" "vercel-ai-gateway" "zenmux" {
|
|
249
|
+
"google-antigravity" "google-vertex" "opencode-zen" "snowflake" "vercel-ai-gateway" "zenmux" {
|
|
185
250
|
family "sonnet" {
|
|
186
251
|
revision ">=3.7 <4.6" {
|
|
187
252
|
thinking-mode "budget"
|
|
@@ -189,13 +254,13 @@ class "anthropic" {
|
|
|
189
254
|
}
|
|
190
255
|
}
|
|
191
256
|
on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "gitlab-duo" \
|
|
192
|
-
"google-vertex" "opencode-zen" "vercel-ai-gateway" {
|
|
257
|
+
"google-vertex" "opencode-zen" "snowflake" "vercel-ai-gateway" {
|
|
193
258
|
family "haiku" {
|
|
194
259
|
thinking-mode "budget"
|
|
195
260
|
}
|
|
196
261
|
}
|
|
197
262
|
on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "gitlab-duo" \
|
|
198
|
-
"google-vertex" "opencode-zen" "vercel-ai-gateway" "zenmux" {
|
|
263
|
+
"google-vertex" "opencode-zen" "snowflake" "vercel-ai-gateway" "zenmux" {
|
|
199
264
|
family "opus" {
|
|
200
265
|
revision ">=4.5 <4.6" {
|
|
201
266
|
thinking-mode "anthropic-budget-effort"
|
|
@@ -203,7 +268,7 @@ class "anthropic" {
|
|
|
203
268
|
}
|
|
204
269
|
}
|
|
205
270
|
on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "google-vertex" \
|
|
206
|
-
"opencode-zen" "openrouter" "vercel-ai-gateway" "zenmux" {
|
|
271
|
+
"opencode-zen" "openrouter" "snowflake" "vercel-ai-gateway" "zenmux" {
|
|
207
272
|
family "opus" {
|
|
208
273
|
revision ">=4.6 <4.7" {
|
|
209
274
|
thinking-efforts "low" "medium" "high" "max"
|
|
@@ -211,7 +276,7 @@ class "anthropic" {
|
|
|
211
276
|
}
|
|
212
277
|
}
|
|
213
278
|
on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "google-vertex" \
|
|
214
|
-
"opencode-zen" "vercel-ai-gateway" "zenmux" {
|
|
279
|
+
"opencode-zen" "snowflake" "vercel-ai-gateway" "zenmux" {
|
|
215
280
|
revision ">=4.7 <45.1" {
|
|
216
281
|
thinking-mode "anthropic-adaptive"
|
|
217
282
|
}
|
|
@@ -242,13 +307,13 @@ class "anthropic" {
|
|
|
242
307
|
}
|
|
243
308
|
}
|
|
244
309
|
on "anthropic" "cloudflare-ai-gateway" "github-copilot" "google-vertex" "opencode-zen" \
|
|
245
|
-
"openrouter" "vercel-ai-gateway" "zenmux" {
|
|
310
|
+
"openrouter" "snowflake" "vercel-ai-gateway" "zenmux" {
|
|
246
311
|
revision ">=4.7 <45.1" {
|
|
247
312
|
thinking-efforts "low" "medium" "high" "xhigh" "max"
|
|
248
313
|
}
|
|
249
314
|
}
|
|
250
315
|
on "anthropic" "cloudflare-ai-gateway" "github-copilot" "google-vertex" "opencode-zen" \
|
|
251
|
-
"vercel-ai-gateway" "zenmux" {
|
|
316
|
+
"snowflake" "vercel-ai-gateway" "zenmux" {
|
|
252
317
|
family "sonnet" {
|
|
253
318
|
revision ">=4.6 <5" {
|
|
254
319
|
thinking-efforts "low" "medium" "high"
|
|
@@ -118,3 +118,15 @@ class "gemini" {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
+
|
|
122
|
+
// Gemini 3+ bills a fixed `media_resolution` budget per image regardless of
|
|
123
|
+
// pixels; the default for images is HIGH, 1,120 tokens.
|
|
124
|
+
// https://ai.google.dev/gemini-api/docs/media-resolution
|
|
125
|
+
class "gemini" {
|
|
126
|
+
revision ">=3" {
|
|
127
|
+
image-tokenization {
|
|
128
|
+
regime "fixed"
|
|
129
|
+
tokens 1120
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -51,7 +51,7 @@ class "minimax" {
|
|
|
51
51
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
on "minimax" "minimax-cn" "vercel-ai-gateway" {
|
|
54
|
+
on "minimax" "minimax-cn" "minimax-code" "minimax-code-cn" "vercel-ai-gateway" {
|
|
55
55
|
thinking-mode "anthropic-adaptive"
|
|
56
56
|
family "m2" {
|
|
57
57
|
// Replaces the Anthropic-route MiniMax effort remap table.
|
|
@@ -71,6 +71,26 @@ class "minimax" {
|
|
|
71
71
|
thinking-efforts "low" "medium" "high"
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
// MiniMax-M3.1-Flash-Preview always thinks (`thinking.type: "disabled"` and
|
|
75
|
+
// effort `none` 400 with error 2013) and tunes depth through
|
|
76
|
+
// `output_config.effort` from `low` to `max` (the default when omitted).
|
|
77
|
+
// The identity map replaces the M3 family's adaptive-tag-only map so each
|
|
78
|
+
// level reaches the wire. Like the M2 family, thinking cannot be turned off:
|
|
79
|
+
// `thinking-requires-effort` hides the off level and clamps forced-off
|
|
80
|
+
// requests to the lowest effort instead of sending `disabled`.
|
|
81
|
+
on "minimax" "minimax-cn" "minimax-code" "minimax-code-cn" {
|
|
82
|
+
models "MiniMax-M3.1-Flash-Preview" {
|
|
83
|
+
thinking-requires-effort #true
|
|
84
|
+
thinking-efforts "low" "medium" "high" "xhigh" "max"
|
|
85
|
+
thinking-effort-map {
|
|
86
|
+
low "low"
|
|
87
|
+
medium "medium"
|
|
88
|
+
high "high"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Token Plan rows ride the Anthropic route; these OpenAI-only wire axes
|
|
93
|
+
// serve the legacy lightning rows that stay on the OpenAI-compatible one.
|
|
74
94
|
on "minimax-code" "minimax-code-cn" {
|
|
75
95
|
supports-reasoning-effort #false
|
|
76
96
|
supports-store #false
|
|
@@ -87,3 +87,105 @@ class "openai" {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
|
|
91
|
+
// GPT-5.2+ bills images in 32px patches × 1.2, sized per `detail` level:
|
|
92
|
+
// https://developers.openai.com/api/docs/guides/images-vision#calculating-costs
|
|
93
|
+
// Older lines carry no lineage rule and bill at their wire API's fallback
|
|
94
|
+
// (providers/image-tokenization.kdl).
|
|
95
|
+
class "openai" {
|
|
96
|
+
// gpt-5.6 sizing, shared by later lines. `<10` keeps separator-collapsed
|
|
97
|
+
// revisions (`openai-gpt-52-codex` parses as 52) off the 5.6+ sizing.
|
|
98
|
+
revision ">=5.6 <10" {
|
|
99
|
+
image-tokenization {
|
|
100
|
+
regime "openai-patch"
|
|
101
|
+
multiplier 1.2
|
|
102
|
+
auto "original"
|
|
103
|
+
low {
|
|
104
|
+
max-edge 512
|
|
105
|
+
}
|
|
106
|
+
high {
|
|
107
|
+
max-edge 2048
|
|
108
|
+
patch-budget 2500
|
|
109
|
+
}
|
|
110
|
+
original {
|
|
111
|
+
max-edge 65535
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
revision "=5.5" {
|
|
116
|
+
image-tokenization {
|
|
117
|
+
regime "openai-patch"
|
|
118
|
+
multiplier 1.2
|
|
119
|
+
auto "original"
|
|
120
|
+
low {
|
|
121
|
+
max-edge 512
|
|
122
|
+
}
|
|
123
|
+
high {
|
|
124
|
+
max-edge 2048
|
|
125
|
+
patch-budget 2500
|
|
126
|
+
}
|
|
127
|
+
original {
|
|
128
|
+
max-edge 6000
|
|
129
|
+
patch-budget 10000
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// gpt-5.4: `auto` sizes like `high`, and `low` keeps a 6,144-patch budget.
|
|
134
|
+
revision "=5.4" {
|
|
135
|
+
image-tokenization {
|
|
136
|
+
regime "openai-patch"
|
|
137
|
+
multiplier 1.2
|
|
138
|
+
auto "high"
|
|
139
|
+
low {
|
|
140
|
+
max-edge 2048
|
|
141
|
+
patch-budget 6144
|
|
142
|
+
}
|
|
143
|
+
high {
|
|
144
|
+
max-edge 2048
|
|
145
|
+
patch-budget 2500
|
|
146
|
+
}
|
|
147
|
+
original {
|
|
148
|
+
max-edge 6000
|
|
149
|
+
patch-budget 10000
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// gpt-5.2 (and the 5.3 Codex SKU) size every level the same way.
|
|
154
|
+
revision ">=5.2 <5.4" {
|
|
155
|
+
image-tokenization {
|
|
156
|
+
regime "openai-patch"
|
|
157
|
+
multiplier 1.2
|
|
158
|
+
auto "high"
|
|
159
|
+
low {
|
|
160
|
+
max-edge 2048
|
|
161
|
+
patch-budget 6144
|
|
162
|
+
}
|
|
163
|
+
high {
|
|
164
|
+
max-edge 2048
|
|
165
|
+
patch-budget 6144
|
|
166
|
+
}
|
|
167
|
+
original {
|
|
168
|
+
max-edge 2048
|
|
169
|
+
patch-budget 6144
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// residue: astra's limits differ from the rest of its revision.
|
|
174
|
+
models "*gpt-6-astra*" {
|
|
175
|
+
image-tokenization {
|
|
176
|
+
regime "openai-patch"
|
|
177
|
+
multiplier 1.2
|
|
178
|
+
auto "original"
|
|
179
|
+
low {
|
|
180
|
+
max-edge 512
|
|
181
|
+
}
|
|
182
|
+
high {
|
|
183
|
+
max-edge 65535
|
|
184
|
+
patch-budget 2500
|
|
185
|
+
}
|
|
186
|
+
original {
|
|
187
|
+
max-edge 65535
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
provider "google-antigravity" {
|
|
4
4
|
default-model "gemini-3.1-pro"
|
|
5
|
+
// `fetchAvailableModels` is the account's served roster; bundled rows it
|
|
6
|
+
// omits (e.g. Claude 5.5 on plans without it) 404 on every request (#14328).
|
|
7
|
+
dynamic-models-authoritative #true
|
|
5
8
|
kind-apis {
|
|
6
9
|
image "google-gemini-cli"
|
|
7
10
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Image billing for readers whose lineage has no `image-tokenization` rule in
|
|
2
|
+
// classes/*.kdl, by the wire API carrying the request. priority=-1: these are
|
|
3
|
+
// fallbacks, so a class-wide lineage rule (same specificity) always wins.
|
|
4
|
+
|
|
5
|
+
// OpenAI-compatible wires bill like GPT-5.5: 32px patches × 1.2, `auto` sized
|
|
6
|
+
// like `original`.
|
|
7
|
+
on-api "openai-completions" "openai-responses" "openai-codex-responses" "azure-openai-responses" priority=-1 {
|
|
8
|
+
image-tokenization {
|
|
9
|
+
regime "openai-patch"
|
|
10
|
+
multiplier 1.2
|
|
11
|
+
auto "original"
|
|
12
|
+
low {
|
|
13
|
+
max-edge 512
|
|
14
|
+
}
|
|
15
|
+
high {
|
|
16
|
+
max-edge 2048
|
|
17
|
+
patch-budget 2500
|
|
18
|
+
}
|
|
19
|
+
original {
|
|
20
|
+
max-edge 6000
|
|
21
|
+
patch-budget 10000
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Google wires bill Gemini 3's fixed `media_resolution` budget per image.
|
|
27
|
+
on-api "google-generative-ai" "google-gemini-cli" "google-vertex" priority=-1 {
|
|
28
|
+
image-tokenization {
|
|
29
|
+
regime "fixed"
|
|
30
|
+
tokens 1120
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Anthropic wires and every other adapter bill Claude's high-res tier, the
|
|
35
|
+
// largest per-image bill, so an unpriced reader is never undercounted.
|
|
36
|
+
on-api "anthropic-messages" "bedrock-converse-stream" "openrouter" "ollama-chat" "cursor-agent" "factory-droid-agent" "gitlab-duo-agent" "devin-agent" "apple-foundation-models" priority=-1 {
|
|
37
|
+
image-tokenization {
|
|
38
|
+
regime "anthropic-patch"
|
|
39
|
+
max-edge 2576
|
|
40
|
+
max-tokens 4784
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -6,11 +6,16 @@ provider "minimax-code-cn" priority=1 {
|
|
|
6
6
|
|
|
7
7
|
// Replaces the provider-id regex in both OpenAI baselines.
|
|
8
8
|
reasoning-deltas-may-be-cumulative #true
|
|
9
|
-
|
|
9
|
+
// residue: the legacy lightning SKUs survive only as previous-snapshot rows
|
|
10
|
+
// on the OpenAI-compatible route (models.dev and both live model lists omit
|
|
11
|
+
// them), so they keep that route's effort-mode thinking instead of the
|
|
12
|
+
// Anthropic adaptive rules the rest of the plan uses.
|
|
13
|
+
models "MiniMax-M2.1-lightning" "MiniMax-M2.5-lightning" {
|
|
10
14
|
thinking-mode "effort"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
thinking-effort-map {
|
|
16
|
+
low "low"
|
|
17
|
+
medium "medium"
|
|
18
|
+
high "high"
|
|
19
|
+
}
|
|
15
20
|
}
|
|
16
21
|
}
|
|
@@ -6,11 +6,16 @@ provider "minimax-code" priority=1 {
|
|
|
6
6
|
|
|
7
7
|
// Replaces the provider-id regex in both OpenAI baselines.
|
|
8
8
|
reasoning-deltas-may-be-cumulative #true
|
|
9
|
-
|
|
9
|
+
// residue: the legacy lightning SKUs survive only as previous-snapshot rows
|
|
10
|
+
// on the OpenAI-compatible route (models.dev and both live model lists omit
|
|
11
|
+
// them), so they keep that route's effort-mode thinking instead of the
|
|
12
|
+
// Anthropic adaptive rules the rest of the plan uses.
|
|
13
|
+
models "MiniMax-M2.1-lightning" "MiniMax-M2.5-lightning" {
|
|
10
14
|
thinking-mode "effort"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
thinking-effort-map {
|
|
16
|
+
low "low"
|
|
17
|
+
medium "medium"
|
|
18
|
+
high "high"
|
|
19
|
+
}
|
|
15
20
|
}
|
|
16
21
|
}
|
|
@@ -4,6 +4,26 @@ provider "mistral" {
|
|
|
4
4
|
default-model "devstral-medium-latest"
|
|
5
5
|
env "MISTRAL_API_KEY"
|
|
6
6
|
|
|
7
|
+
// Public-preview aliases and current USD / 1M token pricing:
|
|
8
|
+
// https://docs.mistral.ai/models/mistral-large-4-0 (2026-10-06).
|
|
9
|
+
// Public preview is 50% off: input $0.68, output $2.09, cached input $0.07.
|
|
10
|
+
// List prices: input $1.36, output $4.18, cached input $0.14; update when preview ends.
|
|
11
|
+
// No separate maximum output-token limit is published.
|
|
12
|
+
seed api="openai-completions" base-url="https://api.mistral.ai/v1" bundle="always" {
|
|
13
|
+
model "mistral-large-4" name="Mistral Large 4" {
|
|
14
|
+
reasoning #true
|
|
15
|
+
input "text" "image"
|
|
16
|
+
cost input=0.68 output=2.09 cache-read=0.07 cache-write=0
|
|
17
|
+
limits context=1000000
|
|
18
|
+
}
|
|
19
|
+
model "mistral-large-4-0" name="Mistral Large 4" {
|
|
20
|
+
reasoning #true
|
|
21
|
+
input "text" "image"
|
|
22
|
+
cost input=0.68 output=2.09 cache-read=0.07 cache-write=0
|
|
23
|
+
limits context=1000000
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
7
27
|
thinking-mode "effort"
|
|
8
28
|
class "unknown" {
|
|
9
29
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
@@ -15,6 +15,13 @@ provider "muse-code" {
|
|
|
15
15
|
// api.meta.ai/v1 accepts only tool_choice "auto"; "none", "required" and named
|
|
16
16
|
// choices are rejected with 400 (verified 2026-09-10), so omit the field.
|
|
17
17
|
supports-tool-choice #false
|
|
18
|
+
// Results can be stored so a dropped stream is recovered: verified 2026-09-29
|
|
19
|
+
// against api.meta.ai/v1, a stored run keeps generating after the client
|
|
20
|
+
// socket dies and `GET /responses/{id}` returns it once finished (~60s for
|
|
21
|
+
// a high-effort turn), while `store: false` runs 404 forever. Storage is
|
|
22
|
+
// opt-in (privacy: stored runs retain prompts/outputs on Meta's side): omp
|
|
23
|
+
// setting providers.muse-code.storeResponses or PI_MUSE_STORE_RESPONSES=1.
|
|
24
|
+
store-responses #true
|
|
18
25
|
// Subscription tier bills per request; the compact edit prompt cuts the
|
|
19
26
|
// recurring tool-schema bytes. Verified 2026-09-05 against api.meta.ai/v1:
|
|
20
27
|
// `custom` tools are rejected with 400 "`custom` tools are not supported
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
provider "openai-codex" {
|
|
4
4
|
default-model "gpt-5.5"
|
|
5
5
|
env "OPENAI_CODEX_OAUTH_TOKEN"
|
|
6
|
+
dynamic-models-authoritative #true
|
|
6
7
|
kind-apis {
|
|
7
8
|
image "openai-codex-responses"
|
|
8
9
|
}
|
|
@@ -75,6 +76,12 @@ provider "openai-codex" {
|
|
|
75
76
|
service-tier-cost {
|
|
76
77
|
flex 0.5
|
|
77
78
|
priority 2.5
|
|
79
|
+
// Ultrafast is Astra-only. This table uses OpenAI's included-usage
|
|
80
|
+
// multipliers for Codex: Ultrafast 8x and Fast 2.5x Standard (purchased
|
|
81
|
+
// credits / Enterprise pay-as-you-go bill 6x and 2x instead). See
|
|
82
|
+
// https://learn.chatgpt.com/docs/agent-configuration/speed and
|
|
83
|
+
// https://learn.chatgpt.com/docs/pricing.
|
|
84
|
+
ultrafast 8
|
|
78
85
|
}
|
|
79
86
|
limits-patch {
|
|
80
87
|
context-window 272000
|
|
@@ -176,6 +176,11 @@ provider "openai" {
|
|
|
176
176
|
cache-read 2.0
|
|
177
177
|
cache-write 25.0
|
|
178
178
|
}
|
|
179
|
+
// Ultrafast is Astra-only: $60/$6/$75/$300 per 1M short-context
|
|
180
|
+
// (6x the standard card), and the same 6x holds on the long-context tier.
|
|
181
|
+
service-tier-cost {
|
|
182
|
+
ultrafast 6
|
|
183
|
+
}
|
|
179
184
|
}
|
|
180
185
|
// residue: the bare Daybreak rolling aliases pin the documented 5.6-gen
|
|
181
186
|
// wire restrictions without carrying the gpt- prefix identity.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// Documented account-billed Cortex REST API, not verified CoCo-subscription usage.
|
|
2
|
+
// Model IDs and compatibility: https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api
|
|
3
|
+
// Output is capped at the Cortex REST API's documented 16,384-token maximum (rate-limit table;
|
|
4
|
+
// newer models absent from that table are assumed to share it). Context windows are conservative
|
|
5
|
+
// AI_COMPLETE configured ceilings, not verified REST maxima:
|
|
6
|
+
// https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api#label-cortex-rest-api-rate-limits
|
|
7
|
+
// https://docs.snowflake.com/en/user-guide/snowflake-cortex/aisql-regional-availability
|
|
8
|
+
// USD per million tokens estimates: Consumption Table 6(b) AI Credits x $2.00
|
|
9
|
+
// (on-demand global routing); regional routing and contract discounts change billing.
|
|
10
|
+
// https://www.snowflake.com/legal-files/CreditConsumptionTable.pdf
|
|
11
|
+
// https://docs.snowflake.com/en/user-guide/snowflake-cortex/pricing
|
|
12
|
+
provider "snowflake" {
|
|
13
|
+
default-model "claude-opus-5-5"
|
|
14
|
+
env "SNOWFLAKE_PAT"
|
|
15
|
+
|
|
16
|
+
// Credential-scoped roster: never fetch during catalog generation. The `.invalid`
|
|
17
|
+
// origin is a placeholder that snowflakeTransport replaces with the account URL.
|
|
18
|
+
seed api="anthropic-messages" base-url="https://snowflake-account.invalid/api/v2/cortex" bundle="always" precedence="seed" {
|
|
19
|
+
model "claude-opus-5-5" name="Claude Opus 5.5" {
|
|
20
|
+
reasoning #true
|
|
21
|
+
input "text" "image"
|
|
22
|
+
cost input=4 output=20 cache-write=5 cache-read=0.2
|
|
23
|
+
limits context=1000000 max-tokens=16384
|
|
24
|
+
}
|
|
25
|
+
model "claude-opus-5" name="Claude Opus 5" {
|
|
26
|
+
reasoning #true
|
|
27
|
+
input "text" "image"
|
|
28
|
+
cost input=5 output=25 cache-write=6.25 cache-read=0.5
|
|
29
|
+
limits context=1000000 max-tokens=16384
|
|
30
|
+
}
|
|
31
|
+
model "claude-opus-4-8" name="Claude Opus 4.8" {
|
|
32
|
+
reasoning #true
|
|
33
|
+
input "text" "image"
|
|
34
|
+
cost input=5 output=25 cache-write=6.25 cache-read=0.5
|
|
35
|
+
limits context=1000000 max-tokens=16384
|
|
36
|
+
}
|
|
37
|
+
model "claude-opus-4-7" name="Claude Opus 4.7" {
|
|
38
|
+
reasoning #true
|
|
39
|
+
input "text" "image"
|
|
40
|
+
cost input=5 output=25 cache-write=6.25 cache-read=0.5
|
|
41
|
+
limits context=1000000 max-tokens=16384
|
|
42
|
+
}
|
|
43
|
+
model "claude-opus-4-6" name="Claude Opus 4.6" {
|
|
44
|
+
reasoning #true
|
|
45
|
+
input "text" "image"
|
|
46
|
+
cost input=5 output=25 cache-write=6.25 cache-read=0.5
|
|
47
|
+
limits context=1000000 max-tokens=16384
|
|
48
|
+
}
|
|
49
|
+
model "claude-opus-4-5" name="Claude Opus 4.5" {
|
|
50
|
+
reasoning #true
|
|
51
|
+
input "text" "image"
|
|
52
|
+
cost input=5 output=25 cache-write=6.25 cache-read=0.5
|
|
53
|
+
limits context=200000 max-tokens=16384
|
|
54
|
+
}
|
|
55
|
+
model "claude-sonnet-5" name="Claude Sonnet 5" {
|
|
56
|
+
reasoning #true
|
|
57
|
+
input "text" "image"
|
|
58
|
+
cost input=2 output=10 cache-write=2.5 cache-read=0.2
|
|
59
|
+
limits context=1000000 max-tokens=16384
|
|
60
|
+
}
|
|
61
|
+
model "claude-sonnet-4-6" name="Claude Sonnet 4.6" {
|
|
62
|
+
reasoning #true
|
|
63
|
+
input "text" "image"
|
|
64
|
+
cost input=3 output=15 cache-write=3.75 cache-read=0.3
|
|
65
|
+
limits context=1000000 max-tokens=16384
|
|
66
|
+
}
|
|
67
|
+
model "claude-sonnet-4-5" name="Claude Sonnet 4.5" {
|
|
68
|
+
reasoning #true
|
|
69
|
+
input "text" "image"
|
|
70
|
+
cost input=3 output=15 cache-write=3.75 cache-read=0.3
|
|
71
|
+
limits context=200000 max-tokens=16384
|
|
72
|
+
}
|
|
73
|
+
model "claude-haiku-4-5" name="Claude Haiku 4.5" {
|
|
74
|
+
reasoning #true
|
|
75
|
+
input "text" "image"
|
|
76
|
+
cost input=1 output=5 cache-write=1.25 cache-read=0.1
|
|
77
|
+
limits context=200000 max-tokens=16384
|
|
78
|
+
}
|
|
79
|
+
model "openai-gpt-5.1" name="GPT-5.1" api="openai-completions" base-url="https://snowflake-account.invalid/api/v2/cortex/v1" {
|
|
80
|
+
reasoning #true
|
|
81
|
+
input "text" "image"
|
|
82
|
+
cost input=1.25 output=10 cache-write=0 cache-read=0.13
|
|
83
|
+
limits context=272000 max-tokens=16384
|
|
84
|
+
}
|
|
85
|
+
model "openai-gpt-5" name="GPT-5" api="openai-completions" base-url="https://snowflake-account.invalid/api/v2/cortex/v1" {
|
|
86
|
+
reasoning #true
|
|
87
|
+
input "text" "image"
|
|
88
|
+
cost input=1.25 output=10 cache-write=0 cache-read=0.13
|
|
89
|
+
limits context=272000 max-tokens=16384
|
|
90
|
+
}
|
|
91
|
+
model "openai-gpt-5-mini" name="GPT-5 Mini" api="openai-completions" base-url="https://snowflake-account.invalid/api/v2/cortex/v1" {
|
|
92
|
+
reasoning #true
|
|
93
|
+
input "text" "image"
|
|
94
|
+
cost input=0.25 output=2 cache-write=0 cache-read=0.03
|
|
95
|
+
limits context=272000 max-tokens=16384
|
|
96
|
+
}
|
|
97
|
+
model "openai-gpt-5-nano" name="GPT-5 Nano" api="openai-completions" base-url="https://snowflake-account.invalid/api/v2/cortex/v1" {
|
|
98
|
+
reasoning #true
|
|
99
|
+
input "text" "image"
|
|
100
|
+
cost input=0.06 output=0.44 cache-write=0 cache-read=0.01
|
|
101
|
+
limits context=272000 max-tokens=16384
|
|
102
|
+
}
|
|
103
|
+
model "openai-gpt-4.1" name="GPT-4.1" api="openai-completions" base-url="https://snowflake-account.invalid/api/v2/cortex/v1" {
|
|
104
|
+
reasoning #false
|
|
105
|
+
input "text" "image"
|
|
106
|
+
cost input=2 output=8 cache-write=0 cache-read=0.5
|
|
107
|
+
limits context=128000 max-tokens=16384
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Claude thinking modes and effort ladders come from the Anthropic lineage rules
|
|
112
|
+
// (classes/anthropic.kdl). Live Cortex probes matched them: Opus 4.7+/Sonnet 5
|
|
113
|
+
// accept xhigh and max; Opus 4.6 and Sonnet 4.6 reject xhigh.
|
|
114
|
+
// Cortex compatibility chart: ephemeral 5-minute caching and Bedrock-compatible betas only.
|
|
115
|
+
class "anthropic" {
|
|
116
|
+
supports-eager-tool-input-streaming #false
|
|
117
|
+
supports-long-cache-retention #false
|
|
118
|
+
}
|
|
119
|
+
// Cortex documents reasoning_effort none/minimal/low/medium/high. Prefixed ids
|
|
120
|
+
// (openai-gpt-*) carry no `gpt` family, so the <5.2 lineage ladder is restated
|
|
121
|
+
// here; 5.2+ rows fall through to the unscoped lineage ladders in classes/openai.kdl.
|
|
122
|
+
class "openai" {
|
|
123
|
+
revision ">=5 <5.2" {
|
|
124
|
+
thinking-mode "effort"
|
|
125
|
+
thinking-efforts "minimal" "low" "medium" "high"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Cortex compatibility chart: max_tokens/store are hard errors; non-OpenAI backends accept user/assistant/system roles only.
|
|
129
|
+
on-api "openai-completions" {
|
|
130
|
+
max-tokens-field "max_completion_tokens"
|
|
131
|
+
supports-store #false
|
|
132
|
+
supports-developer-role #false
|
|
133
|
+
supports-reasoning-effort #true
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -351,6 +351,8 @@ behavior {
|
|
|
351
351
|
alias "claude-opus-4-6" peer-id="claude-opus-4-6@default"
|
|
352
352
|
alias "claude-sonnet-4-5" peer-id="claude-sonnet-4-5@20250929"
|
|
353
353
|
alias "claude-sonnet-4-6" peer-id="claude-sonnet-4-6@default"
|
|
354
|
+
alias "claude-opus-5-5" peer-id="claude-opus-5-5@default"
|
|
355
|
+
alias "claude-sonnet-5-5" peer-id="claude-sonnet-5-5@default"
|
|
354
356
|
}
|
|
355
357
|
// SuperGrok surfaces a few models under IDs that differ from their public
|
|
356
358
|
// xai equivalent, so the exact-id price mirror misses them.
|
|
@@ -88,6 +88,24 @@ collapse {
|
|
|
88
88
|
mode "budget"
|
|
89
89
|
efforts "minimal" "low" "medium" "high"
|
|
90
90
|
}
|
|
91
|
+
variant-family "google-antigravity" "claude-opus-5-5" name="Claude Opus 5.5" {
|
|
92
|
+
members "claude-opus-5-5-low" "claude-opus-5-5-medium" "claude-opus-5-5-high"
|
|
93
|
+
route "low" "claude-opus-5-5-low"
|
|
94
|
+
route "medium" "claude-opus-5-5-medium"
|
|
95
|
+
route "high" "claude-opus-5-5-high"
|
|
96
|
+
mode "budget"
|
|
97
|
+
efforts "low" "medium" "high"
|
|
98
|
+
requires-effort #true
|
|
99
|
+
}
|
|
100
|
+
variant-family "google-antigravity" "claude-sonnet-5-5" name="Claude Sonnet 5.5" {
|
|
101
|
+
members "claude-sonnet-5-5-low" "claude-sonnet-5-5-medium" "claude-sonnet-5-5-high"
|
|
102
|
+
route "low" "claude-sonnet-5-5-low"
|
|
103
|
+
route "medium" "claude-sonnet-5-5-medium"
|
|
104
|
+
route "high" "claude-sonnet-5-5-high"
|
|
105
|
+
mode "budget"
|
|
106
|
+
efforts "low" "medium" "high"
|
|
107
|
+
requires-effort #true
|
|
108
|
+
}
|
|
91
109
|
variant-family "google-antigravity" "claude-sonnet-4-6" name="Claude Sonnet 4.6" {
|
|
92
110
|
members "claude-sonnet-4-6" "claude-sonnet-4-6-thinking"
|
|
93
111
|
mode "budget"
|