@oh-my-pi/pi-catalog 18.4.4 → 18.4.6

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 (61) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/types/compat/auth-ids.d.ts +2 -2
  3. package/dist/types/compat/axes.d.ts +3 -1
  4. package/dist/types/compat/factory-droid.d.ts +65 -0
  5. package/dist/types/compat/provider-ids.d.ts +1 -1
  6. package/dist/types/compat/resolve.d.ts +8 -2
  7. package/dist/types/compat/types.d.ts +26 -1
  8. package/dist/types/discovery/cursor-proto.d.ts +284 -0
  9. package/dist/types/discovery/cursor.d.ts +12 -6
  10. package/dist/types/discovery/factory-droid.d.ts +28 -0
  11. package/dist/types/discovery/index.d.ts +1 -0
  12. package/dist/types/discovery/protobuf.d.ts +3 -3
  13. package/dist/types/model-manager.d.ts +10 -0
  14. package/dist/types/models.d.ts +5 -1
  15. package/dist/types/provider-models/cache-provider-id.d.ts +2 -1
  16. package/dist/types/provider-models/descriptor-types.d.ts +2 -1
  17. package/dist/types/provider-models/openai-compat.d.ts +21 -0
  18. package/dist/types/provider-models/special.d.ts +2 -0
  19. package/dist/types/types.d.ts +100 -3
  20. package/dist/types/wire/cursor.d.ts +20 -0
  21. package/dist/types/wire/factory-droid.d.ts +45 -0
  22. package/package.json +4 -4
  23. package/src/build.ts +21 -0
  24. package/src/compat/auth-ids.ts +4 -0
  25. package/src/compat/axes.ts +113 -2
  26. package/src/compat/cascade.ts +8 -1
  27. package/src/compat/collapse.ts +3 -0
  28. package/src/compat/factory-droid.ts +170 -0
  29. package/src/compat/provider-ids.ts +2 -0
  30. package/src/compat/resolve.ts +47 -5
  31. package/src/compat/rules/README.md +18 -8
  32. package/src/compat/rules/auth/_order.kdl +2 -2
  33. package/src/compat/rules/auth/factory-droid.kdl +28 -0
  34. package/src/compat/rules/auth/helmcode.kdl +9 -0
  35. package/src/compat/rules/classes/anthropic.kdl +195 -80
  36. package/src/compat/rules/providers/commandcode.kdl +21 -5
  37. package/src/compat/rules/providers/cursor.kdl +29 -17
  38. package/src/compat/rules/providers/factory-droid.kdl +1166 -0
  39. package/src/compat/rules/providers/helmcode.kdl +120 -0
  40. package/src/compat/rules/runtime/behavior.kdl +65 -4
  41. package/src/compat/rules/taxonomy/_collapse.kdl +36 -14
  42. package/src/compat/rules.json +1 -1
  43. package/src/compat/types.ts +27 -1
  44. package/src/discovery/cursor-models.proto +261 -0
  45. package/src/discovery/cursor-proto.ts +471 -0
  46. package/src/discovery/cursor.ts +817 -88
  47. package/src/discovery/devin.ts +1 -3
  48. package/src/discovery/factory-droid.ts +296 -0
  49. package/src/discovery/index.ts +1 -0
  50. package/src/discovery/protobuf.ts +16 -7
  51. package/src/model-manager.ts +13 -0
  52. package/src/models.json +1 -1
  53. package/src/models.ts +13 -0
  54. package/src/provider-models/cache-provider-id.ts +37 -6
  55. package/src/provider-models/descriptor-types.ts +2 -1
  56. package/src/provider-models/descriptors.ts +4 -0
  57. package/src/provider-models/openai-compat.ts +83 -17
  58. package/src/provider-models/special.ts +26 -2
  59. package/src/types.ts +112 -1
  60. package/src/wire/cursor.ts +32 -0
  61. package/src/wire/factory-droid.ts +130 -0
@@ -5,8 +5,8 @@ login-order "openai-codex" "anthropic" "zai" "zai-coding-plan" "kimi-code" "open
5
5
  "cursor" "devin" "google-antigravity" "google-gemini-cli" "openai-codex-device" "xai" "xai-oauth" \
