@linxiraos/pi-catalog 1.1.27 → 1.2.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.
Files changed (100) hide show
  1. package/CHANGELOG.md +4 -17
  2. package/dist/types/compat/auth-ids.d.ts +2 -2
  3. package/dist/types/compat/judgment-questions.d.ts +7 -0
  4. package/dist/types/compat/prompt-cache-lookback.d.ts +7 -0
  5. package/dist/types/compat/provider-ids.d.ts +1 -1
  6. package/dist/types/compat/reasoning-carry.d.ts +21 -0
  7. package/dist/types/compat/request-size.d.ts +7 -0
  8. package/dist/types/compat/taxonomy.d.ts +0 -10
  9. package/dist/types/compat/types.d.ts +4 -0
  10. package/dist/types/discovery/antigravity.d.ts +13 -3
  11. package/dist/types/model-manager.d.ts +16 -0
  12. package/dist/types/provider-models/account-access.d.ts +11 -0
  13. package/dist/types/provider-models/google.d.ts +23 -1
  14. package/dist/types/provider-models/openai-compat.d.ts +19 -1
  15. package/dist/types/provider-models/special.d.ts +2 -0
  16. package/dist/types/types.d.ts +106 -20
  17. package/dist/types/wire/cloudflare-ai-gateway.d.ts +0 -10
  18. package/dist/types/wire/cloudflare.d.ts +10 -0
  19. package/dist/types/wire/factory-droid.d.ts +1 -1
  20. package/package.json +5 -5
  21. package/src/build.ts +39 -35
  22. package/src/compat/auth-ids.ts +4 -0
  23. package/src/compat/axes.ts +37 -3
  24. package/src/compat/cascade.ts +6 -1
  25. package/src/compat/judgment-questions.ts +12 -0
  26. package/src/compat/prompt-cache-lookback.ts +23 -0
  27. package/src/compat/provider-ids.d.ts +1 -1
  28. package/src/compat/provider-ids.ts +2 -0
  29. package/src/compat/reasoning-carry.ts +64 -0
  30. package/src/compat/request-size.ts +25 -0
  31. package/src/compat/resolve.ts +16 -2
  32. package/src/compat/rules/README.md +12 -2
  33. package/src/compat/rules/auth/_order.kdl +2 -2
  34. package/src/compat/rules/auth/cloudflare-workers-ai.kdl +9 -0
  35. package/src/compat/rules/auth/coralbricks.kdl +13 -0
  36. package/src/compat/rules/auth/minimax-code-cn.kdl +1 -1
  37. package/src/compat/rules/auth/minimax-code.kdl +1 -1
  38. package/src/compat/rules/auth/openai-codex.kdl +1 -1
  39. package/src/compat/rules/auth/stencil.kdl +1 -1
  40. package/src/compat/rules/classes/anthropic.kdl +87 -1
  41. package/src/compat/rules/classes/deepseek.kdl +6 -0
  42. package/src/compat/rules/classes/glm.kdl +16 -7
  43. package/src/compat/rules/classes/kimi.kdl +8 -0
  44. package/src/compat/rules/classes/minimax.kdl +31 -1
  45. package/src/compat/rules/classes/openai.kdl +5 -3
  46. package/src/compat/rules/classes/qwen.kdl +2 -1
  47. package/src/compat/rules/providers/abliteration.kdl +7 -0
  48. package/src/compat/rules/providers/anthropic.kdl +13 -0
  49. package/src/compat/rules/providers/apple.kdl +1 -0
  50. package/src/compat/rules/providers/cloudflare-workers-ai.kdl +34 -0
  51. package/src/compat/rules/providers/coralbricks.kdl +62 -0
  52. package/src/compat/rules/providers/cursor.kdl +22 -0
  53. package/src/compat/rules/providers/devin.kdl +2 -2
  54. package/src/compat/rules/providers/factory-droid.kdl +77 -13
  55. package/src/compat/rules/providers/github-copilot.kdl +29 -0
  56. package/src/compat/rules/providers/groq.kdl +21 -0
  57. package/src/compat/rules/providers/judgment-questions.kdl +53 -0
  58. package/src/compat/rules/providers/litellm.kdl +4 -1
  59. package/src/compat/rules/providers/minimax-code-cn.kdl +10 -5
  60. package/src/compat/rules/providers/minimax-code.kdl +10 -5
  61. package/src/compat/rules/providers/mistral.kdl +25 -1
  62. package/src/compat/rules/providers/moonshot.kdl +11 -0
  63. package/src/compat/rules/providers/openai-codex.kdl +17 -13
  64. package/src/compat/rules/providers/openai.kdl +22 -0
  65. package/src/compat/rules/providers/opencode-zen.kdl +20 -0
  66. package/src/compat/rules/providers/openrouter.kdl +6 -0
  67. package/src/compat/rules/providers/zhipu-coding-plan.kdl +10 -0
  68. package/src/compat/rules/runtime/behavior.kdl +7 -4
  69. package/src/compat/rules/taxonomy/_collapse.kdl +18 -0
  70. package/src/compat/rules.json +1 -1
  71. package/src/compat/taxonomy.d.ts +0 -10
  72. package/src/compat/taxonomy.ts +3 -3
  73. package/src/compat/types.d.ts +4 -0
  74. package/src/compat/types.ts +4 -0
  75. package/src/discovery/antigravity.d.ts +13 -3
  76. package/src/discovery/antigravity.ts +33 -17
  77. package/src/discovery/cursor.ts +2 -1
  78. package/src/discovery/devin.ts +20 -2
  79. package/src/model-cache.ts +113 -47
  80. package/src/model-manager.d.ts +16 -0
  81. package/src/model-manager.ts +107 -41
  82. package/src/model-tokenizer.ts +3 -0
  83. package/src/models.json +1 -1
  84. package/src/provider-models/account-access.d.ts +11 -0
  85. package/src/provider-models/account-access.ts +30 -0
  86. package/src/provider-models/cache-provider-id.ts +3 -2
  87. package/src/provider-models/descriptors.ts +4 -0
  88. package/src/provider-models/google.d.ts +23 -1
  89. package/src/provider-models/google.ts +70 -14
  90. package/src/provider-models/openai-compat.d.ts +19 -1
  91. package/src/provider-models/openai-compat.ts +215 -31
  92. package/src/provider-models/special.d.ts +2 -0
  93. package/src/provider-models/special.ts +15 -18
  94. package/src/types.d.ts +106 -20
  95. package/src/types.ts +149 -17
  96. package/src/wire/cloudflare-ai-gateway.d.ts +0 -10
  97. package/src/wire/cloudflare-ai-gateway.ts +0 -36
  98. package/src/wire/cloudflare.ts +40 -0
  99. package/src/wire/factory-droid.d.ts +1 -1
  100. package/src/wire/factory-droid.ts +1 -1
