@linxiraos/pi-catalog 1.1.26 → 1.2.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +4 -6
  2. package/dist/types/compat/auth-ids.d.ts +2 -2
  3. package/dist/types/compat/collapse.d.ts +7 -0
  4. package/dist/types/compat/image-tokenization.d.ts +52 -0
  5. package/dist/types/compat/judgment-questions.d.ts +7 -0
  6. package/dist/types/compat/prompt-cache-lookback.d.ts +7 -0
  7. package/dist/types/compat/provider-ids.d.ts +1 -1
  8. package/dist/types/compat/reasoning-carry.d.ts +21 -0
  9. package/dist/types/compat/request-size.d.ts +7 -0
  10. package/dist/types/compat/taxonomy.d.ts +0 -10
  11. package/dist/types/compat/types.d.ts +4 -0
  12. package/dist/types/discovery/antigravity.d.ts +13 -3
  13. package/dist/types/hosts.d.ts +4 -0
  14. package/dist/types/model-cache.d.ts +6 -0
  15. package/dist/types/model-manager.d.ts +16 -0
  16. package/dist/types/provider-models/account-access.d.ts +11 -0
  17. package/dist/types/provider-models/google.d.ts +23 -1
  18. package/dist/types/provider-models/openai-compat.d.ts +19 -1
  19. package/dist/types/provider-models/special.d.ts +8 -0
  20. package/dist/types/types.d.ts +134 -23
  21. package/dist/types/wire/cloudflare-ai-gateway.d.ts +0 -10
  22. package/dist/types/wire/cloudflare.d.ts +10 -0
  23. package/dist/types/wire/factory-droid.d.ts +1 -1
  24. package/dist/types/wire/gemini-headers.d.ts +6 -3
  25. package/package.json +4 -4
  26. package/src/build.ts +39 -35
  27. package/src/compat/auth-ids.ts +6 -0
  28. package/src/compat/axes.ts +43 -5
  29. package/src/compat/cascade.ts +6 -1
  30. package/src/compat/collapse.d.ts +7 -0
  31. package/src/compat/collapse.ts +11 -0
  32. package/src/compat/image-tokenization.ts +166 -0
  33. package/src/compat/judgment-questions.ts +12 -0
  34. package/src/compat/prompt-cache-lookback.ts +23 -0
  35. package/src/compat/provider-ids.d.ts +1 -1
  36. package/src/compat/provider-ids.ts +3 -0
  37. package/src/compat/reasoning-carry.ts +64 -0
  38. package/src/compat/request-size.ts +25 -0
  39. package/src/compat/resolve.ts +36 -25
  40. package/src/compat/rules/README.md +13 -3
  41. package/src/compat/rules/auth/_order.kdl +2 -2
  42. package/src/compat/rules/auth/cloudflare-workers-ai.kdl +9 -0
  43. package/src/compat/rules/auth/coralbricks.kdl +13 -0
  44. package/src/compat/rules/auth/minimax-code-cn.kdl +1 -1
  45. package/src/compat/rules/auth/minimax-code.kdl +1 -1
  46. package/src/compat/rules/auth/openai-codex.kdl +1 -1
  47. package/src/compat/rules/auth/snowflake.kdl +11 -0
  48. package/src/compat/rules/auth/stencil.kdl +1 -1
  49. package/src/compat/rules/classes/anthropic.kdl +188 -7
  50. package/src/compat/rules/classes/deepseek.kdl +11 -3
  51. package/src/compat/rules/classes/gemini.kdl +12 -0
  52. package/src/compat/rules/classes/glm.kdl +17 -8
  53. package/src/compat/rules/classes/kimi.kdl +15 -0
  54. package/src/compat/rules/classes/meta.kdl +4 -4
  55. package/src/compat/rules/classes/minimax.kdl +31 -1
  56. package/src/compat/rules/classes/openai.kdl +114 -4
  57. package/src/compat/rules/classes/qwen.kdl +2 -1
  58. package/src/compat/rules/providers/abliteration.kdl +7 -0
  59. package/src/compat/rules/providers/amazon-bedrock.kdl +0 -7
  60. package/src/compat/rules/providers/anthropic.kdl +13 -0
  61. package/src/compat/rules/providers/apple.kdl +1 -0
  62. package/src/compat/rules/providers/cloudflare-workers-ai.kdl +34 -0
  63. package/src/compat/rules/providers/coralbricks.kdl +62 -0
  64. package/src/compat/rules/providers/cursor.kdl +28 -8
  65. package/src/compat/rules/providers/devin.kdl +2 -2
  66. package/src/compat/rules/providers/factory-droid.kdl +77 -13
  67. package/src/compat/rules/providers/github-copilot.kdl +29 -0
  68. package/src/compat/rules/providers/google-antigravity.kdl +8 -1
  69. package/src/compat/rules/providers/groq.kdl +21 -0
  70. package/src/compat/rules/providers/image-tokenization.kdl +42 -0
  71. package/src/compat/rules/providers/judgment-questions.kdl +53 -0
  72. package/src/compat/rules/providers/litellm.kdl +4 -1
  73. package/src/compat/rules/providers/meta.kdl +3 -3
  74. package/src/compat/rules/providers/minimax-code-cn.kdl +10 -5
  75. package/src/compat/rules/providers/minimax-code.kdl +10 -5
  76. package/src/compat/rules/providers/mistral.kdl +25 -1
  77. package/src/compat/rules/providers/moonshot.kdl +11 -0
  78. package/src/compat/rules/providers/muse-code.kdl +7 -0
  79. package/src/compat/rules/providers/ollama.kdl +3 -0
  80. package/src/compat/rules/providers/openai-codex.kdl +18 -13
  81. package/src/compat/rules/providers/openai.kdl +22 -0
  82. package/src/compat/rules/providers/opencode-go.kdl +11 -0
  83. package/src/compat/rules/providers/opencode-zen.kdl +20 -0
  84. package/src/compat/rules/providers/openrouter.kdl +6 -0
  85. package/src/compat/rules/providers/snowflake.kdl +135 -0
  86. package/src/compat/rules/providers/tool-result-images.kdl +16 -0
  87. package/src/compat/rules/providers/zhipu-coding-plan.kdl +10 -0
  88. package/src/compat/rules/runtime/behavior.kdl +8 -5
  89. package/src/compat/rules/taxonomy/_collapse.kdl +52 -2
  90. package/src/compat/rules/taxonomy/deepseek.kdl +4 -0
  91. package/src/compat/rules/taxonomy/kimi.kdl +5 -0
  92. package/src/compat/rules.json +1 -1
  93. package/src/compat/taxonomy.d.ts +0 -10
  94. package/src/compat/taxonomy.ts +3 -3
  95. package/src/compat/types.d.ts +4 -0
  96. package/src/compat/types.ts +4 -0
  97. package/src/discovery/antigravity.d.ts +13 -3
  98. package/src/discovery/antigravity.ts +33 -17
  99. package/src/discovery/cursor.ts +28 -4
  100. package/src/discovery/devin.ts +20 -2
  101. package/src/hosts.d.ts +4 -0
  102. package/src/hosts.ts +2 -0
  103. package/src/model-cache.d.ts +6 -0
  104. package/src/model-cache.ts +123 -47
  105. package/src/model-manager.d.ts +16 -0
  106. package/src/model-manager.ts +107 -41
  107. package/src/model-tokenizer.ts +3 -0
  108. package/src/models.json +1 -1
  109. package/src/provider-models/account-access.d.ts +11 -0
  110. package/src/provider-models/account-access.ts +30 -0
  111. package/src/provider-models/cache-provider-id.ts +13 -6
  112. package/src/provider-models/cline-pass.ts +33 -0
  113. package/src/provider-models/descriptors.ts +4 -0
  114. package/src/provider-models/google.d.ts +23 -1
  115. package/src/provider-models/google.ts +72 -14
  116. package/src/provider-models/openai-compat.d.ts +19 -1
  117. package/src/provider-models/openai-compat.ts +281 -42
  118. package/src/provider-models/special.d.ts +8 -0
  119. package/src/provider-models/special.ts +26 -22
  120. package/src/types.d.ts +134 -23
  121. package/src/types.ts +183 -20
  122. package/src/wire/cloudflare-ai-gateway.d.ts +0 -10
  123. package/src/wire/cloudflare-ai-gateway.ts +0 -36
  124. package/src/wire/cloudflare.ts +40 -0
  125. package/src/wire/factory-droid.d.ts +1 -1
  126. package/src/wire/factory-droid.ts +1 -1
  127. package/src/wire/gemini-headers.d.ts +6 -3
  128. package/src/wire/gemini-headers.ts +39 -21
