@oh-my-pi/pi-catalog 18.1.2 → 18.1.4

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.
@@ -2,6 +2,11 @@
2
2
 
3
3
  provider "cursor" {
4
4
  thinking-mode "effort"
5
+ class "anthropic" {
6
+ family "fable" {
7
+ requires-cursor-tool-schema-projection #true
8
+ }
9
+ }
5
10
  // GetUsableModels advertises no input modalities or context windows.
6
11
  // K3 (including the bare `k3` alias Cursor serves) is natively
7
12
  // multimodal and 1M-context.
@@ -18,7 +18,7 @@ provider "google-antigravity" {
18
18
  thinking-mode "budget"
19
19
  thinking-suppress-when-off #true
20
20
  }
21
- revision ">=3.6 <3.8" {
21
+ revision ">=3.6" {
22
22
  thinking-mode "google-level"
23
23
  thinking-requires-effort #true
24
24
  }
@@ -25,8 +25,12 @@ provider "zai" {
25
25
  }
26
26
  // GLM-5.3-Flash is the first mandatory-thinking flash SKU. Its exact
27
27
  // deployment keeps the Anthropic budget+effort wire mode instead of the
28
- // older optional-thinking flash family's budget-only mode.
28
+ // older optional-thinking flash family's budget-only mode. The SKU rides
29
+ // Z.AI's native OpenAI-completions endpoint, so clamp the sent max_tokens
30
+ // to the advertised 131K cap rather than the 64K OpenAI default (the
31
+ // axis is a no-op on the Anthropic route).
29
32
  models "glm-5.3-flash" {
30
33
  thinking-mode "anthropic-budget-effort"
34
+ clamp-output-to-model-max #true
31
35
  }
32
36
  }
@@ -158,6 +158,11 @@ behavior {
158
158
  api-routes provider="zenmux" default="openai-completions" {
159
159
  route "anthropic-messages" prefix="anthropic/"
160
160
  }
161
+ // GLM-5.3-Flash is available on Z.AI's native chat-completions API but
162
+ // not its Anthropic-compatible coding endpoint (#10539).
163
+ api-routes provider="zai" default="anthropic-messages" {
164
+ route "openai-completions" exact="glm-5.3-flash"
165
+ }
161
166
  // OpenCode Zen: models.dev declares these with `@ai-sdk/anthropic`, but the
162
167
  // gateway serves them only at /v1/chat/completions (#1617).
163
168
  api-routes provider="opencode-zen" {
@@ -24,11 +24,6 @@ collapse {
24
24
  effort-family "cursor" "gpt-5.6-luna"
25
25
  effort-family "cursor" "gpt-5.6-sol"
26
26
  effort-family "cursor" "gpt-5.6-terra"
27
- // Cloud Code Assist advertises `-tiered` aliases beside effort-suffixed
28
- // Gemini Flash siblings. Fold each alias into the canonical routed family;
29
- // its minimal/off tier is served by the `-low` SKU.
30
- effort-family "google-antigravity" "gemini-3.6-flash" "gemini-3.6-flash-tiered"
31
- effort-family "google-antigravity" "gemini-3.7-flash" "gemini-3.7-flash-tiered"
32
27
  // `-fast` is a parallel SKU lane. It stays in the logical identifier while
33
28
  // the effort token immediately before it selects the wire sibling.
34
29
  effort-lane-suffix "-fast" "cursor"
@@ -36,22 +31,17 @@ collapse {
36
31
  // Reviewed per-provider variant families: logical models served as
37
32
  // per-effort/thinking sibling wire ids, with explicit routing, ladders,
38
33
  // budgets, and wire facts. Ported verbatim from the legacy hand tables.
39
- variant-family "google-antigravity" "gemini-3.6-flash" name="Gemini 3.6 Flash" {
40
- members "gemini-3.6-flash-low" "gemini-3.6-flash-medium" "gemini-3.6-flash-high" "gemini-3.6-flash-tiered"
41
- route "minimal" "gemini-3.6-flash-low"
42
- route "low" "gemini-3.6-flash-low"
43
- route "medium" "gemini-3.6-flash-medium"
44
- route "high" "gemini-3.6-flash-high"
45
- mode "google-level"
46
- efforts "minimal" "low" "medium" "high"
47
- requires-effort #true
48
- }
49
- variant-family "google-antigravity" "gemini-3.7-flash" name="Gemini 3.7 Flash" {
50
- members "gemini-3.7-flash-low" "gemini-3.7-flash-medium" "gemini-3.7-flash-high" "gemini-3.7-flash-tiered"
51
- route "minimal" "gemini-3.7-flash-low"
52
- route "low" "gemini-3.7-flash-low"
53
- route "medium" "gemini-3.7-flash-medium"
54
- route "high" "gemini-3.7-flash-high"
34
+ //
35
+ // Cloud Code Assist serves every Gemini Flash generation from 3.6 on as
36
+ // `-low`/`-medium`/`-high` thinking-level SKUs plus a `-tiered` alias. One
37
+ // template per provider covers each revision discovery advertises; the
38
+ // minimal tier is served by the `-low` SKU (Gemini 3.7+ rejects MINIMAL).
39
+ variant-family "google-antigravity" "gemini-{rev}-flash" name="Gemini {rev} Flash" revision=">=3.6" {
40
+ members "gemini-{rev}-flash-low" "gemini-{rev}-flash-medium" "gemini-{rev}-flash-high" "gemini-{rev}-flash-tiered"
41
+ route "minimal" "gemini-{rev}-flash-low"
42
+ route "low" "gemini-{rev}-flash-low"
43
+ route "medium" "gemini-{rev}-flash-medium"
44
+ route "high" "gemini-{rev}-flash-high"
55
45
  mode "google-level"
56
46
  efforts "minimal" "low" "medium" "high"
57
47
  requires-effort #true
@@ -143,22 +133,12 @@ collapse {
143
133
  efforts "minimal" "low" "medium" "high"
144
134
  preserve-absent-effort-routes #true
145
135
  }
146
- variant-family "google-gemini-cli" "gemini-3.6-flash" name="Gemini 3.6 Flash" {
147
- members "gemini-3.6-flash-low" "gemini-3.6-flash-medium" "gemini-3.6-flash-high" "gemini-3.6-flash-tiered"
148
- route "minimal" "gemini-3.6-flash-low"
149
- route "low" "gemini-3.6-flash-low"
150
- route "medium" "gemini-3.6-flash-medium"
151
- route "high" "gemini-3.6-flash-high"
152
- mode "google-level"
153
- efforts "minimal" "low" "medium" "high"
154
- requires-effort #true
155
- }
156
- variant-family "google-gemini-cli" "gemini-3.7-flash" name="Gemini 3.7 Flash" {
157
- members "gemini-3.7-flash-low" "gemini-3.7-flash-medium" "gemini-3.7-flash-high" "gemini-3.7-flash-tiered"
158
- route "minimal" "gemini-3.7-flash-low"
159
- route "low" "gemini-3.7-flash-low"
160
- route "medium" "gemini-3.7-flash-medium"
161
- route "high" "gemini-3.7-flash-high"
136
+ variant-family "google-gemini-cli" "gemini-{rev}-flash" name="Gemini {rev} Flash" revision=">=3.6" {
137
+ members "gemini-{rev}-flash-low" "gemini-{rev}-flash-medium" "gemini-{rev}-flash-high" "gemini-{rev}-flash-tiered"
138
+ route "minimal" "gemini-{rev}-flash-low"
139
+ route "low" "gemini-{rev}-flash-low"
140
+ route "medium" "gemini-{rev}-flash-medium"
141
+ route "high" "gemini-{rev}-flash-high"
162
142
  mode "google-level"
163
143
  efforts "minimal" "low" "medium" "high"
164
144
  requires-effort #true
@@ -1323,64 +1323,26 @@
1323
1323
  "provider": "cursor",
1324
1324
  "logical": "gpt-5.6-terra",
1325
1325
  "aliases": []
1326
- },
1327
- {
1328
- "provider": "google-antigravity",
1329
- "logical": "gemini-3.6-flash",
1330
- "aliases": [
1331
- "gemini-3.6-flash-tiered"
1332
- ]
1333
- },
1334
- {
1335
- "provider": "google-antigravity",
1336
- "logical": "gemini-3.7-flash",
1337
- "aliases": [
1338
- "gemini-3.7-flash-tiered"
1339
- ]
1340
1326
  }
1341
1327
  ],
1342
1328
  "variantFamilies": [
1343
1329
  {
1344
1330
  "provider": "google-antigravity",
1345
- "id": "gemini-3.6-flash",
1346
- "name": "Gemini 3.6 Flash",
1347
- "members": [
1348
- "gemini-3.6-flash-low",
1349
- "gemini-3.6-flash-medium",
1350
- "gemini-3.6-flash-high",
1351
- "gemini-3.6-flash-tiered"
1352
- ],
1353
- "routing": {
1354
- "minimal": "gemini-3.6-flash-low",
1355
- "low": "gemini-3.6-flash-low",
1356
- "medium": "gemini-3.6-flash-medium",
1357
- "high": "gemini-3.6-flash-high"
1358
- },
1359
- "mode": "google-level",
1360
- "efforts": [
1361
- "minimal",
1362
- "low",
1363
- "medium",
1364
- "high"
1365
- ],
1366
- "requiresEffort": true
1367
- },
1368
- {
1369
- "provider": "google-antigravity",
1370
- "id": "gemini-3.7-flash",
1371
- "name": "Gemini 3.7 Flash",
1331
+ "id": "gemini-{rev}-flash",
1332
+ "name": "Gemini {rev} Flash",
1372
1333
  "members": [
1373
- "gemini-3.7-flash-low",
1374
- "gemini-3.7-flash-medium",
1375
- "gemini-3.7-flash-high",
1376
- "gemini-3.7-flash-tiered"
1334
+ "gemini-{rev}-flash-low",
1335
+ "gemini-{rev}-flash-medium",
1336
+ "gemini-{rev}-flash-high",
1337
+ "gemini-{rev}-flash-tiered"
1377
1338
  ],
1378
1339
  "routing": {
1379
- "minimal": "gemini-3.7-flash-low",
1380
- "low": "gemini-3.7-flash-low",
1381
- "medium": "gemini-3.7-flash-medium",
1382
- "high": "gemini-3.7-flash-high"
1340
+ "minimal": "gemini-{rev}-flash-low",
1341
+ "low": "gemini-{rev}-flash-low",
1342
+ "medium": "gemini-{rev}-flash-medium",
1343
+ "high": "gemini-{rev}-flash-high"
1383
1344
  },
1345
+ "revision": ">=3.6",
1384
1346
  "mode": "google-level",
1385
1347
  "efforts": [
1386
1348
  "minimal",
@@ -1602,45 +1564,21 @@
1602
1564
  },
1603
1565
  {
1604
1566
  "provider": "google-gemini-cli",
1605
- "id": "gemini-3.6-flash",
1606
- "name": "Gemini 3.6 Flash",
1607
- "members": [
1608
- "gemini-3.6-flash-low",
1609
- "gemini-3.6-flash-medium",
1610
- "gemini-3.6-flash-high",
1611
- "gemini-3.6-flash-tiered"
1612
- ],
1613
- "routing": {
1614
- "minimal": "gemini-3.6-flash-low",
1615
- "low": "gemini-3.6-flash-low",
1616
- "medium": "gemini-3.6-flash-medium",
1617
- "high": "gemini-3.6-flash-high"
1618
- },
1619
- "mode": "google-level",
1620
- "efforts": [
1621
- "minimal",
1622
- "low",
1623
- "medium",
1624
- "high"
1625
- ],
1626
- "requiresEffort": true
1627
- },
1628
- {
1629
- "provider": "google-gemini-cli",
1630
- "id": "gemini-3.7-flash",
1631
- "name": "Gemini 3.7 Flash",
1567
+ "id": "gemini-{rev}-flash",
1568
+ "name": "Gemini {rev} Flash",
1632
1569
  "members": [
1633
- "gemini-3.7-flash-low",
1634
- "gemini-3.7-flash-medium",
1635
- "gemini-3.7-flash-high",
1636
- "gemini-3.7-flash-tiered"
1570
+ "gemini-{rev}-flash-low",
1571
+ "gemini-{rev}-flash-medium",
1572
+ "gemini-{rev}-flash-high",
1573
+ "gemini-{rev}-flash-tiered"
1637
1574
  ],
1638
1575
  "routing": {
1639
- "minimal": "gemini-3.7-flash-low",
1640
- "low": "gemini-3.7-flash-low",
1641
- "medium": "gemini-3.7-flash-medium",
1642
- "high": "gemini-3.7-flash-high"
1576
+ "minimal": "gemini-{rev}-flash-low",
1577
+ "low": "gemini-{rev}-flash-low",
1578
+ "medium": "gemini-{rev}-flash-medium",
1579
+ "high": "gemini-{rev}-flash-high"
1643
1580
  },
1581
+ "revision": ">=3.6",
1644
1582
  "mode": "google-level",
1645
1583
  "efforts": [
1646
1584
  "minimal",
@@ -4720,7 +4658,34 @@
4720
4658
  }
4721
4659
  },
4722
4660
  {
4723
- "source": "classes/gemini.kdl:71",
4661
+ "source": "classes/gemini.kdl:79",
4662
+ "class": "gemini",
4663
+ "providers": [
4664
+ "google",
4665
+ "google-vertex",
4666
+ "opencode-zen"
4667
+ ],
4668
+ "family": "flash",
4669
+ "revision": [
4670
+ {
4671
+ "op": ">=",
4672
+ "revision": "3.7.0"
4673
+ },
4674
+ {
4675
+ "op": "<",
4676
+ "revision": "3.8.0"
4677
+ }
4678
+ ],
4679
+ "thinking": {
4680
+ "efforts": [
4681
+ "low",
4682
+ "medium",
4683
+ "high"
4684
+ ]
4685
+ }
4686
+ },
4687
+ {
4688
+ "source": "classes/gemini.kdl:85",
4724
4689
  "class": "gemini",
4725
4690
  "revision": [
4726
4691
  {
@@ -4729,15 +4694,14 @@
4729
4694
  }
4730
4695
  ],
4731
4696
  "wire": {
4732
- "multimodalFunctionResponse": true,
4733
- "requiresSkipThoughtSignature": true
4697
+ "multimodalFunctionResponse": true
4734
4698
  },
4735
4699
  "thinking": {
4736
4700
  "requiresEffort": true
4737
4701
  }
4738
4702
  },
4739
4703
  {
4740
- "source": "classes/gemini.kdl:79",
4704
+ "source": "classes/gemini.kdl:93",
4741
4705
  "class": "gemini",
4742
4706
  "providers": [
4743
4707
  "google",
@@ -4750,11 +4714,12 @@
4750
4714
  }
4751
4715
  ],
4752
4716
  "wire": {
4717
+ "requiresSkipThoughtSignature": true,
4753
4718
  "supportsFunctionPartId": true
4754
4719
  }
4755
4720
  },
4756
4721
  {
4757
- "source": "classes/gemini.kdl:84",
4722
+ "source": "classes/gemini.kdl:99",
4758
4723
  "class": "gemini",
4759
4724
  "providers": [
4760
4725
  "google-antigravity",
@@ -4847,7 +4812,7 @@
4847
4812
  }
4848
4813
  },
4849
4814
  {
4850
- "source": "classes/glm.kdl:13",
4815
+ "source": "classes/glm.kdl:16",
4851
4816
  "class": "glm",
4852
4817
  "revision": [
4853
4818
  {
@@ -4859,6 +4824,7 @@
4859
4824
  "revision": "5.3.0"
4860
4825
  }
4861
4826
  ],
4827
+ "priority": 10,
4862
4828
  "thinking": {
4863
4829
  "efforts": [
4864
4830
  "minimal",
@@ -4870,7 +4836,7 @@
4870
4836
  }
4871
4837
  },
4872
4838
  {
4873
- "source": "classes/glm.kdl:17",
4839
+ "source": "classes/glm.kdl:20",
4874
4840
  "class": "glm",
4875
4841
  "providers": [
4876
4842
  "zai",
@@ -4892,7 +4858,7 @@
4892
4858
  }
4893
4859
  },
4894
4860
  {
4895
- "source": "classes/glm.kdl:23",
4861
+ "source": "classes/glm.kdl:26",
4896
4862
  "class": "glm",
4897
4863
  "providers": [
4898
4864
  "zai",
@@ -4919,7 +4885,7 @@
4919
4885
  }
4920
4886
  },
4921
4887
  {
4922
- "source": "classes/glm.kdl:29",
4888
+ "source": "classes/glm.kdl:32",
4923
4889
  "class": "glm",
4924
4890
  "providers": [
4925
4891
  "vercel-ai-gateway"
@@ -4945,7 +4911,7 @@
4945
4911
  }
4946
4912
  },
4947
4913
  {
4948
- "source": "classes/glm.kdl:36",
4914
+ "source": "classes/glm.kdl:39",
4949
4915
  "class": "glm",
4950
4916
  "providers": [
4951
4917
  "zai",
@@ -4973,7 +4939,7 @@
4973
4939
  }
4974
4940
  },
4975
4941
  {
4976
- "source": "classes/glm.kdl:46",
4942
+ "source": "classes/glm.kdl:49",
4977
4943
  "class": "glm",
4978
4944
  "providers": [
4979
4945
  "zai"
@@ -4994,7 +4960,7 @@
4994
4960
  }
4995
4961
  },
4996
4962
  {
4997
- "source": "classes/glm.kdl:58",
4963
+ "source": "classes/glm.kdl:61",
4998
4964
  "class": "glm",
4999
4965
  "providers": [
5000
4966
  "zai",
@@ -5014,7 +4980,7 @@
5014
4980
  }
5015
4981
  },
5016
4982
  {
5017
- "source": "classes/glm.kdl:62",
4983
+ "source": "classes/glm.kdl:65",
5018
4984
  "class": "glm",
5019
4985
  "providers": [
5020
4986
  "alibaba-coding-plan",
@@ -5026,7 +4992,7 @@
5026
4992
  }
5027
4993
  },
5028
4994
  {
5029
- "source": "classes/glm.kdl:66",
4995
+ "source": "classes/glm.kdl:69",
5030
4996
  "class": "glm",
5031
4997
  "providers": [
5032
4998
  "openrouter",
@@ -5043,7 +5009,7 @@
5043
5009
  }
5044
5010
  },
5045
5011
  {
5046
- "source": "classes/glm.kdl:77",
5012
+ "source": "classes/glm.kdl:80",
5047
5013
  "class": "glm",
5048
5014
  "models": [
5049
5015
  {
@@ -7458,7 +7424,18 @@
7458
7424
  }
7459
7425
  },
7460
7426
  {
7461
- "source": "providers/cursor.kdl:9",
7427
+ "source": "providers/cursor.kdl:6",
7428
+ "class": "anthropic",
7429
+ "providers": [
7430
+ "cursor"
7431
+ ],
7432
+ "family": "fable",
7433
+ "catalog": {
7434
+ "requiresCursorToolSchemaProjection": true
7435
+ }
7436
+ },
7437
+ {
7438
+ "source": "providers/cursor.kdl:14",
7462
7439
  "class": "kimi",
7463
7440
  "providers": [
7464
7441
  "cursor"
@@ -7473,7 +7450,7 @@
7473
7450
  }
7474
7451
  },
7475
7452
  {
7476
- "source": "providers/cursor.kdl:14",
7453
+ "source": "providers/cursor.kdl:19",
7477
7454
  "providers": [
7478
7455
  "cursor"
7479
7456
  ],
@@ -7496,7 +7473,7 @@
7496
7473
  }
7497
7474
  },
7498
7475
  {
7499
- "source": "providers/cursor.kdl:20",
7476
+ "source": "providers/cursor.kdl:25",
7500
7477
  "providers": [
7501
7478
  "cursor"
7502
7479
  ],
@@ -7530,7 +7507,7 @@
7530
7507
  }
7531
7508
  },
7532
7509
  {
7533
- "source": "providers/cursor.kdl:23",
7510
+ "source": "providers/cursor.kdl:28",
7534
7511
  "providers": [
7535
7512
  "cursor"
7536
7513
  ],
@@ -7564,7 +7541,7 @@
7564
7541
  }
7565
7542
  },
7566
7543
  {
7567
- "source": "providers/cursor.kdl:27",
7544
+ "source": "providers/cursor.kdl:32",
7568
7545
  "providers": [
7569
7546
  "cursor"
7570
7547
  ],
@@ -7582,7 +7559,7 @@
7582
7559
  }
7583
7560
  },
7584
7561
  {
7585
- "source": "providers/cursor.kdl:31",
7562
+ "source": "providers/cursor.kdl:36",
7586
7563
  "providers": [
7587
7564
  "cursor"
7588
7565
  ],
@@ -7615,7 +7592,7 @@
7615
7592
  }
7616
7593
  },
7617
7594
  {
7618
- "source": "providers/cursor.kdl:35",
7595
+ "source": "providers/cursor.kdl:40",
7619
7596
  "providers": [
7620
7597
  "cursor"
7621
7598
  ],
@@ -7655,7 +7632,7 @@
7655
7632
  }
7656
7633
  },
7657
7634
  {
7658
- "source": "providers/cursor.kdl:40",
7635
+ "source": "providers/cursor.kdl:45",
7659
7636
  "providers": [
7660
7637
  "cursor"
7661
7638
  ],
@@ -7674,7 +7651,7 @@
7674
7651
  }
7675
7652
  },
7676
7653
  {
7677
- "source": "providers/cursor.kdl:44",
7654
+ "source": "providers/cursor.kdl:49",
7678
7655
  "providers": [
7679
7656
  "cursor"
7680
7657
  ],
@@ -8310,10 +8287,6 @@
8310
8287
  {
8311
8288
  "op": ">=",
8312
8289
  "revision": "3.6.0"
8313
- },
8314
- {
8315
- "op": "<",
8316
- "revision": "3.8.0"
8317
8290
  }
8318
8291
  ],
8319
8292
  "thinking": {
@@ -13245,7 +13218,7 @@
13245
13218
  }
13246
13219
  },
13247
13220
  {
13248
- "source": "providers/zai.kdl:29",
13221
+ "source": "providers/zai.kdl:32",
13249
13222
  "providers": [
13250
13223
  "zai"
13251
13224
  ],
@@ -13255,6 +13228,9 @@
13255
13228
  "value": "glm-5.3-flash"
13256
13229
  }
13257
13230
  ],
13231
+ "wire": {
13232
+ "clampOutputToModelMax": true
13233
+ },
13258
13234
  "thinking": {
13259
13235
  "mode": "anthropic-budget-effort"
13260
13236
  }
@@ -14148,6 +14124,20 @@
14148
14124
  ],