@@ -9,7 +9,13 @@
9
9
  // are never undercounted; only Opus/Sonnet/Haiku revisions known to predate
10
10
  // 4.7 take the standard tier. Separator-collapsed revisions parse as two
11
11
  // digits (`claude-opus-45` is Opus 4.5 → 45), so 10–46 is standard too.
12
+ // Claude's prompt cache finds an earlier request's entry only within 20 block
13
+ // positions back from a breakpoint, counting the breakpoint; a run of
14
+ // consecutive tool_use or tool_result blocks is one position. Warm-cache
15
+ // tool-result pruning keeps its rewrites inside this window.
16
+ // https://platform.claude.com/docs/en/build-with-claude/prompt-caching
12
17
  class "anthropic" {
18
+ prompt-cache-lookback 20
13
19
  image-tokenization {
14
20
  regime "anthropic-patch"
15
21
  max-edge 2576
@@ -72,7 +78,7 @@ class "anthropic" {
72
78
  thinking-prefix-binding #true
73
79
  }
74
80
  }
75
- // Adaptive Claude (Opus 4.7+, Sonnet/Fable/Mythos 5+) rejects explicit
81
+ // Adaptive Claude (Opus 4.7+, Sonnet/Fable/Mythos 5+, Haiku 5.5+) rejects explicit
76
82
  // sampling params (`temperature`, `top_p`, `top_k`) with a 400 on every
77
83
  // serving host. The `<10` bound keeps whole-number revisions such as
78
84
  // `claude-opus-45` (Opus 4.5) out of the range.
@@ -96,6 +102,22 @@ class "anthropic" {
96
102
  supports-sampling-params #false
97
103
  }
98
104
  }