6
6
  "gitlab-duo" "gitlab-duo-agent" "alibaba-coding-plan" "alibaba-token-plan" "aiand" "abliteration" "zhipu-coding-plan" \
7
7
  "umans" "qwen-portal" "sakana" "minimax-code" "minimax-code-cn" "xiaomi" "xiaomi-token-plan-sgp" \
8
- "xiaomi-token-plan-ams" "xiaomi-token-plan-cn" "firepass" "cline-pass" "commandcode" "charm-hyper" "deepseek" "stepfun" "muse-code" "meta" "moonshot" \
9
- "cerebras" "baseten" "fireworks" "together" "nvidia" "novita" "deepinfra" "huggingface" "perplexity" \
8
+ "xiaomi-token-plan-ams" "xiaomi-token-plan-cn" "firepass" "cline-pass" "factory-droid" "commandcode" "charm-hyper" "deepseek" "stepfun" "muse-code" "meta" "moonshot" \
9
+ "cerebras" "baseten" "helmcode" "fireworks" "together" "nvidia" "novita" "deepinfra" "huggingface" "perplexity" \
10
10
  "qianfan" "venice" "siliconflow" "siliconflow-cn" "synthetic" "nanogpt" "wafer-serverless" "coreweave" \
11
11
  "vercel-ai-gateway" "cloudflare-ai-gateway" "litellm" "kilo" "zenmux" "opencode-zen" "opencode-go" \
12
12
  "yolo-auto" "tavily" "kagi" "exa" "parallel" "typesafe" "ollama" "ollama-cloud" "lm-studio" "llama.cpp" "vllm" \
@@ -0,0 +1,28 @@
1
+ auth "factory-droid" {
2
+ name "Factory Droid"
3
+ org-scoped-identity #true
4
+ // WorkOS public client: the access token authorizes the Factory LLM proxy.
5
+ login "device-code" {
6
+ client-id "client_01HNM792M5G5G1A2THWPXKFMXB"
7
+ device url="https://api.workos.com/user_management/authorize/device" timeout-ms=15000 {
8
+ headers { Accept "application/json" }
9
+ }
10
+ token url="https://api.workos.com/user_management/authenticate" timeout-ms=15000 {
11
+ headers { Accept "application/json" }
12
+ }
13
+ credential {
14
+ expires "jwt" skew-ms=0 fallback-ms=86400000
15
+ email "user.email" claim="email"
16
+ account-id "user.id" claim="sub"
17
+ // WorkOS organization_id is internal; only this claim can be used as X-Factory-Org-Id.
18
+ org-id claim="external_org_id"
19
+ }
20
+ after-exchange hook="factory-droid-region"
21
+ }
22
+ refresh {
23
+ token url="https://api.workos.com/user_management/authenticate" timeout-ms=15000 {
24
+ headers { Accept "application/json" }
25
+ }
26
+ after-refresh hook="factory-droid-region"
27
+ }
28
+ }
@@ -0,0 +1,9 @@
1
+ auth "helmcode" {
2
+ name "Helmcode"
3
+ login "api-key" {
4
+ auth-url "https://cloud.helmcode.com"
5
+ instructions "Copy your API key from the Helmcode dashboard"
6
+ prompt "Paste your Helmcode API key" placeholder="sk-..."
7
+ validate "models-endpoint" label="Helmcode" url="https://api.helmcode.com/v1/models"
8
+ }
9
+ }
@@ -49,8 +49,9 @@ class "anthropic" {
49
49
  // Opus 5.5 rejects forced tool selection the way Fable/Mythos do — a
50
50
  // `tool_choice` of `tool` or `any` fails the request with 400
51
51
  // `invalid_request_error`: `tool_choice: type "tool" and "any" are not
52
- // supported for this model`. The transport downgrades the selector to
53
- // `auto` so the tool stays offered instead of the turn dying.
52
+ // supported for this model`. This holds on every route, including Bedrock
53
+ // Converse (`toolChoice: {any: {}}`). The transports downgrade the selector
54
+ // to `auto` so the tool stays offered instead of the turn dying.
54
55
  //
55
56
  // Upper-bounded on purpose: separator-collapsed ids parse their revision
56
57
  // as a whole number (`claude-opus-45` is Opus 4.5, revision 45), so an
@@ -108,7 +109,6 @@ class "anthropic" {
108
109
  supports-mid-conversation-tool-changes #true
109
110
  supports-turn-scoped-system #true
110
111
  supports-per-message-effort #true
111
- supports-thinking-binding-controls #true
112
112
  }
113
113
  }
