@oh-my-pi/pi-catalog 18.1.19 → 18.1.21
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 +12 -0
- package/package.json +4 -4
- package/src/compat/rules/classes/anthropic.kdl +17 -0
- package/src/compat/rules/classes/deepseek.kdl +11 -0
- package/src/compat/rules/providers/opencode-go.kdl +12 -0
- package/src/compat/rules/providers/opencode-zen.kdl +12 -0
- package/src/compat/rules/providers/openrouter.kdl +0 -4
- package/src/compat/rules.json +118 -73
- package/src/models.json +5469 -5113
- package/src/provider-models/cache-provider-id.ts +8 -4
- package/src/provider-models/openai-compat.ts +59 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.1.20] - 2026-09-13
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed DeepSeek V4.1 Flash dropping image attachments on hosts without their own carve-out, so the natively multimodal model is no longer treated as text-only ([#11992](https://github.com/can1357/oh-my-pi/pull/11992) by [@infernix](https://github.com/infernix)).
|
|
10
|
+
- LiteLLM model groups keep the image input their deployment declares, instead of having attachments replaced with the "model does not support vision" placeholder ([#11982](https://github.com/can1357/oh-my-pi/issues/11982), [#11985](https://github.com/can1357/oh-my-pi/pull/11985) by [@lz37](https://github.com/lz37)).
|
|
11
|
+
- Fixed OpenCode Zen/Go Muse Spark models failing every tool-call turn with a 400 "reasoning encrypted_content was not issued to this caller" error: the gateways proxy the Responses lane to Meta but can't round-trip encrypted reasoning, so those SKUs no longer request or replay it ([#11928](https://github.com/can1357/oh-my-pi/issues/11928)).
|
|
12
|
+
|
|
5
13
|
## [18.1.19] - 2026-09-12
|
|
6
14
|
|
|
7
15
|
### Added
|
|
8
16
|
|
|
9
17
|
- Added Charm Hyper as a built-in provider with API-key login, live model discovery, and per-model pricing, effort ladders, and limits read straight from its catalog ([#11656](https://github.com/can1357/oh-my-pi/pull/11656) by [@oldschoola](https://github.com/oldschoola)).
|
|
10
18
|
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- `anthropic/claude-fable-5-1` cache reads now cost Anthropic's published $0.25/MTok instead of $1.00, so session cost and usage reports no longer overstate cache-read spend by 4x ([#11862](https://github.com/can1357/oh-my-pi/pull/11862) by [@camjac251](https://github.com/camjac251)).
|
|
22
|
+
|
|
11
23
|
## [18.1.18] - 2026-09-11
|
|
12
24
|
|
|
13
25
|
### Added
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "18.1.
|
|
4
|
+
"version": "18.1.21",
|
|
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": "Stencil Labs, Inc.",
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"gen:proto": "bun scripts/generate-protocols.ts"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@oh-my-pi/omptype": "18.1.
|
|
39
|
-
"@oh-my-pi/pi-utils": "18.1.
|
|
38
|
+
"@oh-my-pi/omptype": "18.1.21",
|
|
39
|
+
"@oh-my-pi/pi-utils": "18.1.21"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@bgotink/kdl": "0.4.0",
|
|
43
|
-
"@oh-my-pi/pi-ai": "18.1.
|
|
43
|
+
"@oh-my-pi/pi-ai": "18.1.21",
|
|
44
44
|
"@types/bun": "^1.3.14"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
|
@@ -169,6 +169,23 @@ class "anthropic" {
|
|
|
169
169
|
cache-read 1.0
|
|
170
170
|
cache-write 12.5
|
|
171
171
|
}
|
|
172
|
+
// Fable 5.1 cut cache reads to $0.25/MTok, 0.025x input, a 75% rate
|
|
173
|
+
// unique to the 5.1 generation; Fable 5 stays at the 0.1x family
|
|
174
|
+
// default. https://www.anthropic.com/claude/fable
|
|
175
|
+
//
|
|
176
|
+
// `cost-patch` is an object axis, so the winning rule supplies the
|
|
177
|
+
// whole payload rather than merging field-wise over the family
|
|
178
|
+
// patch above. Restate input/output/cache-write, or a
|
|
179
|
+
// discovery-sourced 5.1 row (Anthropic's /v1/models omits pricing)
|
|
180
|
+
// would keep only the cache-read correction.
|
|
181
|
+
revision "=5.1" {
|
|
182
|
+
cost-patch {
|
|
183
|
+
input 10.0
|
|
184
|
+
output 50.0
|
|
185
|
+
cache-read 0.25
|
|
186
|
+
cache-write 12.5
|
|
187
|
+
}
|
|
188
|
+
}
|
|
172
189
|
limits-patch {
|
|
173
190
|
context-window 1000000
|
|
174
191
|
max-tokens 128000
|
|
@@ -73,6 +73,17 @@ class "deepseek" {
|
|
|
73
73
|
models token="vision" {
|
|
74
74
|
strip-image-input #false
|
|
75
75
|
}
|
|
76
|
+
// DeepSeek V4.1 Flash is natively multimodal (image-text-to-text), but its
|
|
77
|
+
// id carries no `vision` token, so the class-wide strip above dropped
|
|
78
|
+
// attachments the model reads on every deployment without its own carve-out.
|
|
79
|
+
// The glob also spans `-vision`/`-ocr` ids, which already set the same value
|
|
80
|
+
// below, so the explicit priority resolves that equal-rank tie instead of
|
|
81
|
+
// throwing AmbiguousOverlapError. Only the strip is disabled; the declared
|
|
82
|
+
// modality stays host-derived, so endpoints whose OpenAI-compatible surface
|
|
83
|
+
// rejects `image_url` keep their text-only contract.
|
|
84
|
+
models "*v4.1-flash*" priority=10 {
|
|
85
|
+
strip-image-input #false
|
|
86
|
+
}
|
|
76
87
|
on "ollama-cloud" "nvidia" "deepseek" "fireworks" "nanogpt" "opencode-go" "openrouter" {
|
|
77
88
|
stream-markup-healing-pattern "dsml"
|
|
78
89
|
}
|
|
@@ -45,6 +45,18 @@ provider "opencode-go" {
|
|
|
45
45
|
class "kimi" {
|
|
46
46
|
thinking-mode "effort"
|
|
47
47
|
}
|
|
48
|
+
// The Go gateway proxies Muse Spark's Responses lane to Meta but cannot
|
|
49
|
+
// round-trip encrypted reasoning: the upstream issues `encrypted_content`
|
|
50
|
+
// bound to the gateway's own caller, so replaying it on a later step 400s
|
|
51
|
+
// with "reasoning `encrypted_content` was not issued to this caller"
|
|
52
|
+
// (#11928). Stop requesting it and drop native reasoning items from replay
|
|
53
|
+
// so multi-step tool-call turns stop failing.
|
|
54
|
+
class "meta" {
|
|
55
|
+
family "muse-spark" {
|
|
56
|
+
include-encrypted-reasoning #false
|
|
57
|
+
filter-reasoning-history #true
|
|
58
|
+
}
|
|
59
|
+
}
|
|
48
60
|
class "mimo" {
|
|
49
61
|
family "v2" {
|
|
50
62
|
thinking-mode "effort"
|
|
@@ -26,6 +26,18 @@ provider "opencode-zen" {
|
|
|
26
26
|
class "kimi" {
|
|
27
27
|
thinking-mode "effort"
|
|
28
28
|
}
|
|
29
|
+
// The Zen gateway proxies Muse Spark's Responses lane to Meta but cannot
|
|
30
|
+
// round-trip encrypted reasoning: the upstream issues `encrypted_content`
|
|
31
|
+
// bound to the gateway's own caller, so replaying it on a later step 400s
|
|
32
|
+
// with "reasoning `encrypted_content` was not issued to this caller"
|
|
33
|
+
// (#11928). Stop requesting it and drop native reasoning items from replay
|
|
34
|
+
// so multi-step tool-call turns stop failing.
|
|
35
|
+
class "meta" {
|
|
36
|
+
family "muse-spark" {
|
|
37
|
+
include-encrypted-reasoning #false
|
|
38
|
+
filter-reasoning-history #true
|
|
39
|
+
}
|
|
40
|
+
}
|
|
29
41
|
class "mimo" {
|
|
30
42
|
family "v2" {
|
|
31
43
|
thinking-mode "effort"
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
// Provider-wire compat for "openrouter"; regenerated from the frozen census using deployment contract selectors.
|
|
2
2
|
|
|
3
3
|
provider "openrouter" {
|
|
4
|
-
// V4.1 Flash accepts images despite its ID lacking a vision suffix.
|
|
5
|
-
models "deepseek/deepseek-v4.1-flash" {
|
|
6
|
-
strip-image-input #false
|
|
7
|
-
}
|
|
8
4
|
// Replaces the OpenRouter provider wire-model-id dispatch branch.
|
|
9
5
|
wire-model-id-mode "openrouter"
|
|
10
6
|
// Replaces the strict-mode provider whitelist entry.
|