@oh-my-pi/pi-catalog 18.8.2 → 18.8.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.
- package/CHANGELOG.md +12 -0
- package/package.json +4 -4
- package/src/compat/resolve.ts +4 -2
- package/src/compat/rules/classes/anthropic.kdl +76 -1
- package/src/compat/rules/providers/anthropic.kdl +6 -0
- package/src/compat/rules/providers/moonshot.kdl +11 -0
- package/src/compat/rules.json +1 -1
- package/src/model-tokenizer.ts +3 -0
- package/src/models.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.8.4] - 2026-10-08
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed Claude Haiku 5.5 opening at its full 1M window on Amazon Bedrock, Google Vertex, and other non-Anthropic hosts: every priced host now carries the 5x pricing band above 100K input tokens, so the window stays at 100K unless extended context is on ([#14903](https://github.com/can1357/oh-my-pi/pull/14903) by [@H4vC](https://github.com/H4vC)).
|
|
10
|
+
|
|
11
|
+
## [18.8.3] - 2026-10-07
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added Claude Haiku 5.5 with adaptive thinking (low through max effort), image input, a 1M-token context window, 128K output, and its tiered pricing above 100K input tokens.
|
|
16
|
+
|
|
5
17
|
## [18.8.2] - 2026-10-07
|
|
6
18
|
|
|
7
19
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-my-pi/pi-catalog",
|
|
3
|
-
"version": "18.8.
|
|
3
|
+
"version": "18.8.4",
|
|
4
4
|
"description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -93,12 +93,12 @@
|
|
|
93
93
|
"gen:proto": "bun scripts/generate-protocols.ts"
|
|
94
94
|
},
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"@oh-my-pi/omptype": "18.8.
|
|
97
|
-
"@oh-my-pi/pi-utils": "18.8.
|
|
96
|
+
"@oh-my-pi/omptype": "18.8.4",
|
|
97
|
+
"@oh-my-pi/pi-utils": "18.8.4"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
100
|
"@bgotink/kdl": "0.4.0",
|
|
101
|
-
"@oh-my-pi/pi-ai": "18.8.
|
|
101
|
+
"@oh-my-pi/pi-ai": "18.8.4",
|
|
102
102
|
"@types/bun": "^1.3.14"
|
|
103
103
|
},
|
|
104
104
|
"engines": {
|
package/src/compat/resolve.ts
CHANGED
|
@@ -107,11 +107,12 @@ class IdentityFacts {
|
|
|
107
107
|
return this.is("kimi") && this.family("k2.7-code", "k3");
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
/** Adaptive-thinking Claude generation floor (Opus ≥ min; Sonnet/Fable/Mythos ≥ 5). */
|
|
110
|
+
/** Adaptive-thinking Claude generation floor (Opus ≥ min; Sonnet/Fable/Mythos ≥ 5; Haiku ≥ 5.5). */
|
|
111
111
|
anthropicAdaptiveGenAtLeast(opusMin: string): boolean {
|
|
112
112
|
if (!this.is("anthropic")) return false;
|
|
113
113
|
if (this.family("opus")) return this.revGte(opusMin);
|
|
114
114
|
if (this.family("sonnet", "fable", "mythos")) return this.revGte("5");
|
|
115
|
+
if (this.family("haiku")) return this.revGte("5.5");
|
|
115
116
|
return false;
|
|
116
117
|
}
|
|
117
118
|
}
|
|
@@ -1009,7 +1010,8 @@ function defaultThinkingMode<TApi extends Api>(spec: ModelSpec<TApi>, facts: Ide
|
|
|
1009
1010
|
return "anthropic-budget-effort";
|
|
1010
1011
|
}
|
|
1011
1012
|
if (facts.is("anthropic")) {
|
|
1012
|
-
|
|
1013
|
+
// Haiku stays on budget thinking until 5.5, its first adaptive generation.
|
|
1014
|
+
if (facts.revGte(facts.family("haiku") ? "5.5" : "4.6")) return "anthropic-adaptive";
|
|
1013
1015
|
if (facts.family("opus") && facts.revGte("4.5")) return "anthropic-budget-effort";
|
|
1014
1016
|
}
|
|
1015
1017
|
return "budget";
|
|
@@ -72,7 +72,7 @@ class "anthropic" {
|
|
|
72
72
|
thinking-prefix-binding #true
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
// Adaptive Claude (Opus 4.7+, Sonnet/Fable/Mythos 5+) rejects explicit
|
|
75
|
+
// Adaptive Claude (Opus 4.7+, Sonnet/Fable/Mythos 5+, Haiku 5.5+) rejects explicit
|
|
76
76
|
// sampling params (`temperature`, `top_p`, `top_k`) with a 400 on every
|
|
77
77
|
// serving host. The `<10` bound keeps whole-number revisions such as
|
|
78
78
|
// `claude-opus-45` (Opus 4.5) out of the range.
|
|
@@ -96,6 +96,21 @@ class "anthropic" {
|
|
|
96
96
|
supports-sampling-params #false
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
family "haiku" {
|
|
100
|
+
revision ">=5.5 <10" {
|
|
101
|
+
supports-sampling-params #false
|
|
102
|
+
}
|
|
103
|
+
// Haiku 5.5 bills every rate 5x for prompts over 100K. Derived from each
|
|
104
|
+
// host's list price so non-Anthropic hosts get the band too; the Claude
|
|
105
|
+
// API pins absolute rates further down.
|
|
106
|
+
// https://platform.claude.com/docs/en/models/haiku-5-5/overview#pricing
|
|
107
|
+
revision ">=5.5 <6" {
|
|
108
|
+
long-context-cost {
|
|
109
|
+
input-threshold 100000
|
|
110
|
+
multiplier 5.0
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
99
114
|
// On-demand compaction (compact-2026-09-04) works on the Claude API, Vertex,
|
|
100
115
|
// and Amazon Bedrock's `/anthropic` routes, not Bedrock Converse.
|
|
101
116
|
// Foundry / Claude Platform on AWS are first-party Anthropic routes whose
|
|
@@ -121,6 +136,11 @@ class "anthropic" {
|
|
|
121
136
|
supports-server-compaction #true
|
|
122
137
|
}
|
|
123
138
|
}
|
|
139
|
+
family "haiku" {
|
|
140
|
+
revision ">=5.5 <6" {
|
|
141
|
+
supports-server-compaction #true
|
|
142
|
+
}
|
|
143
|
+
}
|
|
124
144
|
models "claude-mythos-preview" {
|
|
125
145
|
supports-server-compaction #true
|
|
126
146
|
}
|
|
@@ -173,6 +193,15 @@ class "anthropic" {
|
|
|
173
193
|
thinking-prefix-binding #true
|
|
174
194
|
}
|
|
175
195
|
}
|
|
196
|
+
// Haiku 5.5 binds signed thinking to the exact preceding conversation like
|
|
197
|
+
// Sonnet 5.5. It accepts a forced `tool_choice` (the response just skips
|
|
198
|
+
// thinking), so it keeps forced tool selection.
|
|
199
|
+
// https://platform.claude.com/docs/en/models/haiku-5-5/migration-guide
|
|
200
|
+
family "haiku" {
|
|
201
|
+
revision ">=5.5 <6" {
|
|
202
|
+
thinking-prefix-binding #true
|
|
203
|
+
}
|
|
204
|
+
}
|
|
176
205
|
on "anthropic" "cloudflare-ai-gateway" "google-vertex" {
|
|
177
206
|
family "fable" {
|
|
178
207
|
revision ">=5" {
|
|
@@ -200,6 +229,13 @@ class "anthropic" {
|
|
|
200
229
|
supports-turn-scoped-system #true
|
|
201
230
|
}
|
|
202
231
|
}
|
|
232
|
+
family "haiku" {
|
|
233
|
+
revision ">=5.5 <6" {
|
|
234
|
+
supports-mid-conversation-system #true
|
|
235
|
+
supports-mid-conversation-tool-changes #true
|
|
236
|
+
supports-turn-scoped-system #true
|
|
237
|
+
}
|
|
238
|
+
}
|
|
203
239
|
family "opus" {
|
|
204
240
|
revision ">=4.8" {
|
|
205
241
|
supports-mid-conversation-system #true
|
|
@@ -230,6 +266,13 @@ class "anthropic" {
|
|
|
230
266
|
supports-per-message-effort #true
|
|
231
267
|
}
|
|
232
268
|
}
|
|
269
|
+
// Haiku 5.5 mirrors Sonnet 5.5; Vertex stays off until verified.
|
|
270
|
+
family "haiku" {
|
|
271
|
+
revision ">=5.5 <6" {
|
|
272
|
+
supports-thinking-binding-controls #true
|
|
273
|
+
supports-per-message-effort #true
|
|
274
|
+
}
|
|
275
|
+
}
|
|
233
276
|
family "opus" {
|
|
234
277
|
revision ">=5" {
|
|
235
278
|
supports-per-message-effort #true
|
|
@@ -257,6 +300,10 @@ class "anthropic" {
|
|
|
257
300
|
"google-vertex" "opencode-zen" "snowflake" "vercel-ai-gateway" {
|
|
258
301
|
family "haiku" {
|
|
259
302
|
thinking-mode "budget"
|
|
303
|
+
// Haiku 5.5 is the first adaptive Haiku: `budget_tokens` is a 400.
|
|
304
|
+
revision ">=5.5 <6" {
|
|
305
|
+
thinking-mode "anthropic-adaptive"
|
|
306
|
+
}
|
|
260
307
|
}
|
|
261
308
|
}
|
|
262
309
|
on "amazon-bedrock" "anthropic" "cloudflare-ai-gateway" "github-copilot" "gitlab-duo" \
|
|
@@ -365,6 +412,34 @@ class "anthropic" {
|
|
|
365
412
|
max-tokens 128000
|
|
366
413
|
}
|
|
367
414
|
}
|
|
415
|
+
// /v1/models reports neither reasoning, vision, pricing nor limits for
|
|
416
|
+
// Haiku 5.5, so a discovered row would materialize as a text-only,
|
|
417
|
+
// unpriced, non-reasoning model; pin the model card. Prompts over 100K
|
|
418
|
+
// input tokens bill the whole request at the long-context rates.
|
|
419
|
+
// https://platform.claude.com/docs/en/models/haiku-5-5/overview
|
|
420
|
+
family "haiku" {
|
|
421
|
+
revision ">=5.5 <6" {
|
|
422
|
+
thinking-upgrade-neutral #true
|
|
423
|
+
input-modalities "text" "image"
|
|
424
|
+
cost-patch {
|
|
425
|
+
input 0.1
|
|
426
|
+
output 0.5
|
|
427
|
+
cache-read 0.01
|
|
428
|
+
cache-write 0.125
|
|
429
|
+
}
|
|
430
|
+
long-context-cost {
|
|
431
|
+
input-threshold 100000
|
|
432
|
+
input 0.5
|
|
433
|
+
output 2.5
|
|
434
|
+
cache-read 0.05
|
|
435
|
+
cache-write 0.625
|
|
436
|
+
}
|
|
437
|
+
limits-patch {
|
|
438
|
+
context-window 1000000
|
|
439
|
+
max-tokens 128000
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
368
443
|
family "mythos" {
|
|
369
444
|
cost-patch {
|
|
370
445
|
input 10.0
|
|
@@ -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"
|
|
@@ -31,6 +31,17 @@ provider "moonshot" {
|
|
|
31
31
|
input-modalities "text" "image"
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
// stencil.so reports a $3 K3 cache write; Moonshot bills only cache hits
|
|
35
|
+
// ($0.30) and misses (the $3 input rate), with no cache-write charge.
|
|
36
|
+
// https://platform.moonshot.ai/docs/pricing/chat-k3
|
|
37
|
+
models "kimi-k3" {
|
|
38
|
+
cost-patch {
|
|
39
|
+
input 3.0
|
|
40
|
+
output 15.0
|
|
41
|
+
cache-read 0.3
|
|
42
|
+
cache-write 0.0
|
|
43
|
+
}
|
|
44
|
+
}
|
|
34
45
|
// The /models roster carries no modality metadata for the named vision/vl
|
|
35
46
|
// SKUs; the bounded id token is the census signal.
|
|
36
47
|
models token="vision" {
|