105
+ family "haiku" {
106
+ revision ">=5.5 <10" {
107
+ supports-sampling-params #false
108
+ }
109
+ // Haiku 5.5 bills every rate 5x for prompts over 100K. Derived from each
110
+ // host's list price so non-Anthropic hosts get the band too; the Claude
111
+ // API and Cursor pin absolute rates, and GitHub Copilot opts out because
112
+ // its long tier is the `-1m` sibling row.
113
+ // https://platform.claude.com/docs/en/models/haiku-5-5/overview#pricing
114
+ revision ">=5.5 <6" {
115
+ long-context-cost {
116
+ input-threshold 100000
117
+ multiplier 5.0
118
+ }
119
+ }
120
+ }
99
121
  // On-demand compaction (compact-2026-09-04) works on the Claude API, Vertex,
100
122
  // and Amazon Bedrock's `/anthropic` routes, not Bedrock Converse.
101
123
  // Foundry / Claude Platform on AWS are first-party Anthropic routes whose
@@ -121,6 +143,11 @@ class "anthropic" {
121
143
  supports-server-compaction #true
122
144
  }
123
145
  }
146
+ family "haiku" {
147
+ revision ">=5.5 <6" {
148
+ supports-server-compaction #true
149
+ }
150
+ }
124
151
  models "claude-mythos-preview" {
125
152
  supports-server-compaction #true
126
153
  }
@@ -173,6 +200,15 @@ class "anthropic" {
173
200
  thinking-prefix-binding #true
174
201
  }
175
202
  }