14149
14125
  "default": "openai-completions"
14150
14126
  },
14127
+ {
14128
+ "provider": "zai",
14129
+ "routes": [
14130
+ {
14131
+ "api": "openai-completions",
14132
+ "match": {
14133
+ "exact": [
14134
+ "glm-5.3-flash"
14135
+ ]
14136
+ }
14137
+ }
14138
+ ],
14139
+ "default": "anthropic-messages"
14140
+ },
14151
14141
  {
14152
14142
  "provider": "opencode-zen",
14153
14143
  "routes": [
@@ -91,6 +91,14 @@ export interface CompiledEffortFamily {
91
91
  /** Per-effort routing tier keys (`"off"` = thinking disabled). */
92
92
  export type VariantTier = Effort | "off";
93
93
 
94
+ /**
95
+ * Revision placeholder in a templated `variant-family` (`gemini-{rev}-flash`).
96
+ * A family whose id carries it is instantiated once per live revision that
97
+ * discovery advertises, so new generations of a lineage collapse without a
98
+ * new reviewed entry.
99
+ */
100
+ export const REVISION_PLACEHOLDER = "{rev}";
101
+
94
102
  /**
95
103
  * One reviewed provider-scoped variant family: a logical model whose provider
96
104
  * serves per-effort/thinking sibling wire ids, with explicit routing, ladder,
@@ -100,6 +108,11 @@ export interface CompiledVariantFamily {
100
108
  provider: string;
101
109
  id: string;
102
110
  name: string;
111
+ /**
112
+ * Revision constraint (`">=3.6"`) gating instantiation of a
113
+ * {@link REVISION_PLACEHOLDER} template; absent on concrete families.
114
+ */
115
+ revision?: string;
103
116
  /** Member wire ids in priority order. */
104
117
  members: string[];
105
118
  /** Preferred default wire id when live. */