@oh-my-pi/pi-catalog 18.2.0 → 18.2.2

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/types/compat/behavior.d.ts +11 -0
  3. package/dist/types/compat/cascade.d.ts +10 -0
  4. package/dist/types/compat/collapse.d.ts +8 -0
  5. package/dist/types/compat/resolve.d.ts +10 -0
  6. package/dist/types/compat/types.d.ts +21 -0
  7. package/dist/types/discovery/antigravity.d.ts +10 -1
  8. package/dist/types/model-thinking.d.ts +7 -0
  9. package/dist/types/provider-models/openai-compat.d.ts +2 -0
  10. package/dist/types/types.d.ts +36 -1
  11. package/package.json +4 -4
  12. package/src/build.ts +59 -0
  13. package/src/compat/axes.ts +15 -0
  14. package/src/compat/behavior.ts +22 -2
  15. package/src/compat/cascade.ts +27 -1
  16. package/src/compat/collapse.ts +100 -8
  17. package/src/compat/context-window.ts +11 -1
  18. package/src/compat/resolve.ts +56 -17
  19. package/src/compat/rules/README.md +3 -1
  20. package/src/compat/rules/classes/deepseek.kdl +9 -1
  21. package/src/compat/rules/classes/kimi.kdl +6 -0
  22. package/src/compat/rules/providers/alibaba-token-plan.kdl +16 -8
  23. package/src/compat/rules/providers/amazon-bedrock.kdl +30 -0
  24. package/src/compat/rules/providers/azure.kdl +6 -0
  25. package/src/compat/rules/providers/cerebras.kdl +10 -0
  26. package/src/compat/rules/providers/commandcode.kdl +20 -4
  27. package/src/compat/rules/providers/cursor.kdl +32 -0
  28. package/src/compat/rules/providers/deepseek.kdl +5 -5
  29. package/src/compat/rules/providers/devin.kdl +46 -0
  30. package/src/compat/rules/providers/google-vertex.kdl +15 -0
  31. package/src/compat/rules/providers/kimi-code.kdl +48 -0
  32. package/src/compat/rules/providers/meta.kdl +3 -0
  33. package/src/compat/rules/providers/muse-code.kdl +3 -0
  34. package/src/compat/rules/providers/openrouter.kdl +6 -0
  35. package/src/compat/rules/runtime/behavior.kdl +17 -0
  36. package/src/compat/rules/taxonomy/deepseek.kdl +5 -0
  37. package/src/compat/rules.json +1 -1
  38. package/src/compat/types.ts +23 -0
  39. package/src/discovery/antigravity.ts +80 -43
  40. package/src/discovery/devin.ts +22 -4
  41. package/src/identity/bundled.ts +4 -3
  42. package/src/model-cache.ts +154 -120
  43. package/src/model-thinking.ts +10 -7
  44. package/src/models.json +1 -1
  45. package/src/provider-models/bundled-references.ts +4 -3
  46. package/src/provider-models/cache-provider-id.ts +14 -8
  47. package/src/provider-models/ollama.ts +11 -31
  48. package/src/provider-models/openai-compat.ts +297 -37
  49. package/src/types.ts +38 -0
@@ -39,4 +39,50 @@ provider "devin" {
39
39
  supports-parallel-tool-calls #true
40
40
  }
41
41
  }
42
+
43
+
44
+ // Devin omits cost dimensions for plan-included models on lower tiers
45
+ // (PRO reports $0 for SWE-2, SWE-1.7, and GLM-5.2 High). `cost-fallback`
46
+ // seeds the enterprise-tier list price only when upstream reports no
47
+ // token price, so accounts whose discovery does carry dimensions keep
48
+ // their real rates.
49
+
50
+ // SWE-2: enterprise promo is 75% off list through 2026-12-31; list
51
+ // pricing ($3/$15, $0.30 cache read) applies from 2027-01-01.
52
+ models "swe-2*" {
53
+ cost-fallback {
54
+ input 0.75
55
+ output 3.75
56
+ cache-read 0.075
57
+ cache-write 0.75
58
+ effective-rates {
59
+ list-price {
60
+ effective-from "2027-01-01T00:00:00Z"
61
+ input 3
62
+ output 15
63
+ cache-read 0.3
64
+ cache-write 3
65
+ }
66
+ }
67
+ }
68
+ }
69
+
70
+ // SWE-1.7 and GLM-5.2 High: plan-included on PRO, no published promo
71
+ // schedule — enterprise list is the only published per-token price.
72
+ models "swe-1-7" "swe-1-7-medium" {
73
+ cost-fallback {
74
+ input 0.5
75
+ output 2.5
76
+ cache-read 0.2
77
+ cache-write 0.5
78
+ }
79
+ }
80
+ models "glm-5-2" {
81
+ cost-fallback {
82
+ input 1.4
83
+ output 4.4
84
+ cache-read 0.26
85
+ cache-write 1.4
86
+ }
87
+ }
42
88
  }
