@oh-my-pi/pi-catalog 16.2.1 → 16.2.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 +18 -0
- package/dist/types/identity/dialect.d.ts +1 -1
- package/dist/types/types.d.ts +7 -1
- package/package.json +3 -3
- package/src/compat/openai.ts +9 -8
- package/src/identity/dialect.ts +0 -1
- package/src/models.json +15 -42
- package/src/types.ts +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.2.3] - 2026-06-28
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added support and configuration parameters for V2 streaming compaction in RemoteCompactionConfig, catalog types, and model/provider metadata.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Enabled automatic content markup healing for all OpenAI-compatible streaming models
|
|
14
|
+
- Updated pricing and context window limits for several catalog models.
|
|
15
|
+
- Disabled reasoning capability for multiple providers in the catalog.
|
|
16
|
+
|
|
17
|
+
## [16.2.2] - 2026-06-27
|
|
18
|
+
|
|
19
|
+
### Removed
|
|
20
|
+
|
|
21
|
+
- Removed 'pi' from the list of supported dialects.
|
|
22
|
+
|
|
5
23
|
## [16.2.0] - 2026-06-27
|
|
6
24
|
|
|
7
25
|
### Added
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type Dialect = "glm" | "hermes" | "kimi" | "xml" | "anthropic" | "deepseek" | "harmony" | "
|
|
1
|
+
export type Dialect = "glm" | "hermes" | "kimi" | "xml" | "anthropic" | "deepseek" | "harmony" | "qwen3" | "gemini" | "gemma" | "minimax";
|
|
2
2
|
export declare const FALLBACK_DIALECT: Dialect;
|
|
3
3
|
export declare function preferredDialect(modelId: string): Dialect;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -532,8 +532,14 @@ export interface RemoteCompactionConfig<TApi extends Api = Api> {
|
|
|
532
532
|
enabled?: boolean;
|
|
533
533
|
/** Adapter family used by the configured compaction endpoint. */
|
|
534
534
|
api?: TApi;
|
|
535
|
-
/** Absolute compact endpoint URL; when omitted, the adapter derives it from the model base URL. */
|
|
535
|
+
/** Absolute V1 compact endpoint URL; when omitted, the adapter derives it from the model base URL. */
|
|
536
536
|
endpoint?: string;
|
|
537
|
+
/** Enables Responses-stream V2 compaction for models verified to support `compaction_trigger`. */
|
|
538
|
+
v2StreamingEnabled?: boolean;
|
|
539
|
+
/** Absolute Responses-stream endpoint URL for V2 compaction; overrides `streamingEndpoint`. */
|
|
540
|
+
v2Endpoint?: string;
|
|
541
|
+
/** Absolute provider streaming endpoint URL used by V2 compaction when no dedicated endpoint is set. */
|
|
542
|
+
streamingEndpoint?: string;
|
|
537
543
|
/** Model id sent to the compaction endpoint when it differs from the active model id. */
|
|
538
544
|
model?: string;
|
|
539
545
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "16.2.
|
|
4
|
+
"version": "16.2.3",
|
|
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",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@bufbuild/protobuf": "^2.12.0",
|
|
37
|
-
"@oh-my-pi/pi-utils": "16.2.
|
|
37
|
+
"@oh-my-pi/pi-utils": "16.2.3",
|
|
38
38
|
"arktype": "^2.2.0",
|
|
39
39
|
"zod": "^4"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "16.2.
|
|
42
|
+
"@oh-my-pi/pi-ai": "16.2.3",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/compat/openai.ts
CHANGED
|
@@ -98,20 +98,21 @@ function resolveReasoningDisableMode(
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Pick the leaked-markup healer for an OpenAI-compatible visible-text stream.
|
|
103
|
+
* Kimi chat-template tokens and DeepSeek DSML envelopes need their dedicated
|
|
104
|
+
* tool-call grammars; every other model defaults to `"thinking"`. All patterns
|
|
105
|
+
* run the generic thinking healer, so leaked reasoning idioms (e.g. a Gemini
|
|
106
|
+
* ` ```thinking ` fence on OpenRouter) are always recovered from `delta.content`.
|
|
107
|
+
*/
|
|
108
|
+
function detectStreamMarkupHealingPattern(provider: string, modelId: string): OpenAIStreamMarkupHealingPattern {
|
|
108
109
|
if (provider === "kimi-code" || provider === "moonshot" || /kimi[-/_.]?k2/i.test(modelId)) {
|
|
109
110
|
return "kimi";
|
|
110
111
|
}
|
|
111
112
|
if (isDeepseekModelIdOrName(modelId) && DSML_HEALING_PROVIDERS.has(provider)) {
|
|
112
113
|
return "dsml";
|
|
113
114
|
}
|
|
114
|
-
return
|
|
115
|
+
return "thinking";
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
/**
|
package/src/identity/dialect.ts
CHANGED
package/src/models.json
CHANGED
|
@@ -31303,7 +31303,7 @@
|
|
|
31303
31303
|
"api": "openai-completions",
|
|
31304
31304
|
"provider": "kilo",
|
|
31305
31305
|
"baseUrl": "https://api.kilo.ai/api/gateway",
|
|
31306
|
-
"reasoning":
|
|
31306
|
+
"reasoning": false,
|
|
31307
31307
|
"input": [
|
|
31308
31308
|
"text"
|
|
31309
31309
|
],
|
|
@@ -31314,16 +31314,7 @@
|
|
|
31314
31314
|
"cacheWrite": 0
|
|
31315
31315
|
},
|
|
31316
31316
|
"contextWindow": 262144,
|
|
31317
|
-
"maxTokens": 52429
|
|
31318
|
-
"thinking": {
|
|
31319
|
-
"mode": "effort",
|
|
31320
|
-
"efforts": [
|
|
31321
|
-
"minimal",
|
|
31322
|
-
"low",
|
|
31323
|
-
"medium",
|
|
31324
|
-
"high"
|
|
31325
|
-
]
|
|
31326
|
-
}
|
|
31317
|
+
"maxTokens": 52429
|
|
31327
31318
|
},
|
|
31328
31319
|
"qwen/qwen3-235b-a22b-thinking-2507": {
|
|
31329
31320
|
"id": "qwen/qwen3-235b-a22b-thinking-2507",
|
|
@@ -68464,7 +68455,7 @@
|
|
|
68464
68455
|
"api": "openrouter",
|
|
68465
68456
|
"baseUrl": "https://openrouter.ai/api/v1",
|
|
68466
68457
|
"provider": "openrouter",
|
|
68467
|
-
"reasoning":
|
|
68458
|
+
"reasoning": false,
|
|
68468
68459
|
"input": [
|
|
68469
68460
|
"text"
|
|
68470
68461
|
],
|
|
@@ -68475,16 +68466,7 @@
|
|
|
68475
68466
|
"cacheWrite": 0
|
|
68476
68467
|
},
|
|
68477
68468
|
"contextWindow": 262144,
|
|
68478
|
-
"maxTokens": 16384
|
|
68479
|
-
"thinking": {
|
|
68480
|
-
"mode": "effort",
|
|
68481
|
-
"efforts": [
|
|
68482
|
-
"minimal",
|
|
68483
|
-
"low",
|
|
68484
|
-
"medium",
|
|
68485
|
-
"high"
|
|
68486
|
-
]
|
|
68487
|
-
}
|
|
68469
|
+
"maxTokens": 16384
|
|
68488
68470
|
},
|
|
68489
68471
|
"qwen/qwen3-235b-a22b-thinking-2507": {
|
|
68490
68472
|
"id": "qwen/qwen3-235b-a22b-thinking-2507",
|
|
@@ -76863,13 +76845,13 @@
|
|
|
76863
76845
|
"text"
|
|
76864
76846
|
],
|
|
76865
76847
|
"cost": {
|
|
76866
|
-
"input": 0.
|
|
76867
|
-
"output": 1.
|
|
76848
|
+
"input": 0.6,
|
|
76849
|
+
"output": 1.7,
|
|
76868
76850
|
"cacheRead": 0.28,
|
|
76869
76851
|
"cacheWrite": 0
|
|
76870
76852
|
},
|
|
76871
|
-
"contextWindow":
|
|
76872
|
-
"maxTokens":
|
|
76853
|
+
"contextWindow": 128000,
|
|
76854
|
+
"maxTokens": 128000,
|
|
76873
76855
|
"thinking": {
|
|
76874
76856
|
"mode": "budget",
|
|
76875
76857
|
"efforts": [
|
|
@@ -78430,13 +78412,13 @@
|
|
|
78430
78412
|
"text"
|
|
78431
78413
|
],
|
|
78432
78414
|
"cost": {
|
|
78433
|
-
"input": 0.
|
|
78434
|
-
"output": 2
|
|
78435
|
-
"cacheRead": 0.
|
|
78415
|
+
"input": 0.47,
|
|
78416
|
+
"output": 2,
|
|
78417
|
+
"cacheRead": 0.14100000000000001,
|
|
78436
78418
|
"cacheWrite": 0
|
|
78437
78419
|
},
|
|
78438
|
-
"contextWindow":
|
|
78439
|
-
"maxTokens":
|
|
78420
|
+
"contextWindow": 216144,
|
|
78421
|
+
"maxTokens": 216144,
|
|
78440
78422
|
"thinking": {
|
|
78441
78423
|
"mode": "budget",
|
|
78442
78424
|
"efforts": [
|
|
@@ -86461,7 +86443,7 @@
|
|
|
86461
86443
|
"api": "openai-completions",
|
|
86462
86444
|
"provider": "zenmux",
|
|
86463
86445
|
"baseUrl": "https://zenmux.ai/api/v1",
|
|
86464
|
-
"reasoning":
|
|
86446
|
+
"reasoning": false,
|
|
86465
86447
|
"input": [
|
|
86466
86448
|
"text"
|
|
86467
86449
|
],
|
|
@@ -86472,16 +86454,7 @@
|
|
|
86472
86454
|
"cacheWrite": 0
|
|
86473
86455
|
},
|
|
86474
86456
|
"contextWindow": 256000,
|
|
86475
|
-
"maxTokens": 16384
|
|
86476
|
-
"thinking": {
|
|
86477
|
-
"mode": "effort",
|
|
86478
|
-
"efforts": [
|
|
86479
|
-
"minimal",
|
|
86480
|
-
"low",
|
|
86481
|
-
"medium",
|
|
86482
|
-
"high"
|
|
86483
|
-
]
|
|
86484
|
-
}
|
|
86457
|
+
"maxTokens": 16384
|
|
86485
86458
|
},
|
|
86486
86459
|
"qwen/qwen3-235b-a22b-thinking-2507": {
|
|
86487
86460
|
"id": "qwen/qwen3-235b-a22b-thinking-2507",
|
package/src/types.ts
CHANGED
|
@@ -659,8 +659,14 @@ export interface RemoteCompactionConfig<TApi extends Api = Api> {
|
|
|
659
659
|
enabled?: boolean;
|
|
660
660
|
/** Adapter family used by the configured compaction endpoint. */
|
|
661
661
|
api?: TApi;
|
|
662
|
-
/** Absolute compact endpoint URL; when omitted, the adapter derives it from the model base URL. */
|
|
662
|
+
/** Absolute V1 compact endpoint URL; when omitted, the adapter derives it from the model base URL. */
|
|
663
663
|
endpoint?: string;
|
|
664
|
+
/** Enables Responses-stream V2 compaction for models verified to support `compaction_trigger`. */
|
|
665
|
+
v2StreamingEnabled?: boolean;
|
|
666
|
+
/** Absolute Responses-stream endpoint URL for V2 compaction; overrides `streamingEndpoint`. */
|
|
667
|
+
v2Endpoint?: string;
|
|
668
|
+
/** Absolute provider streaming endpoint URL used by V2 compaction when no dedicated endpoint is set. */
|
|
669
|
+
streamingEndpoint?: string;
|
|
664
670
|
/** Model id sent to the compaction endpoint when it differs from the active model id. */
|
|
665
671
|
model?: string;
|
|
666
672
|
}
|