@oh-my-pi/pi-catalog 18.11.2 → 18.11.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,18 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [18.11.3] - 2026-10-16
6
+
7
+ ### Changed
8
+
9
+ - Renamed the built-in `google-antigravity` login option to "Google Antigravity (Gemini, Claude, GPT-OSS)" so it is distinguishable from similarly named third-party plugins and no longer implies support stops at Gemini 3 ([#15998](https://github.com/can1357/oh-my-pi/pull/15998) by [@savanne-kham](https://github.com/savanne-kham)).
10
+
11
+ ### Fixed
12
+
13
+ - Fixed Command Code's `z-ai/glm-5.3-flash` failing every request with "not available on this endpoint": the catalog routes it to chat completions, the only endpoint Command Code lists for it ([#15922](https://github.com/can1357/oh-my-pi/pull/15922) by [@jasonharrison](https://github.com/jasonharrison))
14
+ - Fixed `/handoff` failing with `400 Provider returned error` on OpenRouter's hosted Muse Spark 1.x and Muse Wonder models: requests no longer send a `tool_choice` the upstream Meta backend rejects ([#15910](https://github.com/can1357/oh-my-pi/issues/15910))
15
+ - Fixed OpenCode Zen bringing back retired bundled models from an authoritative model cache, and dropping drop-listed models such as `gemini-3.7-flash` when a refresh fails after an upgrade ([#15770](https://github.com/can1357/oh-my-pi/pull/15770) by [@adi-IL](https://github.com/adi-IL))
16
+
5
17
  ## [18.11.2] - 2026-10-16
6
18
 
7
19
  ### Added
@@ -7,7 +7,8 @@ import type { Model } from "../types.js";
7
7
  */
8
8
  export declare function resolveInlineImageByteBudget(model: Model, officialEndpoint: boolean): number | undefined;
9
9
  /**
10
- * Most images one request to this deployment may carry, or `undefined` when no rule names the host. The
10
+ * Most images one request to this deployment may carry, or `undefined` when no rule names the host. A configured
11
+ * `model.imageCountBudget` wins: the user knows the host behind a custom gateway. Otherwise the
11
12
  * `official-image-count-budget` axis replaces `image-count-budget` only when `officialEndpoint` says the request
12
13
  * reaches the model's official endpoint (see {@link resolveInlineImageByteBudget}); a rerouted endpoint keeps the
13
14
  * provider's generic budget.
@@ -1286,6 +1286,12 @@ export interface Model<TApi extends Api = Api> {
1286
1286
  * than OMP's general image pipeline. `stb` local backends reject WebP.
1287
1287
  */
1288
1288
  imageInputDecoder?: "stb";
1289
+ /**
1290
+ * Most images one request may carry, from user configuration. Replaces the
1291
+ * catalog's `image-count-budget` for hosts no rule names, such as a custom
1292
+ * gateway in front of a vendor with a higher limit.
1293
+ */
1294
+ imageCountBudget?: number;
1289
1295
  /**
1290
1296
  * Native provider tool-call support. `false` is the only unsupported signal:
1291
1297
  * `true` and `undefined` both mean callers may use native tools. Catalog and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-catalog",
3
- "version": "18.11.2",
3
+ "version": "18.11.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.11.2",
97
- "@oh-my-pi/pi-utils": "18.11.2"
96
+ "@oh-my-pi/omptype": "18.11.3",
97
+ "@oh-my-pi/pi-utils": "18.11.3"
98
98
  },
99
99
  "devDependencies": {
100
100
  "@bgotink/kdl": "0.4.0",
101
- "@oh-my-pi/pi-ai": "18.11.2",
101
+ "@oh-my-pi/pi-ai": "18.11.3",
102
102
  "@types/bun": "^1.3.14"
103
103
  },
104
104
  "engines": {
@@ -26,12 +26,14 @@ export function resolveInlineImageByteBudget(model: Model, officialEndpoint: boo
26
26
  }
27
27
 
28
28
  /**
29
- * Most images one request to this deployment may carry, or `undefined` when no rule names the host. The
29
+ * Most images one request to this deployment may carry, or `undefined` when no rule names the host. A configured
30
+ * `model.imageCountBudget` wins: the user knows the host behind a custom gateway. Otherwise the
30
31
  * `official-image-count-budget` axis replaces `image-count-budget` only when `officialEndpoint` says the request
31
32
  * reaches the model's official endpoint (see {@link resolveInlineImageByteBudget}); a rerouted endpoint keeps the
32
33
  * provider's generic budget.
33
34
  */
34
35
  export function resolveImageCountBudget(model: Model, officialEndpoint: boolean): number | undefined {
36
+ if (model.imageCountBudget !== undefined) return model.imageCountBudget;
35
37
  const policy = resolveCatalogPolicy(model);
36
38
  const value = (officialEndpoint && policy.officialImageCountBudget) || policy.imageCountBudget;
37
39
  return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : undefined;
@@ -1,5 +1,5 @@
1
1
  auth "google-antigravity" {
2
- name "Antigravity (Gemini 3, Claude, GPT-OSS)"
2
+ name "Google Antigravity (Gemini, Claude, GPT-OSS)"
3
3
  login "oauth-code" {
4
4
  // Antigravity uses different Google OAuth credentials for its additional models.
5
5
  client-id "MTA3MTAwNjA2MDU5MS10bWhzc2luMmgyMWxjcmUyMzV2dG9sb2poNGc0MDNlcC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbQ==" encoding="base64"
@@ -154,6 +154,13 @@ provider "openrouter" {
154
154
  allows-synthetic-reasoning-content-for-tool-calls #false
155
155
  }
156
156
  }
157
+ // OpenRouter forwards these hosted Muse SKUs to Meta's backend, which
158
+ // accepts only tool_choice "auto" and 400s on "none" (see providers/meta.kdl).
159
+ // Other Muse models, including muse-spark-open, retain discovered tool_choice.
160
+ models "meta/muse-spark-1.1" "meta/muse-spark-1.2" "meta/muse-spark-1.2-contributor" \
161
+ "meta/muse-spark-1.3" "meta/muse-spark-1.3-contributor" "meta/muse-wonder" {
162
+ supports-tool-choice #false
163
+ }
157
164
  class "minimax" {
158
165
  family "m3" {
159
166
  thinking-efforts "minimal" "low" "medium" "high"
@@ -226,9 +226,10 @@ behavior {
226
226
  // effort ladder that lists `/responses` therefore rides Responses, so
227
227
  // thinking-off actually disables reasoning instead of clamping to the
228
228
  // lowest effort. Ladder ids without `/responses` (deepseek-v4-flash-fast,
229
- // gemini-3.7-flash, Qwen3.8-Flash, Qwen3.8-Max-0902, hy4-preview,
230
- // space-bunny-alpha), the Qwen3.8 ids (chat already disables them through
231
- // `enable_thinking: false`), and non-reasoning ids stay on chat completions.
229
+ // gemini-3.7-flash, glm-5.3-flash since 2026-10-14, Qwen3.8-Flash,
230
+ // Qwen3.8-Max-0902, hy4-preview, space-bunny-alpha), the Qwen3.8 ids (chat
231
+ // already disables them through `enable_thinking: false`), and
232
+ // non-reasoning ids stay on chat completions.
232
233
  api-routes provider="commandcode" default="openai-completions" {
233
234
  route "anthropic-messages" prefix="claude-"
234
235
  route "openai-responses" exact="gpt-5.3-codex" exact="gpt-5.4" exact="gpt-5.4-mini" exact="gpt-5.5" \
@@ -237,7 +238,7 @@ behavior {
237
238
  exact="deepseek/deepseek-v4-flash" exact="deepseek/deepseek-v4-flash-vision-exp" \
238
239
  exact="deepseek/deepseek-v4-pro" exact="deepseek/deepseek-v4.1-flash" \
239
240
  exact="deepseek/deepseek-v4.1-flash-fast" exact="moonshotai/Kimi-K3" \
240
- exact="z-ai/glm-5.3-flash" exact="z-ai/glm-5.3-flashx" exact="zai-org/GLM-5.2" \
241
+ exact="z-ai/glm-5.3-flashx" exact="zai-org/GLM-5.2" \
241
242
  exact="zai-org/GLM-5.3" exact="google/gemini-3.1-flash-lite" exact="google/gemini-3.5-flash" \
242
243
  exact="google/gemini-3.5-flash-lite" exact="google/gemini-3.6-flash" \
243
244
  exact="google/gemini-3.8-flash" exact="MiniMaxAI/MiniMax-M3" exact="stepfun/Step-5-Preview" \