@oh-my-pi/pi-catalog 17.2.10 → 17.2.12
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 +15 -0
- package/dist/types/compat/bedrock.d.ts +1 -1
- package/dist/types/provider-models/openai-compat.d.ts +11 -0
- package/dist/types/types.d.ts +13 -0
- package/package.json +4 -4
- package/src/compat/bedrock.ts +28 -1
- package/src/models.json +5314 -2054
- package/src/provider-models/openai-compat.ts +331 -302
- package/src/types.ts +13 -0
- package/src/variant-collapse.ts +105 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [17.2.12] - 2026-08-08
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed dynamically discovered `alibaba-token-plan/qwen3.8-max` metadata so thinking controls and image input are available ([#8019](https://github.com/can1357/oh-my-pi/issues/8019)).
|
|
10
|
+
- Routed `opencode-go/deepseek-v4-flash` through the OpenAI responses API — the OpenCode Go gateway does not serve this model at `/zen/go/v1/chat/completions`, only at `/zen/go/v1/responses` (`deepseek-v4-pro` keeps chat completions).
|
|
11
|
+
|
|
12
|
+
## [17.2.11] - 2026-08-07
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Increased the default stream idle-timeout floor on Amazon Bedrock to 900 seconds for reasoning and adaptive-thinking models (such as Claude) to prevent premature watchdog timeouts during long reasoning stretches.
|
|
17
|
+
- Fixed Devin model families (including SWE-1.7, Claude 5, Gemini 3.6 Flash, Kimi K3, Grok 4.5, and Inkling) to correctly group as logical models with reasoning-effort routing instead of separate wire variants.
|
|
18
|
+
- Added missing context-window and output-token limits for dynamically discovered Alibaba Token Plan models.
|
|
19
|
+
|
|
5
20
|
## [17.2.10] - 2026-08-06
|
|
6
21
|
|
|
7
22
|
### Changed
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ModelSpec, ResolvedBedrockCompat } from "../types.js";
|
|
2
|
-
/** Resolve Bedrock Converse prompt-cache
|
|
2
|
+
/** Resolve Bedrock Converse prompt-cache and stream-watchdog compat once per model. */
|
|
3
3
|
export declare function buildBedrockCompat(spec: ModelSpec<"bedrock-converse-stream">): ResolvedBedrockCompat;
|
|
@@ -342,6 +342,17 @@ export interface AlibabaCodingPlanModelManagerConfig {
|
|
|
342
342
|
export declare function alibabaCodingPlanModelManagerOptions(config?: AlibabaCodingPlanModelManagerConfig): ModelManagerOptions<"openai-completions">;
|
|
343
343
|
export { ALIBABA_TOKEN_PLAN_BASE_URL };
|
|
344
344
|
export declare const ALIBABA_TOKEN_PLAN_STATIC_MODELS: readonly ModelSpec<"openai-completions">[];
|
|
345
|
+
/**
|
|
346
|
+
* Metadata for Alibaba Token Plan models that are dynamically discovered but not
|
|
347
|
+
* in the static catalog. Context window and max tokens are sourced from
|
|
348
|
+
* official model documentation and provider catalogs. Unknown future models
|
|
349
|
+
* remain available with null limits instead of assigning unsafe guessed limits.
|
|
350
|
+
*/
|
|
351
|
+
export interface AlibabaTokenPlanModelLimits {
|
|
352
|
+
contextWindow: number;
|
|
353
|
+
maxTokens: number;
|
|
354
|
+
}
|
|
355
|
+
export declare const ALIBABA_TOKEN_PLAN_DISCOVERED_MODEL_LIMITS: Readonly<Record<string, AlibabaTokenPlanModelLimits>>;
|
|
345
356
|
export interface AlibabaTokenPlanModelManagerConfig {
|
|
346
357
|
apiKey?: string;
|
|
347
358
|
baseUrl?: string;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -478,6 +478,12 @@ export interface BedrockCompat {
|
|
|
478
478
|
* Capability metadata only; zero means no explicit checkpoints.
|
|
479
479
|
*/
|
|
480
480
|
promptCacheMaximumCheckpoints?: number;
|
|
481
|
+
/**
|
|
482
|
+
* Stream-watchdog idle-timeout fallback in ms; 0 disables the idle watchdog.
|
|
483
|
+
* Undefined defers to `PI_STREAM_IDLE_TIMEOUT_MS`, then the legacy
|
|
484
|
+
* `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS` alias, then the 300s default.
|
|
485
|
+
*/
|
|
486
|
+
streamIdleTimeoutMs?: number;
|
|
481
487
|
}
|
|
482
488
|
/** Fully-resolved Bedrock Converse prompt-cache capabilities, materialized once by `buildModel`. */
|
|
483
489
|
export interface ResolvedBedrockCompat {
|
|
@@ -485,6 +491,13 @@ export interface ResolvedBedrockCompat {
|
|
|
485
491
|
supportsLongPromptCacheRetention: boolean;
|
|
486
492
|
promptCacheMinimumTokens: number;
|
|
487
493
|
promptCacheMaximumCheckpoints: number;
|
|
494
|
+
/**
|
|
495
|
+
* Stream-watchdog idle-timeout fallback in ms for hosts with no keepalive
|
|
496
|
+
* events; 0 disables the idle watchdog. Undefined defers to
|
|
497
|
+
* `PI_STREAM_IDLE_TIMEOUT_MS`, then the legacy
|
|
498
|
+
* `PI_OPENAI_STREAM_IDLE_TIMEOUT_MS` alias, then the 300s default.
|
|
499
|
+
*/
|
|
500
|
+
streamIdleTimeoutMs?: number;
|
|
488
501
|
}
|
|
489
502
|
/**
|
|
490
503
|
* OpenRouter provider routing preferences.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "17.2.
|
|
4
|
+
"version": "17.2.12",
|
|
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": "Can Boluk",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@bufbuild/protobuf": "^2.12.1",
|
|
38
|
-
"@oh-my-pi/omptype": "17.2.
|
|
39
|
-
"@oh-my-pi/pi-utils": "17.2.
|
|
38
|
+
"@oh-my-pi/omptype": "17.2.12",
|
|
39
|
+
"@oh-my-pi/pi-utils": "17.2.12"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "17.2.
|
|
42
|
+
"@oh-my-pi/pi-ai": "17.2.12",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/compat/bedrock.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { supportsAdaptiveThinkingDisplay } from "../identity/family";
|
|
1
2
|
import type { ModelSpec, ResolvedBedrockCompat } from "../types";
|
|
2
3
|
import { applyCompatOverrides } from "./apply";
|
|
3
4
|
|
|
@@ -118,9 +119,35 @@ function detectedBedrockCompat(modelId: string): ResolvedBedrockCompat {
|
|
|
118
119
|
return NO_EXPLICIT_CHECKPOINTS;
|
|
119
120
|
}
|
|
120
121
|
|
|
121
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* Bedrock ConverseStream sends no ping/keepalive events, so a reasoning model
|
|
124
|
+
* that goes quiet mid-thinking (summarized-display gaps, `omitted` thinking,
|
|
125
|
+
* or the wedged long tool-call generation of issue #4900) reads as a dead
|
|
126
|
+
* stream to the generic 300s idle watchdog and dies with "Provider stream
|
|
127
|
+
* stalled while waiting for the next event" (issue #4758's Bedrock variant).
|
|
128
|
+
* Widen the floor to 600s for reasoning models, mirroring the GLM coding-plan
|
|
129
|
+
* floor; explicit `spec.compat.streamIdleTimeoutMs` overrides still win.
|
|
130
|
+
*/
|
|
131
|
+
const BEDROCK_REASONING_STREAM_IDLE_TIMEOUT_MS = 600_000;
|
|
132
|
+
/**
|
|
133
|
+
* Adaptive-thinking Claude (Opus 4.7+, Sonnet/Opus 5, Fable/Mythos 5) reasons
|
|
134
|
+
* for much longer stretches, and starting with Opus 4.7 / Fable 5 the
|
|
135
|
+
* Anthropic-side display default is `omitted` (issue #1373), so quiet gaps run
|
|
136
|
+
* longest on exactly this family — Fable 5 being the worst offender in the
|
|
137
|
+
* field. Direct Anthropic keeps these streams alive with ping keepalives and
|
|
138
|
+
* tolerates up to 3x the 300s idle budget of real-event silence (#4900);
|
|
139
|
+
* pingless Bedrock needs the same 900s tolerance in the raw idle floor.
|
|
140
|
+
*/
|
|
141
|
+
const BEDROCK_ADAPTIVE_THINKING_STREAM_IDLE_TIMEOUT_MS = 900_000;
|
|
142
|
+
|
|
143
|
+
/** Resolve Bedrock Converse prompt-cache and stream-watchdog compat once per model. */
|
|
122
144
|
export function buildBedrockCompat(spec: ModelSpec<"bedrock-converse-stream">): ResolvedBedrockCompat {
|
|
123
145
|
const compat = { ...detectedBedrockCompat(spec.id) };
|
|
146
|
+
compat.streamIdleTimeoutMs = spec.reasoning
|
|
147
|
+
? supportsAdaptiveThinkingDisplay(spec.id)
|
|
148
|
+
? BEDROCK_ADAPTIVE_THINKING_STREAM_IDLE_TIMEOUT_MS
|
|
149
|
+
: BEDROCK_REASONING_STREAM_IDLE_TIMEOUT_MS
|
|
150
|
+
: undefined;
|
|
124
151
|
applyCompatOverrides(compat, spec.compat);
|
|
125
152
|
return compat;
|
|
126
153
|
}
|