@oh-my-pi/pi-catalog 18.13.1 → 18.13.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 +23 -0
- package/README.md +1 -1
- package/dist/types/discovery/codex.d.ts +4 -5
- package/dist/types/provider-models/openai-compat.d.ts +11 -3
- package/package.json +5 -5
- package/src/compat/rules/classes/openai.kdl +2 -2
- package/src/compat/rules/providers/factory-droid.kdl +24 -0
- package/src/compat/rules/providers/kimi-code.kdl +6 -0
- package/src/compat/rules/runtime/behavior.kdl +4 -4
- package/src/compat/rules.json +1 -1
- package/src/discovery/codex.ts +5 -6
- package/src/models.json +1 -1
- package/src/provider-models/cache-provider-id.ts +23 -6
- package/src/provider-models/openai-compat.ts +170 -51
- package/src/provider-models/special.ts +5 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.13.3] - 2026-10-28
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added DeepSeek V4.1 Flash 1017 to the Factory Droid provider for accounts with Factory's 1017 flag; turning thinking off on its Baseten route disables reasoning instead of falling back to low effort ([#17234](https://github.com/can1357/oh-my-pi/pull/17234) by [@skipper019](https://github.com/skipper019))
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Made Kimi Code model discovery authoritative and cached per credential, added K3.1 Pro and K3.1 Pro Highspeed to the bundled Kimi Code catalog, and preserved live thinking metadata there ([#17224](https://github.com/can1357/oh-my-pi/pull/17224) by [@trukhinyuri](https://github.com/trukhinyuri))
|
|
14
|
+
- Updated Bun engine requirement to ≥1.4.4
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Codex model refresh now lists models available to an entitled account even when other saved accounts return HTTP 402 ([#17198](https://github.com/can1357/oh-my-pi/issues/17198)).
|
|
19
|
+
- LiteLLM discovery now reads every `/v2/model/info` page before selecting the proxy's model roster, rather than caching only the first 50 entries; malformed or incomplete pagination falls back without caching a partial page ([#17237](https://github.com/can1357/oh-my-pi/pull/17237) by [@maykonmichel](https://github.com/maykonmichel)).
|
|
20
|
+
- Fixed hosted web search on OpenAI Responses and Codex Responses selecting GPT-5.6 Luna instead of GPT-6 Luna ([#17202](https://github.com/can1357/oh-my-pi/pull/17202) by [@mateo-bolanos](https://github.com/mateo-bolanos)).
|
|
21
|
+
|
|
22
|
+
## [18.13.2] - 2026-10-27
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- Added LM Studio decision models to discovery: models LM Studio reports as `type: "decision"` are listed as `judge` models served over its `/v1/decisions` endpoint, alongside its chat models ([#17169](https://github.com/can1357/oh-my-pi/pull/17169) by [@richiestanaway](https://github.com/richiestanaway))
|
|
27
|
+
|
|
5
28
|
## [18.13.1] - 2026-10-27
|
|
6
29
|
|
|
7
30
|
### Added
|
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ Model- or provider-conditional policy (identity, effort ladders, wire quirks, mo
|
|
|
36
36
|
bun add @oh-my-pi/pi-catalog
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Ships TypeScript source directly (no build step); requires Bun ≥ 1.
|
|
39
|
+
Ships TypeScript source directly (no build step); requires Bun ≥ 1.4.4.
|
|
40
40
|
|
|
41
41
|
## Cost calculation
|
|
42
42
|
|
|
@@ -27,12 +27,11 @@ export interface CodexModelDiscoveryResult {
|
|
|
27
27
|
models: ModelSpec<"openai-codex-responses">[];
|
|
28
28
|
etag?: string;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* discovery can skip the account instead of aborting.
|
|
30
|
+
* A definitive per-account denial (401/403 auth, 402 payment). `models` is
|
|
31
|
+
* empty; unlike transport/parse failures, sibling accounts can still supply
|
|
32
|
+
* an authoritative catalog.
|
|
34
33
|
*/
|
|
35
|
-
rejectedStatus?: 401 | 403;
|
|
34
|
+
rejectedStatus?: 401 | 402 | 403;
|
|
36
35
|
}
|
|
37
36
|
/**
|
|
38
37
|
* Fetches model metadata from Codex backend and normalizes it for pi model management.
|
|
@@ -377,24 +377,32 @@ export declare const KIMI_CODE_DEFAULT_MAX_TOKENS = 32000;
|
|
|
377
377
|
export declare function kimiCodeMaxTokens(modelId: string, fallback?: number): number;
|
|
378
378
|
export declare function kimiCodeMaxTokens(modelId: string, fallback: number | null): number | null;
|
|
379
379
|
export declare function kimiCodeModelManagerOptions(config?: KimiCodeModelManagerConfig): ModelManagerOptions<"openai-completions">;
|
|
380
|
-
/** Native LM Studio metadata keyed by model id from `/api/v0/models`. */
|
|
380
|
+
/** Native LM Studio metadata keyed by model id from `/api/v0/models` and `/api/v1/models`. */
|
|
381
381
|
export interface LmStudioNativeModelMetadata {
|
|
382
382
|
input: ("text" | "image")[];
|
|
383
383
|
contextWindow?: number;
|
|
384
|
+
/**
|
|
385
|
+
* LM Studio reports a decision model (`type: "decision"`): it answers typed
|
|
386
|
+
* questions on `/v1/decisions` and rejects chat completions.
|
|
387
|
+
*/
|
|
388
|
+
decision?: true;
|
|
384
389
|
}
|
|
385
390
|
/** Options for LM Studio's optional native metadata probe. */
|
|
386
391
|
export interface LmStudioNativeModelMetadataOptions {
|
|
387
392
|
headers?: Record<string, string>;
|
|
388
393
|
signal?: AbortSignal;
|
|
389
394
|
}
|
|
390
|
-
/**
|
|
395
|
+
/**
|
|
396
|
+
* Fetches LM Studio native model metadata used to mark VLM models as
|
|
397
|
+
* image-capable and decision models as judges.
|
|
398
|
+
*/
|
|
391
399
|
export declare function fetchLmStudioNativeModelMetadata(baseUrl: string, fetchImpl?: FetchImpl, options?: LmStudioNativeModelMetadataOptions): Promise<Map<string, LmStudioNativeModelMetadata> | null>;
|
|
392
400
|
export interface LmStudioModelManagerConfig {
|
|
393
401
|
apiKey?: string;
|
|
394
402
|
baseUrl?: string;
|
|
395
403
|
fetch?: FetchImpl;
|
|
396
404
|
}
|
|
397
|
-
export declare function lmStudioModelManagerOptions(config?: LmStudioModelManagerConfig): ModelManagerOptions<
|
|
405
|
+
export declare function lmStudioModelManagerOptions(config?: LmStudioModelManagerConfig): ModelManagerOptions<Api>;
|
|
398
406
|
export interface SyntheticModelManagerConfig {
|
|
399
407
|
apiKey?: string;
|
|
400
408
|
baseUrl?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-my-pi/pi-catalog",
|
|
3
|
-
"version": "18.13.
|
|
3
|
+
"version": "18.13.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,15 +93,15 @@
|
|
|
93
93
|
"gen:proto": "bun scripts/generate-protocols.ts"
|
|
94
94
|
},
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"@oh-my-pi/omptype": "18.13.
|
|
97
|
-
"@oh-my-pi/pi-utils": "18.13.
|
|
96
|
+
"@oh-my-pi/omptype": "18.13.3",
|
|
97
|
+
"@oh-my-pi/pi-utils": "18.13.3"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
100
|
"@bgotink/kdl": "0.4.0",
|
|
101
|
-
"@oh-my-pi/pi-ai": "18.13.
|
|
101
|
+
"@oh-my-pi/pi-ai": "18.13.3",
|
|
102
102
|
"@types/bun": "^1.3.14"
|
|
103
103
|
},
|
|
104
104
|
"engines": {
|
|
105
|
-
"bun": ">=1.
|
|
105
|
+
"bun": ">=1.4.4"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -84,14 +84,14 @@ class "openai" {
|
|
|
84
84
|
on-api "openai-responses" {
|
|
85
85
|
revision ">=5" {
|
|
86
86
|
web-search "openai"
|
|
87
|
-
web-search-model "gpt-
|
|
87
|
+
web-search-model "gpt-6-luna"
|
|
88
88
|
hosted-image #true
|
|
89
89
|
image-model "gpt-image-2"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
on-api "openai-codex-responses" {
|
|
93
93
|
revision ">=5" {
|
|
94
|
-
web-search-model "gpt-
|
|
94
|
+
web-search-model "gpt-6-luna"
|
|
95
95
|
hosted-image #true
|
|
96
96
|
image-model "gpt-image-2"
|
|
97
97
|
}
|
|
@@ -345,6 +345,12 @@ provider "factory-droid" {
|
|
|
345
345
|
cost input=0 output=0 cache-read=0 cache-write=0
|
|
346
346
|
limits context=136464 max-tokens=65536
|
|
347
347
|
}
|
|
348
|
+
model "deepseek-v4.1-flash-1017" name="DeepSeek V4.1 Flash 1017" {
|
|
349
|
+
reasoning #true
|
|
350
|
+
input "text" "image"
|
|
351
|
+
cost input=0 output=0 cache-read=0 cache-write=0
|
|
352
|
+
limits context=908928 max-tokens=131072
|
|
353
|
+
}
|
|
348
354
|
model "deepseek-v4.1-flash" name="DeepSeek V4.1 Flash" {
|
|
349
355
|
reasoning #true
|
|
350
356
|
input "text" "image"
|
|
@@ -975,6 +981,17 @@ provider "factory-droid" {
|
|
|
975
981
|
thinking-requires-effort #false
|
|
976
982
|
thinking-default-level "high"
|
|
977
983
|
}
|
|
984
|
+
models "deepseek-v4.1-flash-1017" {
|
|
985
|
+
routing-family "factory"
|
|
986
|
+
upstream-rotation "fireworks" "baseten" "databricks"
|
|
987
|
+
credit-rates { input 0.12; output 4; cache-read 0.024 }
|
|
988
|
+
// No bundled Fireworks row for the 1017 slug; Fireworks prices it like V4.1 Flash.
|
|
989
|
+
list-price-from "fireworks" "deepseek-v4.1-flash"
|
|
990
|
+
thinking-efforts "low" "high" "max"
|
|
991
|
+
thinking-requires-effort #false
|
|
992
|
+
thinking-default-level "high"
|
|
993
|
+
entitlement { feature-flag "deepseek_v4_1_flash_1017" }
|
|
994
|
+
}
|
|
978
995
|
models "deepseek-v4.1-flash" {
|
|
979
996
|
routing-family "factory"
|
|
980
997
|
upstream-rotation "fireworks" "baseten" "databricks"
|
|
@@ -1131,6 +1148,13 @@ provider "factory-droid" {
|
|
|
1131
1148
|
synthetic-reasoning-content-fallback " "
|
|
1132
1149
|
}
|
|
1133
1150
|
}
|
|
1151
|
+
// Droid 0.250.0 configures the 1017 checkpoint's Baseten route with
|
|
1152
|
+
// thinkingMode "reasoning-effort": thinking off is sent as `none`.
|
|
1153
|
+
models "deepseek-v4.1-flash-1017" {
|
|
1154
|
+
on-upstream "baseten" {
|
|
1155
|
+
completions-reasoning-mode "effort"
|
|
1156
|
+
}
|
|
1157
|
+
}
|
|
1134
1158
|
// The replay codec follows the selected route, including EU GLM routes.
|
|
1135
1159
|
on-upstream "mistral" {
|
|
1136
1160
|
models "glm-*" "mistral-medium-3.5" "mistral-large-4" {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
provider "kimi-code" {
|
|
4
4
|
default-model "kimi-for-coding"
|
|
5
|
+
dynamic-models-authoritative #true
|
|
5
6
|
discovery label="Kimi Code" {
|
|
6
7
|
env "KIMI_API_KEY"
|
|
7
8
|
}
|
|
@@ -39,6 +40,11 @@ provider "kimi-code" {
|
|
|
39
40
|
thinking-efforts "minimal" "low" "medium" "high"
|
|
40
41
|
thinking-format "zai"
|
|
41
42
|
}
|
|
43
|
+
// K2.7 Code Highspeed always thinks (`supports_thinking_type: "only"`) but
|
|
44
|
+
// exposes no adjustable effort ladder (`think_efforts` is omitted).
|
|
45
|
+
models "kimi-for-coding-highspeed" {
|
|
46
|
+
thinking-efforts
|
|
47
|
+
}
|
|
42
48
|
|
|
43
49
|
// /coding/v1/models carries no pricing. `cost-fallback` seeds the public
|
|
44
50
|
// Moonshot list price only when discovery reports $0, so a future priced
|
|
@@ -100,8 +100,8 @@ behavior {
|
|
|
100
100
|
// (flat rate) or Standard Credits. Unknown ids have no inferred entitlement.
|
|
101
101
|
quota-tiers provider="factory-droid" {
|
|
102
102
|
tier "core" "inkling" "mistral-large-4" "mistral-medium-3.5" "glm-5.3-flash" "glm-5.3" "glm-5.2" "glm-5.2-fast" \
|
|
103
|
-
"kimi-k3" "qwen3.8-max" "nemotron-3-ultra" "deepseek-v4.1-flash" "deepseek-v4-flash-
|
|
104
|
-
"deepseek-v4-pro" "minimax-m3" "minimax-m2.7"
|
|
103
|
+
"kimi-k3" "qwen3.8-max" "nemotron-3-ultra" "deepseek-v4.1-flash" "deepseek-v4.1-flash-1017" \
|
|
104
|
+
"deepseek-v4-flash-0731" "deepseek-v4-pro" "minimax-m3" "minimax-m2.7"
|
|
105
105
|
tier "standard" "claude-fable-5.1" "claude-fable-5" "claude-opus-5-5" "claude-opus-5-5-fast" \
|
|
106
106
|
"claude-opus-5" "claude-opus-5-fast" "claude-opus-4-8" "claude-opus-4-8-fast" "claude-opus-4-7" \
|
|
107
107
|
"claude-opus-4-6" "claude-opus-4-5-20251101" "claude-sonnet-5-5" "claude-sonnet-5" \
|
|
@@ -315,8 +315,8 @@ behavior {
|
|
|
315
315
|
exact="gemini-3-flash-preview" exact="gemini-3-pro-image-preview"
|
|
316
316
|
route "openai-completions" exact="inkling" exact="mistral-large-4" exact="mistral-medium-3.5" exact="glm-5.3-flash" \
|
|
317
317
|
exact="glm-5.3" exact="glm-5.2" exact="glm-5.2-fast" exact="kimi-k3" exact="qwen3.8-max" \
|
|
318
|
-
exact="nemotron-3-ultra" exact="deepseek-v4.1-flash" exact="deepseek-v4-flash-
|
|
319
|
-
exact="deepseek-v4-pro" exact="minimax-m3"
|
|
318
|
+
exact="nemotron-3-ultra" exact="deepseek-v4.1-flash" exact="deepseek-v4.1-flash-1017" \
|
|
319
|
+
exact="deepseek-v4-flash-0731" exact="deepseek-v4-pro" exact="minimax-m3"
|
|
320
320
|
}
|
|
321
321
|
|
|
322
322
|
// Copilot serves these models with tighter effective limits than its
|