@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 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
- /** Discover account-visible judge models while keeping the bundled offline seed. */
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.1",
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.1",
97
- "@oh-my-pi/pi-utils": "18.12.1"
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.1",
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-Preview always thinks (`thinking.type: "disabled"` and
85
- // effort `none` 400 with error 2013) and tunes depth through
86
- // `output_config.effort` from `low` to `max` (the default when omitted).
87
- // The identity map replaces the M3 family's adaptive-tag-only map so each
88
- // level reaches the wire. Like the M2 family, thinking cannot be turned off:
89
- // `thinking-requires-effort` hides the off level and clamps forced-off
90
- // requests to the lowest effort instead of sending `disabled`.
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 is authored here and discovery refreshes the family.
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-latest"
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-latest"
490
- model "openrouter/~typesafe/jev-latest"
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"