114
114
  family "opus" {
@@ -122,6 +122,15 @@ class "anthropic" {
122
122
  }
123
123
  }
124
124
  }
125
+ // Vertex rejects `thinking.block_binding` on Sonnet 5.5 with 400
126
+ // `thinking.adaptive.block_binding: Extra inputs are not permitted`.
127
+ on "anthropic" "cloudflare-ai-gateway" {
128
+ family "sonnet" {
129
+ revision ">=5.5" {
130
+ supports-thinking-binding-controls #true
131
+ }
132
+ }
133
+ }
125
134
  on "aimlapi" "gitlab-duo" "kilo" "nanogpt" "venice" {
126
135
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
127
136
  }
@@ -273,27 +282,11 @@ class "anthropic" {
273
282
  }
274
283
  }
275
284
  }
276
- // AWS Bedrock Converse prompt-cache checkpoints, from the AWS model cards
277
- // (docs.aws.amazon.com/bedrock/latest/userguide/model-cards.html); cache
278
- // pricing is deliberately not used to infer these request shapes.
279
285
  on "amazon-bedrock" {
286
+ // Model metadata applies to every Bedrock request adapter.
287
+ // Upstream metadata is stale for cache pricing and context.
280
288
  family "opus" {
281
- revision ">=4 <4.5" {
282
- prompt-cache-mode "explicit"
283
- prompt-cache-minimum-tokens 1024
284
- prompt-cache-maximum-checkpoints 4
285
- }
286
- revision "=4.5" {
287
- prompt-cache-mode "explicit"
288
- prompt-cache-minimum-tokens 4096
289
- prompt-cache-maximum-checkpoints 4
290
- supports-long-prompt-cache-retention #true
291
- }
292
289
  revision "=4.6" {
293
- prompt-cache-mode "explicit"
294
- prompt-cache-minimum-tokens 4096
295
- prompt-cache-maximum-checkpoints 4
296
- // Upstream metadata is stale for cache pricing and context.
297
290
  cost-patch {
298
291
  cache-read 0.5
299
292
  cache-write 6.25
@@ -303,74 +296,196 @@ class "anthropic" {
303
296
  max-tokens 128000
304
297
  }
305
298
  }
306
- revision ">=4.7 <5" {
307
- prompt-cache-mode "explicit"
308
- prompt-cache-minimum-tokens 4096
309
- prompt-cache-maximum-checkpoints 4
310
- supports-long-prompt-cache-retention #true
311
- }
312
- revision ">=5" {
313
- prompt-cache-mode "explicit"
314
- prompt-cache-minimum-tokens 512
315
- prompt-cache-maximum-checkpoints 4
316
- supports-long-prompt-cache-retention #true
317
- }
318
299
  }
319
- family "sonnet" {
320
- revision "=3.5" {
321
- models "*3-5-sonnet-20241022-v2*" {
322
- prompt-cache-mode "explicit"
323
- prompt-cache-minimum-tokens 1024
324
- prompt-cache-maximum-checkpoints 4
325
- }
300
+ // AWS Bedrock Converse prompt-cache checkpoints, from the AWS model cards
301
+ // (docs.aws.amazon.com/bedrock/latest/userguide/model-cards.html); cache
302
+ // pricing is deliberately not used to infer these request shapes. Keep the
303
+ // provider and adapter conjunctive so this policy stays on Converse.
304
+ on-api "bedrock-converse-stream" {
305
+ family "opus" {
306
+ revision ">=4 <4.5" {
307
+ prompt-cache-mode "explicit"
308
+ prompt-cache-minimum-tokens 1024
309
+ prompt-cache-maximum-checkpoints 4
310
+ prompt-cache {
311
+ short 300
312
+ }
313
+ }
314
+ revision "=4.5" {
315
+ prompt-cache-mode "explicit"
316
+ prompt-cache-minimum-tokens 4096
317
+ prompt-cache-maximum-checkpoints 4
318
+ prompt-cache {
319
+ short 300
320
+ long 3600
321
+ }
322
+ supports-long-prompt-cache-retention #true
323
+ }
324
+ revision "=4.6" {
325
+ prompt-cache-mode "explicit"
326
+ prompt-cache-minimum-tokens 4096
327
+ prompt-cache-maximum-checkpoints 4
328
+ prompt-cache {
329
+ short 300
330
+ }
331
+ }
332
+ revision ">=4.7 <5" {
333
+ prompt-cache-mode "explicit"
334
+ prompt-cache-minimum-tokens 4096
335
+ prompt-cache-maximum-checkpoints 4
336
+ supports-long-prompt-cache-retention #true
337
+ prompt-cache {
338
+ short 300
339
+ long 3600
340
+ }
341
+ }
342
+ revision ">=5" {
343
+ prompt-cache-mode "explicit"
344
+ prompt-cache-minimum-tokens 512
345
+ prompt-cache-maximum-checkpoints 4
346
+ supports-long-prompt-cache-retention #true
347
+ prompt-cache {
348
+ short 300
349
+ long 3600
350
+ }
351
+ }
326
352
  }
327
- revision "=3.7" {
328
- prompt-cache-mode "explicit"
329
- prompt-cache-minimum-tokens 1024
330
- prompt-cache-maximum-checkpoints 4
353
+ family "sonnet" {
354
+ revision "=3.5" {
355
+ models "*3-5-sonnet-20241022-v2*" {
356
+ prompt-cache-mode "explicit"
357
+ prompt-cache-minimum-tokens 1024
358
+ prompt-cache-maximum-checkpoints 4
359
+ prompt-cache {
360
+ short 300
361
+ }
362
+ }
363
+ }
364
+ revision "=3.7" {
365
+ prompt-cache-mode "explicit"
366
+ prompt-cache-minimum-tokens 1024
367
+ prompt-cache-maximum-checkpoints 4
368
+ prompt-cache {
369
+ short 300
370
+ }
371
+ }
372
+ revision ">=4 <4.5" {
373
+ prompt-cache-mode "explicit"
374
+ prompt-cache-minimum-tokens 1024
375
+ prompt-cache-maximum-checkpoints 4
376
+ prompt-cache {
377
+ short 300
378
+ }
379
+ }
380
+ revision "=4.5" {
381
+ prompt-cache-mode "explicit"
382
+ prompt-cache-minimum-tokens 4096
383
+ prompt-cache-maximum-checkpoints 4
384
+ supports-long-prompt-cache-retention #true
385
+ prompt-cache {
386
+ short 300
387
+ long 3600
388
+ }
389
+ }
390
+ revision "=4.6" {
391
+ prompt-cache-mode "explicit"
392
+ prompt-cache-minimum-tokens 1024
393
+ prompt-cache-maximum-checkpoints 4
394
+ prompt-cache {
395
+ short 300
396
+ }
397
+ }
398
+ revision ">=5" {
399
+ prompt-cache-mode "explicit"
400
+ prompt-cache-minimum-tokens 4096
401
+ prompt-cache-maximum-checkpoints 4
402
+ supports-long-prompt-cache-retention #true
403
+ prompt-cache {
404
+ short 300
405
+ long 3600
406
+ }
407
+ }
331
408
  }
332
- revision ">=4 <4.5" {
333
- prompt-cache-mode "explicit"
334
- prompt-cache-minimum-tokens 1024
335
- prompt-cache-maximum-checkpoints 4
409
+ family "haiku" {
410
+ revision "=3.5" {
411
+ prompt-cache-mode "explicit"
412
+ prompt-cache-minimum-tokens 2048
413
+ prompt-cache-maximum-checkpoints 4
414
+ prompt-cache {
415
+ short 300
416
+ }
417
+ }
418
+ revision ">=4.5" {
419
+ prompt-cache-mode "explicit"
420
+ prompt-cache-minimum-tokens 4096
421
+ prompt-cache-maximum-checkpoints 4
422
+ supports-long-prompt-cache-retention #true
423
+ prompt-cache {
424
+ short 300
425
+ long 3600
426
+ }
427
+ }
336
428
  }
337
- revision "=4.5" {
338
- prompt-cache-mode "explicit"
339
- prompt-cache-minimum-tokens 4096
340
- prompt-cache-maximum-checkpoints 4
341
- supports-long-prompt-cache-retention #true
429
+ family "fable" {
430
+ revision ">=5" {
431
+ prompt-cache-mode "explicit"
432
+ prompt-cache-minimum-tokens 1024
433
+ prompt-cache-maximum-checkpoints 4
434
+ supports-long-prompt-cache-retention #true
435
+ prompt-cache {
436
+ short 300
437
+ long 3600
438
+ }
439
+ }
342
440
  }
343
- revision "=4.6" {
344
- prompt-cache-mode "explicit"
345
- prompt-cache-minimum-tokens 1024
346
- prompt-cache-maximum-checkpoints 4
441
+ }
442
+ }
443
+ // Messages routes on Bedrock Runtime and Mantle use the Anthropic five-minute
444
+ // cache lifetime. Require both the AWS provider and Messages API: model IDs
445
+ // alone do not distinguish Bedrock from gateways or other API lanes.
446
+ on "amazon-bedrock" "bedrock-mantle" {
447
+ on-api "anthropic-messages" {
448
+ family "opus" {
449
+ revision ">=4.7" {
450
+ prompt-cache {
451
+ short 300
452
+ }
453
+ }
347
454
  }
348
- revision ">=5" {
349
- prompt-cache-mode "explicit"
350
- prompt-cache-minimum-tokens 4096
351
- prompt-cache-maximum-checkpoints 4
352
- supports-long-prompt-cache-retention #true
455
+ family "sonnet" {
456
+ revision ">=4.6" {
457
+ prompt-cache {
458
+ short 300
459
+ }
460
+ }
353
461
  }
354
- }
355
- family "haiku" {
356
- revision "=3.5" {
357
- prompt-cache-mode "explicit"
358
- prompt-cache-minimum-tokens 2048
359
- prompt-cache-maximum-checkpoints 4
462
+ family "haiku" {
463
+ revision ">=4.5" {
464
+ prompt-cache {
465
+ short 300
466
+ }
467
+ }
360
468
  }
361
- revision ">=4.5" {
362
- prompt-cache-mode "explicit"
363
- prompt-cache-minimum-tokens 4096
364
- prompt-cache-maximum-checkpoints 4
365
- supports-long-prompt-cache-retention #true
469
+ family "fable" {
470
+ revision ">=5" {
471
+ prompt-cache {
472
+ short 300
473
+ }
474
+ }
366
475
  }
367
- }
368
- family "fable" {
369
- revision ">=5" {
370
- prompt-cache-mode "explicit"
371
- prompt-cache-minimum-tokens 1024
372
- prompt-cache-maximum-checkpoints 4
373
- supports-long-prompt-cache-retention #true
476
+ family "mythos" {
477
+ // The Mythos Preview id has no numeric revision to select.
478
+ models "*mythos-preview*" {
479
+ prompt-cache {
480
+ short 300
481
+ }
482
+ }
483
+
484
+ revision ">=5" {
485
+ prompt-cache {
486
+ short 300
487
+ }
488
+ }
374
489
  }
375
490
  }
376
491
  }
@@ -54,6 +54,24 @@ provider "commandcode" {
54
54
  supports-eager-tool-input-streaming #false
55
55
  supports-long-cache-retention #false
56
56
  }
57
+ // Endpoint contract for every id `api-routes provider="commandcode"` sends to
58
+ // Responses. Responses accepts `reasoning.effort: "none"` while chat
59
+ // completions rejects it (low|medium|high|xhigh|max only), so thinking-off
60
+ // disables reasoning instead of clamping to the lowest effort. Ids without
61
+ // an effort ladder stay inert through provider-level
62
+ // `supports-reasoning-effort #false`. The Responses endpoint also rejects an
63
+ // object `tool_choice` (verified 2026-09-29), so named choices degrade to
64
+ // `"required"`.
65
+ on-api "openai-responses" {
66
+ reasoning-disable-mode "none-effort"
67
+ supports-named-tool-choice #false
68
+ }
69
+ // First-party OpenAI grants `none` only to the 5.6 generation
70
+ // (`providers/openai.kdl`); the gateway may forward `reasoning.effort`
71
+ // unchanged, so the other GPT ids keep the first-party lowest-effort off.
72
+ models "gpt-5.3-codex" "gpt-5.4" "gpt-5.4-mini" "gpt-5.5" "gpt-6-astra" "gpt-6-luna" "gpt-6-sol" {
73
+ reasoning-disable-mode "lowest-effort"
74
+ }
57
75
  models "typesafe/jev" {
58
76
  kind "judge"
59
77
  }
@@ -154,15 +172,13 @@ provider "commandcode" {
154
172
  max-tokens 65536
155
173
  }
156
174
  }
157
- // Command Code's Responses endpoint rejects an object `tool_choice` and returns
158
- // no bytes from `image_generation` (verified 2026-09-29), so the openai
159
- // class's hosted-image and image-model grants do not apply and named choices
160
- // degrade to `"required"`. Hosted web search still works with a string `tool_choice`.
175
+ // Command Code's Responses endpoint returns no bytes from `image_generation`
176
+ // (verified 2026-09-29), so the openai class's hosted-image and image-model
177
+ // grants do not apply. Hosted web search still works with a string `tool_choice`.
161
178
  models "gpt-5.3-codex" "gpt-5.4" "gpt-5.4-mini" "gpt-5.5" "gpt-5.6-luna" "gpt-5.6-sol" \
162
179
  "gpt-5.6-terra" "gpt-6-astra" "gpt-6-luna" "gpt-6-sol" {
163
180
  hosted-image #false
164
181
  image-model #false
165
- supports-named-tool-choice #false
166
182
  }
167
183
  // ---------------------------------------------------------------------------
168
184
  // This table prices every model id that GET /provider/v1/models serves.
@@ -8,6 +8,11 @@ provider "cursor" {
8
8
  }
9
9
 
10
10
  thinking-mode "effort"
11
+ // Cursor's default route selects a differently priced backing model per request.
12
+ models "default" {
13
+ pricing-status "variable"
14
+ }
15
+
11
16
  class "anthropic" {
12
17
  family "fable" {
13
18
  requires-cursor-tool-schema-projection #true
@@ -211,9 +216,10 @@ provider "cursor" {
211
216
  }
212
217
  }
213
218
  // Claude Opus 5 Fast: the docs name the fast wire ids but publish no
214
- // fast multiplier, so fast bills at the base Opus 5 card.
219
+ // fast rate. Discovery applies AvailableModels' declared fast multiplier
220
+ // (2x); the base card only seeds rows discovery left unpriced.
215
221
  models "claude-opus-5-high-fast" "claude-opus-5-low-fast" "claude-opus-5-medium-fast" "claude-opus-5-thinking-max-fast" "claude-opus-5-thinking-xhigh-fast" {
216
- cost-patch {
222
+ cost-fallback {
217
223
  input 5.0
218
224
  output 25.0
219
225
  cache-read 0.5
@@ -231,9 +237,10 @@ provider "cursor" {
231
237
  }
232
238
  }
233
239
  // Claude Opus 5.5 Fast: the docs name the fast wire id but publish no
234
- // fast multiplier, so fast bills at the base Opus 5.5 card.
240
+ // fast rate. Discovery prices it from AvailableModels' declared fast
241
+ // multiplier; the base card only seeds rows discovery left unpriced.
235
242
  models "claude-opus-5-5-fast" {
236
- cost-patch {
243
+ cost-fallback {
237
244
  input 4.0
238
245
  output 20.0
239
246
  cache-read 0.2
@@ -267,8 +274,9 @@ provider "cursor" {
267
274
  cache-write 0
268
275
  }
269
276
  }
270
- // Grok 4.5: $2/$6, cache read $0.50, no write fee.
271
- models "cursor-grok-4.5" {
277
+ // Grok 4.5: $2/$6, cache read $0.50, no write fee. Legacy id plus the
278
+ // per-effort wire slugs AvailableModels serves.
279
+ models "cursor-grok-4.5" "cursor-grok-4.5-low" "cursor-grok-4.5-medium" "cursor-grok-4.5-high" {
272
280
  cost-patch {
273
281
  input 2.0
274
282
  output 6.0
@@ -277,7 +285,7 @@ provider "cursor" {
277
285
  }
278
286
  }
279
287
  // Grok 4.5 Fast: $4/$18, cache read $1.00. Output is 3x base per docs.
280
- models "cursor-grok-4.5-fast" {
288
+ models "cursor-grok-4.5-fast" "cursor-grok-4.5-low-fast" "cursor-grok-4.5-medium-fast" "cursor-grok-4.5-high-fast" {
281
289
  cost-patch {
282
290
  input 4.0
283
291
  output 18.0
@@ -285,8 +293,9 @@ provider "cursor" {
285
293
  cache-write 0
286
294
  }
287
295
  }
288
- // Grok 4.6: $2/$6, cache read $0.50, no write fee.
289
- models "cursor-grok-4.6" {
296
+ // Grok 4.6: $2/$6, cache read $0.50, no write fee. Legacy id plus the
297
+ // per-effort wire slugs AvailableModels serves.
298
+ models "cursor-grok-4.6" "cursor-grok-4.6-low" "cursor-grok-4.6-medium" "cursor-grok-4.6-high" "cursor-grok-4.6-xhigh" {
290
299
  cost-patch {
291
300
  input 2.0
292
301
  output 6.0
@@ -295,7 +304,8 @@ provider "cursor" {
295
304
  }
296
305
  }
297
306
  // Grok 4.6 Fast: $4/$12, cache read $1.00.
298
- models "cursor-grok-4.6-fast" {
307
+ models "cursor-grok-4.6-fast" "cursor-grok-4.6-low-fast" "cursor-grok-4.6-medium-fast" "cursor-grok-4.6-high-fast" \
308
+ "cursor-grok-4.6-xhigh-fast" {
299
309
  cost-patch {
300
310
  input 4.0
301
311
  output 12.0
@@ -448,10 +458,10 @@ provider "cursor" {
448
458
  cache-write 0
449
459
  }
450
460
  }
451
- // GPT-5.2 Fast: the docs publish no fast multiplier, so fast bills at
452
- // the base GPT-5.2 card.
461
+ // GPT-5.2 Fast: the docs publish no fast rate. Discovery applies the
462
+ // declared fast multiplier; the base card only seeds unpriced rows.
453
463
  models "gpt-5.2-fast" "gpt-5.2-high-fast" "gpt-5.2-low-fast" "gpt-5.2-xhigh-fast" {
454
- cost-patch {
464
+ cost-fallback {
455
465
  input 1.75
456
466
  output 14.0
457
467
  cache-read 0.175
@@ -486,9 +496,10 @@ provider "cursor" {
486
496
  cache-write 0
487
497
  }
488
498
  }
489
- // GPT-5.3 Codex Fast: no fast multiplier published; base card applies.
499
+ // GPT-5.3 Codex Fast: no fast rate published; discovery applies the
500
+ // declared multiplier, and the base card only seeds unpriced rows.
490
501
  models "gpt-5.3-codex-fast" "gpt-5.3-codex-high-fast" "gpt-5.3-codex-low-fast" "gpt-5.3-codex-xhigh-fast" {
491
- cost-patch {
502
+ cost-fallback {
492
503
  input 1.75
493
504
  output 14.0
494
505
  cache-read 0.175
@@ -543,9 +554,10 @@ provider "cursor" {
543
554
  cache-write 0
544
555
  }
545
556
  }
546
- // GPT-5.5 Fast: higher fast rates are unpublished; base card applies.
557
+ // GPT-5.5 Fast: fast rates are unpublished; discovery applies the declared
558
+ // multiplier, and the base card only seeds unpriced rows.
547
559
  models "gpt-5.5-fast" {
548
- cost-patch {
560
+ cost-fallback {
549
561
  input 5.0
550
562
  output 30.0
551
563
  cache-read 0.5