@oh-my-pi/pi-catalog 16.2.6 → 16.2.8
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 +7 -0
- package/dist/types/identity/family.d.ts +11 -0
- package/dist/types/types.d.ts +5 -0
- package/package.json +3 -3
- package/src/compat/anthropic.ts +11 -1
- package/src/compat/openai.ts +19 -2
- package/src/identity/family.ts +17 -0
- package/src/models.json +236 -203
- package/src/provider-models/openai-compat.ts +34 -2
- package/src/types.ts +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.2.7] - 2026-06-30
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed compatibility with Kimi K2.7 Code on native endpoints to ensure thinking mode is preserved and tool choice is not forced.
|
|
10
|
+
- Fixed Cerebras gemma-4-31b dynamic discovery to correctly identify the model as image-capable, enabling proper serialization of attached images.
|
|
11
|
+
|
|
5
12
|
## [16.2.6] - 2026-06-29
|
|
6
13
|
|
|
7
14
|
### Fixed
|
|
@@ -49,6 +49,17 @@ export declare const isMinimaxM3FamilyModelId: (modelId: string) => boolean;
|
|
|
49
49
|
export declare const isOpenAIGptOssModelId: (modelId: string) => boolean;
|
|
50
50
|
/** OpenAI model ids (gpt-*, o1-*, o3-*, o4-*, or prefixed with openai/). */
|
|
51
51
|
export declare const isOpenAIModelId: (modelId: string) => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* OpenAI Codex models that honor `reasoning.context: "all_turns"` (full
|
|
54
|
+
* cross-turn reasoning replay). The `reasoning.context` field itself exists for
|
|
55
|
+
* the whole gpt-5/o-series family, but the `all_turns` value is only accepted
|
|
56
|
+
* from gpt-5.4 onward; earlier ids (`gpt-5.1-codex`, `gpt-5.3-codex`, and
|
|
57
|
+
* `gpt-5.3-codex-spark`) reject it with
|
|
58
|
+
* `Unsupported value: 'all_turns' is not supported with this model`. Version
|
|
59
|
+
* floor (not an allowlist) so 5.6/6.x inherit support automatically. Callers
|
|
60
|
+
* fall back to omitting `context`, letting the server default to `current_turn`.
|
|
61
|
+
*/
|
|
62
|
+
export declare const supportsAllTurnsReasoningContext: (modelId: string) => boolean;
|
|
52
63
|
/**
|
|
53
64
|
* Reasoning-capable GLM coding SKUs: glm-4.5 and up on the base / `-air` /
|
|
54
65
|
* `-turbo` lines. Excludes the vision (`…v`) shape, the non-reasoning
|
package/dist/types/types.d.ts
CHANGED
|
@@ -381,6 +381,11 @@ export interface AnthropicCompat {
|
|
|
381
381
|
* Default: auto-detected from provider/baseUrl and `model.reasoning`.
|
|
382
382
|
*/
|
|
383
383
|
replayUnsignedThinking?: boolean;
|
|
384
|
+
/**
|
|
385
|
+
* Whether the endpoint requires `thinking.type: "enabled"` whenever the
|
|
386
|
+
* model reasons. Use for models that reject omitted or disabled thinking.
|
|
387
|
+
*/
|
|
388
|
+
requiresThinkingEnabled?: boolean;
|
|
384
389
|
/**
|
|
385
390
|
* Prefix Anthropic built-in tool names (`web_search`, `code_execution`, ...)
|
|
386
391
|
* when they are ordinary client tools. Some Anthropic-compatible gateways
|
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.8",
|
|
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.8",
|
|
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.8",
|
|
43
43
|
"@types/bun": "^1.3.14"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
package/src/compat/anthropic.ts
CHANGED
|
@@ -28,6 +28,14 @@ export function isOfficialAnthropicApiUrl(baseUrl?: string): boolean {
|
|
|
28
28
|
return lower === OFFICIAL_ANTHROPIC_URL || lower.startsWith(`${OFFICIAL_ANTHROPIC_URL}/`);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
/** Mirrors `compat/openai.ts`; native-only host gating is the caller's responsibility. */
|
|
32
|
+
const KIMI_K27_CODE_MODEL_PATTERN = /(?:^|\/)kimi[-._]?k2(?:[._-]?|p)7[-._]?code(?:[-._]?highspeed)?$/i;
|
|
33
|
+
|
|
34
|
+
function matchesKimiK27CodeFamily(spec: ModelSpec<"anthropic-messages">): boolean {
|
|
35
|
+
if (KIMI_K27_CODE_MODEL_PATTERN.test(spec.id)) return true;
|
|
36
|
+
return spec.id === "kimi-for-coding" && /k2\.?7 code/i.test(spec.name ?? "");
|
|
37
|
+
}
|
|
38
|
+
|
|
31
39
|
/** Build the resolved anthropic-messages compat record for a model spec. */
|
|
32
40
|
export function buildAnthropicCompat(spec: ModelSpec<"anthropic-messages">): ResolvedAnthropicCompat {
|
|
33
41
|
const baseUrl = spec.baseUrl;
|
|
@@ -40,6 +48,7 @@ export function buildAnthropicCompat(spec: ModelSpec<"anthropic-messages">): Res
|
|
|
40
48
|
// doesn't whitelist the `fine-grained-tool-streaming-2025-05-14` beta either
|
|
41
49
|
// (issue #2558), so eager tool-input streaming is unavailable on this host.
|
|
42
50
|
const isCopilot = modelMatchesHost(spec, "githubCopilot");
|
|
51
|
+
const requiresThinkingEnabled = modelMatchesHost(spec, "moonshotNative") && matchesKimiK27CodeFamily(spec);
|
|
43
52
|
const compat: ResolvedAnthropicCompat = {
|
|
44
53
|
officialEndpoint: official,
|
|
45
54
|
disableStrictTools: false,
|
|
@@ -53,12 +62,13 @@ export function buildAnthropicCompat(spec: ModelSpec<"anthropic-messages">): Res
|
|
|
53
62
|
// detection requires the canonical api.anthropic.com host plus a
|
|
54
63
|
// supported model id.
|
|
55
64
|
supportsMidConversationSystem: official && supportsMidConversationSystemMessages(spec.id),
|
|
56
|
-
supportsForcedToolChoice: !isAnthropicFableOrMythosModel(spec.id),
|
|
65
|
+
supportsForcedToolChoice: !requiresThinkingEnabled && !isAnthropicFableOrMythosModel(spec.id),
|
|
57
66
|
// Opus 4.7+ and Fable/Mythos reject temperature/top_p/top_k with a 400.
|
|
58
67
|
supportsSamplingParams: !hasOpus47ApiRestrictions(spec.id),
|
|
59
68
|
// Z.AI workaround (issue #814): its proxy deserializes tool_result blocks
|
|
60
69
|
// into a class that reads `.id`.
|
|
61
70
|
requiresToolResultId: isZai,
|
|
71
|
+
requiresThinkingEnabled,
|
|
62
72
|
// Official Anthropic enforces signature-based thinking-chain integrity, so
|
|
63
73
|
// unsigned thinking blocks must stay text there. Anthropic-compatible
|
|
64
74
|
// reasoning endpoints commonly emit unsigned thinking blocks while still
|
package/src/compat/openai.ts
CHANGED
|
@@ -39,6 +39,20 @@ const GLM_CODING_PLAN_STREAM_IDLE_TIMEOUT_MS = 600_000;
|
|
|
39
39
|
const DEEPSEEK_REASONING_STREAM_IDLE_TIMEOUT_MS = 300_000;
|
|
40
40
|
/** Kimi K2.6 can spend several minutes reasoning before the first visible token. */
|
|
41
41
|
const KIMI_K26_REASONING_STREAM_IDLE_TIMEOUT_MS = 300_000;
|
|
42
|
+
/**
|
|
43
|
+
* Native Kimi K2.7 Code requires `thinking.type: "enabled"` and rejects
|
|
44
|
+
* disabled thinking. Match the public id, its Fast variant, and the
|
|
45
|
+
* `kimi-code/kimi-for-coding` alias (which keeps the family name).
|
|
46
|
+
* Caller-disabled requests on non-native dialects (Fireworks `openai`,
|
|
47
|
+
* OpenRouter `openrouter`, …) MUST keep their per-dialect disable shape —
|
|
48
|
+
* gating on `isMoonshotKimi` is the caller's responsibility.
|
|
49
|
+
*/
|
|
50
|
+
const KIMI_K27_CODE_MODEL_PATTERN = /(?:^|\/)kimi[-._]?k2(?:[._-]?|p)7[-._]?code(?:[-._]?highspeed)?$/i;
|
|
51
|
+
|
|
52
|
+
function matchesKimiK27CodeFamily(spec: ModelSpec<"openai-completions">): boolean {
|
|
53
|
+
if (KIMI_K27_CODE_MODEL_PATTERN.test(spec.id)) return true;
|
|
54
|
+
return spec.id === "kimi-for-coding" && /k2\.?7 code/i.test(spec.name ?? "");
|
|
55
|
+
}
|
|
42
56
|
/** Xiaomi MiMo Pro on api.xiaomimimo.com can stall ~2min before the first event (issue #1770). */
|
|
43
57
|
const XIAOMI_MIMO_STREAM_IDLE_TIMEOUT_MS = 300_000;
|
|
44
58
|
/** Alibaba Coding Plan (coding-intl.dashscope) qwen models idle before the first event (issue #1770). */
|
|
@@ -231,6 +245,7 @@ export function buildOpenAICompat(spec: ModelSpec<"openai-completions">): Resolv
|
|
|
231
245
|
const isKimiModel = isKimiModelId(spec.id);
|
|
232
246
|
const isMoonshotNative = modelMatchesHost(hostModel, "moonshotNative");
|
|
233
247
|
const isMoonshotKimi = isKimiModel && isMoonshotNative;
|
|
248
|
+
const requiresEnabledThinking = isMoonshotKimi && matchesKimiK27CodeFamily(spec);
|
|
234
249
|
const usesMoonshotKimiPreservedThinking = isMoonshotKimi && isKimiK26ModelId(spec.id);
|
|
235
250
|
const isAnthropicModel =
|
|
236
251
|
modelMatchesHost(hostModel, "anthropic") || isClaudeModelId(spec.id) || isAnthropicNamespacedModelId(spec.id);
|
|
@@ -403,7 +418,7 @@ export function buildOpenAICompat(spec: ModelSpec<"openai-completions">): Resolv
|
|
|
403
418
|
disableReasoningOnForcedToolChoice: isKimiModel || isAnthropicModel,
|
|
404
419
|
disableReasoningOnToolChoice: isDeepseekFamily && Boolean(spec.reasoning) && !isOpenRouter,
|
|
405
420
|
supportsToolChoice: !isDirectDeepseekReasoning,
|
|
406
|
-
supportsForcedToolChoice:
|
|
421
|
+
supportsForcedToolChoice: !requiresEnabledThinking,
|
|
407
422
|
supportsNamedToolChoice: provider !== "llama.cpp",
|
|
408
423
|
maxTokensField: useMaxTokens ? "max_tokens" : "max_completion_tokens",
|
|
409
424
|
requiresToolResultName: isMistral,
|
|
@@ -509,7 +524,9 @@ export function buildOpenAICompat(spec: ModelSpec<"openai-completions">): Resolv
|
|
|
509
524
|
|
|
510
525
|
applyCompatOverrides(compat, spec.compat);
|
|
511
526
|
if (spec.compat?.reasoningDisableMode === undefined) {
|
|
512
|
-
compat.reasoningDisableMode =
|
|
527
|
+
compat.reasoningDisableMode = requiresEnabledThinking
|
|
528
|
+
? "omit"
|
|
529
|
+
: resolveReasoningDisableMode(compat.thinkingFormat);
|
|
513
530
|
}
|
|
514
531
|
if (spec.compat?.omitReasoningEffort === undefined && !compat.supportsReasoningEffort) {
|
|
515
532
|
compat.omitReasoningEffort = true;
|
package/src/identity/family.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
parseAnthropicModel,
|
|
14
14
|
parseGlmModel,
|
|
15
15
|
parseKnownModel,
|
|
16
|
+
parseOpenAIModel,
|
|
16
17
|
semverGte,
|
|
17
18
|
} from "./classify";
|
|
18
19
|
|
|
@@ -121,6 +122,22 @@ export const isOpenAIModelId = memo((modelId: string): boolean => {
|
|
|
121
122
|
return /(^|\/)(gpt|o1|o3|o4)[-.]/i.test(modelId) || modelId.toLowerCase().includes("openai/");
|
|
122
123
|
});
|
|
123
124
|
|
|
125
|
+
/**
|
|
126
|
+
* OpenAI Codex models that honor `reasoning.context: "all_turns"` (full
|
|
127
|
+
* cross-turn reasoning replay). The `reasoning.context` field itself exists for
|
|
128
|
+
* the whole gpt-5/o-series family, but the `all_turns` value is only accepted
|
|
129
|
+
* from gpt-5.4 onward; earlier ids (`gpt-5.1-codex`, `gpt-5.3-codex`, and
|
|
130
|
+
* `gpt-5.3-codex-spark`) reject it with
|
|
131
|
+
* `Unsupported value: 'all_turns' is not supported with this model`. Version
|
|
132
|
+
* floor (not an allowlist) so 5.6/6.x inherit support automatically. Callers
|
|
133
|
+
* fall back to omitting `context`, letting the server default to `current_turn`.
|
|
134
|
+
*/
|
|
135
|
+
export const supportsAllTurnsReasoningContext = memo((modelId: string): boolean => {
|
|
136
|
+
const parsed = parseOpenAIModel(bareModelId(modelId));
|
|
137
|
+
if (!parsed) return false;
|
|
138
|
+
return semverGte(parsed.version, "5.4");
|
|
139
|
+
});
|
|
140
|
+
|
|
124
141
|
/**
|
|
125
142
|
* Reasoning-capable GLM coding SKUs: glm-4.5 and up on the base / `-air` /
|
|
126
143
|
* `-turbo` lines. Excludes the vision (`…v`) shape, the non-reasoning
|
package/src/models.json
CHANGED
|
@@ -2476,7 +2476,7 @@
|
|
|
2476
2476
|
"api": "openai-completions",
|
|
2477
2477
|
"provider": "aimlapi",
|
|
2478
2478
|
"baseUrl": "https://api.aimlapi.com/v1",
|
|
2479
|
-
"reasoning":
|
|
2479
|
+
"reasoning": false,
|
|
2480
2480
|
"input": [
|
|
2481
2481
|
"text"
|
|
2482
2482
|
],
|
|
@@ -2487,24 +2487,7 @@
|
|
|
2487
2487
|
"cacheWrite": 0
|
|
2488
2488
|
},
|
|
2489
2489
|
"contextWindow": 163840,
|
|
2490
|
-
"maxTokens": 16384
|
|
2491
|
-
"thinking": {
|
|
2492
|
-
"mode": "effort",
|
|
2493
|
-
"efforts": [
|
|
2494
|
-
"minimal",
|
|
2495
|
-
"low",
|
|
2496
|
-
"medium",
|
|
2497
|
-
"high",
|
|
2498
|
-
"xhigh"
|
|
2499
|
-
],
|
|
2500
|
-
"effortMap": {
|
|
2501
|
-
"minimal": "high",
|
|
2502
|
-
"low": "high",
|
|
2503
|
-
"medium": "high",
|
|
2504
|
-
"high": "high",
|
|
2505
|
-
"xhigh": "max"
|
|
2506
|
-
}
|
|
2507
|
-
}
|
|
2490
|
+
"maxTokens": 16384
|
|
2508
2491
|
},
|
|
2509
2492
|
"deepseek/deepseek-chat-v3.1": {
|
|
2510
2493
|
"id": "deepseek/deepseek-chat-v3.1",
|
|
@@ -10620,6 +10603,35 @@
|
|
|
10620
10603
|
]
|
|
10621
10604
|
}
|
|
10622
10605
|
},
|
|
10606
|
+
"xai.grok-4.3": {
|
|
10607
|
+
"id": "xai.grok-4.3",
|
|
10608
|
+
"name": "Grok 4.3",
|
|
10609
|
+
"api": "bedrock-converse-stream",
|
|
10610
|
+
"provider": "amazon-bedrock",
|
|
10611
|
+
"baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com",
|
|
10612
|
+
"reasoning": true,
|
|
10613
|
+
"input": [
|
|
10614
|
+
"text",
|
|
10615
|
+
"image"
|
|
10616
|
+
],
|
|
10617
|
+
"cost": {
|
|
10618
|
+
"input": 1.25,
|
|
10619
|
+
"output": 2.5,
|
|
10620
|
+
"cacheRead": 0.2,
|
|
10621
|
+
"cacheWrite": 0
|
|
10622
|
+
},
|
|
10623
|
+
"contextWindow": 1000000,
|
|
10624
|
+
"maxTokens": 131072,
|
|
10625
|
+
"thinking": {
|
|
10626
|
+
"mode": "budget",
|
|
10627
|
+
"efforts": [
|
|
10628
|
+
"minimal",
|
|
10629
|
+
"low",
|
|
10630
|
+
"medium",
|
|
10631
|
+
"high"
|
|
10632
|
+
]
|
|
10633
|
+
}
|
|
10634
|
+
},
|
|
10623
10635
|
"zai.glm-4.7": {
|
|
10624
10636
|
"id": "zai.glm-4.7",
|
|
10625
10637
|
"name": "GLM-4.7",
|
|
@@ -13672,7 +13684,7 @@
|
|
|
13672
13684
|
"api": "openai-completions",
|
|
13673
13685
|
"provider": "coreweave",
|
|
13674
13686
|
"baseUrl": "https://api.inference.wandb.ai/v1",
|
|
13675
|
-
"reasoning":
|
|
13687
|
+
"reasoning": false,
|
|
13676
13688
|
"input": [
|
|
13677
13689
|
"text"
|
|
13678
13690
|
],
|
|
@@ -13683,17 +13695,7 @@
|
|
|
13683
13695
|
"cacheWrite": 0
|
|
13684
13696
|
},
|
|
13685
13697
|
"contextWindow": 128000,
|
|
13686
|
-
"maxTokens": 128000
|
|
13687
|
-
"thinking": {
|
|
13688
|
-
"mode": "effort",
|
|
13689
|
-
"efforts": [
|
|
13690
|
-
"minimal",
|
|
13691
|
-
"low",
|
|
13692
|
-
"medium",
|
|
13693
|
-
"high",
|
|
13694
|
-
"xhigh"
|
|
13695
|
-
]
|
|
13696
|
-
}
|
|
13698
|
+
"maxTokens": 128000
|
|
13697
13699
|
},
|
|
13698
13700
|
"meta-llama/Llama-3.3-70B-Instruct": {
|
|
13699
13701
|
"id": "meta-llama/Llama-3.3-70B-Instruct",
|
|
@@ -13701,7 +13703,7 @@
|
|
|
13701
13703
|
"api": "openai-completions",
|
|
13702
13704
|
"provider": "coreweave",
|
|
13703
13705
|
"baseUrl": "https://api.inference.wandb.ai/v1",
|
|
13704
|
-
"reasoning":
|
|
13706
|
+
"reasoning": false,
|
|
13705
13707
|
"input": [
|
|
13706
13708
|
"text"
|
|
13707
13709
|
],
|
|
@@ -13712,17 +13714,7 @@
|
|
|
13712
13714
|
"cacheWrite": 0
|
|
13713
13715
|
},
|
|
13714
13716
|
"contextWindow": 128000,
|
|
13715
|
-
"maxTokens": 128000
|
|
13716
|
-
"thinking": {
|
|
13717
|
-
"mode": "effort",
|
|
13718
|
-
"efforts": [
|
|
13719
|
-
"minimal",
|
|
13720
|
-
"low",
|
|
13721
|
-
"medium",
|
|
13722
|
-
"high",
|
|
13723
|
-
"xhigh"
|
|
13724
|
-
]
|
|
13725
|
-
}
|
|
13717
|
+
"maxTokens": 128000
|
|
13726
13718
|
},
|
|
13727
13719
|
"meta-llama/Llama-4-Scout-17B-16E-Instruct": {
|
|
13728
13720
|
"id": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
|
|
@@ -13730,7 +13722,7 @@
|
|
|
13730
13722
|
"api": "openai-completions",
|
|
13731
13723
|
"provider": "coreweave",
|
|
13732
13724
|
"baseUrl": "https://api.inference.wandb.ai/v1",
|
|
13733
|
-
"reasoning":
|
|
13725
|
+
"reasoning": false,
|
|
13734
13726
|
"input": [
|
|
13735
13727
|
"text",
|
|
13736
13728
|
"image"
|
|
@@ -13742,17 +13734,7 @@
|
|
|
13742
13734
|
"cacheWrite": 0
|
|
13743
13735
|
},
|
|
13744
13736
|
"contextWindow": 64000,
|
|
13745
|
-
"maxTokens": 64000
|
|
13746
|
-
"thinking": {
|
|
13747
|
-
"mode": "effort",
|
|
13748
|
-
"efforts": [
|
|
13749
|
-
"minimal",
|
|
13750
|
-
"low",
|
|
13751
|
-
"medium",
|
|
13752
|
-
"high",
|
|
13753
|
-
"xhigh"
|
|
13754
|
-
]
|
|
13755
|
-
}
|
|
13737
|
+
"maxTokens": 64000
|
|
13756
13738
|
},
|
|
13757
13739
|
"microsoft/Phi-4-mini-instruct": {
|
|
13758
13740
|
"id": "microsoft/Phi-4-mini-instruct",
|
|
@@ -13760,7 +13742,7 @@
|
|
|
13760
13742
|
"api": "openai-completions",
|
|
13761
13743
|
"provider": "coreweave",
|
|
13762
13744
|
"baseUrl": "https://api.inference.wandb.ai/v1",
|
|
13763
|
-
"reasoning":
|
|
13745
|
+
"reasoning": false,
|
|
13764
13746
|
"input": [
|
|
13765
13747
|
"text"
|
|
13766
13748
|
],
|
|
@@ -13771,17 +13753,7 @@
|
|
|
13771
13753
|
"cacheWrite": 0
|
|
13772
13754
|
},
|
|
13773
13755
|
"contextWindow": 128000,
|
|
13774
|
-
"maxTokens": 128000
|
|
13775
|
-
"thinking": {
|
|
13776
|
-
"mode": "effort",
|
|
13777
|
-
"efforts": [
|
|
13778
|
-
"minimal",
|
|
13779
|
-
"low",
|
|
13780
|
-
"medium",
|
|
13781
|
-
"high",
|
|
13782
|
-
"xhigh"
|
|
13783
|
-
]
|
|
13784
|
-
}
|
|
13756
|
+
"maxTokens": 128000
|
|
13785
13757
|
},
|
|
13786
13758
|
"MiniMaxAI/MiniMax-M2.5": {
|
|
13787
13759
|
"id": "MiniMaxAI/MiniMax-M2.5",
|
|
@@ -13789,7 +13761,7 @@
|
|
|
13789
13761
|
"api": "openai-completions",
|
|
13790
13762
|
"provider": "coreweave",
|
|
13791
13763
|
"baseUrl": "https://api.inference.wandb.ai/v1",
|
|
13792
|
-
"reasoning":
|
|
13764
|
+
"reasoning": true,
|
|
13793
13765
|
"input": [
|
|
13794
13766
|
"text"
|
|
13795
13767
|
],
|
|
@@ -13800,7 +13772,16 @@
|
|
|
13800
13772
|
"cacheWrite": 0
|
|
13801
13773
|
},
|
|
13802
13774
|
"contextWindow": 196608,
|
|
13803
|
-
"maxTokens": 196608
|
|
13775
|
+
"maxTokens": 196608,
|
|
13776
|
+
"thinking": {
|
|
13777
|
+
"mode": "effort",
|
|
13778
|
+
"efforts": [
|
|
13779
|
+
"low",
|
|
13780
|
+
"medium",
|
|
13781
|
+
"high"
|
|
13782
|
+
],
|
|
13783
|
+
"requiresEffort": true
|
|
13784
|
+
}
|
|
13804
13785
|
},
|
|
13805
13786
|
"moonshotai/Kimi-K2.5": {
|
|
13806
13787
|
"id": "moonshotai/Kimi-K2.5",
|
|
@@ -13898,7 +13879,7 @@
|
|
|
13898
13879
|
"api": "openai-completions",
|
|
13899
13880
|
"provider": "coreweave",
|
|
13900
13881
|
"baseUrl": "https://api.inference.wandb.ai/v1",
|
|
13901
|
-
"reasoning":
|
|
13882
|
+
"reasoning": true,
|
|
13902
13883
|
"input": [
|
|
13903
13884
|
"text"
|
|
13904
13885
|
],
|
|
@@ -13909,7 +13890,17 @@
|
|
|
13909
13890
|
"cacheWrite": 0
|
|
13910
13891
|
},
|
|
13911
13892
|
"contextWindow": 262144,
|
|
13912
|
-
"maxTokens": 262144
|
|
13893
|
+
"maxTokens": 262144,
|
|
13894
|
+
"thinking": {
|
|
13895
|
+
"mode": "effort",
|
|
13896
|
+
"efforts": [
|
|
13897
|
+
"minimal",
|
|
13898
|
+
"low",
|
|
13899
|
+
"medium",
|
|
13900
|
+
"high",
|
|
13901
|
+
"xhigh"
|
|
13902
|
+
]
|
|
13903
|
+
}
|
|
13913
13904
|
},
|
|
13914
13905
|
"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B": {
|
|
13915
13906
|
"id": "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",
|
|
@@ -21734,7 +21725,7 @@
|
|
|
21734
21725
|
"cost": {
|
|
21735
21726
|
"input": 0.075,
|
|
21736
21727
|
"output": 0.3,
|
|
21737
|
-
"cacheRead": 0
|
|
21728
|
+
"cacheRead": 0,
|
|
21738
21729
|
"cacheWrite": 0
|
|
21739
21730
|
},
|
|
21740
21731
|
"contextWindow": 131072,
|
|
@@ -22420,13 +22411,13 @@
|
|
|
22420
22411
|
"text"
|
|
22421
22412
|
],
|
|
22422
22413
|
"cost": {
|
|
22423
|
-
"input": 0,
|
|
22424
|
-
"output": 0,
|
|
22414
|
+
"input": 0.25,
|
|
22415
|
+
"output": 0.69,
|
|
22425
22416
|
"cacheRead": 0,
|
|
22426
22417
|
"cacheWrite": 0
|
|
22427
22418
|
},
|
|
22428
22419
|
"contextWindow": 131072,
|
|
22429
|
-
"maxTokens":
|
|
22420
|
+
"maxTokens": 32768,
|
|
22430
22421
|
"thinking": {
|
|
22431
22422
|
"mode": "effort",
|
|
22432
22423
|
"efforts": [
|
|
@@ -25048,7 +25039,7 @@
|
|
|
25048
25039
|
"api": "openai-completions",
|
|
25049
25040
|
"provider": "kilo",
|
|
25050
25041
|
"baseUrl": "https://api.kilo.ai/api/gateway",
|
|
25051
|
-
"reasoning":
|
|
25042
|
+
"reasoning": false,
|
|
25052
25043
|
"input": [
|
|
25053
25044
|
"text"
|
|
25054
25045
|
],
|
|
@@ -25059,24 +25050,7 @@
|
|
|
25059
25050
|
"cacheWrite": 0
|
|
25060
25051
|
},
|
|
25061
25052
|
"contextWindow": 163840,
|
|
25062
|
-
"maxTokens": 65536
|
|
25063
|
-
"thinking": {
|
|
25064
|
-
"mode": "effort",
|
|
25065
|
-
"efforts": [
|
|
25066
|
-
"minimal",
|
|
25067
|
-
"low",
|
|
25068
|
-
"medium",
|
|
25069
|
-
"high",
|
|
25070
|
-
"xhigh"
|
|
25071
|
-
],
|
|
25072
|
-
"effortMap": {
|
|
25073
|
-
"minimal": "high",
|
|
25074
|
-
"low": "high",
|
|
25075
|
-
"medium": "high",
|
|
25076
|
-
"high": "high",
|
|
25077
|
-
"xhigh": "max"
|
|
25078
|
-
}
|
|
25079
|
-
}
|
|
25053
|
+
"maxTokens": 65536
|
|
25080
25054
|
},
|
|
25081
25055
|
"deepseek/deepseek-chat-v3.1": {
|
|
25082
25056
|
"id": "deepseek/deepseek-chat-v3.1",
|
|
@@ -30816,6 +30790,7 @@
|
|
|
30816
30790
|
"supportsStrictMode": false,
|
|
30817
30791
|
"toolStrictMode": "mixed",
|
|
30818
30792
|
"stripDeepseekSpecialTokens": false,
|
|
30793
|
+
"streamMarkupHealingPattern": "thinking",
|
|
30819
30794
|
"reasoningDeltasMayBeCumulative": false,
|
|
30820
30795
|
"emptyLengthFinishIsContextError": false,
|
|
30821
30796
|
"usesOpenAIToolCallIdLimit": false,
|
|
@@ -54444,6 +54419,36 @@
|
|
|
54444
54419
|
"requiresEffort": true
|
|
54445
54420
|
}
|
|
54446
54421
|
},
|
|
54422
|
+
"minimaxai/minimax-m3": {
|
|
54423
|
+
"id": "minimaxai/minimax-m3",
|
|
54424
|
+
"name": "MiniMax-M3",
|
|
54425
|
+
"api": "openai-completions",
|
|
54426
|
+
"provider": "nvidia",
|
|
54427
|
+
"baseUrl": "https://integrate.api.nvidia.com/v1",
|
|
54428
|
+
"reasoning": true,
|
|
54429
|
+
"input": [
|
|
54430
|
+
"text",
|
|
54431
|
+
"image"
|
|
54432
|
+
],
|
|
54433
|
+
"cost": {
|
|
54434
|
+
"input": 0,
|
|
54435
|
+
"output": 0,
|
|
54436
|
+
"cacheRead": 0,
|
|
54437
|
+
"cacheWrite": 0
|
|
54438
|
+
},
|
|
54439
|
+
"contextWindow": 1000000,
|
|
54440
|
+
"maxTokens": 16384,
|
|
54441
|
+
"thinking": {
|
|
54442
|
+
"mode": "effort",
|
|
54443
|
+
"efforts": [
|
|
54444
|
+
"minimal",
|
|
54445
|
+
"low",
|
|
54446
|
+
"medium",
|
|
54447
|
+
"high",
|
|
54448
|
+
"xhigh"
|
|
54449
|
+
]
|
|
54450
|
+
}
|
|
54451
|
+
},
|
|
54447
54452
|
"mistralai/codestral-22b-instruct-v0.1": {
|
|
54448
54453
|
"id": "mistralai/codestral-22b-instruct-v0.1",
|
|
54449
54454
|
"name": "Codestral 22b Instruct V0.1",
|
|
@@ -62195,9 +62200,9 @@
|
|
|
62195
62200
|
"image"
|
|
62196
62201
|
],
|
|
62197
62202
|
"cost": {
|
|
62198
|
-
"input": 0.
|
|
62199
|
-
"output": 3.
|
|
62200
|
-
"cacheRead": 0.
|
|
62203
|
+
"input": 0.55,
|
|
62204
|
+
"output": 3.1999999999999997,
|
|
62205
|
+
"cacheRead": 0.11,
|
|
62201
62206
|
"cacheWrite": 0
|
|
62202
62207
|
},
|
|
62203
62208
|
"contextWindow": 262144,
|
|
@@ -63522,7 +63527,7 @@
|
|
|
63522
63527
|
"api": "openrouter",
|
|
63523
63528
|
"baseUrl": "https://openrouter.ai/api/v1",
|
|
63524
63529
|
"provider": "openrouter",
|
|
63525
|
-
"reasoning":
|
|
63530
|
+
"reasoning": false,
|
|
63526
63531
|
"input": [
|
|
63527
63532
|
"text"
|
|
63528
63533
|
],
|
|
@@ -63533,22 +63538,7 @@
|
|
|
63533
63538
|
"cacheWrite": 0
|
|
63534
63539
|
},
|
|
63535
63540
|
"contextWindow": 163840,
|
|
63536
|
-
"maxTokens": 16384
|
|
63537
|
-
"thinking": {
|
|
63538
|
-
"mode": "effort",
|
|
63539
|
-
"efforts": [
|
|
63540
|
-
"minimal",
|
|
63541
|
-
"low",
|
|
63542
|
-
"medium",
|
|
63543
|
-
"high"
|
|
63544
|
-
],
|
|
63545
|
-
"effortMap": {
|
|
63546
|
-
"minimal": "high",
|
|
63547
|
-
"low": "high",
|
|
63548
|
-
"medium": "high",
|
|
63549
|
-
"high": "high"
|
|
63550
|
-
}
|
|
63551
|
-
}
|
|
63541
|
+
"maxTokens": 16384
|
|
63552
63542
|
},
|
|
63553
63543
|
"deepseek/deepseek-chat-v3.1": {
|
|
63554
63544
|
"id": "deepseek/deepseek-chat-v3.1",
|
|
@@ -65751,7 +65741,7 @@
|
|
|
65751
65741
|
"cacheWrite": 0
|
|
65752
65742
|
},
|
|
65753
65743
|
"contextWindow": 131072,
|
|
65754
|
-
"maxTokens":
|
|
65744
|
+
"maxTokens": 100352
|
|
65755
65745
|
},
|
|
65756
65746
|
"moonshotai/kimi-k2-0905": {
|
|
65757
65747
|
"id": "moonshotai/kimi-k2-0905",
|
|
@@ -65770,7 +65760,7 @@
|
|
|
65770
65760
|
"cacheWrite": 0
|
|
65771
65761
|
},
|
|
65772
65762
|
"contextWindow": 262144,
|
|
65773
|
-
"maxTokens":
|
|
65763
|
+
"maxTokens": 100352
|
|
65774
65764
|
},
|
|
65775
65765
|
"moonshotai/kimi-k2-0905:exacto": {
|
|
65776
65766
|
"id": "moonshotai/kimi-k2-0905:exacto",
|
|
@@ -65861,9 +65851,9 @@
|
|
|
65861
65851
|
"image"
|
|
65862
65852
|
],
|
|
65863
65853
|
"cost": {
|
|
65864
|
-
"input": 0.
|
|
65865
|
-
"output": 3.
|
|
65866
|
-
"cacheRead": 0.
|
|
65854
|
+
"input": 0.55,
|
|
65855
|
+
"output": 3.1999999999999997,
|
|
65856
|
+
"cacheRead": 0.11,
|
|
65867
65857
|
"cacheWrite": 0
|
|
65868
65858
|
},
|
|
65869
65859
|
"contextWindow": 262144,
|
|
@@ -69347,8 +69337,8 @@
|
|
|
69347
69337
|
"image"
|
|
69348
69338
|
],
|
|
69349
69339
|
"cost": {
|
|
69350
|
-
"input": 0.
|
|
69351
|
-
"output": 2.
|
|
69340
|
+
"input": 0.2596,
|
|
69341
|
+
"output": 2.3850000000000002,
|
|
69352
69342
|
"cacheRead": 0.15,
|
|
69353
69343
|
"cacheWrite": 0
|
|
69354
69344
|
},
|
|
@@ -69758,13 +69748,13 @@
|
|
|
69758
69748
|
"text"
|
|
69759
69749
|
],
|
|
69760
69750
|
"cost": {
|
|
69761
|
-
"input": 0.
|
|
69751
|
+
"input": 0.09999999999999999,
|
|
69762
69752
|
"output": 0.3,
|
|
69763
69753
|
"cacheRead": 0.02,
|
|
69764
69754
|
"cacheWrite": 0
|
|
69765
69755
|
},
|
|
69766
69756
|
"contextWindow": 262144,
|
|
69767
|
-
"maxTokens":
|
|
69757
|
+
"maxTokens": 65536,
|
|
69768
69758
|
"thinking": {
|
|
69769
69759
|
"mode": "effort",
|
|
69770
69760
|
"efforts": [
|
|
@@ -70846,8 +70836,8 @@
|
|
|
70846
70836
|
"text"
|
|
70847
70837
|
],
|
|
70848
70838
|
"cost": {
|
|
70849
|
-
"input": 0.
|
|
70850
|
-
"output":
|
|
70839
|
+
"input": 0.975,
|
|
70840
|
+
"output": 4.300000000000001,
|
|
70851
70841
|
"cacheRead": 0.182,
|
|
70852
70842
|
"cacheWrite": 0
|
|
70853
70843
|
},
|
|
@@ -70874,7 +70864,7 @@
|
|
|
70874
70864
|
"text"
|
|
70875
70865
|
],
|
|
70876
70866
|
"cost": {
|
|
70877
|
-
"input": 0.
|
|
70867
|
+
"input": 0.94,
|
|
70878
70868
|
"output": 3,
|
|
70879
70869
|
"cacheRead": 0.18,
|
|
70880
70870
|
"cacheWrite": 0
|
|
@@ -71096,7 +71086,7 @@
|
|
|
71096
71086
|
"synthetic": {
|
|
71097
71087
|
"hf:MiniMaxAI/MiniMax-M3": {
|
|
71098
71088
|
"id": "hf:MiniMaxAI/MiniMax-M3",
|
|
71099
|
-
"name": "
|
|
71089
|
+
"name": "MiniMax-M3",
|
|
71100
71090
|
"api": "openai-completions",
|
|
71101
71091
|
"provider": "synthetic",
|
|
71102
71092
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71111,7 +71101,7 @@
|
|
|
71111
71101
|
"cacheRead": 0.6,
|
|
71112
71102
|
"cacheWrite": 0
|
|
71113
71103
|
},
|
|
71114
|
-
"contextWindow":
|
|
71104
|
+
"contextWindow": 524288,
|
|
71115
71105
|
"maxTokens": 65536,
|
|
71116
71106
|
"thinking": {
|
|
71117
71107
|
"mode": "effort",
|
|
@@ -71126,7 +71116,7 @@
|
|
|
71126
71116
|
},
|
|
71127
71117
|
"hf:moonshotai/Kimi-K2.6": {
|
|
71128
71118
|
"id": "hf:moonshotai/Kimi-K2.6",
|
|
71129
|
-
"name": "
|
|
71119
|
+
"name": "Kimi K2.6",
|
|
71130
71120
|
"api": "openai-completions",
|
|
71131
71121
|
"provider": "synthetic",
|
|
71132
71122
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71156,7 +71146,7 @@
|
|
|
71156
71146
|
},
|
|
71157
71147
|
"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": {
|
|
71158
71148
|
"id": "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4",
|
|
71159
|
-
"name": "
|
|
71149
|
+
"name": "Nemotron 3 Super 120B A12B",
|
|
71160
71150
|
"api": "openai-completions",
|
|
71161
71151
|
"provider": "synthetic",
|
|
71162
71152
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71185,7 +71175,7 @@
|
|
|
71185
71175
|
},
|
|
71186
71176
|
"hf:openai/gpt-oss-120b": {
|
|
71187
71177
|
"id": "hf:openai/gpt-oss-120b",
|
|
71188
|
-
"name": "
|
|
71178
|
+
"name": "GPT OSS 120B",
|
|
71189
71179
|
"api": "openai-completions",
|
|
71190
71180
|
"provider": "synthetic",
|
|
71191
71181
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71196,7 +71186,7 @@
|
|
|
71196
71186
|
"cost": {
|
|
71197
71187
|
"input": 0.1,
|
|
71198
71188
|
"output": 0.1,
|
|
71199
|
-
"cacheRead": 0,
|
|
71189
|
+
"cacheRead": 0.1,
|
|
71200
71190
|
"cacheWrite": 0
|
|
71201
71191
|
},
|
|
71202
71192
|
"contextWindow": 131072,
|
|
@@ -71212,7 +71202,7 @@
|
|
|
71212
71202
|
},
|
|
71213
71203
|
"hf:Qwen/Qwen3.5-397B-A17B": {
|
|
71214
71204
|
"id": "hf:Qwen/Qwen3.5-397B-A17B",
|
|
71215
|
-
"name": "
|
|
71205
|
+
"name": "Qwen3.5 397B-A17B",
|
|
71216
71206
|
"api": "openai-completions",
|
|
71217
71207
|
"provider": "synthetic",
|
|
71218
71208
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71223,7 +71213,7 @@
|
|
|
71223
71213
|
],
|
|
71224
71214
|
"cost": {
|
|
71225
71215
|
"input": 0.6,
|
|
71226
|
-
"output": 3,
|
|
71216
|
+
"output": 3.6,
|
|
71227
71217
|
"cacheRead": 0.6,
|
|
71228
71218
|
"cacheWrite": 0
|
|
71229
71219
|
},
|
|
@@ -71241,26 +71231,36 @@
|
|
|
71241
71231
|
},
|
|
71242
71232
|
"hf:Qwen/Qwen3.6-27B": {
|
|
71243
71233
|
"id": "hf:Qwen/Qwen3.6-27B",
|
|
71244
|
-
"name": "
|
|
71234
|
+
"name": "Qwen3.6 27B",
|
|
71245
71235
|
"api": "openai-completions",
|
|
71246
71236
|
"provider": "synthetic",
|
|
71247
71237
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
71248
|
-
"reasoning":
|
|
71238
|
+
"reasoning": true,
|
|
71249
71239
|
"input": [
|
|
71250
|
-
"text"
|
|
71240
|
+
"text",
|
|
71241
|
+
"image"
|
|
71251
71242
|
],
|
|
71252
71243
|
"cost": {
|
|
71253
|
-
"input": 0,
|
|
71254
|
-
"output":
|
|
71255
|
-
"cacheRead": 0,
|
|
71244
|
+
"input": 0.45,
|
|
71245
|
+
"output": 3.6,
|
|
71246
|
+
"cacheRead": 0.45,
|
|
71256
71247
|
"cacheWrite": 0
|
|
71257
71248
|
},
|
|
71258
71249
|
"contextWindow": 262144,
|
|
71259
|
-
"maxTokens":
|
|
71250
|
+
"maxTokens": 65536,
|
|
71251
|
+
"thinking": {
|
|
71252
|
+
"mode": "effort",
|
|
71253
|
+
"efforts": [
|
|
71254
|
+
"minimal",
|
|
71255
|
+
"low",
|
|
71256
|
+
"medium",
|
|
71257
|
+
"high"
|
|
71258
|
+
]
|
|
71259
|
+
}
|
|
71260
71260
|
},
|
|
71261
71261
|
"hf:zai-org/GLM-4.7": {
|
|
71262
71262
|
"id": "hf:zai-org/GLM-4.7",
|
|
71263
|
-
"name": "
|
|
71263
|
+
"name": "GLM-4.7",
|
|
71264
71264
|
"api": "openai-completions",
|
|
71265
71265
|
"provider": "synthetic",
|
|
71266
71266
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71269,13 +71269,13 @@
|
|
|
71269
71269
|
"text"
|
|
71270
71270
|
],
|
|
71271
71271
|
"cost": {
|
|
71272
|
-
"input": 0.
|
|
71272
|
+
"input": 0.45,
|
|
71273
71273
|
"output": 2.19,
|
|
71274
|
-
"cacheRead": 0,
|
|
71274
|
+
"cacheRead": 0.45,
|
|
71275
71275
|
"cacheWrite": 0
|
|
71276
71276
|
},
|
|
71277
71277
|
"contextWindow": 202752,
|
|
71278
|
-
"maxTokens":
|
|
71278
|
+
"maxTokens": 65536,
|
|
71279
71279
|
"thinking": {
|
|
71280
71280
|
"mode": "effort",
|
|
71281
71281
|
"efforts": [
|
|
@@ -71289,7 +71289,7 @@
|
|
|
71289
71289
|
},
|
|
71290
71290
|
"hf:zai-org/GLM-4.7-Flash": {
|
|
71291
71291
|
"id": "hf:zai-org/GLM-4.7-Flash",
|
|
71292
|
-
"name": "
|
|
71292
|
+
"name": "GLM-4.7-Flash",
|
|
71293
71293
|
"api": "openai-completions",
|
|
71294
71294
|
"provider": "synthetic",
|
|
71295
71295
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71298,9 +71298,9 @@
|
|
|
71298
71298
|
"text"
|
|
71299
71299
|
],
|
|
71300
71300
|
"cost": {
|
|
71301
|
-
"input": 0.
|
|
71302
|
-
"output": 0.
|
|
71303
|
-
"cacheRead": 0.
|
|
71301
|
+
"input": 0.1,
|
|
71302
|
+
"output": 0.5,
|
|
71303
|
+
"cacheRead": 0.1,
|
|
71304
71304
|
"cacheWrite": 0
|
|
71305
71305
|
},
|
|
71306
71306
|
"contextWindow": 196608,
|
|
@@ -71318,7 +71318,7 @@
|
|
|
71318
71318
|
},
|
|
71319
71319
|
"hf:zai-org/GLM-5.1": {
|
|
71320
71320
|
"id": "hf:zai-org/GLM-5.1",
|
|
71321
|
-
"name": "
|
|
71321
|
+
"name": "GLM-5.1",
|
|
71322
71322
|
"api": "openai-completions",
|
|
71323
71323
|
"provider": "synthetic",
|
|
71324
71324
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
@@ -71347,22 +71347,32 @@
|
|
|
71347
71347
|
},
|
|
71348
71348
|
"hf:zai-org/GLM-5.2": {
|
|
71349
71349
|
"id": "hf:zai-org/GLM-5.2",
|
|
71350
|
-
"name": "
|
|
71350
|
+
"name": "GLM-5.2",
|
|
71351
71351
|
"api": "openai-completions",
|
|
71352
71352
|
"provider": "synthetic",
|
|
71353
71353
|
"baseUrl": "https://api.synthetic.new/openai/v1",
|
|
71354
|
-
"reasoning":
|
|
71354
|
+
"reasoning": true,
|
|
71355
71355
|
"input": [
|
|
71356
71356
|
"text"
|
|
71357
71357
|
],
|
|
71358
71358
|
"cost": {
|
|
71359
|
-
"input":
|
|
71360
|
-
"output":
|
|
71361
|
-
"cacheRead":
|
|
71359
|
+
"input": 1.4,
|
|
71360
|
+
"output": 4.4,
|
|
71361
|
+
"cacheRead": 1.4,
|
|
71362
71362
|
"cacheWrite": 0
|
|
71363
71363
|
},
|
|
71364
71364
|
"contextWindow": 524288,
|
|
71365
|
-
"maxTokens":
|
|
71365
|
+
"maxTokens": 65536,
|
|
71366
|
+
"thinking": {
|
|
71367
|
+
"mode": "effort",
|
|
71368
|
+
"efforts": [
|
|
71369
|
+
"minimal",
|
|
71370
|
+
"low",
|
|
71371
|
+
"medium",
|
|
71372
|
+
"high",
|
|
71373
|
+
"xhigh"
|
|
71374
|
+
]
|
|
71375
|
+
}
|
|
71366
71376
|
},
|
|
71367
71377
|
"syn:large:text": {
|
|
71368
71378
|
"id": "syn:large:text",
|
|
@@ -71682,7 +71692,7 @@
|
|
|
71682
71692
|
"api": "openai-completions",
|
|
71683
71693
|
"provider": "together",
|
|
71684
71694
|
"baseUrl": "https://api.together.xyz/v1",
|
|
71685
|
-
"reasoning":
|
|
71695
|
+
"reasoning": false,
|
|
71686
71696
|
"input": [
|
|
71687
71697
|
"text",
|
|
71688
71698
|
"image"
|
|
@@ -71694,17 +71704,7 @@
|
|
|
71694
71704
|
"cacheWrite": 0.18
|
|
71695
71705
|
},
|
|
71696
71706
|
"contextWindow": 10000000,
|
|
71697
|
-
"maxTokens": 32768
|
|
71698
|
-
"thinking": {
|
|
71699
|
-
"mode": "effort",
|
|
71700
|
-
"efforts": [
|
|
71701
|
-
"minimal",
|
|
71702
|
-
"low",
|
|
71703
|
-
"medium",
|
|
71704
|
-
"high",
|
|
71705
|
-
"xhigh"
|
|
71706
|
-
]
|
|
71707
|
-
}
|
|
71707
|
+
"maxTokens": 32768
|
|
71708
71708
|
},
|
|
71709
71709
|
"MiniMaxAI/MiniMax-M2.5": {
|
|
71710
71710
|
"id": "MiniMaxAI/MiniMax-M2.5",
|
|
@@ -72381,6 +72381,38 @@
|
|
|
72381
72381
|
"escapeBuiltinToolNames": true
|
|
72382
72382
|
}
|
|
72383
72383
|
},
|
|
72384
|
+
"umans-glm-5.2-nvfp4": {
|
|
72385
|
+
"id": "umans-glm-5.2-nvfp4",
|
|
72386
|
+
"name": "Umans GLM 5.2 NVFP4 (experimental, short test from Jun 29)",
|
|
72387
|
+
"api": "anthropic-messages",
|
|
72388
|
+
"provider": "umans",
|
|
72389
|
+
"baseUrl": "https://api.code.umans.ai",
|
|
72390
|
+
"reasoning": true,
|
|
72391
|
+
"thinking": {
|
|
72392
|
+
"mode": "anthropic-budget-effort",
|
|
72393
|
+
"efforts": [
|
|
72394
|
+
"high",
|
|
72395
|
+
"xhigh"
|
|
72396
|
+
],
|
|
72397
|
+
"effortMap": {
|
|
72398
|
+
"xhigh": "max"
|
|
72399
|
+
}
|
|
72400
|
+
},
|
|
72401
|
+
"input": [
|
|
72402
|
+
"text"
|
|
72403
|
+
],
|
|
72404
|
+
"cost": {
|
|
72405
|
+
"input": 0,
|
|
72406
|
+
"output": 0,
|
|
72407
|
+
"cacheRead": 0,
|
|
72408
|
+
"cacheWrite": 0
|
|
72409
|
+
},
|
|
72410
|
+
"contextWindow": 405504,
|
|
72411
|
+
"maxTokens": 131071,
|
|
72412
|
+
"compat": {
|
|
72413
|
+
"escapeBuiltinToolNames": true
|
|
72414
|
+
}
|
|
72415
|
+
},
|
|
72384
72416
|
"umans-kimi-k2.7": {
|
|
72385
72417
|
"id": "umans-kimi-k2.7",
|
|
72386
72418
|
"name": "Umans Kimi K2.7 Code",
|
|
@@ -75747,6 +75779,7 @@
|
|
|
75747
75779
|
"supportsForcedToolChoice": true,
|
|
75748
75780
|
"supportsSamplingParams": true,
|
|
75749
75781
|
"requiresToolResultId": false,
|
|
75782
|
+
"requiresThinkingEnabled": false,
|
|
75750
75783
|
"replayUnsignedThinking": false,
|
|
75751
75784
|
"escapeBuiltinToolNames": false
|
|
75752
75785
|
}
|
|
@@ -80633,7 +80666,7 @@
|
|
|
80633
80666
|
},
|
|
80634
80667
|
"zai/glm-4.5": {
|
|
80635
80668
|
"id": "zai/glm-4.5",
|
|
80636
|
-
"name": "GLM
|
|
80669
|
+
"name": "GLM 4.5",
|
|
80637
80670
|
"api": "anthropic-messages",
|
|
80638
80671
|
"baseUrl": "https://ai-gateway.vercel.sh",
|
|
80639
80672
|
"provider": "vercel-ai-gateway",
|
|
@@ -82062,6 +82095,14 @@
|
|
|
82062
82095
|
},
|
|
82063
82096
|
"contextWindow": 2000000,
|
|
82064
82097
|
"maxTokens": 2000000,
|
|
82098
|
+
"compat": {
|
|
82099
|
+
"reasoningEffortMap": {
|
|
82100
|
+
"minimal": "low"
|
|
82101
|
+
},
|
|
82102
|
+
"includeEncryptedReasoning": false,
|
|
82103
|
+
"filterReasoningHistory": true,
|
|
82104
|
+
"omitReasoningEffort": false
|
|
82105
|
+
},
|
|
82065
82106
|
"thinking": {
|
|
82066
82107
|
"mode": "effort",
|
|
82067
82108
|
"efforts": [
|
|
@@ -82074,14 +82115,6 @@
|
|
|
82074
82115
|
"effortMap": {
|
|
82075
82116
|
"minimal": "low"
|
|
82076
82117
|
}
|
|
82077
|
-
},
|
|
82078
|
-
"compat": {
|
|
82079
|
-
"reasoningEffortMap": {
|
|
82080
|
-
"minimal": "low"
|
|
82081
|
-
},
|
|
82082
|
-
"includeEncryptedReasoning": false,
|
|
82083
|
-
"filterReasoningHistory": true,
|
|
82084
|
-
"omitReasoningEffort": false
|
|
82085
82118
|
}
|
|
82086
82119
|
},
|
|
82087
82120
|
"grok-4.3": {
|
|
@@ -82103,6 +82136,14 @@
|
|
|
82103
82136
|
},
|
|
82104
82137
|
"contextWindow": 1000000,
|
|
82105
82138
|
"maxTokens": 1000000,
|
|
82139
|
+
"compat": {
|
|
82140
|
+
"reasoningEffortMap": {
|
|
82141
|
+
"minimal": "low"
|
|
82142
|
+
},
|
|
82143
|
+
"includeEncryptedReasoning": false,
|
|
82144
|
+
"filterReasoningHistory": true,
|
|
82145
|
+
"omitReasoningEffort": false
|
|
82146
|
+
},
|
|
82106
82147
|
"thinking": {
|
|
82107
82148
|
"mode": "effort",
|
|
82108
82149
|
"efforts": [
|
|
@@ -82115,14 +82156,6 @@
|
|
|
82115
82156
|
"effortMap": {
|
|
82116
82157
|
"minimal": "low"
|
|
82117
82158
|
}
|
|
82118
|
-
},
|
|
82119
|
-
"compat": {
|
|
82120
|
-
"reasoningEffortMap": {
|
|
82121
|
-
"minimal": "low"
|
|
82122
|
-
},
|
|
82123
|
-
"includeEncryptedReasoning": false,
|
|
82124
|
-
"filterReasoningHistory": true,
|
|
82125
|
-
"omitReasoningEffort": false
|
|
82126
82159
|
}
|
|
82127
82160
|
},
|
|
82128
82161
|
"grok-build": {
|
|
@@ -82174,12 +82207,12 @@
|
|
|
82174
82207
|
"contextWindow": 256000,
|
|
82175
82208
|
"maxTokens": 256000,
|
|
82176
82209
|
"compat": {
|
|
82177
|
-
"includeEncryptedReasoning": false,
|
|
82178
|
-
"filterReasoningHistory": true,
|
|
82179
|
-
"omitReasoningEffort": true,
|
|
82180
82210
|
"reasoningEffortMap": {
|
|
82181
82211
|
"minimal": "low"
|
|
82182
82212
|
},
|
|
82213
|
+
"includeEncryptedReasoning": false,
|
|
82214
|
+
"filterReasoningHistory": true,
|
|
82215
|
+
"omitReasoningEffort": true,
|
|
82183
82216
|
"supportsReasoningEffort": false
|
|
82184
82217
|
}
|
|
82185
82218
|
},
|
|
@@ -82223,9 +82256,9 @@
|
|
|
82223
82256
|
"text"
|
|
82224
82257
|
],
|
|
82225
82258
|
"cost": {
|
|
82226
|
-
"input": 0.
|
|
82227
|
-
"output": 0.
|
|
82228
|
-
"cacheRead": 0.
|
|
82259
|
+
"input": 0.14,
|
|
82260
|
+
"output": 0.28,
|
|
82261
|
+
"cacheRead": 0.0028,
|
|
82229
82262
|
"cacheWrite": 0
|
|
82230
82263
|
},
|
|
82231
82264
|
"contextWindow": 262144,
|
|
@@ -82259,9 +82292,9 @@
|
|
|
82259
82292
|
"image"
|
|
82260
82293
|
],
|
|
82261
82294
|
"cost": {
|
|
82262
|
-
"input": 0.
|
|
82263
|
-
"output":
|
|
82264
|
-
"cacheRead": 0.
|
|
82295
|
+
"input": 0.14,
|
|
82296
|
+
"output": 0.28,
|
|
82297
|
+
"cacheRead": 0.0028,
|
|
82265
82298
|
"cacheWrite": 0
|
|
82266
82299
|
},
|
|
82267
82300
|
"contextWindow": 262144,
|
|
@@ -82294,9 +82327,9 @@
|
|
|
82294
82327
|
"text"
|
|
82295
82328
|
],
|
|
82296
82329
|
"cost": {
|
|
82297
|
-
"input":
|
|
82298
|
-
"output":
|
|
82299
|
-
"cacheRead": 0.
|
|
82330
|
+
"input": 0.435,
|
|
82331
|
+
"output": 0.87,
|
|
82332
|
+
"cacheRead": 0.0036,
|
|
82300
82333
|
"cacheWrite": 0
|
|
82301
82334
|
},
|
|
82302
82335
|
"contextWindow": 1048576,
|
|
@@ -82330,9 +82363,9 @@
|
|
|
82330
82363
|
"image"
|
|
82331
82364
|
],
|
|
82332
82365
|
"cost": {
|
|
82333
|
-
"input": 0.
|
|
82334
|
-
"output":
|
|
82335
|
-
"cacheRead": 0.
|
|
82366
|
+
"input": 0.14,
|
|
82367
|
+
"output": 0.28,
|
|
82368
|
+
"cacheRead": 0.0028,
|
|
82336
82369
|
"cacheWrite": 0
|
|
82337
82370
|
},
|
|
82338
82371
|
"contextWindow": 1048576,
|
|
@@ -82365,9 +82398,9 @@
|
|
|
82365
82398
|
"text"
|
|
82366
82399
|
],
|
|
82367
82400
|
"cost": {
|
|
82368
|
-
"input":
|
|
82369
|
-
"output":
|
|
82370
|
-
"cacheRead": 0.
|
|
82401
|
+
"input": 0.435,
|
|
82402
|
+
"output": 0.87,
|
|
82403
|
+
"cacheRead": 0.0036,
|
|
82371
82404
|
"cacheWrite": 0
|
|
82372
82405
|
},
|
|
82373
82406
|
"contextWindow": 1048576,
|
|
@@ -803,6 +803,18 @@ export function groqModelManagerOptions(config?: GroqModelManagerConfig): ModelM
|
|
|
803
803
|
// 3. Cerebras
|
|
804
804
|
// ---------------------------------------------------------------------------
|
|
805
805
|
|
|
806
|
+
const CEREBRAS_IMAGE_INPUT_MODEL_IDS = new Set(["gemma-4-31b"]);
|
|
807
|
+
|
|
808
|
+
function applyCerebrasDiscoveryOverrides(model: ModelSpec<"openai-completions">): ModelSpec<"openai-completions"> {
|
|
809
|
+
if (!CEREBRAS_IMAGE_INPUT_MODEL_IDS.has(model.id)) {
|
|
810
|
+
return model;
|
|
811
|
+
}
|
|
812
|
+
return {
|
|
813
|
+
...model,
|
|
814
|
+
input: ["text", "image"],
|
|
815
|
+
};
|
|
816
|
+
}
|
|
817
|
+
|
|
806
818
|
export interface CerebrasModelManagerConfig {
|
|
807
819
|
apiKey?: string;
|
|
808
820
|
baseUrl?: string;
|
|
@@ -812,7 +824,27 @@ export interface CerebrasModelManagerConfig {
|
|
|
812
824
|
export function cerebrasModelManagerOptions(
|
|
813
825
|
config?: CerebrasModelManagerConfig,
|
|
814
826
|
): ModelManagerOptions<"openai-completions"> {
|
|
815
|
-
|
|
827
|
+
const apiKey = config?.apiKey;
|
|
828
|
+
const baseUrl = config?.baseUrl ?? "https://api.cerebras.ai/v1";
|
|
829
|
+
const references = createBundledReferenceMap<"openai-completions">("cerebras");
|
|
830
|
+
return {
|
|
831
|
+
providerId: "cerebras",
|
|
832
|
+
...(apiKey && {
|
|
833
|
+
fetchDynamicModels: () =>
|
|
834
|
+
fetchOpenAICompatibleModels({
|
|
835
|
+
api: "openai-completions",
|
|
836
|
+
provider: "cerebras",
|
|
837
|
+
baseUrl,
|
|
838
|
+
apiKey,
|
|
839
|
+
mapModel: (entry, defaults) => {
|
|
840
|
+
const reference = references.get(defaults.id);
|
|
841
|
+
const model = mapWithBundledReference(entry, defaults, reference);
|
|
842
|
+
return applyCerebrasDiscoveryOverrides(model);
|
|
843
|
+
},
|
|
844
|
+
fetch: config?.fetch,
|
|
845
|
+
}),
|
|
846
|
+
}),
|
|
847
|
+
};
|
|
816
848
|
}
|
|
817
849
|
|
|
818
850
|
// ---------------------------------------------------------------------------
|
|
@@ -1294,7 +1326,7 @@ export function clampFireworksKimiMaxTokens(modelId: string, candidate: number |
|
|
|
1294
1326
|
export const KIMI_K27_CODE_RECOMMENDED_MAX_TOKENS = 32_768;
|
|
1295
1327
|
|
|
1296
1328
|
export function isKimiK27CodeModelId(modelId: string): boolean {
|
|
1297
|
-
return /(?:^|\/)kimi[-._]?k2(?:[._-]?|p)7[-._]?code
|
|
1329
|
+
return /(?:^|\/)kimi[-._]?k2(?:[._-]?|p)7[-._]?code(?:[-._]?highspeed)?$/i.test(modelId);
|
|
1298
1330
|
}
|
|
1299
1331
|
|
|
1300
1332
|
export function clampKimiK27CodeMaxTokens(modelId: string, candidate: number): number;
|
package/src/types.ts
CHANGED
|
@@ -420,6 +420,11 @@ export interface AnthropicCompat {
|
|
|
420
420
|
* Default: auto-detected from provider/baseUrl and `model.reasoning`.
|
|
421
421
|
*/
|
|
422
422
|
replayUnsignedThinking?: boolean;
|
|
423
|
+
/**
|
|
424
|
+
* Whether the endpoint requires `thinking.type: "enabled"` whenever the
|
|
425
|
+
* model reasons. Use for models that reject omitted or disabled thinking.
|
|
426
|
+
*/
|
|
427
|
+
requiresThinkingEnabled?: boolean;
|
|
423
428
|
/**
|
|
424
429
|
* Prefix Anthropic built-in tool names (`web_search`, `code_execution`, ...)
|
|
425
430
|
* when they are ordinary client tools. Some Anthropic-compatible gateways
|