203
+ // Haiku 5.5 binds signed thinking to the exact preceding conversation like
204
+ // Sonnet 5.5. It accepts a forced `tool_choice` (the response just skips
205
+ // thinking), so it keeps forced tool selection.
206
+ // https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide
207
+ family "haiku" {
208
+ revision ">=5.5 <6" {
209
+ thinking-prefix-binding #true
210
+ }
211
+ }
176
212
  on "anthropic" "cloudflare-ai-gateway" "google-vertex" {
177
213
  family "fable" {
178
214
  revision ">=5" {
@@ -200,6 +236,13 @@ class "anthropic" {
200
236
  supports-turn-scoped-system #true
201
237
  }
202
238
  }
239
+ family "haiku" {
240
+ revision ">=5.5 <6" {
241
+ supports-mid-conversation-system #true
242
+ supports-mid-conversation-tool-changes #true
243
+ supports-turn-scoped-system #true
244
+ }
245
+ }
203
246
  family "opus" {
204
247
  revision ">=4.8" {
205
248
  supports-mid-conversation-system #true
@@ -230,6 +273,13 @@ class "anthropic" {
230
273
  supports-per-message-effort #true
231
274
  }
232
275
  }
276
+ // Haiku 5.5 mirrors Sonnet 5.5; Vertex stays off until verified.
277
+ family "haiku" {
278
+ revision ">=5.5 <6" {
279
+ supports-thinking-binding-controls #true
280
+ supports-per-message-effort #true
281
+ }
282
+ }
233
283
  family "opus" {
234
284
  revision ">=5" {
235
285
  supports-per-message-effort #true
@@ -257,6 +307,14 @@ class "anthropic" {
257
307
  "google-vertex" "opencode-zen" "snowflake" "vercel-ai-gateway" {
258
308
  family "haiku" {
259
309
  thinking-mode "budget"
310
+ // Haiku 5.5 is the first adaptive Haiku: `budget_tokens` is a 400.
311
+ // An omitted `thinking` is adaptive, but unlike Sonnet/Opus 5.5 it
312
+ // accepts `disabled` at effort `high` or below, so Off is explicit.
313
+ // https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-haiku-5-5#use-effort-to-control-thinking
314
+ revision ">=5.5 <6" {
315
+ thinking-mode "anthropic-adaptive"
316
+ disabled-thinking "disabled"
317
+ }
260
318
  }
261
319
  }
262
320
  on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "gitlab-duo" \
@@ -365,6 +423,34 @@ class "anthropic" {
365
423
  max-tokens 128000
366
424
  }
367
425
  }
426
+ // /v1/models reports neither reasoning, vision, pricing nor limits for
427
+ // Haiku 5.5, so a discovered row would materialize as a text-only,
428
+ // unpriced, non-reasoning model; pin the model card. Prompts over 100K
429
+ // input tokens bill the whole request at the long-context rates.
430
+ // https://platform.claude.com/docs/en/models/haiku-5-5/overview
431
+ family "haiku" {
432
+ revision ">=5.5 <6" {
433
+ thinking-upgrade-neutral #true
434
+ input-modalities "text" "image"
435
+ cost-patch {
436
+ input 0.1
437
+ output 0.5
438
+ cache-read 0.01
439
+ cache-write 0.125
440
+ }
441
+ long-context-cost {
442
+ input-threshold 100000
443
+ input 0.5
444
+ output 2.5
445
+ cache-read 0.05
446
+ cache-write 0.625
447
+ }
448
+ limits-patch {
449
+ context-window 1000000
450
+ max-tokens 128000
451
+ }
452
+ }
453
+ }
368
454
  family "mythos" {
369
455
  cost-patch {
370
456
  input 10.0
@@ -98,4 +98,10 @@ class "deepseek" {
98
98
  // providers alike. On hosts that parse it the healer sees no markup.
99
99
  stream-markup-healing-pattern "dsml"
100
100
  thinking-loop-guard "deepseek"
101
+ // V4 reasoning reaches omp as its plaintext trace on every host, and the
102
+ // revision pins the weights (flash 4.0 / 4.1, pro 4.0). Earlier lineages
103
+ // classify too coarsely to carry: `r1` also matches the R1 distills.
104
+ revision ">=4" {
105
+ portable-reasoning #true
106
+ }
101
107
  }
@@ -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:*" \
108
+ models "*glm-5.3" "*glm-5.3-air" "*glm-5.3-turbo" "*glm-5.3-flash" "*glm-5.3-flashx" "*glm-5.3:*" \
110
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
  }
@@ -123,4 +123,12 @@ class "kimi" {
123
123
  }
124
124
  }
125
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
133
+ }
126
134
  }
@@ -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
  }
@@ -49,10 +49,12 @@ class "openai" {
49
49
  delegation-bias "restrained"
50
50
  supports-steering #true
51
51
  }
52
- // GPT-6 Astra changes reasoning effort mid-conversation through a
52
+ // The GPT-6 family changes reasoning effort mid-conversation through a
53
53
  // `configuration_update` input item so the request-level effort (and the
54
- // cached prompt prefix) stays put; every other SKU 400s on the item type.
55
- 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" {
56
58
  supports-configuration-update #true
57
59
  }
58
60
  // Codex SKUs: the advertised 400K figure includes the output budget; the
@@ -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
  }
@@ -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
+ }
@@ -36,6 +36,10 @@ provider "cursor" {
36
36
  input-modalities "text" "image"
37
37
  context-window-floor 1000000
38
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
39
43
  }
40
44
  family "k2.7-code" {
41
45
  // Cursor advertised Kimi K2.7 Code Context window 262k.
@@ -167,6 +171,24 @@ provider "cursor" {
167
171
  cache-write 12.5
168
172
  }
169
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
+ }
170
192
  // Claude 4.7 Opus: $5/$25, cache $0.50/$6.25. Up to 1M same rates.
171
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" {
172
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" {