@oh-my-pi/pi-catalog 18.0.7 → 18.0.8
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,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.0.8] - 2026-08-27
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed the thinking control mode for OpenAI models served over Bedrock Converse (`global.openai.gpt-5.6-luna`, `-sol`, `-terra`), which are now classified as `effort` rather than `budget` so requests use OpenAI's reasoning schema.
|
|
10
|
+
- Fixed LiteLLM discovery leaking a colliding bundled model's provider-specific transport onto custom endpoints: a discovered alias (e.g. `kimi-k3`) matching a bundled Fireworks model no longer inherits that model's wire-id transform, which had caused requests to POST a model id the endpoint never advertised and return HTTP 400 ([#9938](https://github.com/can1357/oh-my-pi/issues/9938)).
|
|
11
|
+
|
|
5
12
|
## [18.0.7] - 2026-08-26
|
|
6
13
|
|
|
7
14
|
### 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.0.
|
|
4
|
+
"version": "18.0.8",
|
|
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.",
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"gen:proto": "bun scripts/generate-protocols.ts"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@oh-my-pi/omptype": "18.0.
|
|
38
|
-
"@oh-my-pi/pi-utils": "18.0.
|
|
37
|
+
"@oh-my-pi/omptype": "18.0.8",
|
|
38
|
+
"@oh-my-pi/pi-utils": "18.0.8"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@oh-my-pi/pi-ai": "18.0.
|
|
41
|
+
"@oh-my-pi/pi-ai": "18.0.8",
|
|
42
42
|
"@types/bun": "^1.3.14"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
package/src/model-thinking.ts
CHANGED
|
@@ -777,6 +777,14 @@ function inferThinkingControlMode<TApi extends Api>(
|
|
|
777
777
|
return "anthropic-budget-effort";
|
|
778
778
|
}
|
|
779
779
|
}
|
|
780
|
+
// Bedrock serves the GPT-5.x models through OpenAI's own request
|
|
781
|
+
// schema, which rejects Anthropic's budget block outright:
|
|
782
|
+
// `unknown_parameter: 'thinking'`. It takes `reasoning.effort`
|
|
783
|
+
// instead. gpt-oss parses as `unknown` (no `gpt-<digits>`), so it
|
|
784
|
+
// keeps the budget path it ships with today.
|
|
785
|
+
if (parsedModel.family === "openai") {
|
|
786
|
+
return "effort";
|
|
787
|
+
}
|
|
780
788
|
return "budget";
|
|
781
789
|
|
|
782
790
|
default:
|
package/src/models.json
CHANGED
|
@@ -28688,7 +28688,7 @@
|
|
|
28688
28688
|
"contextWindow": 1050000,
|
|
28689
28689
|
"maxTokens": 128000,
|
|
28690
28690
|
"thinking": {
|
|
28691
|
-
"mode": "
|
|
28691
|
+
"mode": "effort",
|
|
28692
28692
|
"efforts": [
|
|
28693
28693
|
"low",
|
|
28694
28694
|
"medium",
|
|
@@ -28727,7 +28727,7 @@
|
|
|
28727
28727
|
"contextWindow": 1050000,
|
|
28728
28728
|
"maxTokens": 128000,
|
|
28729
28729
|
"thinking": {
|
|
28730
|
-
"mode": "
|
|
28730
|
+
"mode": "effort",
|
|
28731
28731
|
"efforts": [
|
|
28732
28732
|
"low",
|
|
28733
28733
|
"medium",
|
|
@@ -28766,7 +28766,7 @@
|
|
|
28766
28766
|
"contextWindow": 1050000,
|
|
28767
28767
|
"maxTokens": 128000,
|
|
28768
28768
|
"thinking": {
|
|
28769
|
-
"mode": "
|
|
28769
|
+
"mode": "effort",
|
|
28770
28770
|
"efforts": [
|
|
28771
28771
|
"low",
|
|
28772
28772
|
"medium",
|
|
@@ -60,7 +60,10 @@ export function resolveModelCacheProviderId(providerId: string, options: ModelCa
|
|
|
60
60
|
return "cursor:default-effort-v4";
|
|
61
61
|
case "litellm": {
|
|
62
62
|
const baseUrl = options.baseUrl ?? getDefaultModelDiscoveryBaseUrl(providerId)!;
|
|
63
|
-
|
|
63
|
+
// rich-v8 invalidates rows whose `compatConfig` retained a colliding
|
|
64
|
+
// bundled model's provider-specific transport (e.g. Fireworks
|
|
65
|
+
// `wireModelIdMode`) before that leak was fixed (issue #9938).
|
|
66
|
+
return `litellm:rich-v8:${Bun.hash(baseUrl).toString(36)}`;
|
|
64
67
|
}
|
|
65
68
|
case "opencode-go":
|
|
66
69
|
case "opencode-zen": {
|
|
@@ -5397,12 +5397,29 @@ function mapLiteLLMRichEntry<TApi extends Api>(
|
|
|
5397
5397
|
["tools", "tool_choice", "functions", "function_call"].includes(param),
|
|
5398
5398
|
)
|
|
5399
5399
|
: reference?.supportsTools;
|
|
5400
|
+
// Enrich from the bundled reference with provider-INDEPENDENT reasoning
|
|
5401
|
+
// hints only. The reference is resolved against the global bundled catalog,
|
|
5402
|
+
// so a custom endpoint exposing an alias that collides with a bundled model
|
|
5403
|
+
// (a LiteLLM proxy serving `kimi-k3`, which matches Fireworks' bundled
|
|
5404
|
+
// `kimi-k3`) must not inherit that provider's transport compat. Spreading
|
|
5405
|
+
// the resolved `reference.compat` wholesale leaked `wireModelIdMode`,
|
|
5406
|
+
// `toolSchemaFlavor`, `thinkingFormat`, etc. across the provider boundary —
|
|
5407
|
+
// rewriting the wire id to `accounts/fireworks/models/kimi-k3` for a
|
|
5408
|
+
// non-Fireworks endpoint (issue #9938). `buildModel` re-derives every
|
|
5409
|
+
// transport field from the discovered provider and model id, so only the
|
|
5410
|
+
// effort vocabulary flows through here. Mirrors `discoverOpenAIModelsList`.
|
|
5411
|
+
const referenceCompat = reference?.compat as OpenAICompat | undefined;
|
|
5400
5412
|
const compat: OpenAICompat = {
|
|
5401
|
-
...(reference?.compat ?? {}),
|
|
5402
5413
|
supportsStore: false,
|
|
5403
5414
|
supportsDeveloperRole: false,
|
|
5404
5415
|
...(supportedOpenAIParams !== undefined
|
|
5405
5416
|
? { supportsReasoningEffort: supportedOpenAIParams.includes("reasoning_effort") }
|
|
5417
|
+
: referenceCompat?.supportsReasoningEffort !== undefined
|
|
5418
|
+
? { supportsReasoningEffort: referenceCompat.supportsReasoningEffort }
|
|
5419
|
+
: {}),
|
|
5420
|
+
...(referenceCompat?.reasoningEffortMap ? { reasoningEffortMap: referenceCompat.reasoningEffortMap } : {}),
|
|
5421
|
+
...(referenceCompat?.omitReasoningEffort !== undefined
|
|
5422
|
+
? { omitReasoningEffort: referenceCompat.omitReasoningEffort }
|
|
5406
5423
|
: {}),
|
|
5407
5424
|
};
|
|
5408
5425
|
return {
|
|
@@ -5628,12 +5645,14 @@ export function litellmModelManagerOptions(config?: LiteLLMModelManagerConfig):
|
|
|
5628
5645
|
const baseUrl = config?.baseUrl ?? getDefaultModelDiscoveryBaseUrl("litellm")!;
|
|
5629
5646
|
return {
|
|
5630
5647
|
providerId: "litellm",
|
|
5631
|
-
// rich-
|
|
5632
|
-
//
|
|
5633
|
-
//
|
|
5634
|
-
//
|
|
5635
|
-
//
|
|
5636
|
-
//
|
|
5648
|
+
// rich-v8 invalidates rows whose `compatConfig` retained a colliding
|
|
5649
|
+
// bundled model's provider-specific transport (e.g. Fireworks
|
|
5650
|
+
// `wireModelIdMode`) before that leak was fixed. Earlier versions added
|
|
5651
|
+
// bundled reference fallback, moved OpenAI models to Responses, continued
|
|
5652
|
+
// past incomplete vision/API metadata and endpoints omitting cache
|
|
5653
|
+
// pricing, stripped reseller usage suffixes, filtered placeholder rows,
|
|
5654
|
+
// and mapped rich pricing. Bump the version whenever these mappers change,
|
|
5655
|
+
// or warm authoritative caches keep serving pre-change rows for the full TTL.
|
|
5637
5656
|
cacheProviderId: resolveModelCacheProviderId("litellm", { baseUrl }),
|
|
5638
5657
|
// litellm is a local-only proxy and is never bundled in models.json (that
|
|
5639
5658
|
// would leak the machine's localhost catalog). Prefer the proxy's richer
|