@oh-my-pi/pi-catalog 18.11.2 → 18.12.0
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 +30 -0
- package/dist/types/compat/behavior.d.ts +5 -0
- package/dist/types/compat/catalog-endpoint.d.ts +8 -0
- package/dist/types/compat/judgment-images.d.ts +25 -0
- package/dist/types/compat/request-compression.d.ts +21 -0
- package/dist/types/compat/request-size.d.ts +2 -1
- package/dist/types/compat/types.d.ts +2 -0
- package/dist/types/model-cache.d.ts +7 -0
- package/dist/types/provider-models/openai-compat.d.ts +0 -46
- package/dist/types/types.d.ts +14 -1
- package/package.json +4 -4
- package/src/build.ts +13 -0
- package/src/compat/axes.ts +51 -1
- package/src/compat/behavior.ts +9 -1
- package/src/compat/catalog-endpoint.ts +43 -0
- package/src/compat/judgment-images.ts +83 -0
- package/src/compat/request-compression.ts +41 -0
- package/src/compat/request-size.ts +3 -1
- package/src/compat/resolve.ts +34 -49
- package/src/compat/rules/README.md +17 -1
- package/src/compat/rules/auth/google-antigravity.kdl +1 -1
- package/src/compat/rules/classes/anthropic.kdl +2 -3
- package/src/compat/rules/classes/deepseek.kdl +4 -0
- package/src/compat/rules/classes/minimax.kdl +10 -0
- package/src/compat/rules/classes/openai.kdl +8 -0
- package/src/compat/rules/providers/anthropic.kdl +4 -0
- package/src/compat/rules/providers/azure.kdl +2 -0
- package/src/compat/rules/providers/cerebras.kdl +3 -0
- package/src/compat/rules/providers/cline-pass.kdl +16 -0
- package/src/compat/rules/providers/commandcode.kdl +10 -0
- package/src/compat/rules/providers/deepinfra.kdl +3 -1
- package/src/compat/rules/providers/devin.kdl +7 -1
- package/src/compat/rules/providers/factory-droid.kdl +6 -0
- package/src/compat/rules/providers/firepass.kdl +15 -0
- package/src/compat/rules/providers/fireworks.kdl +26 -0
- package/src/compat/rules/providers/github-copilot.kdl +24 -0
- package/src/compat/rules/providers/google-antigravity.kdl +11 -0
- package/src/compat/rules/providers/moonshot.kdl +2 -0
- package/src/compat/rules/providers/ollama-cloud.kdl +3 -0
- package/src/compat/rules/providers/openai-codex.kdl +9 -0
- package/src/compat/rules/providers/opencode-go.kdl +4 -0
- package/src/compat/rules/providers/opencode-zen.kdl +4 -0
- package/src/compat/rules/providers/openrouter.kdl +15 -0
- package/src/compat/rules/providers/tool-call-names.kdl +37 -0
- package/src/compat/rules/providers/typesafe.kdl +8 -0
- package/src/compat/rules/providers/umans.kdl +6 -0
- package/src/compat/rules/providers/venice.kdl +7 -0
- package/src/compat/rules/providers/xai-oauth.kdl +4 -0
- package/src/compat/rules/providers/zai.kdl +5 -0
- package/src/compat/rules/runtime/behavior.kdl +115 -4
- package/src/compat/rules.json +1 -1
- package/src/compat/types.ts +2 -0
- package/src/model-cache.ts +8 -0
- package/src/model-manager.ts +29 -20
- package/src/models.json +1 -1
- package/src/provider-models/openai-compat.ts +8 -90
- package/src/types.ts +14 -0
|
@@ -121,6 +121,14 @@ provider "openrouter" {
|
|
|
121
121
|
}
|
|
122
122
|
models "~typesafe/jev-latest" "typesafe/jev-1.13" "typesafe/jev-1.14" {
|
|
123
123
|
input-modalities "text" "image"
|
|
124
|
+
judgment-image-input {
|
|
125
|
+
mime-types "image/png,image/jpeg"
|
|
126
|
+
max-bytes 16777216
|
|
127
|
+
min-pixels 78400
|
|
128
|
+
max-pixels 2458624
|
|
129
|
+
min-side 280
|
|
130
|
+
max-side 1568
|
|
131
|
+
}
|
|
124
132
|
}
|
|
125
133
|
models "cohere/rerank-v3.5" {
|
|
126
134
|
kind "rerank"
|
|
@@ -154,6 +162,13 @@ provider "openrouter" {
|
|
|
154
162
|
allows-synthetic-reasoning-content-for-tool-calls #false
|
|
155
163
|
}
|
|
156
164
|
}
|
|
165
|
+
// OpenRouter forwards these hosted Muse SKUs to Meta's backend, which
|
|
166
|
+
// accepts only tool_choice "auto" and 400s on "none" (see providers/meta.kdl).
|
|
167
|
+
// Other Muse models, including muse-spark-open, retain discovered tool_choice.
|
|
168
|
+
models "meta/muse-spark-1.1" "meta/muse-spark-1.2" "meta/muse-spark-1.2-contributor" \
|
|
169
|
+
"meta/muse-spark-1.3" "meta/muse-spark-1.3-contributor" "meta/muse-wonder" {
|
|
170
|
+
supports-tool-choice #false
|
|
171
|
+
}
|
|
157
172
|
class "minimax" {
|
|
158
173
|
family "m3" {
|
|
159
174
|
thinking-efforts "minimal" "low" "medium" "high"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Tool names in replayed history must meet the target wire's declaration limits.
|
|
2
|
+
// Anthropic tool definitions: https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools
|
|
3
|
+
on-api "anthropic-messages" "openai-responses" "azure-openai-responses" "openai-codex-responses" {
|
|
4
|
+
tool-call-name-charset "ascii"
|
|
5
|
+
tool-call-name-max-length 128
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// Bedrock ToolUseBlockStart.name: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolUseBlockStart.html
|
|
9
|
+
on-api "bedrock-converse-stream" {
|
|
10
|
+
tool-call-name-charset "ascii"
|
|
11
|
+
tool-call-name-max-length 64
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Chat Completions uses the shorter tool-name bound; OpenRouter can select it
|
|
15
|
+
// at request time. Factory Droid encodes caller names into this shape.
|
|
16
|
+
on-api "openai-completions" "openrouter" "factory-droid-agent" {
|
|
17
|
+
tool-call-name-charset "ascii"
|
|
18
|
+
tool-call-name-max-length 64
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Google FunctionDeclaration.name: https://googleapis.github.io/js-genai/release_docs/interfaces/types.FunctionDeclaration.html
|
|
22
|
+
on-api "google-generative-ai" {
|
|
23
|
+
tool-call-name-charset "google"
|
|
24
|
+
tool-call-name-max-length 128
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Vertex uses the Google FunctionDeclaration shape, independently of the public Gemini API.
|
|
28
|
+
on-api "google-vertex" {
|
|
29
|
+
tool-call-name-charset "google"
|
|
30
|
+
tool-call-name-max-length 128
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Code Assist's Gemini CLI proxy gets the conservative 64-character wire bound.
|
|
34
|
+
on-api "google-gemini-cli" {
|
|
35
|
+
tool-call-name-charset "google"
|
|
36
|
+
tool-call-name-max-length 64
|
|
37
|
+
}
|
|
@@ -16,6 +16,14 @@ provider "typesafe" {
|
|
|
16
16
|
}
|
|
17
17
|
models "jev-latest" "jev-preview" "jev-1.13.0" "jev-1.14.0" {
|
|
18
18
|
input-modalities "text" "image"
|
|
19
|
+
judgment-image-input {
|
|
20
|
+
mime-types "image/png,image/jpeg"
|
|
21
|
+
max-bytes 16777216
|
|
22
|
+
min-pixels 78400
|
|
23
|
+
max-pixels 2458624
|
|
24
|
+
min-side 280
|
|
25
|
+
max-side 1568
|
|
26
|
+
}
|
|
19
27
|
}
|
|
20
28
|
|
|
21
29
|
models "*" {
|
|
@@ -9,6 +9,12 @@ provider "umans" {
|
|
|
9
9
|
|
|
10
10
|
// Replaces resolve.ts's Umans provider baseline for Anthropic built-in tool names.
|
|
11
11
|
escape-builtin-tool-names #true
|
|
12
|
+
// Replaces the GLM 5.2+ Anthropic budget-plus-effort default.
|
|
13
|
+
class "glm" {
|
|
14
|
+
revision ">=5.2" {
|
|
15
|
+
thinking-mode "anthropic-budget-effort"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
12
18
|
// residue: taxonomy ranks and exact globs do not isolate these models.
|
|
13
19
|
models "umans-coder" "umans-kimi-k2.7" {
|
|
14
20
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
@@ -47,4 +47,11 @@ provider "venice" {
|
|
|
47
47
|
models "qwen3-235b" {
|
|
48
48
|
thinking-format "qwen"
|
|
49
49
|
}
|
|
50
|
+
// Kimi K2.7 Code's documented recommended output budget; Venice discovery
|
|
51
|
+
// reports the context-sized `max_completion_tokens` instead.
|
|
52
|
+
class "kimi" {
|
|
53
|
+
family "k2.7-code" {
|
|
54
|
+
max-tokens-ceiling 32768
|
|
55
|
+
}
|
|
56
|
+
}
|
|
50
57
|
}
|
|
@@ -12,6 +12,10 @@ provider "xai-oauth" {
|
|
|
12
12
|
// api.x.ai rejects a body over 50 MiB and counts images only against the
|
|
13
13
|
// context window; 60 images at the 500 KiB resize target stay near 41 MB.
|
|
14
14
|
image-count-budget 60
|
|
15
|
+
// Public xAI prices are API-equivalent estimates for stats; SuperGrok
|
|
16
|
+
// requests stay subscription-backed, so the estimated long-context tier
|
|
17
|
+
// must not cap the runtime context window.
|
|
18
|
+
long-context-window-uncapped #true
|
|
15
19
|
|
|
16
20
|
// Source of truth for the xai-oauth chat picker. Declaration order is headline order.
|
|
17
21
|
// Context windows from hermes-agent/agent/model_metadata.py:205-220
|
|
@@ -36,6 +36,11 @@ provider "zai" {
|
|
|
36
36
|
// Replaces resolve.ts's ZAI provider baseline for Anthropic tool-result IDs.
|
|
37
37
|
requires-tool-result-id #true
|
|
38
38
|
class "glm" {
|
|
39
|
+
// Replaces the GLM 5.2+ Anthropic budget-plus-effort default; the lower
|
|
40
|
+
// priority yields to the family modes below on equal-rank overlaps.
|
|
41
|
+
revision ">=5.2" priority=-1 {
|
|
42
|
+
thinking-mode "anthropic-budget-effort"
|
|
43
|
+
}
|
|
39
44
|
family "flash" {
|
|
40
45
|
thinking-efforts "minimal" "low" "medium" "high" "xhigh"
|
|
41
46
|
thinking-mode "budget"
|
|
@@ -226,9 +226,10 @@ behavior {
|
|
|
226
226
|
// effort ladder that lists `/responses` therefore rides Responses, so
|
|
227
227
|
// thinking-off actually disables reasoning instead of clamping to the
|
|
228
228
|
// lowest effort. Ladder ids without `/responses` (deepseek-v4-flash-fast,
|
|
229
|
-
// gemini-3.7-flash,
|
|
230
|
-
// space-bunny-alpha), the Qwen3.8 ids (chat
|
|
231
|
-
// `enable_thinking: false`), and
|
|
229
|
+
// gemini-3.7-flash, glm-5.3-flash since 2026-10-14, Qwen3.8-Flash,
|
|
230
|
+
// Qwen3.8-Max-0902, hy4-preview, space-bunny-alpha), the Qwen3.8 ids (chat
|
|
231
|
+
// already disables them through `enable_thinking: false`), and
|
|
232
|
+
// non-reasoning ids stay on chat completions.
|
|
232
233
|
api-routes provider="commandcode" default="openai-completions" {
|
|
233
234
|
route "anthropic-messages" prefix="claude-"
|
|
234
235
|
route "openai-responses" exact="gpt-5.3-codex" exact="gpt-5.4" exact="gpt-5.4-mini" exact="gpt-5.5" \
|
|
@@ -237,7 +238,7 @@ behavior {
|
|
|
237
238
|
exact="deepseek/deepseek-v4-flash" exact="deepseek/deepseek-v4-flash-vision-exp" \
|
|
238
239
|
exact="deepseek/deepseek-v4-pro" exact="deepseek/deepseek-v4.1-flash" \
|
|
239
240
|
exact="deepseek/deepseek-v4.1-flash-fast" exact="moonshotai/Kimi-K3" \
|
|
240
|
-
exact="z-ai/glm-5.3-
|
|
241
|
+
exact="z-ai/glm-5.3-flashx" exact="zai-org/GLM-5.2" \
|
|
241
242
|
exact="zai-org/GLM-5.3" exact="google/gemini-3.1-flash-lite" exact="google/gemini-3.5-flash" \
|
|
242
243
|
exact="google/gemini-3.5-flash-lite" exact="google/gemini-3.6-flash" \
|
|
243
244
|
exact="google/gemini-3.8-flash" exact="MiniMaxAI/MiniMax-M3" exact="stepfun/Step-5-Preview" \
|
|
@@ -381,4 +382,114 @@ behavior {
|
|
|
381
382
|
}
|
|
382
383
|
hosted-default provider="zai-search" model="glm-4.7"
|
|
383
384
|
hosted-default provider="synthetic-search" model="auto"
|
|
385
|
+
// Built-in default model selector chains per agent role, most preferred
|
|
386
|
+
// first; the coding agent reads them through `roleDefaultModels()`.
|
|
387
|
+
role-defaults "smol" {
|
|
388
|
+
model "claude-haiku-5-5"
|
|
389
|
+
model "claude-haiku-5.5"
|
|
390
|
+
model "haiku-5-5"
|
|
391
|
+
model "haiku-5.5"
|
|
392
|
+
model "google-antigravity/gemini-3.8-flash"
|
|
393
|
+
model "gemini-3.8-flash"
|
|
394
|
+
model "gemini-3-8-flash"
|
|
395
|
+
model "gemini-3.7-flash"
|
|
396
|
+
model "gemini-3-7-flash"
|
|
397
|
+
model "gemini-3.6-flash"
|
|
398
|
+
model "gemini-3-6-flash"
|
|
399
|
+
model "gemini-3.5-flash"
|
|
400
|
+
model "gemini-3-5-flash"
|
|
401
|
+
model "openai-codex/gpt-5.3-codex-spark"
|
|
402
|
+
model "gpt-5.3-codex-spark"
|
|
403
|
+
model "5.3-spark"
|
|
404
|
+
model "spark"
|
|
405
|
+
model "zai/glm-5.3-flash"
|
|
406
|
+
model "glm-5.3-flash"
|
|
407
|
+
model "gemini-3.1-flash-lite"
|
|
408
|
+
model "gemini-3-1-flash-lite"
|
|
409
|
+
model "flash-lite"
|
|
410
|
+
model "cerebras/gpt-oss-120b"
|
|
411
|
+
model "gpt-oss-120b"
|
|
412
|
+
model "oss-120b"
|
|
413
|
+
model "cerebras/zai-glm-4.7"
|
|
414
|
+
model "cerebras/zai-glm-4.6"
|
|
415
|
+
model "cerebras/zai-glm"
|
|
416
|
+
model "claude-haiku-4-5"
|
|
417
|
+
model "claude-haiku-4.5"
|
|
418
|
+
model "haiku-4-5"
|
|
419
|
+
model "haiku-4.5"
|
|
420
|
+
model "haiku"
|
|
421
|
+
model "openai-codex/gpt-5.6-luna"
|
|
422
|
+
model "gpt-5.6-luna"
|
|
423
|
+
model "openai-codex/gpt-5.4-mini"
|
|
424
|
+
model "gpt-5.4-mini"
|
|
425
|
+
model "-mini"
|
|
426
|
+
}
|
|
427
|
+
role-defaults "slow" {
|
|
428
|
+
model "openai-codex/gpt-5.6-sol"
|
|
429
|
+
model "gpt-5.6-sol"
|
|
430
|
+
model "anthropic/claude-fable-5-1"
|
|
431
|
+
model "claude-fable-5-1"
|
|
432
|
+
model "claude-fable-5.1"
|
|
433
|
+
model "fable-5.1"
|
|
434
|
+
model "fable-5-1"
|
|
435
|
+
model "anthropic/claude-fable-5"
|
|
436
|
+
model "claude-fable-5"
|
|
437
|
+
model "fable-5"
|
|
438
|
+
model "kimi-code/k3"
|
|
439
|
+
model "kimi-k3"
|
|
440
|
+
model "moonshotai/kimi-k3"
|
|
441
|
+
model "k3"
|
|
442
|
+
model "zai/glm-5.3"
|
|
443
|
+
model "glm-5.3"
|
|
444
|
+
model "anthropic/claude-opus-5-5"
|
|
445
|
+
model "claude-opus-5-5"
|
|
446
|
+
model "opus-5-5"
|
|
447
|
+
model "anthropic/claude-opus-5"
|
|
448
|
+
model "claude-opus-5"
|
|
449
|
+
model "opus-5"
|
|
450
|
+
model "openai-codex/gpt-5.5"
|
|
451
|
+
model "gpt-5.5"
|
|
452
|
+
model "claude-opus-4-8"
|
|
453
|
+
model "claude-opus-4.8"
|
|
454
|
+
model "opus-4-8"
|
|
455
|
+
model "opus-4.8"
|
|
456
|
+
}
|
|
457
|
+
role-defaults "image" {
|
|
458
|
+
model "openai/gpt-image-2"
|
|
459
|
+
model "openai-codex/gpt-image-2"
|
|
460
|
+
model "google-antigravity/gemini-3-pro-image"
|
|
461
|
+
model "xai/grok-imagine-image"
|
|
462
|
+
model "xai-oauth/grok-imagine-image"
|
|
463
|
+
model "openrouter/google/gemini-3-pro-image"
|
|
464
|
+
model "google/gemini-3-pro-image"
|
|
465
|
+
model "deepinfra/black-forest-labs/FLUX-2-pro"
|
|
466
|
+
}
|
|
467
|
+
role-defaults "web" {
|
|
468
|
+
model "web/parallel"
|
|
469
|
+
model "web/hosted"
|
|
470
|
+
model "web/exa"
|
|
471
|
+
model "web/firecrawl"
|
|
472
|
+
model "web/searxng"
|
|
473
|
+
model "web/startpage"
|
|
474
|
+
model "web/duckduckgo"
|
|
475
|
+
model "web/ecosia"
|
|
476
|
+
model "web/google"
|
|
477
|
+
model "web/mojeek"
|
|
478
|
+
model "web/public"
|
|
479
|
+
}
|
|
480
|
+
role-defaults "speech" {
|
|
481
|
+
model "local/kokoro"
|
|
482
|
+
model "xai/grok-tts"
|
|
483
|
+
model "xai-oauth/grok-tts"
|
|
484
|
+
}
|
|
485
|
+
role-defaults "dictation" {
|
|
486
|
+
model "local/parakeet-tdt-0.6b-v3"
|
|
487
|
+
}
|
|
488
|
+
role-defaults "judge" {
|
|
489
|
+
model "typesafe/jev-latest"
|
|
490
|
+
model "openrouter/~typesafe/jev-latest"
|
|
491
|
+
model "@tiny"
|
|
492
|
+
model "@smol"
|
|
493
|
+
model "@default"
|
|
494
|
+
}
|
|
384
495
|
}
|