@oh-my-pi/pi-catalog 18.12.1 → 18.12.3
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 +16 -0
- package/dist/types/provider-models/special.d.ts +6 -1
- package/package.json +4 -4
- package/src/compat/rules/classes/gemma.kdl +11 -0
- package/src/compat/rules/classes/minimax.kdl +13 -8
- package/src/compat/rules/providers/openrouter.kdl +8 -1
- package/src/compat/rules/providers/typesafe.kdl +11 -1
- package/src/compat/rules/providers/web.kdl +7 -0
- package/src/compat/rules/runtime/behavior.kdl +3 -2
- package/src/compat/rules.json +1 -1
- package/src/models.json +1 -1
- package/src/provider-models/special.ts +14 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.12.3] - 2026-10-19
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- MiniMax `MiniMax-M3.1-Flash` (the launch id) now gets the always-on `low`–`max` thinking the bundled `MiniMax-M3.1-Flash-Preview` rows have, and omits sampling params (`temperature`, `top_p`, `top_k`) it rejects ([#16315](https://github.com/can1357/oh-my-pi/pull/16315) by [@SaladDay](https://github.com/SaladDay))
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Gemma 4 models on Google AI Studio (`google/gemma-4-31b-it`, `google/gemma-4-26b-a4b-it`, …) no longer fail every request with `Thinking budget is not supported for this model`; thinking is now toggled with `thinkingLevel` (on = `high`, off = `minimal`) ([#16350](https://github.com/can1357/oh-my-pi/issues/16350))
|
|
14
|
+
|
|
15
|
+
## [18.12.2] - 2026-10-18
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Seeded TypeSafe `jev-1.14.0` and OpenRouter `typesafe/jev-1.14`, and made them the `judge` role defaults and TypeSafe's default model; TypeSafe discovery keeps seeded ids its alias-only `/v1/models` listing omits
|
|
20
|
+
|
|
5
21
|
## [18.12.1] - 2026-10-17
|
|
6
22
|
|
|
7
23
|
### Fixed
|
|
@@ -73,7 +73,12 @@ export interface TypeSafeModelManagerConfig {
|
|
|
73
73
|
baseUrl?: string;
|
|
74
74
|
fetch?: FetchImpl;
|
|
75
75
|
}
|
|
76
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Discover account-visible judge models while keeping the bundled offline seed. `GET /v1/models` lists
|
|
78
|
+
* only aliases, yet TypeSafe accepts versioned ids whether or not they are listed, so a successful
|
|
79
|
+
* discovery is extended with the seed rows it omits (the pinned default judge, `jev-1.14.0`) instead of
|
|
80
|
+
* pruning them as `dynamicModelsAuthoritative` otherwise would.
|
|
81
|
+
*/
|
|
77
82
|
export declare function typesafeModelManagerOptions(config?: TypeSafeModelManagerConfig): ModelManagerOptions<"typesafe">;
|
|
78
83
|
export interface ZaiModelManagerConfig {
|
|
79
84
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-my-pi/pi-catalog",
|
|
3
|
-
"version": "18.12.
|
|
3
|
+
"version": "18.12.3",
|
|
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.12.
|
|
97
|
-
"@oh-my-pi/pi-utils": "18.12.
|
|
96
|
+
"@oh-my-pi/omptype": "18.12.3",
|
|
97
|
+
"@oh-my-pi/pi-utils": "18.12.3"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
100
|
"@bgotink/kdl": "0.4.0",
|
|
101
|
-
"@oh-my-pi/pi-ai": "18.12.
|
|
101
|
+
"@oh-my-pi/pi-ai": "18.12.3",
|
|
102
102
|
"@types/bun": "^1.3.14"
|
|
103
103
|
},
|
|
104
104
|
"engines": {
|
|
@@ -11,4 +11,15 @@ class "gemma" {
|
|
|
11
11
|
on "google" "vercel-ai-gateway" {
|
|
12
12
|
thinking-mode "budget"
|
|
13
13
|
}
|
|
14
|
+
// Gemma 4 on the Gemini API toggles thinking only through `thinkingLevel`
|
|
15
|
+
// (`HIGH` on, `MINIMAL` off) and rejects any `thinkingBudget` with a 400
|
|
16
|
+
// (https://ai.google.dev/gemma/docs/core/gemma_on_gemini_api#thinking).
|
|
17
|
+
// Off must be sent explicitly as `MINIMAL` rather than omitting the config.
|
|
18
|
+
on "google" {
|
|
19
|
+
revision ">=4" {
|
|
20
|
+
thinking-mode "google-level"
|
|
21
|
+
thinking-efforts "high"
|
|
22
|
+
thinking-suppress-when-off #true
|
|
23
|
+
}
|
|
24
|
+
}
|
|
14
25
|
}
|
|
@@ -81,15 +81,17 @@ class "minimax" {
|
|
|
81
81
|
thinking-efforts "low" "medium" "high"
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
// MiniMax-M3.1-Flash
|
|
85
|
-
// effort `none` 400 with error 2013) and
|
|
86
|
-
// `output_config.effort` from `low` to `max` (the
|
|
87
|
-
// The identity map replaces the M3 family's
|
|
88
|
-
// level reaches the wire. Like the M2 family,
|
|
89
|
-
// `thinking-requires-effort` hides the off
|
|
90
|
-
// requests to the lowest effort instead of
|
|
84
|
+
// MiniMax-M3.1-Flash (and its bundled `-Preview` id) always thinks
|
|
85
|
+
// (`thinking.type: "disabled"` and effort `none` 400 with error 2013) and
|
|
86
|
+
// tunes depth through `output_config.effort` from `low` to `max` (the
|
|
87
|
+
// default when omitted). The identity map replaces the M3 family's
|
|
88
|
+
// adaptive-tag-only map so each level reaches the wire. Like the M2 family,
|
|
89
|
+
// thinking cannot be turned off: `thinking-requires-effort` hides the off
|
|
90
|
+
// level and clamps forced-off requests to the lowest effort instead of
|
|
91
|
+
// sending `disabled`. The launch id also rejects sampling params
|
|
92
|
+
// (`temperature`, `top_p`, `top_k`).
|
|
91
93
|
on "minimax" "minimax-cn" "minimax-code" "minimax-code-cn" {
|
|
92
|
-
models "MiniMax-M3.1-Flash-Preview" {
|
|
94
|
+
models "MiniMax-M3.1-Flash" "MiniMax-M3.1-Flash-Preview" {
|
|
93
95
|
thinking-requires-effort #true
|
|
94
96
|
thinking-efforts "low" "medium" "high" "xhigh" "max"
|
|
95
97
|
thinking-effort-map {
|
|
@@ -98,6 +100,9 @@ class "minimax" {
|
|
|
98
100
|
high "high"
|
|
99
101
|
}
|
|
100
102
|
}
|
|
103
|
+
models "MiniMax-M3.1-Flash" {
|
|
104
|
+
supports-sampling-params #false
|
|
105
|
+
}
|
|
101
106
|
}
|
|
102
107
|
// Token Plan rows ride the Anthropic route; these OpenAI-only wire axes
|
|
103
108
|
// serve the legacy lightning rows that stay on the OpenAI-compatible one.
|
|
@@ -17,7 +17,8 @@ provider "openrouter" {
|
|
|
17
17
|
|
|
18
18
|
// TypeSafe's Jev answers only through the Decisions API (`/api/alpha/decisions`,
|
|
19
19
|
// System One wire shape); the default `/models` roster omits `text->decisions`
|
|
20
|
-
// rows, so the alias
|
|
20
|
+
// rows, so the alias and the pinned default judge are authored here and
|
|
21
|
+
// discovery refreshes the family.
|
|
21
22
|
seed api="openrouter-decisions" base-url="https://openrouter.ai/api/alpha" bundle="always" {
|
|
22
23
|
model "~typesafe/jev-latest" name="TypeSafe: Jev Latest" {
|
|
23
24
|
reasoning #false
|
|
@@ -25,6 +26,12 @@ provider "openrouter" {
|
|
|
25
26
|
cost input=0.042 output=0 cache-read=0 cache-write=0
|
|
26
27
|
limits context=32000 max-tokens=28800
|
|
27
28
|
}
|
|
29
|
+
model "typesafe/jev-1.14" name="TypeSafe: Jev 1.14" {
|
|
30
|
+
reasoning #false
|
|
31
|
+
input "text"
|
|
32
|
+
cost input=0.042 output=0 cache-read=0 cache-write=0
|
|
33
|
+
limits context=32000 max-tokens=28800
|
|
34
|
+
}
|
|
28
35
|
|
|
29
36
|
// OpenRouter's STT roster mixes per-token and duration-based prices.
|
|
30
37
|
// Token-priced GPT rows map per-token rates to catalog per-million costs;
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
// TypeSafe System One judgment models.
|
|
2
2
|
|
|
3
3
|
provider "typesafe" {
|
|
4
|
-
default-model "jev-
|
|
4
|
+
default-model "jev-1.14.0"
|
|
5
5
|
env "TYPESAFE_API_KEY"
|
|
6
6
|
|
|
7
|
+
// `GET /v1/models` lists only the aliases: `jev-latest` is the newest stable
|
|
8
|
+
// release (jev-1.13.0) and `jev-preview` the newest of any kind. The pinned
|
|
9
|
+
// default judge is authored here so it resolves without discovery.
|
|
7
10
|
seed api="typesafe" base-url="https://api.typesafe.ai" bundle="always" {
|
|
11
|
+
model "jev-1.14.0" name="TypeSafe Jev 1.14" {
|
|
12
|
+
reasoning #false
|
|
13
|
+
input "text"
|
|
14
|
+
cost input=0.042 output=0 cache-read=0 cache-write=0
|
|
15
|
+
limits
|
|
16
|
+
supports-tools #false
|
|
17
|
+
}
|
|
8
18
|
model "jev-latest" name="TypeSafe jev" {
|
|
9
19
|
reasoning #false
|
|
10
20
|
input "text"
|
|
@@ -83,6 +83,13 @@ provider "web" {
|
|
|
83
83
|
limits
|
|
84
84
|
supports-tools #false
|
|
85
85
|
}
|
|
86
|
+
model "deepseek" name="DeepSeek" {
|
|
87
|
+
reasoning #false
|
|
88
|
+
input "text"
|
|
89
|
+
cost input=0 output=0 cache-read=0 cache-write=0
|
|
90
|
+
limits
|
|
91
|
+
supports-tools #false
|
|
92
|
+
}
|
|
86
93
|
model "kimi" name="Kimi" {
|
|
87
94
|
reasoning #false
|
|
88
95
|
input "text"
|
|
@@ -485,9 +485,10 @@ behavior {
|
|
|
485
485
|
role-defaults "dictation" {
|
|
486
486
|
model "local/parakeet-tdt-0.6b-v3"
|
|
487
487
|
}
|
|
488
|
+
// Pinned: TypeSafe's `jev-latest` alias trails the newest release (it answers as jev-1.13.0).
|
|
488
489
|
role-defaults "judge" {
|
|
489
|
-
model "typesafe/jev-
|
|
490
|
-
model "openrouter
|
|
490
|
+
model "typesafe/jev-1.14.0"
|
|
491
|
+
model "openrouter/typesafe/jev-1.14"
|
|
491
492
|
model "@tiny"
|
|
492
493
|
model "@smol"
|
|
493
494
|
model "@default"
|