@@ -65,7 +65,7 @@ class "glm" {
65
65
  // GLM Coding Plan: the selectable 1M-context served ids; pin them so
66
66
  // endpoint discovery or older bundled fallbacks cannot regress to 200k.
67
67
  on "zai" "zhipu-coding-plan" {
68
- models "glm-5.2" "glm-5.3" "glm-5.3-flash" {
68
+ models "glm-5.2" "glm-5.3" "glm-5.3-flash" "glm-5.3-flashx" {
69
69
  limits-patch {
70
70
  context-window 1000000
71
71
  max-tokens 131072
@@ -84,10 +84,9 @@ class "glm" {
84
84
  }
85
85
  }
86
86
  }
87
- // glm-5.3-flash ships native image input that upstream metadata still
88
- // reports as text-only.
87
+ // GLM-5.3 Flash and FlashX accept native image input on their coding routes.
89
88
  on "zai" "zhipu-coding-plan" {
90
- models "glm-5.3-flash" {
89
+ models "glm-5.3-flash" "glm-5.3-flashx" {
91
90
  input-modalities "text" "image"
92
91
  }
93
92
  }
@@ -99,17 +98,27 @@ class "glm" {
99
98
  thinking-efforts "minimal" "low" "medium" "high"
100
99
  }
101
100
  }
102
- // GLM-5.3+ coding SKUs (base/air/turbo/flash, non-vision) expose a uniform
101
+ // GLM-5.3+ coding SKUs (base/air/turbo/flash/flashx) expose a uniform
103
102
  // wire-exact low/high/max reasoning-effort ladder on every host, thinking
104
103
  // can no longer be disabled, and the default effort is max.
105
104
  // residue: taxonomy ranks cannot separate these ids from the vision (`…v`)
106
- // and flashx/preview shapes that keep host dialects; the explicit priority resolves
105
+ // and preview shapes that keep host dialects; the explicit priority resolves
107
106
  // the intentional overlap with census host-dialect residues such as
108
107
  // baseten's `zai-org/GLM-5*`.
109
- models "*glm-5.3" "*glm-5.3-air" "*glm-5.3-turbo" "*glm-5.3-flash" "*glm-5.3:*" \
110
- "*glm-5.3-flash-uncensored" "*glm-5.3-free" "*glm-5.3-highspeed" "*glm-5.3-flash-lab" priority=10 {
108
+ models "*glm-5.3" "*glm-5.3-air" "*glm-5.3-turbo" "*glm-5.3-flash" "*glm-5.3-flashx" "*glm-5.3:*" \
109
+ "*glm-5.3-flash-uncensored" "*glm-5.3-free" "*glm-5.3-highspeed" "*glm-5.3-fast" "*glm-5.3-flash-lab" priority=10 {
111
110
  thinking-default-level "max"
112
111
  thinking-efforts "low" "high" "max"
113
112
  thinking-requires-effort #true
114
113
  }
114
+ // GLM 5+ reasoning reaches omp as its plaintext trace on every host, and
115
+ // family plus revision pin the weights (glm-5.2, glm-5.3-flash, ...). GLM 4
116
+ // classifies too coarsely to carry: 4.0 also matches glm-4.5v and glm-4.6v.
117
+ revision ">=5" {
118
+ portable-reasoning #true
119
+ // residue: fine-tuned weights that classify as the base GLM revision.
120
+ models "*-uncensored" "*-cybersecurity" {
121
+ portable-reasoning #false
122
+ }
123
+ }
115
124
  }
@@ -115,5 +115,20 @@ class "kimi" {
115
115
  native-kimi-k3-reasoning #true
116
116
  clamp-output-to-model-max #true
117
117
  }
118
+ // Native K3 accepts forced tools on the Anthropic surface too;
119
+ // omitting thinking leaves its mandatory provider default intact.
120
+ on-api "anthropic-messages" {
121
+ family "k3" {
122
+ supports-forced-tool-choice #true
123
+ }
124
+ }
125
+ }
126
+ // K3 reasoning reaches omp as its plaintext trace on every host, and K3 was
127
+ // trained to read all of its earlier reasoning back (preserved thinking).
128
+ // A recall probe showed the reasoning slot of moonshot, factory-droid,
129
+ // openrouter and devin reaches the model, so K3 reasoning moves between
130
+ // those hosts natively instead of as visible `<think>` text.
131
+ family "k3" {
132
+ portable-reasoning #true
118
133
  }
119
134
  }
@@ -3,13 +3,13 @@
3
3
  class "meta" {
4
4
  // Exact ids on purpose: only an exact selector upgrades hosts whose
5
5
  // discovery misreports a Muse Spark revision as non-reasoning.
6
- // muse-spark-1.3 exposes the max effort tier; older/contributor revisions
7
- // keep the 5-tier ladder.
8
- models "muse-spark-1.3" {
6
+ // muse-spark-1.3 standard and contributor expose the max effort tier;
7
+ // older revisions keep the 5-tier ladder.
8
+ models "muse-spark-1.3" "muse-spark-1.3-contributor" {
9
9
  thinking-efforts "minimal" "low" "medium" "high" "xhigh" "max"
10
10
  thinking-mode "effort"
11
11
  }
12
- models "muse-spark-1.1" "muse-spark-1.2" "muse-spark-1.2-contributor" "muse-spark-1.3-contributor" {
12
+ models "muse-spark-1.1" "muse-spark-1.2" "muse-spark-1.2-contributor" {
13
13
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
14
14
  thinking-mode "effort"
15
15
  }
@@ -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
@@ -78,4 +98,14 @@ class "minimax" {
78
98
  on "minimax-code" "minimax-code-cn" "wafer-serverless" {
79
99
  reasoning-content-field "reasoning_content"
80
100
  }
101
+ // M3 reasoning reaches omp as its plaintext trace on every host, and
102
+ // MiniMax asks agents to pass all earlier reasoning back.
103
+ family "m3" {
104
+ portable-reasoning #true
105
+ // residue: M3.1 Flash Preview classifies as family m3 (no revision is
106
+ // extracted), but it is a different model.
107
+ models "*m3.1*" {
108
+ portable-reasoning #false
109
+ }
110
+ }
81
111
  }
@@ -1,9 +1,15 @@
1
1
  // Model-lineage compat for "openai"; regenerated from the frozen census using class taxonomy selectors.
2
2
 
3
3
  class "openai" {
4
- // Replaces the o-series mandatory-reasoning fallback.
4
+ // Replaces the o-series mandatory-reasoning fallback. o-series and GPT-5+
5
+ // reject explicit sampling params (`temperature`, `top_p`) with a 400 on
6
+ // every serving host (#5606), whichever API fronts them.
5
7
  family "o-series" {
6
8
  thinking-requires-effort #true
9
+ supports-sampling-params #false
10
+ }
11
+ revision ">=5" {
12
+ supports-sampling-params #false
7
13
  }
8
14
  // GPT wire ladders are model generations, not host contracts: <5.2 keeps
9
15
  // the classic four-tier scale, 5.2+ drops minimal for xhigh, and 5.6+
@@ -43,10 +49,12 @@ class "openai" {
43
49
  delegation-bias "restrained"
44
50
  supports-steering #true
45
51
  }
46
- // GPT-6 Astra changes reasoning effort mid-conversation through a
52
+ // The GPT-6 family changes reasoning effort mid-conversation through a
47
53
  // `configuration_update` input item so the request-level effort (and the
48
- // cached prompt prefix) stays put; every other SKU 400s on the item type.
49
- models "gpt-6-astra" {
54
+ // cached prompt prefix) stays put. OpenAI's reasoning guide ("Change
55
+ // reasoning mid-conversation") documents it for the family, and Codex's
56
+ // `/models` reports `supports_reasoning_effort_updates` on every GPT-6 SKU.
57
+ revision ">=6 <7" {
50
58
  supports-configuration-update #true
51
59
  }
52
60
  // Codex SKUs: the advertised 400K figure includes the output budget; the
@@ -81,3 +89,105 @@ class "openai" {
81
89
  }
82
90
  }
83
91
  }
92
+
93
+ // GPT-5.2+ bills images in 32px patches × 1.2, sized per `detail` level:
94
+ // https://developers.openai.com/api/docs/guides/images-vision#calculating-costs
95
+ // Older lines carry no lineage rule and bill at their wire API's fallback
96
+ // (providers/image-tokenization.kdl).
97
+ class "openai" {
98
+ // gpt-5.6 sizing, shared by later lines. `<10` keeps separator-collapsed
99
+ // revisions (`openai-gpt-52-codex` parses as 52) off the 5.6+ sizing.
100
+ revision ">=5.6 <10" {
101
+ image-tokenization {
102
+ regime "openai-patch"
103
+ multiplier 1.2
104
+ auto "original"
105
+ low {
106
+ max-edge 512
107
+ }
108
+ high {
109
+ max-edge 2048
110
+ patch-budget 2500
111
+ }
112
+ original {
113
+ max-edge 65535
114
+ }
115
+ }
116
+ }
117
+ revision "=5.5" {
118
+ image-tokenization {
119
+ regime "openai-patch"
120
+ multiplier 1.2
121
+ auto "original"
122
+ low {
123
+ max-edge 512
124
+ }
125
+ high {
126
+ max-edge 2048
127
+ patch-budget 2500
128
+ }
129
+ original {
130
+ max-edge 6000
131
+ patch-budget 10000
132
+ }
133
+ }
134
+ }
135
+ // gpt-5.4: `auto` sizes like `high`, and `low` keeps a 6,144-patch budget.
136
+ revision "=5.4" {
137
+ image-tokenization {
138
+ regime "openai-patch"
139
+ multiplier 1.2
140
+ auto "high"
141
+ low {
142
+ max-edge 2048
143
+ patch-budget 6144
144
+ }
145
+ high {
146
+ max-edge 2048
147
+ patch-budget 2500
148
+ }
149
+ original {
150
+ max-edge 6000
151
+ patch-budget 10000
152
+ }
153
+ }
154
+ }
155
+ // gpt-5.2 (and the 5.3 Codex SKU) size every level the same way.
156
+ revision ">=5.2 <5.4" {
157
+ image-tokenization {
158
+ regime "openai-patch"
159
+ multiplier 1.2
160
+ auto "high"
161
+ low {
162
+ max-edge 2048
163
+ patch-budget 6144
164
+ }
165
+ high {
166
+ max-edge 2048
167
+ patch-budget 6144
168
+ }
169
+ original {
170
+ max-edge 2048
171
+ patch-budget 6144
172
+ }
173
+ }
174
+ }
175
+ // residue: astra's limits differ from the rest of its revision.
176
+ models "*gpt-6-astra*" {
177
+ image-tokenization {
178
+ regime "openai-patch"
179
+ multiplier 1.2
180
+ auto "original"
181
+ low {
182
+ max-edge 512
183
+ }
184
+ high {
185
+ max-edge 65535
186
+ patch-budget 2500
187
+ }
188
+ original {
189
+ max-edge 65535
190
+ }
191
+ }
192
+ }
193
+ }
@@ -1,7 +1,8 @@
1
1
  // Model-lineage compat for "qwen"; regenerated from the frozen census using class taxonomy selectors.
2
2
 
3
3
  class "qwen" {
4
- on "aiand" "aimlapi" "alibaba-coding-plan" "amazon-bedrock" "coreweave" "groq" "huggingface" \
4
+ // Groq owns its Qwen effort ladder in providers/groq.kdl.
5
+ on "aiand" "aimlapi" "alibaba-coding-plan" "amazon-bedrock" "coreweave" "huggingface" \
5
6
  "kilo" "nanogpt" "novita" "nvidia" "ollama-cloud" "openrouter" "synthetic" \
6
7
  "together" "venice" "wafer-serverless" "zenmux" {
7
8
  thinking-efforts "minimal" "low" "medium" "high"
@@ -37,4 +37,11 @@ provider "abliteration" {
37
37
 
38
38
  include-encrypted-reasoning #false
39
39
  stream-idle-timeout-ms 0
40
+ // Abliterated weights classify as the GLM revision they derive from, but
41
+ // they are modified weights: their reasoning is not carried to or from GLM.
42
+ class "glm" {
43
+ revision ">=5" {
44
+ portable-reasoning #false
45
+ }
46
+ }
40
47
  }
@@ -36,8 +36,6 @@ provider "amazon-bedrock" {
36
36
  }
37
37
  class "openai" {
38
38
  thinking-mode "effort"
39
- // OpenAI models reject Converse image blocks nested inside toolResult content.
40
- requires-tool-result-image-hoisting #true
41
39
  }
42
40
  class "deepseek" {
43
41
  requires-reasoning-content-for-all-assistant-turns #true
@@ -51,11 +49,6 @@ provider "amazon-bedrock" {
51
49
  class "unknown" {
52
50
  thinking-efforts "minimal" "low" "medium" "high"
53
51
  thinking-mode "budget"
54
- // Opaque application-inference-profile ARNs carry no vendor signal, so an
55
- // OpenAI-backed profile classifies here and would otherwise nest images in
56
- // toolResult content and hit the same rejection. Hoisting is accepted by
57
- // every Converse model measured, so it is the safe default for unknowns.
58
- requires-tool-result-image-hoisting #true
59
52
  }
60
53
  // residue: taxonomy ranks and exact globs do not isolate these models.
61
54
  models "moonshot.kimi-k2-thinking" {
@@ -34,6 +34,12 @@ provider "anthropic" {
34
34
  cost input=2 output=10 cache-read=0.2 cache-write=2.5
35
35
  limits context=1000000 max-tokens=128000
36
36
  }
37
+ model "claude-haiku-5-5" name="Claude Haiku 5.5" {
38
+ reasoning #true
39
+ input "text" "image"
40
+ cost input=0.1 output=0.5 cache-read=0.01 cache-write=0.125
41
+ limits context=1000000 max-tokens=128000
42
+ }
37
43
  model "claude-fable-5" name="Claude Fable 5" {
38
44
  reasoning #true
39
45
  input "text" "image"
@@ -68,6 +74,13 @@ provider "anthropic" {
68
74
  // combines this fact with a per-request effective-URL check, so it never
69
75
  // authorizes a block on its own.
70
76
  first-party-provider #true
77
+ // Messages requests cap at 32 MB. Reserve 8 MB for text, tools, and JSON
78
+ // framing when retaining inline base64 images in a long conversation.
79
+ // Applied only on the official endpoint; a custom baseUrl has its own limit.
80
+ // https://platform.claude.com/docs/en/api/overview#request-size-limits
81
+ on-api "anthropic-messages" {
82
+ inline-image-byte-budget 24000000
83
+ }
71
84
  class "anthropic" {
72
85
  revision ">=3.7 <4.6" {
73
86
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
@@ -5,4 +5,5 @@
5
5
  provider "apple" {
6
6
  default-model "on-device"
7
7
  allow-unauthenticated #true
8
+ automatic-default #false
8
9
  }
@@ -0,0 +1,34 @@
1
+ // Cloudflare Workers AI decision models. Clef and Clef Flash answer typed
2
+ // questions over JSON state with the TypeSafe System One body
3
+ // (`{model, state, questions}`) at
4
+ // `POST /client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/<model>`.
5
+ // `<account>` in the base URL is resolved per request from the stored login
6
+ // credential (else `CLOUDFLARE_ACCOUNT_ID`).
7
+
8
+ provider "cloudflare-workers-ai" {
9
+ default-model "@cf/cloudflare/clef"
10
+ env "CLOUDFLARE_API_TOKEN" "CLOUDFLARE_AUTH_TOKEN"
11
+
12
+ // developers.cloudflare.com/workers-ai/models/clef and /clef-flash: both
13
+ // take text and image input and bill input tokens only.
14
+ seed api="workers-ai-systemone" base-url="https://api.cloudflare.com/client/v4/accounts/<account>/ai/run" bundle="always" {
15
+ model "@cf/cloudflare/clef" name="Clef" {
16
+ reasoning #false
17
+ input "text" "image"
18
+ cost input=0.24 output=0 cache-read=0 cache-write=0
19
+ limits context=65536
20
+ supports-tools #false
21
+ }
22
+ model "@cf/cloudflare/clef-flash" name="Clef Flash" {
23
+ reasoning #false
24
+ input "text" "image"
25
+ cost input=0.038 output=0 cache-read=0 cache-write=0
26
+ limits context=24576
27
+ supports-tools #false
28
+ }
29
+ }
30
+
31
+ models "*" {
32
+ kind "judge"
33
+ }
34
+ }
@@ -0,0 +1,62 @@
1
+ // CoralBricks inference gateway deployment contract
2
+ // (https://www.coralbricks.ai/docs.md; catalog snapshot 2026-10-08).
3
+ //
4
+ // Coral serves open-weight models behind an OpenAI-compatible wire at
5
+ // https://inference.coralbricks.ai/v1 with a single bearer API key. The
6
+ // key-protected `GET /v1/models` publishes each row's context window,
7
+ // per-million pricing, and capability flags, and Coral documents those
8
+ // flags as authoritative (unsupported content answers
9
+ // `400 unsupported_content_type` rather than being dropped), so live
10
+ // discovery is the deployment truth and same-id rows on other hosts must
11
+ // not backfill capabilities or limits into this provider's rows.
12
+ provider "coralbricks" {
13
+ default-model "glm-5.3-fast"
14
+ // Official docs authenticate via `CORAL_API_KEY`
15
+ // (https://www.coralbricks.ai/docs.md#authentication); `CORALBRICKS_API_KEY`
16
+ // is the alias the Coral pi provider extension shipped with, kept as a
17
+ // compatibility fallback in precedence order.
18
+ env "CORAL_API_KEY" "CORALBRICKS_API_KEY"
19
+ dynamic-models-authoritative #true
20
+ skip-cross-provider-reference-fills #true
21
+ discovery label="CoralBricks"
22
+
23
+ // Reviewed snapshot of the public catalog
24
+ // (https://www.coralbricks.ai/api/public/models). Coral retired GLM 5.3
25
+ // Flash on 2026-10-07 and renamed the remaining slugs (`glm-5.3-fast`,
26
+ // `deepseek-v4.1-flash-fast`). The public rows list input/output rates
27
+ // only; cache-write rates come from Coral's published pricing and cached
28
+ // reads are $0 on every model. `/v1/models` needs a key, so generation
29
+ // without credentials bundles these rows; successful runtime discovery
30
+ // replaces them.
31
+ seed api="openai-completions" base-url="https://inference.coralbricks.ai/v1" bundle="always" {
32
+ model "glm-5.3-fast" name="GLM 5.3" {
33
+ reasoning #true
34
+ input "text"
35
+ cost input=1.12 output=4.4 cache-read=0 cache-write=1.68
36
+ limits context=1048576 max-tokens=131072
37
+ }
38
+ model "deepseek-v4.1-flash-fast" name="DeepSeek V4.1 Flash" {
39
+ reasoning #true
40
+ input "text" "image"
41
+ cost input=0.3 output=1.2 cache-read=0 cache-write=0.09
42
+ limits context=1048576 max-tokens=131072
43
+ }
44
+ }
45
+
46
+ // DeepSeek V4.1 Flash is the one CoralBricks SKU that advertises a genuine
47
+ // off value (`none` in its reasoning-effort vocabulary, per the reasoning
48
+ // table at https://www.coralbricks.ai/docs.md#reasoning), so a
49
+ // thinking-off request disables reasoning instead of clamping to the
50
+ // lowest effort like the GLM SKUs.
51
+ models "deepseek-v4.1-flash-fast" {
52
+ reasoning-disable-mode "none-effort"
53
+ }
54
+ // Gateway request dialect, matching Coral's plain Chat Completions
55
+ // surface ("unchanged from what your existing SDK expects"): output caps
56
+ // ride `max_tokens`, system prompts ride the `system` role, and no
57
+ // `store` field is sent. Coral accepts unknown fields, so acceptance is
58
+ // not evidence the semantics are honored (same call as charm-hyper).
59
+ supports-developer-role #false
60
+ supports-store #false
61
+ max-tokens-field "max_tokens"
62
+ }
@@ -28,12 +28,18 @@ provider "cursor" {
28
28
  }
29
29
  }
30
30
  // GetUsableModels advertises no input modalities or context windows.
31
- // K3 (including the bare `k3` alias Cursor serves) is natively
32
- // multimodal and 1M-context.
31
+ // Reviewed full-context K3 aliases are multimodal and 1M-context.
32
+ // K3 family identity alone does not verify other Cursor SKUs such as k3-256k.
33
33
  class "kimi" {
34
34
  family "k3" {
35
- input-modalities "text" "image"
36
- context-window-floor 1000000
35
+ models "*kimi-k3*" "k3" "*/k3" {
36
+ input-modalities "text" "image"
37
+ context-window-floor 1000000
38
+ }
39
+ // Cursor's agent protocol relays thinking opaquely, so it is not
40
+ // verified as K3's full trace: Cursor K3 turns are not carried to
41
+ // other K3 hosts (Cursor itself refuses foreign history).
42
+ portable-reasoning #false
37
43
  }
38
44
  family "k2.7-code" {
39
45
  // Cursor advertised Kimi K2.7 Code Context window 262k.
@@ -56,10 +62,6 @@ provider "cursor" {
56
62
  context-window-floor 272000
57
63
  }
58
64
  }
59
- models "k3" "*/k3" {
60
- input-modalities "text" "image"
61
- context-window-floor 1000000
62
- }
63
65
  models "default" {
64
66
  context-window-floor 256000
65
67
  }
@@ -169,6 +171,24 @@ provider "cursor" {
169
171
  cache-write 12.5
170
172
  }
171
173
  }
174
+ // Claude Haiku 5.5: $0.10/$0.50, cache $0.01/$0.125. Requests above
175
+ // 100k input tokens bill every leg at 5x ($0.50/$2.50, cache
176
+ // $0.05/$0.625), on the 1M lane too.
177
+ models "claude-haiku-5-5" "claude-haiku-5-5-1m" {
178
+ cost-patch {
179
+ input 0.1
180
+ output 0.5
181
+ cache-read 0.01
182
+ cache-write 0.125
183
+ }
184
+ long-context-cost {
185
+ input-threshold 100000
186
+ input 0.5
187
+ output 2.5
188
+ cache-read 0.05
189
+ cache-write 0.625
190
+ }
191
+ }
172
192
  // Claude 4.7 Opus: $5/$25, cache $0.50/$6.25. Up to 1M same rates.
173
193
  models "claude-opus-4-7-high" "claude-opus-4-7-low" "claude-opus-4-7-max" "claude-opus-4-7-medium" "claude-opus-4-7-xhigh" {
174
194
  cost-patch {
@@ -14,8 +14,8 @@ provider "devin" {
14
14
  // bundle would misstate every other account's entitlements and leave zombie
15
15
  // rows behind (see CREDENTIAL_SCOPED_PROVIDERS in generate-models.ts). Both
16
16
  // SWE-1.6 lanes are verified live against `GetCliModelConfigs`; the
17
- // seed's `default-model` (`swe-1-6`) must resolve synchronously at
18
- // boot, before credential-scoped runtime discovery replaces the seed. Field
17
+ // seed's `default-model` (`swe-1-6`) must resolve synchronously at boot;
18
+ // discovery then replaces the seed and the account default it marks wins. Field
19
19
  // shape mirrors `devinModelSpec` so seeded and discovered rows are
20
20
  // indistinguishable downstream.
21
21
  seed api="devin-agent" base-url="https://server.codeium.com" bundle="always" {