@oh-my-pi/pi-catalog 16.3.12 → 16.3.13
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 +16 -0
- package/dist/types/model-manager.d.ts +1 -1
- package/package.json +3 -3
- package/src/discovery/cursor.ts +23 -1
- package/src/model-manager.ts +1 -1
- package/src/models.json +2290 -259
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.3.13] - 2026-07-09
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added support for Grok 4.5 across multiple providers
|
|
10
|
+
- Added support for GPT-5.6 series models (Luna, Sol, Terra)
|
|
11
|
+
- Added Aion 3.0 and 3.0 Mini models
|
|
12
|
+
- Added Kuaishou KAT-Coder v2.5 models
|
|
13
|
+
- Added Nex-N2-Mini and SWE-1.7 series models
|
|
14
|
+
- Added Hy3 models and free variants
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Updated cost and token configurations for various models across providers
|
|
19
|
+
- Renamed several models for consistency (e.g., MiniMax M3, Gemma 4 31B, Qwen variants)
|
|
20
|
+
|
|
5
21
|
## [16.3.12] - 2026-07-08
|
|
6
22
|
|
|
7
23
|
### Fixed
|
|
@@ -24,7 +24,7 @@ export interface ModelManagerOptions<TApi extends Api = Api, TModelsDevPayload =
|
|
|
24
24
|
cacheDbPath?: string;
|
|
25
25
|
/** Optional provider id override for cache namespacing. Defaults to providerId. */
|
|
26
26
|
cacheProviderId?: string;
|
|
27
|
-
/** Maximum cache age in milliseconds before considered stale. Default:
|
|
27
|
+
/** Maximum cache age in milliseconds before considered stale. Default: 2h (`DEFAULT_CACHE_TTL_MS`). */
|
|
28
28
|
cacheTtlMs?: number;
|
|
29
29
|
/** When true, a successful dynamic fetch is the complete provider catalog and prunes static-only models. */
|
|
30
30
|
dynamicModelsAuthoritative?: boolean;
|
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.3.
|
|
4
|
+
"version": "16.3.13",
|
|
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.3.
|
|
37
|
+
"@oh-my-pi/pi-utils": "16.3.13",
|
|
38
38
|
"arktype": "^2.2.0",
|
|
39
39
|
"zod": "^4"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@oh-my-pi/pi-ai": "16.3.
|
|
42
|
+
"@oh-my-pi/pi-ai": "16.3.13",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/discovery/cursor.ts
CHANGED
|
@@ -13,6 +13,13 @@ const CURSOR_GET_USABLE_MODELS_PATH = "/agent.v1.AgentService/GetUsableModels";
|
|
|
13
13
|
const DEFAULT_CONTEXT_WINDOW = 200_000;
|
|
14
14
|
const DEFAULT_MAX_TOKENS = 64_000;
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Model-id families whose native catalogs (anthropic, openai/openai-codex,
|
|
18
|
+
* google) are multimodal. Cursor-only or text-only families (`composer-*`,
|
|
19
|
+
* `grok-code-*`) intentionally stay outside this pattern.
|
|
20
|
+
*/
|
|
21
|
+
const CURSOR_MULTIMODAL_ID_PATTERN = /claude|gemini|gpt-|codex/;
|
|
22
|
+
|
|
16
23
|
const OptionalDisplayNameSchema = type("unknown").pipe(raw => (typeof raw === "string" ? raw : undefined));
|
|
17
24
|
const CursorAliasesSchema = type("unknown").pipe(raw => {
|
|
18
25
|
if (Array.isArray(raw)) {
|
|
@@ -292,7 +299,7 @@ function normalizeCursorModel(
|
|
|
292
299
|
provider: "cursor",
|
|
293
300
|
baseUrl: baseUrlOverride ?? CURSOR_DEFAULT_BASE_URL,
|
|
294
301
|
reasoning,
|
|
295
|
-
input:
|
|
302
|
+
input: inferInputFromCursorId(id),
|
|
296
303
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
297
304
|
contextWindow: DEFAULT_CONTEXT_WINDOW,
|
|
298
305
|
maxTokens: DEFAULT_MAX_TOKENS,
|
|
@@ -312,3 +319,18 @@ function pickModelDisplayName(model: CursorModelDetailsValue, fallbackId: string
|
|
|
312
319
|
}
|
|
313
320
|
return fallbackId;
|
|
314
321
|
}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Infers input modalities for Cursor models without a bundled reference.
|
|
325
|
+
*
|
|
326
|
+
* `GetUsableModels` carries no per-model modality metadata, so classification
|
|
327
|
+
* falls back to the model family: families that are multimodal in OMP's own
|
|
328
|
+
* native catalogs accept images, everything else stays text-only. Mirrors
|
|
329
|
+
* `inferInputFromGeminiId` in ./gemini.ts.
|
|
330
|
+
*/
|
|
331
|
+
function inferInputFromCursorId(id: string): ("text" | "image")[] {
|
|
332
|
+
if (CURSOR_MULTIMODAL_ID_PATTERN.test(id.toLowerCase())) {
|
|
333
|
+
return ["text", "image"];
|
|
334
|
+
}
|
|
335
|
+
return ["text"];
|
|
336
|
+
}
|
package/src/model-manager.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface ModelManagerOptions<TApi extends Api = Api, TModelsDevPayload =
|
|
|
35
35
|
cacheDbPath?: string;
|
|
36
36
|
/** Optional provider id override for cache namespacing. Defaults to providerId. */
|
|
37
37
|
cacheProviderId?: string;
|
|
38
|
-
/** Maximum cache age in milliseconds before considered stale. Default:
|
|
38
|
+
/** Maximum cache age in milliseconds before considered stale. Default: 2h (`DEFAULT_CACHE_TTL_MS`). */
|
|
39
39
|
cacheTtlMs?: number;
|
|
40
40
|
/** When true, a successful dynamic fetch is the complete provider catalog and prunes static-only models. */
|
|
41
41
|
dynamicModelsAuthoritative?: boolean;
|