@@ -11,6 +11,21 @@ provider "google-vertex" {
11
11
  // Vertex rejects `output_config.effort` and its effort beta header;
12
12
  // replaces the provider checks in anthropic.ts request shaping.
13
13
  supports-output-effort #false
14
+
15
+ // Vertex rejects maxOutputTokens=65536 for the Gemini 2.5 Flash-Lite line
16
+ // with 400 "supported range is from 1 (inclusive) to 65536 (exclusive)";
17
+ // the 2.5 Flash/Pro siblings accept 65536 on the same endpoint (Pro does
18
+ // not validate the field at all), so only the Lite line is clamped here.
19
+ // Other hosts are unverified and keep the documented value.
20
+ class "gemini" {
21
+ family "lite" {
22
+ revision ">=2.5 <2.6" {
23
+ limits-patch {
24
+ max-tokens 65535
25
+ }
26
+ }
27
+ }
28
+ }
14
29
  class "anthropic" {
15
30
  revision ">=4.5 <4.6" {
16
31
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
@@ -39,4 +39,52 @@ provider "kimi-code" {
39
39
  thinking-efforts "minimal" "low" "medium" "high"
40
40
  thinking-format "zai"
41
41
  }
42
+
43
+ // /coding/v1/models carries no pricing. `cost-fallback` seeds the public
44
+ // Moonshot list price only when discovery reports $0, so a future priced
45
+ // envelope keeps its real rates. `kimi-for-coding` is K2.8 Preview — no
46
+ // public API SKU exists yet, so it uses the K2.7 Code line rate.
47
+ models "k3" "k3-256k" {
48
+ cost-fallback {
49
+ input 3.0
50
+ output 15.0
51
+ cache-read 0.3
52
+ }
53
+ }
54
+ models "kimi-for-coding" {
55
+ cost-fallback {
56
+ input 0.95
57
+ output 4.0
58
+ cache-read 0.19
59
+ }
60
+ }
61
+ models "kimi-for-coding-highspeed" {
62
+ cost-fallback {
63
+ input 1.9
64
+ output 8.0
65
+ cache-read 0.38
66
+ }
67
+ }
68
+ // Moonshot K2 list (`kimi-k2-0711-preview` / `kimi-k2-0905-preview`), not K2.6.
69
+ models "kimi-k2" {
70
+ cost-fallback {
71
+ input 0.6
72
+ output 2.5
73
+ cache-read 0.15
74
+ }
75
+ }
76
+ models "kimi-k2.5" {
77
+ cost-fallback {
78
+ input 0.6
79
+ output 3.0
80
+ cache-read 0.1
81
+ }
82
+ }
83
+ models "kimi-k2-turbo-preview" {
84
+ cost-fallback {
85
+ input 2.4
86
+ output 10.0
87
+ cache-read 0.6
88
+ }
89
+ }
42
90
  }
@@ -69,6 +69,9 @@ provider "meta" {
69
69
  include-encrypted-reasoning #true
70
70
  supports-reasoning-effort #true
71
71
  clamp-output-to-model-max #true
72
+ // api.meta.ai/v1 accepts only tool_choice "auto"; "none", "required" and named
73
+ // choices are rejected with 400 (verified 2026-09-10), so omit the field.
74
+ supports-tool-choice #false
72
75
  class "unknown" {
73
76
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
74
77
  thinking-mode "effort"
@@ -12,6 +12,9 @@ provider "muse-code" {
12
12
  include-encrypted-reasoning #true
13
13
  supports-reasoning-effort #true
14
14
  clamp-output-to-model-max #true
15
+ // api.meta.ai/v1 accepts only tool_choice "auto"; "none", "required" and named
16
+ // choices are rejected with 400 (verified 2026-09-10), so omit the field.
17
+ supports-tool-choice #false
15
18
  // Subscription tier bills per request; the compact edit prompt cuts the
16
19
  // recurring tool-schema bytes. Verified 2026-09-05 against api.meta.ai/v1:
17
20
  // `custom` tools are rejected with 400 "`custom` tools are not supported
@@ -17,6 +17,12 @@ provider "openrouter" {
17
17
  // isOpenRouterAnthropicModel checks in the OpenAI request builders.
18
18
  retry-without-strict-on-grammar-error #true
19
19
  }
20
+ class "meta" {
21
+ family "muse-spark" {
22
+ filter-reasoning-history #true
23
+ allows-synthetic-reasoning-content-for-tool-calls #false
24
+ }
25
+ }
20
26
  class "minimax" {
21
27
  family "m3" {
22
28
  thinking-efforts "minimal" "low" "medium" "high"
@@ -20,6 +20,12 @@ behavior {
20
20
  // `opencode` provider in the picker.
21
21
  retired-providers "wafer-pass" "wandb" "opencode"
22
22
 
23
+ // ClinePass exposes gateway-specific limits, pricing, and reasoning
24
+ // controls; matching them by bare model id contaminates unrelated proxy
25
+ // models (a LiteLLM proxy serving `glm-5.3-flash`), so its rows are barred
26
+ // from seeding cross-provider bare-id enrichment references (#10932).
27
+ reference-isolated-providers "cline-pass"
28
+
23
29
  // Discovered Responses/Codex models receive these additional operations.
24
30
  model-operations provider="openai" {
25
31
  exact "o3"
@@ -83,6 +89,11 @@ behavior {
83
89
  glob="*/gpt-5.6-sol-pro" glob="*/gpt-5.6-luna" glob="*/gpt-5.6-luna-pro"
84
90
  }
85
91
 
92
+ // Z.AI and Zhipu emit timezone-naive account-reset wall clocks in Beijing
93
+ // time. Provider-aware retry paths append this offset before parsing.
94
+ retry-reset-timezone provider="zai" offset="+08:00"
95
+ retry-reset-timezone provider="zhipu-coding-plan" offset="+08:00"
96
+
86
97
  // Cloudflare AI Gateway namespace routing. The Workers AI prefix remains
87
98
  // on the request id; the upstream namespaces are stripped.
88
99
  api-routes provider="cloudflare-ai-gateway" {
@@ -102,6 +113,12 @@ behavior {
102
113
 
103
114
  // Provider-default wire model for model-less hosted search operations.
104
115
  hosted-default provider="kimi-search" model="kimi-for-coding"
116
+ // LiteLLM publishes task-specific endpoint models beside conversational
117
+ // models. Exact mode metadata avoids brittle model-name heuristics while
118
+ // unknown and malformed future values remain selectable.
119
+ exclude-discovery-modes "audio_speech" "audio_transcription" "batch" "embedding" "guardrail" \
120
+ "image_edit" "image_generation" "moderation" "ocr" "rerank" "search" "vector_store" \
121
+ "video_generation" provider="litellm"
105
122
  // models.dev rows OMP cannot route successfully: AWS does not document
106
123
  // the jp. Opus 5 profile, and the openai.gpt-5.x rows are Mantle-only
107
124
  // ids that Bedrock rejects or misroutes.
@@ -5,6 +5,11 @@ class "deepseek" {
5
5
  family "r1" glob="*deepseek-r1*"
6
6
  family "reasoner" glob="*deepseek-reasoner*"
7
7
  family "flash" glob="*deepseek*v4*flash*"
8
+ // V4.1 Flash dropped the generation digit from its release id: the native
9
+ // roster serves it as bare `deepseek-flash`, which the `v4` glob cannot
10
+ // match. Without a family the descriptor's V4-generation filter drops the
11
+ // row, so it survived only as a stale previous-snapshot entry.
12
+ family "flash" glob="*deepseek-flash"
8
13
  family "pro" glob="*deepseek*v4*pro*"
9
14
  // Bare V4 chat/reasoner ids without a flash/pro segment.
10
15
  family "v4" glob="*deepseek-v4*"