@linxiraos/pi-catalog 1.2.0 → 1.3.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 +79 -0
- package/README.md +4 -2
- package/THIRD-PARTY-NOTICES.txt +55 -5
- package/dist/types/build.d.ts +3 -2
- package/dist/types/compat/auth-ids.d.ts +2 -2
- package/dist/types/compat/axes.d.ts +1 -1
- package/dist/types/compat/behavior.d.ts +5 -0
- package/dist/types/compat/catalog-endpoint.d.ts +8 -0
- package/dist/types/compat/image-tokenization.d.ts +9 -1
- package/dist/types/compat/judgment-images.d.ts +25 -0
- package/dist/types/compat/provider-ids.d.ts +1 -1
- package/dist/types/compat/request-compression.d.ts +23 -0
- package/dist/types/compat/request-size.d.ts +12 -3
- package/dist/types/compat/thinking-replay.d.ts +9 -0
- package/dist/types/compat/types.d.ts +4 -0
- package/dist/types/discovery/antigravity.d.ts +7 -0
- package/dist/types/model-cache.d.ts +7 -0
- package/dist/types/model-manager.d.ts +6 -0
- package/dist/types/model-thinking.d.ts +11 -1
- package/dist/types/models.d.ts +16 -1
- package/dist/types/pricing.d.ts +37 -1
- package/dist/types/provider-models/openai-compat.d.ts +18 -46
- package/dist/types/types.d.ts +63 -12
- package/dist/types/wire/codex.d.ts +2 -0
- package/package.json +6 -6
- package/src/build.d.ts +3 -2
- package/src/build.ts +159 -80
- package/src/compat/auth-ids.ts +2 -0
- package/src/compat/axes.d.ts +1 -1
- package/src/compat/axes.ts +129 -4
- package/src/compat/behavior.d.ts +5 -0
- package/src/compat/behavior.ts +9 -1
- package/src/compat/cascade.ts +4 -1
- package/src/compat/catalog-endpoint.ts +43 -0
- package/src/compat/image-tokenization.ts +28 -10
- package/src/compat/judgment-images.ts +83 -0
- package/src/compat/provider-ids.d.ts +1 -1
- package/src/compat/provider-ids.ts +1 -0
- package/src/compat/request-compression.ts +43 -0
- package/src/compat/request-size.ts +20 -5
- package/src/compat/resolve.ts +90 -53
- package/src/compat/rules/README.md +32 -3
- package/src/compat/rules/auth/_order.kdl +1 -1
- package/src/compat/rules/auth/google-antigravity.kdl +1 -1
- package/src/compat/rules/auth/sambanova.kdl +9 -0
- package/src/compat/rules/auth/stencil.kdl +1 -1
- package/src/compat/rules/classes/anthropic.kdl +42 -2
- package/src/compat/rules/classes/deepseek.kdl +4 -0
- package/src/compat/rules/classes/gemini.kdl +46 -2
- package/src/compat/rules/classes/meta.kdl +7 -0
- package/src/compat/rules/classes/minimax.kdl +11 -1
- package/src/compat/rules/classes/openai.kdl +34 -3
- package/src/compat/rules/classes/xai.kdl +26 -0
- package/src/compat/rules/providers/amazon-bedrock.kdl +1 -0
- package/src/compat/rules/providers/anthropic.kdl +23 -0
- package/src/compat/rules/providers/azure.kdl +2 -0
- package/src/compat/rules/providers/cerebras.kdl +3 -0
- package/src/compat/rules/providers/cline-pass.kdl +16 -0
- package/src/compat/rules/providers/commandcode.kdl +10 -0
- package/src/compat/rules/providers/cursor.kdl +50 -1
- package/src/compat/rules/providers/deepinfra.kdl +3 -1
- package/src/compat/rules/providers/devin.kdl +117 -6
- package/src/compat/rules/providers/factory-droid.kdl +6 -0
- package/src/compat/rules/providers/firepass.kdl +15 -0
- package/src/compat/rules/providers/fireworks.kdl +26 -0
- package/src/compat/rules/providers/github-copilot.kdl +24 -0
- package/src/compat/rules/providers/google-antigravity.kdl +37 -0
- package/src/compat/rules/providers/google-gemini-cli.kdl +1 -0
- package/src/compat/rules/providers/google-vertex.kdl +5 -0
- package/src/compat/rules/providers/google.kdl +1 -0
- package/src/compat/rules/providers/image-tokenization.kdl +2 -1
- package/src/compat/rules/providers/local.kdl +8 -1
- package/src/compat/rules/providers/meta.kdl +16 -0
- package/src/compat/rules/providers/moonshot.kdl +2 -0
- package/src/compat/rules/providers/muse-code.kdl +49 -0
- package/src/compat/rules/providers/native-tools.kdl +3 -0
- package/src/compat/rules/providers/ollama-cloud.kdl +10 -0
- package/src/compat/rules/providers/openai-codex.kdl +29 -5
- package/src/compat/rules/providers/openai.kdl +1 -0
- package/src/compat/rules/providers/opencode-go.kdl +35 -0
- package/src/compat/rules/providers/opencode-zen.kdl +4 -0
- package/src/compat/rules/providers/openrouter.kdl +19 -0
- package/src/compat/rules/providers/sambanova.kdl +60 -0
- package/src/compat/rules/providers/tool-call-names.kdl +37 -0
- package/src/compat/rules/providers/typesafe.kdl +11 -0
- package/src/compat/rules/providers/umans.kdl +7 -0
- package/src/compat/rules/providers/venice.kdl +7 -0
- package/src/compat/rules/providers/xai-oauth.kdl +16 -6
- package/src/compat/rules/providers/xai.kdl +3 -0
- package/src/compat/rules/providers/zai.kdl +5 -0
- package/src/compat/rules/runtime/behavior.kdl +128 -8
- package/src/compat/rules/taxonomy/_collapse.kdl +11 -0
- package/src/compat/rules/taxonomy/gemma.kdl +1 -0
- package/src/compat/rules/taxonomy/meta.kdl +7 -0
- package/src/compat/rules/taxonomy/openai.kdl +2 -0
- package/src/compat/rules.json +1 -1
- package/src/compat/thinking-replay.ts +33 -0
- package/src/compat/types.d.ts +4 -0
- package/src/compat/types.ts +4 -0
- package/src/discovery/antigravity.d.ts +7 -0
- package/src/discovery/antigravity.ts +13 -0
- package/src/discovery/codex.ts +0 -4
- package/src/discovery/cursor.ts +28 -20
- package/src/discovery/devin.ts +7 -8
- package/src/model-cache.d.ts +7 -0
- package/src/model-cache.ts +8 -0
- package/src/model-manager.d.ts +6 -0
- package/src/model-manager.ts +41 -21
- package/src/model-thinking.d.ts +80 -0
- package/src/model-thinking.ts +13 -1
- package/src/model-tokenizer.ts +7 -1
- package/src/models.d.ts +16 -1
- package/src/models.json +1 -1
- package/src/models.ts +26 -12
- package/src/pricing.d.ts +37 -1
- package/src/pricing.ts +123 -12
- package/src/provider-models/bundled-references.ts +5 -2
- package/src/provider-models/cache-provider-id.ts +1 -1
- package/src/provider-models/descriptors.ts +2 -0
- package/src/provider-models/google.ts +7 -1
- package/src/provider-models/openai-compat.d.ts +18 -46
- package/src/provider-models/openai-compat.ts +188 -104
- package/src/provider-models/special.ts +1 -0
- package/src/types.d.ts +63 -12
- package/src/types.ts +71 -9
- package/src/wire/codex.d.ts +2 -0
- package/src/wire/codex.ts +17 -0
|
@@ -8,12 +8,27 @@ provider "cursor" {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
thinking-mode "effort"
|
|
11
|
-
// Cursor's
|
|
11
|
+
// Cursor relays its upstream's image count (Claude 600, GPT 1,500) and took
|
|
12
|
+
// a 64 MB body; 60 images at the 500 KiB resize target stay near 31 MB.
|
|
13
|
+
image-count-budget 60
|
|
14
|
+
// Cursor's default route selects a differently priced backing model per
|
|
15
|
+
// request, Claude and GPT included, so it keeps Claude's image count and
|
|
16
|
+
// their 1024px edge; Gemini and Composer read 1024px pages as well as
|
|
17
|
+
// larger ones.
|
|
12
18
|
models "default" {
|
|
13
19
|
pricing-status "variable"
|
|
20
|
+
image-count-budget 20
|
|
21
|
+
image-max-edge 1024
|
|
14
22
|
}
|
|
15
23
|
|
|
24
|
+
// Cursor re-encodes every image for its Claude and GPT upstreams to fit
|
|
25
|
+
// 1024×1024 before the model reads it; Gemini and Composer read larger
|
|
26
|
+
// images as sent.
|
|
16
27
|
class "anthropic" {
|
|
28
|
+
image-max-edge 1024
|
|
29
|
+
// Past 20 images Claude rejects any image edge over 3,000 px, checked
|
|
30
|
+
// before Cursor downsizes.
|
|
31
|
+
image-count-budget 20
|
|
17
32
|
family "fable" {
|
|
18
33
|
requires-cursor-tool-schema-projection #true
|
|
19
34
|
// Cursor advertised Context window 300k (Max 1M recovered elsewhere).
|
|
@@ -56,6 +71,8 @@ provider "cursor" {
|
|
|
56
71
|
}
|
|
57
72
|
}
|
|
58
73
|
class "openai" {
|
|
74
|
+
// GPT images are fitted to 1024×1024 like Claude's (see above).
|
|
75
|
+
image-max-edge 1024
|
|
59
76
|
revision ">=5.6 <5.7" {
|
|
60
77
|
// Cursor advertised GPT-5.6 Sol/Terra/Luna Context window 272k;
|
|
61
78
|
// raises unlabeled -fast variants from the 200k default.
|
|
@@ -433,6 +450,26 @@ provider "cursor" {
|
|
|
433
450
|
cache-write 0
|
|
434
451
|
}
|
|
435
452
|
}
|
|
453
|
+
// Gemini 4 Argon: $2/$10, cache read $0.10. Other Models bill at the
|
|
454
|
+
// model's API price, so the card follows Google's list-price increase to
|
|
455
|
+
// $4/$20, cache read $0.20, from 2026-12-01 (midnight US Pacific).
|
|
456
|
+
models "gemini-4-argon" {
|
|
457
|
+
cost-patch {
|
|
458
|
+
input 2.0
|
|
459
|
+
output 10.0
|
|
460
|
+
cache-read 0.1
|
|
461
|
+
cache-write 0
|
|
462
|
+
effective-rates {
|
|
463
|
+
list-price {
|
|
464
|
+
effective-from "2026-12-01T08:00:00Z"
|
|
465
|
+
input 4.0
|
|
466
|
+
output 20.0
|
|
467
|
+
cache-read 0.2
|
|
468
|
+
cache-write 0
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
436
473
|
// GLM 5.2: $1.40/$4.40, cache read $0.26.
|
|
437
474
|
models "glm-5.2" {
|
|
438
475
|
cost-patch {
|
|
@@ -711,3 +748,15 @@ provider "cursor" {
|
|
|
711
748
|
}
|
|
712
749
|
}
|
|
713
750
|
}
|
|
751
|
+
|
|
752
|
+
// The same 1024px edge for targets that name only Cursor's wire (`{ api, id }`,
|
|
753
|
+
// no host). priority=-1: a fallback, so the equally specific provider rule
|
|
754
|
+
// above wins when both match.
|
|
755
|
+
on-api "cursor-agent" {
|
|
756
|
+
class "anthropic" priority=-1 {
|
|
757
|
+
image-max-edge 1024
|
|
758
|
+
}
|
|
759
|
+
class "openai" priority=-1 {
|
|
760
|
+
image-max-edge 1024
|
|
761
|
+
}
|
|
762
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Catalog entry for "deepinfra"
|
|
1
|
+
// Catalog entry for "deepinfra".
|
|
2
2
|
|
|
3
3
|
provider "deepinfra" {
|
|
4
4
|
default-model "deepseek-ai/DeepSeek-V4-Flash-0731"
|
|
@@ -9,6 +9,8 @@ provider "deepinfra" {
|
|
|
9
9
|
image "openai-images"
|
|
10
10
|
tts "openai-speech"
|
|
11
11
|
}
|
|
12
|
+
// Same-provider image-generation swap target for chat models.
|
|
13
|
+
image-model "black-forest-labs/FLUX-2-pro"
|
|
12
14
|
|
|
13
15
|
seed base-url="https://api.deepinfra.com/v1/openai" bundle="always" {
|
|
14
16
|
model "black-forest-labs/FLUX-2-pro" name="FLUX.2 Pro" api="openai-images" {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Catalog entry for "devin"
|
|
1
|
+
// Catalog entry and deployment contract for "devin".
|
|
2
2
|
|
|
3
3
|
provider "devin" {
|
|
4
4
|
default-model "swe-1-6"
|
|
@@ -45,7 +45,7 @@ provider "devin" {
|
|
|
45
45
|
// (PRO reports $0 for SWE-2, SWE-1.7, and GLM-5.2 High). `cost-fallback`
|
|
46
46
|
// seeds the enterprise-tier list price only when upstream reports no
|
|
47
47
|
// token price, so accounts whose discovery does carry dimensions keep
|
|
48
|
-
// their real rates.
|
|
48
|
+
// their real rates. None of these models publishes a cache-write rate.
|
|
49
49
|
|
|
50
50
|
// SWE-2: enterprise promo is 75% off list through 2026-12-31; list
|
|
51
51
|
// pricing ($3/$15, $0.30 cache read) applies from 2027-01-01.
|
|
@@ -54,14 +54,14 @@ provider "devin" {
|
|
|
54
54
|
input 0.75
|
|
55
55
|
output 3.75
|
|
56
56
|
cache-read 0.075
|
|
57
|
-
cache-write 0
|
|
57
|
+
cache-write 0
|
|
58
58
|
effective-rates {
|
|
59
59
|
list-price {
|
|
60
60
|
effective-from "2027-01-01T00:00:00Z"
|
|
61
61
|
input 3
|
|
62
62
|
output 15
|
|
63
63
|
cache-read 0.3
|
|
64
|
-
cache-write
|
|
64
|
+
cache-write 0
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -74,7 +74,7 @@ provider "devin" {
|
|
|
74
74
|
input 0.5
|
|
75
75
|
output 2.5
|
|
76
76
|
cache-read 0.2
|
|
77
|
-
cache-write 0
|
|
77
|
+
cache-write 0
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
models "glm-5-2" {
|
|
@@ -82,7 +82,118 @@ provider "devin" {
|
|
|
82
82
|
input 1.4
|
|
83
83
|
output 4.4
|
|
84
84
|
cache-read 0.26
|
|
85
|
-
cache-write
|
|
85
|
+
cache-write 0
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
|
|
89
|
+
// Cache-write rates come from Devin's published price card
|
|
90
|
+
// (https://docs.devin.ai/desktop/models, `modelCostData`);
|
|
91
|
+
// `GetCliModelConfigs` and the v2alpha models endpoint carry none. Chat
|
|
92
|
+
// usage reports cache-write tokens for Claude and GPT-5.6+ (Gemini
|
|
93
|
+
// reports none), and the card bills them at 1.25x input. Earlier GPT,
|
|
94
|
+
// Grok, Kimi, GLM, DeepSeek, and SWE rows publish no cache-write rate.
|
|
95
|
+
// The GPT selector stops at the next major generation, like the tiers
|
|
96
|
+
// below, so an unpublished generation records no cache-write price.
|
|
97
|
+
class "anthropic" {
|
|
98
|
+
cache-write-rate 1.25
|
|
99
|
+
}
|
|
100
|
+
class "openai" {
|
|
101
|
+
family "gpt" {
|
|
102
|
+
revision ">=5.6 <7" {
|
|
103
|
+
cache-write-rate 1.25
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// residue: Adaptive is a router uid with no model identity; its card
|
|
108
|
+
// bills cache writes at the input rate.
|
|
109
|
+
models "adaptive" {
|
|
110
|
+
cache-write-rate 1.0
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Long-context tiers come from the same page's `longContextFamilies`,
|
|
114
|
+
// which no Devin endpoint carries. A tier bills the whole request once
|
|
115
|
+
// total prompt tokens (uncached input, cache reads, and cache writes)
|
|
116
|
+
// exceed the threshold. GPT and Gemini Pro tiers double input and cache
|
|
117
|
+
// rates and raise output 1.5x; Grok doubles every leg. Cache writes
|
|
118
|
+
// follow `cache-write-rate`. Each selector stops at the next major
|
|
119
|
+
// generation, and Gemini Pro skips 3.0: the page lists GPT 5.4–6.1,
|
|
120
|
+
// Gemini 2.5 and 3.1 Pro, and Grok 4.5–4.7, so an unlisted generation
|
|
121
|
+
// carries no tier.
|
|
122
|
+
class "openai" {
|
|
123
|
+
family "gpt" {
|
|
124
|
+
// Every GPT-6 lane, Fast (`-priority`) lanes included.
|
|
125
|
+
revision ">=6 <7" {
|
|
126
|
+
long-context-cost {
|
|
127
|
+
input-threshold 272000
|
|
128
|
+
multiplier 2.0
|
|
129
|
+
output-multiplier 1.5
|
|
130
|
+
}
|
|
131
|
+
// mini and nano share the class rank but have no published tier.
|
|
132
|
+
models token="mini" {
|
|
133
|
+
long-context-cost {}
|
|
134
|
+
}
|
|
135
|
+
models token="nano" {
|
|
136
|
+
long-context-cost {}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// residue: GPT-5.4 through 5.6 tiers cover only the standard lanes; the
|
|
142
|
+
// Fast (`-priority`) lanes and GPT-5.4 mini share their class rank.
|
|
143
|
+
models "gpt-5-4" "gpt-5-4-none" "gpt-5-4-low" "gpt-5-4-medium" "gpt-5-4-high" "gpt-5-4-xhigh" \
|
|
144
|
+
"gpt-5-5" "gpt-5-5-none" "gpt-5-5-low" "gpt-5-5-medium" "gpt-5-5-high" "gpt-5-5-xhigh" \
|
|
145
|
+
"gpt-5-6-sol" "gpt-5-6-sol-none" "gpt-5-6-sol-low" "gpt-5-6-sol-medium" "gpt-5-6-sol-high" \
|
|
146
|
+
"gpt-5-6-sol-xhigh" "gpt-5-6-sol-max" \
|
|
147
|
+
"gpt-5-6-terra" "gpt-5-6-terra-none" "gpt-5-6-terra-low" "gpt-5-6-terra-medium" "gpt-5-6-terra-high" \
|
|
148
|
+
"gpt-5-6-terra-xhigh" "gpt-5-6-terra-max" \
|
|
149
|
+
"gpt-5-6-luna" "gpt-5-6-luna-none" "gpt-5-6-luna-low" "gpt-5-6-luna-medium" "gpt-5-6-luna-high" \
|
|
150
|
+
"gpt-5-6-luna-xhigh" "gpt-5-6-luna-max" {
|
|
151
|
+
long-context-cost {
|
|
152
|
+
input-threshold 272000
|
|
153
|
+
multiplier 2.0
|
|
154
|
+
output-multiplier 1.5
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
class "gemini" {
|
|
158
|
+
family "pro" {
|
|
159
|
+
revision ">=2.5 <3" {
|
|
160
|
+
long-context-cost {
|
|
161
|
+
input-threshold 200000
|
|
162
|
+
multiplier 2.0
|
|
163
|
+
output-multiplier 1.5
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
revision ">=3.1 <4" {
|
|
167
|
+
long-context-cost {
|
|
168
|
+
input-threshold 200000
|
|
169
|
+
multiplier 2.0
|
|
170
|
+
output-multiplier 1.5
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// residue: Gemini 2.5 Pro's legacy uid carries no model identity.
|
|
176
|
+
models "MODEL_GOOGLE_GEMINI_2_5_PRO" {
|
|
177
|
+
long-context-cost {
|
|
178
|
+
input-threshold 200000
|
|
179
|
+
multiplier 2.0
|
|
180
|
+
output-multiplier 1.5
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
class "xai" {
|
|
184
|
+
family "grok" {
|
|
185
|
+
revision ">=4.5 <5" {
|
|
186
|
+
long-context-cost {
|
|
187
|
+
input-threshold 200000
|
|
188
|
+
multiplier 2.0
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Devin's Cascade catalog reports each model's thinking surface; a row
|
|
196
|
+
// without one carries no reasoning ladder.
|
|
197
|
+
on-api "devin-agent" {
|
|
198
|
+
trust-explicit-thinking-only #true
|
|
88
199
|
}
|
|
@@ -691,6 +691,12 @@ provider "factory-droid" {
|
|
|
691
691
|
thinking-requires-effort #true
|
|
692
692
|
thinking-default-level "medium"
|
|
693
693
|
}
|
|
694
|
+
// The native 922K window is authoritative; the class-wide gpt-5.4 1M patch does not apply.
|
|
695
|
+
class "openai" {
|
|
696
|
+
models "gpt-5.4" {
|
|
697
|
+
limits-patch {}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
694
700
|
models "gpt-5.4-fast" {
|
|
695
701
|
routing-family "openai"
|
|
696
702
|
upstream-rotation "openai" "azure_openai"
|
|
@@ -38,4 +38,19 @@ provider "firepass" {
|
|
|
38
38
|
thinking-mode "effort"
|
|
39
39
|
thinking-efforts "low" "high" "max"
|
|
40
40
|
}
|
|
41
|
+
// The Fire Pass router shares Fireworks' 32,768 Kimi K2 output cap (#1849).
|
|
42
|
+
class "kimi" {
|
|
43
|
+
family "k2" {
|
|
44
|
+
max-tokens-ceiling 32768
|
|
45
|
+
}
|
|
46
|
+
family "k2.5" {
|
|
47
|
+
max-tokens-ceiling 32768
|
|
48
|
+
}
|
|
49
|
+
family "k2.6" {
|
|
50
|
+
max-tokens-ceiling 32768
|
|
51
|
+
}
|
|
52
|
+
family "k2-thinking" {
|
|
53
|
+
max-tokens-ceiling 32768
|
|
54
|
+
}
|
|
55
|
+
}
|
|
41
56
|
}
|
|
@@ -24,6 +24,32 @@ provider "fireworks" priority=-1 {
|
|
|
24
24
|
class "unknown" {
|
|
25
25
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
26
26
|
}
|
|
27
|
+
// Replaces the Fireworks Kimi output caps in provider-models/openai-compat.ts
|
|
28
|
+
// (#1849). The K2 family ships long reasoning traces Fireworks bounds at
|
|
29
|
+
// 32,768 output tokens; the control plane reports no output budget, so the
|
|
30
|
+
// cap is also the fallback. K2.7-Code serves its full 65,536 (verified with
|
|
31
|
+
// a 58,971-token completion), which seeds rows that report none.
|
|
32
|
+
class "kimi" {
|
|
33
|
+
family "k2" {
|
|
34
|
+
max-tokens-fallback 32768
|
|
35
|
+
max-tokens-ceiling 32768
|
|
36
|
+
}
|
|
37
|
+
family "k2.5" {
|
|
38
|
+
max-tokens-fallback 32768
|
|
39
|
+
max-tokens-ceiling 32768
|
|
40
|
+
}
|
|
41
|
+
family "k2.6" {
|
|
42
|
+
max-tokens-fallback 32768
|
|
43
|
+
max-tokens-ceiling 32768
|
|
44
|
+
}
|
|
45
|
+
family "k2-thinking" {
|
|
46
|
+
max-tokens-fallback 32768
|
|
47
|
+
max-tokens-ceiling 32768
|
|
48
|
+
}
|
|
49
|
+
family "k2.7-code" {
|
|
50
|
+
max-tokens-fallback 65536
|
|
51
|
+
}
|
|
52
|
+
}
|
|
27
53
|
// residue: taxonomy ranks and exact globs do not isolate these models.
|
|
28
54
|
models "deepseek-v4-flash" {
|
|
29
55
|
requires-reasoning-content-for-all-assistant-turns #true
|
|
@@ -14,6 +14,30 @@ provider "github-copilot" {
|
|
|
14
14
|
// not belong to this connection`: a resumed session rebuilds prior turns
|
|
15
15
|
// until its first response.
|
|
16
16
|
connection-bound-native-history #true
|
|
17
|
+
// Per-plan API hosts the Copilot token resolves to; the bundled base URL
|
|
18
|
+
// is `api.githubcopilot.com`.
|
|
19
|
+
endpoint-hosts "api.individual.githubcopilot.com" "api.business.githubcopilot.com" \
|
|
20
|
+
"api.enterprise.githubcopilot.com"
|
|
21
|
+
// `/chat/completions`, `/responses` and `/v1/messages` decode zstd, br and
|
|
22
|
+
// gzip request bodies (deflate is rejected), probed live 2026-10. GHE.com
|
|
23
|
+
// tenants (`copilot-api.<tenant>.ghe.com`) are unverified and stay plain.
|
|
24
|
+
request-encodings "zstd" "gzip"
|
|
25
|
+
request-encoding-rejection "invalid_request_body|[Ff]ailed to (?:parse|read) request"
|
|
26
|
+
// Replaces the provider-keyed strict Responses tool-call/result pairing.
|
|
27
|
+
strict-responses-pairing #true
|
|
28
|
+
// Replaces the provider check that disabled reasoning params on chat completions.
|
|
29
|
+
on-api "openai-completions" {
|
|
30
|
+
supports-reasoning-params #false
|
|
31
|
+
}
|
|
32
|
+
// Copilot caps GPT-5.4 below the lineage's 1M window (model-limits in
|
|
33
|
+
// runtime/behavior.kdl), so the class-wide window patch and uncapped
|
|
34
|
+
// window do not apply here.
|
|
35
|
+
class "openai" {
|
|
36
|
+
models "gpt-5.4" {
|
|
37
|
+
limits-patch {}
|
|
38
|
+
long-context-window-uncapped #false
|
|
39
|
+
}
|
|
40
|
+
}
|
|
17
41
|
class "anthropic" {
|
|
18
42
|
revision ">=4 <4.6" {
|
|
19
43
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
@@ -9,6 +9,9 @@ provider "google-antigravity" {
|
|
|
9
9
|
image "google-gemini-cli"
|
|
10
10
|
}
|
|
11
11
|
web-search "gemini"
|
|
12
|
+
// No size rejection up to a 64 MB body; 60 images at the 500 KiB resize
|
|
13
|
+
// target stay near 41 MB. Gemini counts images only against its context.
|
|
14
|
+
image-count-budget 60
|
|
12
15
|
|
|
13
16
|
seed api="google-gemini-cli" base-url="https://daily-cloudcode-pa.googleapis.com" bundle="always" {
|
|
14
17
|
model "gemini-3-pro-image" name="Gemini 3 Pro Image" {
|
|
@@ -26,6 +29,29 @@ provider "google-antigravity" {
|
|
|
26
29
|
preserves-max-output-tokens #false
|
|
27
30
|
|
|
28
31
|
class "anthropic" {
|
|
32
|
+
// Claude here is Vertex Anthropic: one image whose base64 passes
|
|
33
|
+
// 5,242,880 bytes is a 400 "image exceeds 5 MB maximum" (half the
|
|
34
|
+
// direct API's 10 MiB), and 8001 px is a 400 like on the direct API.
|
|
35
|
+
// Declaring the contract makes the Cloud Code Assist wire clamp images
|
|
36
|
+
// for Claude the way `anthropic-messages` does; Gemini on the same
|
|
37
|
+
// gateway has no such limits and keeps them unset.
|
|
38
|
+
max-image-dimension 8000
|
|
39
|
+
max-image-payload-bytes 5242880
|
|
40
|
+
// The Claude upstream rejects a message over 30 MB and, past 20 images,
|
|
41
|
+
// any image edge over 3,000 px. The clamp above caps each image; with no
|
|
42
|
+
// byte budget on this wire, the count bounds the body.
|
|
43
|
+
image-count-budget 20
|
|
44
|
+
// Cache-warmer lifetime. Claude here is Vertex Anthropic, whose prompt
|
|
45
|
+
// cache has a five-minute default TTL refreshed on every hit; this wire
|
|
46
|
+
// sends no `cache_control`, so the 1h tier is never requested.
|
|
47
|
+
// https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/partner-models/claude/prompt-caching
|
|
48
|
+
// Gemini declares none: its implicit cache keeps entries for a
|
|
49
|
+
// load-dependent time ("caches always deleted within 24 hours"), so no
|
|
50
|
+
// fixed lifetime exists to warm against.
|
|
51
|
+
// https://cloud.google.com/blog/products/ai-machine-learning/vertex-ai-context-caching
|
|
52
|
+
prompt-cache {
|
|
53
|
+
short 300
|
|
54
|
+
}
|
|
29
55
|
family "opus" {
|
|
30
56
|
thinking-mode "budget"
|
|
31
57
|
}
|
|
@@ -59,6 +85,17 @@ provider "google-antigravity" {
|
|
|
59
85
|
}
|
|
60
86
|
}
|
|
61
87
|
}
|
|
88
|
+
// Cloud Code Assist bills a Gemini 2.5 or 3.x image a fixed 1,089 tokens
|
|
89
|
+
// from 32px to 2048px (extreme strips bill less); priority=1 outranks the
|
|
90
|
+
// lineage's 1,120 at equal specificity. verified: billing matched this rule
|
|
91
|
+
// on Gemini 2.5 Flash Lite, 3.1 Flash Lite and 3.8 Flash.
|
|
92
|
+
class "gemini" priority=1 {
|
|
93
|
+
image-tokenization {
|
|
94
|
+
regime "fixed"
|
|
95
|
+
verified #true
|
|
96
|
+
tokens 1089
|
|
97
|
+
}
|
|
98
|
+
}
|
|
62
99
|
// residue: taxonomy ranks and exact globs do not isolate these models.
|
|
63
100
|
models "claude-opus-4-6" {
|
|
64
101
|
thinking-efforts "minimal" "low" "medium" "high"
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
provider "google-vertex" {
|
|
4
4
|
default-model "gemini-3.1-pro-preview"
|
|
5
5
|
allow-unauthenticated #true
|
|
6
|
+
image-count-budget 200
|
|
6
7
|
|
|
7
8
|
// Replaces google-shared.ts stripping functionCall/functionResponse ids for Vertex.
|
|
8
9
|
supports-function-part-id #false
|
|
@@ -27,6 +28,10 @@ provider "google-vertex" {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
class "anthropic" {
|
|
31
|
+
// Vertex rawPredict honors `cache_control.ttl: "1h"` (writes bill to
|
|
32
|
+
// `ephemeral_1h_input_tokens`, entries outlive 5m) without any beta; the
|
|
33
|
+
// `extended-cache-ttl-2025-04-11` beta is rejected in `anthropic_beta`.
|
|
34
|
+
supports-long-cache-retention #true
|
|
30
35
|
revision ">=4.5 <4.6" {
|
|
31
36
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
32
37
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Image billing for readers whose lineage has no `image-tokenization` rule in
|
|
2
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.
|
|
3
|
+
// fallbacks, so a class-wide lineage rule (same specificity) always wins. None
|
|
4
|
+
// is `verified`: nobody measured the billing of the readers they price.
|
|
4
5
|
|
|
5
6
|
// OpenAI-compatible wires bill like GPT-5.5: 32px patches × 1.2, `auto` sized
|
|
6
7
|
// like `original`.
|
|
@@ -19,6 +19,13 @@ provider "local" {
|
|
|
19
19
|
limits
|
|
20
20
|
supports-tools #false
|
|
21
21
|
}
|
|
22
|
+
model "nemotron-streaming-en-0.6b" name="Nemotron Speech 0.6B (Streaming English)" {
|
|
23
|
+
reasoning #false
|
|
24
|
+
input "text"
|
|
25
|
+
cost input=0 output=0 cache-read=0 cache-write=0
|
|
26
|
+
limits
|
|
27
|
+
supports-tools #false
|
|
28
|
+
}
|
|
22
29
|
model "whisper-base" name="Whisper Base" {
|
|
23
30
|
reasoning #false
|
|
24
31
|
input "text"
|
|
@@ -101,7 +108,7 @@ provider "local" {
|
|
|
101
108
|
models "kokoro" {
|
|
102
109
|
kind "tts"
|
|
103
110
|
}
|
|
104
|
-
models "parakeet-tdt-0.6b-v3" "whisper-*" {
|
|
111
|
+
models "parakeet-tdt-0.6b-v3" "nemotron-streaming-en-0.6b" "whisper-*" {
|
|
105
112
|
kind "stt"
|
|
106
113
|
}
|
|
107
114
|
models "lfm*" "falcon-*" "qwen*" "llama3.2:3b" "gemma-3-1b" {
|
|
@@ -54,6 +54,19 @@ provider "meta" {
|
|
|
54
54
|
supports-reasoning-effort #true
|
|
55
55
|
include-encrypted-reasoning #true
|
|
56
56
|
}
|
|
57
|
+
// Muse Wonder: dev.meta.ai/docs/models + pricing-rate-limits (2026-10-12).
|
|
58
|
+
// `max` documented; no contributor tier on Model API. Meta publishes no
|
|
59
|
+
// output cap, so it takes the Muse Spark ceiling.
|
|
60
|
+
model "muse-wonder-1.0" name="Muse Wonder" {
|
|
61
|
+
reasoning #true
|
|
62
|
+
input "text" "image"
|
|
63
|
+
cost input=4 output=20 cache-read=0.2 cache-write=0
|
|
64
|
+
limits context=1048576 max-tokens=131072
|
|
65
|
+
thinking-mode "effort"
|
|
66
|
+
thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
|
|
67
|
+
supports-reasoning-effort #true
|
|
68
|
+
include-encrypted-reasoning #true
|
|
69
|
+
}
|
|
57
70
|
model "muse-spark-1.3-contributor" name="Muse Spark 1.3 (C)" {
|
|
58
71
|
reasoning #true
|
|
59
72
|
input "text" "image"
|
|
@@ -72,7 +85,10 @@ provider "meta" {
|
|
|
72
85
|
// api.meta.ai/v1 accepts only tool_choice "auto"; "none", "required" and named
|
|
73
86
|
// choices are rejected with 400 (verified 2026-09-10), so omit the field.
|
|
74
87
|
supports-tool-choice #false
|
|
88
|
+
// `/v1/models` carries no capability metadata: an id no seed or taxonomy
|
|
89
|
+
// knows is offered this ladder for the user to opt into.
|
|
75
90
|
class "unknown" {
|
|
91
|
+
thinking-unverified #true
|
|
76
92
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
77
93
|
thinking-mode "effort"
|
|
78
94
|
}
|
|
@@ -6,6 +6,8 @@ provider "moonshot" {
|
|
|
6
6
|
// as a fallback so China users need not learn MOONSHOT_API_KEY. (#2883)
|
|
7
7
|
env "MOONSHOT_API_KEY" "KIMI_API_KEY"
|
|
8
8
|
discovery label="Moonshot"
|
|
9
|
+
// Moonshot's China platform, selected with MOONSHOT_BASE_URL (#2883).
|
|
10
|
+
endpoint-hosts "api.moonshot.cn"
|
|
9
11
|
|
|
10
12
|
class "kimi" {
|
|
11
13
|
// Replaces the Moonshot Kimi thinking-format branch.
|
|
@@ -6,6 +6,46 @@ provider "muse-code" {
|
|
|
6
6
|
|
|
7
7
|
// Muse Code shares Meta Model API's model capabilities and equivalent token pricing.
|
|
8
8
|
seed api="openai-responses" base-url="https://api.meta.ai/v1" bundle="always" {
|
|
9
|
+
// Subscription-only rows: Model API serves neither Muse Wonder Full nor a
|
|
10
|
+
// Wonder contributor tier, so no published SKU prices them; costs are
|
|
11
|
+
// API-equivalent spend. Standard rows carry Muse Wonder's Standard-mode
|
|
12
|
+
// list price ($4/$0.20/$20; an estimate for Wonder Full). Contributor rows
|
|
13
|
+
// carry the measured subscription-meter burn: Wonder contributor moved
|
|
14
|
+
// the meter 1% per ~61-64K input / ~12K output tokens vs ~23-25K / ~4.8K
|
|
15
|
+
// for standard Wonder, i.e. $1.45-1.63 input and $7.55-8.00 output at the
|
|
16
|
+
// $4/$20 list (measured 2026-10-13, #15522). Cached input is unmeasured
|
|
17
|
+
// and takes the same 0.4x ratio. All accept image input and the `max`
|
|
18
|
+
// effort over the subscription key (verified 2026-10-12).
|
|
19
|
+
model "muse-wonder-1.0-contributor" name="Muse Wonder (C)" {
|
|
20
|
+
reasoning #true
|
|
21
|
+
input "text" "image"
|
|
22
|
+
cost input=1.6 output=8 cache-read=0.08 cache-write=0
|
|
23
|
+
limits context=1048576 max-tokens=131072
|
|
24
|
+
thinking-mode "effort"
|
|
25
|
+
thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
|
|
26
|
+
supports-reasoning-effort #true
|
|
27
|
+
include-encrypted-reasoning #true
|
|
28
|
+
}
|
|
29
|
+
model "muse-wonder-full-1.0" name="Muse Wonder Full" {
|
|
30
|
+
reasoning #true
|
|
31
|
+
input "text" "image"
|
|
32
|
+
cost input=4 output=20 cache-read=0.2 cache-write=0
|
|
33
|
+
limits context=1048576 max-tokens=131072
|
|
34
|
+
thinking-mode "effort"
|
|
35
|
+
thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
|
|
36
|
+
supports-reasoning-effort #true
|
|
37
|
+
include-encrypted-reasoning #true
|
|
38
|
+
}
|
|
39
|
+
model "muse-wonder-full-1.0-contributor" name="Muse Wonder Full (C)" {
|
|
40
|
+
reasoning #true
|
|
41
|
+
input "text" "image"
|
|
42
|
+
cost input=1.6 output=8 cache-read=0.08 cache-write=0
|
|
43
|
+
limits context=1048576 max-tokens=131072
|
|
44
|
+
thinking-mode "effort"
|
|
45
|
+
thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
|
|
46
|
+
supports-reasoning-effort #true
|
|
47
|
+
include-encrypted-reasoning #true
|
|
48
|
+
}
|
|
9
49
|
models-from "meta"
|
|
10
50
|
}
|
|
11
51
|
|
|
@@ -27,7 +67,16 @@ provider "muse-code" {
|
|
|
27
67
|
// `custom` tools are rejected with 400 "`custom` tools are not supported
|
|
28
68
|
// on this endpoint", so apply-patch must stay a function tool here.
|
|
29
69
|
edit-prompt-variant "compact"
|
|
70
|
+
on-api "openai-responses" {
|
|
71
|
+
// Spark 1.3 Contributor warmed siblings hit 10/10 vs 0/10 with per-child keys (2026-10-12).
|
|
72
|
+
// Meta documents shared-prefix prompt_cache_key routing; keep the opt-in on these exact Muse Code IDs.
|
|
73
|
+
models "muse-spark-1.3" "muse-spark-1.3-contributor" "muse-wonder-1.0" "muse-wonder-1.0-contributor" "muse-wonder-full-1.0" "muse-wonder-full-1.0-contributor" {
|
|
74
|
+
task-sibling-prompt-cache #true
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Same capability-less `/v1/models` as Meta: unknown ids are opt-in.
|
|
30
78
|
class "unknown" {
|
|
79
|
+
thinking-unverified #true
|
|
31
80
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
32
81
|
thinking-mode "effort"
|
|
33
82
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
// Cursor always exposes server-owned native operations, even with an empty tool catalog.
|
|
2
2
|
on-api "cursor-agent" {
|
|
3
3
|
requires-native-tools #true
|
|
4
|
+
// MCP schemas live in Cursor's server-side catalog and enter model context
|
|
5
|
+
// only when dynamically selected, not as a fixed cost on every turn.
|
|
6
|
+
tool-schemas-in-context #false
|
|
4
7
|
}
|
|
@@ -5,9 +5,14 @@ provider "ollama-cloud" {
|
|
|
5
5
|
env "OLLAMA_CLOUD_API_KEY"
|
|
6
6
|
discovery label="Ollama Cloud" oauth-provider="ollama-cloud"
|
|
7
7
|
|
|
8
|
+
// Legacy deployments can reject assistant thinking history (#1000).
|
|
9
|
+
strip-thinking-history #true
|
|
8
10
|
thinking-mode "effort"
|
|
9
11
|
// Same runtime as local Ollama: a trailing assistant turn is continued verbatim.
|
|
10
12
|
supports-assistant-prefill #true
|
|
13
|
+
// Replaces the provider checks in model-registry.ts and the generator:
|
|
14
|
+
// never send a caller output limit.
|
|
15
|
+
omit-max-output-tokens #true
|
|
11
16
|
class "unknown" {
|
|
12
17
|
thinking-efforts "minimal" "low" "medium" "high"
|
|
13
18
|
}
|
|
@@ -20,7 +25,12 @@ provider "ollama-cloud" {
|
|
|
20
25
|
thinking-efforts "minimal" "low" "medium" "high"
|
|
21
26
|
}
|
|
22
27
|
// residue: taxonomy ranks and exact globs do not isolate these models.
|
|
28
|
+
// #9693 verifies thinking history for these GLM-5.2 wire IDs only.
|
|
23
29
|
models "glm-5.2" {
|
|
30
|
+
strip-thinking-history #false
|
|
24
31
|
thinking-efforts "high" "max"
|
|
25
32
|
}
|
|
33
|
+
models "glm-5.2:cloud" {
|
|
34
|
+
strip-thinking-history #false
|
|
35
|
+
}
|
|
26
36
|
}
|