@oh-my-pi/pi-catalog 17.2.12 → 17.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/package.json +4 -4
- package/src/identity/classify.ts +3 -3
- package/src/models.json +119 -15
- package/src/provider-models/openai-compat.ts +43 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [17.2.13] - 2026-08-11
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Standardized catalog discovery User-Agent headers on `omp/<version>` via the shared `USER_AGENT` utility.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Marked `meta/muse-spark-1.2` and `muse-spark-1.2-contributor` as image-capable (`input: ["text", "image"]`) with the same Responses reasoning, thinking, and cost metadata as `muse-spark-1.1` (contributor uses its discounted 0.1/0.2 pricing), so `omp models` no longer lists them as text-only.
|
|
14
|
+
- Fixed GLM-5.2 thinking levels across Baseten, CoreWeave, HuggingFace, and other uppercase-ID resellers, which were getting the generic `xhigh` effort ladder instead of the GLM-5.2-specific tiers. Also added Baseten `zai-org/GLM-5.2-Fast` and Fireworks `glm-5.2-fast` as reasoning models ([#8200](https://github.com/can1357/oh-my-pi/pull/8200) by [@jcfrancisco](https://github.com/jcfrancisco)).
|
|
15
|
+
|
|
5
16
|
## [17.2.12] - 2026-08-08
|
|
6
17
|
|
|
7
18
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "17.2.
|
|
4
|
+
"version": "17.2.14",
|
|
5
5
|
"description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@bufbuild/protobuf": "^2.12.1",
|
|
38
|
-
"@oh-my-pi/omptype": "17.2.
|
|
39
|
-
"@oh-my-pi/pi-utils": "17.2.
|
|
38
|
+
"@oh-my-pi/omptype": "17.2.14",
|
|
39
|
+
"@oh-my-pi/pi-utils": "17.2.14"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "17.2.
|
|
42
|
+
"@oh-my-pi/pi-ai": "17.2.14",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/identity/classify.ts
CHANGED
|
@@ -143,7 +143,7 @@ export const parseOpenAIModel = parser((modelId): OpenAIModel | null => {
|
|
|
143
143
|
* `parseKnownModel`.
|
|
144
144
|
*/
|
|
145
145
|
export const parseGlmModel = parser((modelId): GlmModel | null => {
|
|
146
|
-
const match = /glm-(\d{1,2}(?:\.\d+)?)(v)?(?:-(air|turbo|flashx|flash|preview))?\b
|
|
146
|
+
const match = /glm-(\d{1,2}(?:\.\d+)?)(v)?(?:-(air|turbo|flashx|flash|preview))?\b/i.exec(modelId);
|
|
147
147
|
if (!match) {
|
|
148
148
|
return null;
|
|
149
149
|
}
|
|
@@ -153,8 +153,8 @@ export const parseGlmModel = parser((modelId): GlmModel | null => {
|
|
|
153
153
|
}
|
|
154
154
|
return {
|
|
155
155
|
family: "glm",
|
|
156
|
-
variant: (match[3] as GlmVariant | undefined) ?? "base",
|
|
157
|
-
vision: match[2] === "v",
|
|
156
|
+
variant: (match[3]?.toLowerCase() as GlmVariant | undefined) ?? "base",
|
|
157
|
+
vision: match[2]?.toLowerCase() === "v",
|
|
158
158
|
version,
|
|
159
159
|
};
|
|
160
160
|
});
|
package/src/models.json
CHANGED
|
@@ -13793,11 +13793,8 @@
|
|
|
13793
13793
|
"thinking": {
|
|
13794
13794
|
"mode": "effort",
|
|
13795
13795
|
"efforts": [
|
|
13796
|
-
"minimal",
|
|
13797
|
-
"low",
|
|
13798
|
-
"medium",
|
|
13799
13796
|
"high",
|
|
13800
|
-
"
|
|
13797
|
+
"max"
|
|
13801
13798
|
]
|
|
13802
13799
|
},
|
|
13803
13800
|
"supportsComputerUse": false,
|
|
@@ -13809,7 +13806,7 @@
|
|
|
13809
13806
|
"api": "openai-completions",
|
|
13810
13807
|
"provider": "baseten",
|
|
13811
13808
|
"baseUrl": "https://inference.baseten.co/v1",
|
|
13812
|
-
"reasoning":
|
|
13809
|
+
"reasoning": true,
|
|
13813
13810
|
"input": [
|
|
13814
13811
|
"text"
|
|
13815
13812
|
],
|
|
@@ -13822,7 +13819,14 @@
|
|
|
13822
13819
|
"contextWindow": 1048576,
|
|
13823
13820
|
"maxTokens": 262144,
|
|
13824
13821
|
"supportsComputerUse": false,
|
|
13825
|
-
"supportsComputerUseConfig": false
|
|
13822
|
+
"supportsComputerUseConfig": false,
|
|
13823
|
+
"thinking": {
|
|
13824
|
+
"mode": "effort",
|
|
13825
|
+
"efforts": [
|
|
13826
|
+
"high",
|
|
13827
|
+
"max"
|
|
13828
|
+
]
|
|
13829
|
+
}
|
|
13826
13830
|
}
|
|
13827
13831
|
},
|
|
13828
13832
|
"bedrock-mantle": {
|
|
@@ -16247,7 +16251,7 @@
|
|
|
16247
16251
|
"low",
|
|
16248
16252
|
"medium",
|
|
16249
16253
|
"high",
|
|
16250
|
-
"
|
|
16254
|
+
"max"
|
|
16251
16255
|
]
|
|
16252
16256
|
}
|
|
16253
16257
|
}
|
|
@@ -21875,6 +21879,40 @@
|
|
|
21875
21879
|
}
|
|
21876
21880
|
},
|
|
21877
21881
|
"supportsComputerUse": false
|
|
21882
|
+
},
|
|
21883
|
+
"glm-5.2-fast": {
|
|
21884
|
+
"id": "glm-5.2-fast",
|
|
21885
|
+
"name": "GLM-5.2 Fast",
|
|
21886
|
+
"api": "openai-completions",
|
|
21887
|
+
"provider": "fireworks",
|
|
21888
|
+
"baseUrl": "https://api.fireworks.ai/inference/v1",
|
|
21889
|
+
"reasoning": true,
|
|
21890
|
+
"input": [
|
|
21891
|
+
"text"
|
|
21892
|
+
],
|
|
21893
|
+
"cost": {
|
|
21894
|
+
"input": 2.1,
|
|
21895
|
+
"output": 6.6,
|
|
21896
|
+
"cacheRead": 0.21,
|
|
21897
|
+
"cacheWrite": 0
|
|
21898
|
+
},
|
|
21899
|
+
"contextWindow": 1048576,
|
|
21900
|
+
"maxTokens": 131072,
|
|
21901
|
+
"thinking": {
|
|
21902
|
+
"mode": "effort",
|
|
21903
|
+
"efforts": [
|
|
21904
|
+
"minimal",
|
|
21905
|
+
"low",
|
|
21906
|
+
"medium",
|
|
21907
|
+
"high",
|
|
21908
|
+
"max"
|
|
21909
|
+
],
|
|
21910
|
+
"effortMap": {
|
|
21911
|
+
"minimal": "none"
|
|
21912
|
+
}
|
|
21913
|
+
},
|
|
21914
|
+
"supportsComputerUse": false,
|
|
21915
|
+
"supportsComputerUseConfig": false
|
|
21878
21916
|
}
|
|
21879
21917
|
},
|
|
21880
21918
|
"github-copilot": {
|
|
@@ -28443,7 +28481,7 @@
|
|
|
28443
28481
|
"low",
|
|
28444
28482
|
"medium",
|
|
28445
28483
|
"high",
|
|
28446
|
-
"
|
|
28484
|
+
"max"
|
|
28447
28485
|
]
|
|
28448
28486
|
}
|
|
28449
28487
|
}
|
|
@@ -41098,6 +41136,74 @@
|
|
|
41098
41136
|
"supportsReasoningEffort": true,
|
|
41099
41137
|
"includeEncryptedReasoning": true
|
|
41100
41138
|
}
|
|
41139
|
+
},
|
|
41140
|
+
"muse-spark-1.2": {
|
|
41141
|
+
"id": "muse-spark-1.2",
|
|
41142
|
+
"name": "Muse Spark 1.2",
|
|
41143
|
+
"api": "openai-responses",
|
|
41144
|
+
"provider": "meta",
|
|
41145
|
+
"baseUrl": "https://api.meta.ai/v1",
|
|
41146
|
+
"reasoning": true,
|
|
41147
|
+
"input": [
|
|
41148
|
+
"text",
|
|
41149
|
+
"image"
|
|
41150
|
+
],
|
|
41151
|
+
"cost": {
|
|
41152
|
+
"input": 1.25,
|
|
41153
|
+
"output": 4.25,
|
|
41154
|
+
"cacheRead": 0.15,
|
|
41155
|
+
"cacheWrite": 0
|
|
41156
|
+
},
|
|
41157
|
+
"contextWindow": 1048576,
|
|
41158
|
+
"maxTokens": 131072,
|
|
41159
|
+
"thinking": {
|
|
41160
|
+
"mode": "effort",
|
|
41161
|
+
"efforts": [
|
|
41162
|
+
"minimal",
|
|
41163
|
+
"low",
|
|
41164
|
+
"medium",
|
|
41165
|
+
"high",
|
|
41166
|
+
"xhigh"
|
|
41167
|
+
]
|
|
41168
|
+
},
|
|
41169
|
+
"compat": {
|
|
41170
|
+
"supportsReasoningEffort": true,
|
|
41171
|
+
"includeEncryptedReasoning": true
|
|
41172
|
+
}
|
|
41173
|
+
},
|
|
41174
|
+
"muse-spark-1.2-contributor": {
|
|
41175
|
+
"id": "muse-spark-1.2-contributor",
|
|
41176
|
+
"name": "Muse Spark 1.2 Contributor (Data Used for Training)",
|
|
41177
|
+
"api": "openai-responses",
|
|
41178
|
+
"provider": "meta",
|
|
41179
|
+
"baseUrl": "https://api.meta.ai/v1",
|
|
41180
|
+
"reasoning": true,
|
|
41181
|
+
"input": [
|
|
41182
|
+
"text",
|
|
41183
|
+
"image"
|
|
41184
|
+
],
|
|
41185
|
+
"cost": {
|
|
41186
|
+
"input": 0.1,
|
|
41187
|
+
"output": 0.2,
|
|
41188
|
+
"cacheRead": 0.002,
|
|
41189
|
+
"cacheWrite": 0
|
|
41190
|
+
},
|
|
41191
|
+
"contextWindow": 1048576,
|
|
41192
|
+
"maxTokens": 131072,
|
|
41193
|
+
"thinking": {
|
|
41194
|
+
"mode": "effort",
|
|
41195
|
+
"efforts": [
|
|
41196
|
+
"minimal",
|
|
41197
|
+
"low",
|
|
41198
|
+
"medium",
|
|
41199
|
+
"high",
|
|
41200
|
+
"xhigh"
|
|
41201
|
+
]
|
|
41202
|
+
},
|
|
41203
|
+
"compat": {
|
|
41204
|
+
"supportsReasoningEffort": true,
|
|
41205
|
+
"includeEncryptedReasoning": true
|
|
41206
|
+
}
|
|
41101
41207
|
}
|
|
41102
41208
|
},
|
|
41103
41209
|
"minimax": {
|
|
@@ -89008,7 +89114,7 @@
|
|
|
89008
89114
|
"low",
|
|
89009
89115
|
"medium",
|
|
89010
89116
|
"high",
|
|
89011
|
-
"
|
|
89117
|
+
"max"
|
|
89012
89118
|
]
|
|
89013
89119
|
},
|
|
89014
89120
|
"supportsComputerUse": false,
|
|
@@ -90026,7 +90132,7 @@
|
|
|
90026
90132
|
"low",
|
|
90027
90133
|
"medium",
|
|
90028
90134
|
"high",
|
|
90029
|
-
"
|
|
90135
|
+
"max"
|
|
90030
90136
|
]
|
|
90031
90137
|
}
|
|
90032
90138
|
}
|
|
@@ -100924,10 +101030,8 @@
|
|
|
100924
101030
|
"thinking": {
|
|
100925
101031
|
"mode": "effort",
|
|
100926
101032
|
"efforts": [
|
|
100927
|
-
"
|
|
100928
|
-
"
|
|
100929
|
-
"medium",
|
|
100930
|
-
"high"
|
|
101033
|
+
"high",
|
|
101034
|
+
"max"
|
|
100931
101035
|
]
|
|
100932
101036
|
},
|
|
100933
101037
|
"supportsComputerUse": false,
|
|
@@ -109356,4 +109460,4 @@
|
|
|
109356
109460
|
}
|
|
109357
109461
|
}
|
|
109358
109462
|
}
|
|
109359
|
-
}
|
|
109463
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { USER_AGENT } from "@oh-my-pi/pi-utils";
|
|
2
2
|
import * as logger from "@oh-my-pi/pi-utils/logger";
|
|
3
3
|
import {
|
|
4
4
|
fetchOpenAICompatibleModels,
|
|
@@ -111,7 +111,7 @@ const catalogSession: {
|
|
|
111
111
|
hasPayload: boolean;
|
|
112
112
|
} = { inflight: null, payload: undefined, etag: null, hasPayload: false };
|
|
113
113
|
|
|
114
|
-
const CATALOG_USER_AGENT =
|
|
114
|
+
const CATALOG_USER_AGENT = USER_AGENT;
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
117
|
* Fetches the models.dev catalog via catalog.stencil.so, which serves a
|
|
@@ -1812,6 +1812,7 @@ const FIREWORKS_FAST_VARIANT_SPECS: ReadonlyArray<{
|
|
|
1812
1812
|
{ base: "kimi-k2.7-code", name: "Kimi K2.7 Code Fast", cost: { input: 1.9, output: 8, cacheRead: 0.38 } },
|
|
1813
1813
|
{ base: "kimi-k2.6", name: "Kimi K2.6 Fast", cost: { input: 2, output: 8, cacheRead: 0.3 } },
|
|
1814
1814
|
{ base: "glm-5.1", name: "GLM-5.1 Fast", cost: { input: 2.8, output: 8.8, cacheRead: 0.52 } },
|
|
1815
|
+
{ base: "glm-5.2", name: "GLM-5.2 Fast", cost: { input: 2.1, output: 6.6, cacheRead: 0.21 } },
|
|
1815
1816
|
];
|
|
1816
1817
|
|
|
1817
1818
|
/**
|
|
@@ -3549,10 +3550,13 @@ export function basetenModelManagerOptions(
|
|
|
3549
3550
|
const features = Array.isArray(raw.supported_features) ? raw.supported_features : [];
|
|
3550
3551
|
const modalities = Array.isArray(raw.input_modalities) ? raw.input_modalities : [];
|
|
3551
3552
|
|
|
3552
|
-
|
|
3553
|
+
// Baseten's reasoning router accepts only the high/max
|
|
3554
|
+
// effort tiers for its GLM-5.2 and gpt-oss routes.
|
|
3555
|
+
const isEffortReasoning =
|
|
3553
3556
|
defaults.id === "openai/gpt-oss-120b" ||
|
|
3554
|
-
defaults.id === "
|
|
3555
|
-
defaults.id === "zai-org/GLM-5.2";
|
|
3557
|
+
defaults.id === "zai-org/GLM-5.2" ||
|
|
3558
|
+
defaults.id === "zai-org/GLM-5.2-Fast";
|
|
3559
|
+
const isBasetenNativeReasoning = isEffortReasoning || defaults.id === "deepseek-ai/DeepSeek-V4-Pro";
|
|
3556
3560
|
const reasoning =
|
|
3557
3561
|
isBasetenNativeReasoning && (features.includes("reasoning") || features.includes("reasoning_effort"));
|
|
3558
3562
|
const supportsTools = features.includes("tools") ? undefined : false;
|
|
@@ -3570,10 +3574,6 @@ export function basetenModelManagerOptions(
|
|
|
3570
3574
|
const maxTokens = toPositiveNumber(raw.max_completion_tokens, reference?.maxTokens ?? defaults.maxTokens);
|
|
3571
3575
|
|
|
3572
3576
|
const baseModel = mapWithBundledReference(entry, defaults, reference);
|
|
3573
|
-
|
|
3574
|
-
// Baseten's reasoning router accepts only the high/max
|
|
3575
|
-
// effort tiers for its GLM-5.2 and gpt-oss routes.
|
|
3576
|
-
const isEffortReasoning = defaults.id === "openai/gpt-oss-120b" || defaults.id === "zai-org/GLM-5.2";
|
|
3577
3577
|
const thinking = isEffortReasoning
|
|
3578
3578
|
? {
|
|
3579
3579
|
mode: "effort" as const,
|
|
@@ -3659,6 +3659,40 @@ export const META_MUSE_STATIC_MODELS: readonly ModelSpec<"openai-responses">[] =
|
|
|
3659
3659
|
includeEncryptedReasoning: true,
|
|
3660
3660
|
},
|
|
3661
3661
|
},
|
|
3662
|
+
{
|
|
3663
|
+
id: "muse-spark-1.2",
|
|
3664
|
+
name: "Muse Spark 1.2",
|
|
3665
|
+
api: "openai-responses",
|
|
3666
|
+
provider: "meta",
|
|
3667
|
+
baseUrl: META_MODEL_API_BASE_URL,
|
|
3668
|
+
reasoning: true,
|
|
3669
|
+
input: ["text", "image"],
|
|
3670
|
+
cost: META_MUSE_SPARK_COST,
|
|
3671
|
+
contextWindow: 1_048_576,
|
|
3672
|
+
maxTokens: 131_072,
|
|
3673
|
+
thinking: META_MUSE_SPARK_THINKING,
|
|
3674
|
+
compat: {
|
|
3675
|
+
supportsReasoningEffort: true,
|
|
3676
|
+
includeEncryptedReasoning: true,
|
|
3677
|
+
},
|
|
3678
|
+
},
|
|
3679
|
+
{
|
|
3680
|
+
id: "muse-spark-1.2-contributor",
|
|
3681
|
+
name: "Muse Spark 1.2 Contributor (Data Used for Training)",
|
|
3682
|
+
api: "openai-responses",
|
|
3683
|
+
provider: "meta",
|
|
3684
|
+
baseUrl: META_MODEL_API_BASE_URL,
|
|
3685
|
+
reasoning: true,
|
|
3686
|
+
input: ["text", "image"],
|
|
3687
|
+
cost: { input: 0.1, output: 0.2, cacheRead: 0.002, cacheWrite: 0 },
|
|
3688
|
+
contextWindow: 1_048_576,
|
|
3689
|
+
maxTokens: 131_072,
|
|
3690
|
+
thinking: META_MUSE_SPARK_THINKING,
|
|
3691
|
+
compat: {
|
|
3692
|
+
supportsReasoningEffort: true,
|
|
3693
|
+
includeEncryptedReasoning: true,
|
|
3694
|
+
},
|
|
3695
|
+
},
|
|
3662
3696
|
];
|
|
3663
3697
|
|
|
3664
3698
|
// ---------------------------------------------------------------------------
|