feat(presets): switch Claude Sonnet tier default to Sonnet 5

Bump every claude-sonnet-4-6/claude-sonnet-4.6 default pin to claude-sonnet-5 across all provider presets (claude, claudeDesktop, hermes, openclaw, opencode, universal NEWAPI_DEFAULT_MODELS) and the Claude Desktop DEFAULT_PROXY_ROUTES sonnet route id. Update route-derivation test expectations accordingly. Non-Anthropic pins (gpt/gemini/glm/sonnet-4-5) left untouched.
This commit is contained in:
Jason
2026-07-01 10:02:07 +08:00
parent 778d5b9268
commit cd9e025b5a
8 changed files with 150 additions and 167 deletions
+3 -3
View File
@@ -46,7 +46,7 @@ pub struct ClaudeDesktopDefaultRoute {
pub const DEFAULT_PROXY_ROUTES: &[ClaudeDesktopDefaultRoute] = &[
ClaudeDesktopDefaultRoute {
route_id: "claude-sonnet-4-6",
route_id: "claude-sonnet-5",
env_key: "ANTHROPIC_DEFAULT_SONNET_MODEL",
supports_1m: true,
},
@@ -1966,9 +1966,9 @@ mod tests {
},
),
(
"claude-sonnet-4-6".to_string(),
"claude-sonnet-5".to_string(),
ClaudeDesktopModelRoute {
model: "claude-sonnet-4-6".to_string(),
model: "claude-sonnet-5".to_string(),
label_override: None,
supports_1m: Some(false),
},
+12 -29
View File
@@ -888,9 +888,7 @@ mod import_claude_desktop_tests {
None,
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
let r = routes
.get("claude-sonnet-4-6")
.expect("sonnet route present");
let r = routes.get("claude-sonnet-5").expect("sonnet route present");
assert_eq!(r.model, "claude-sonnet-4-5-20250929");
assert!(
!r.model.to_ascii_lowercase().contains("[1m]"),
@@ -909,9 +907,7 @@ mod import_claude_desktop_tests {
None,
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
let r = routes
.get("claude-sonnet-4-6")
.expect("sonnet route present");
let r = routes.get("claude-sonnet-5").expect("sonnet route present");
assert_eq!(r.model, "kimi-k2");
assert_eq!(r.label_override.as_deref(), Some("kimi-k2"));
// 默认 provider_type 缺省 → supports_1m_default = true
@@ -928,9 +924,7 @@ mod import_claude_desktop_tests {
None,
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
let r = routes
.get("claude-sonnet-4-6")
.expect("sonnet route present");
let r = routes.get("claude-sonnet-5").expect("sonnet route present");
assert_eq!(r.model, "kimi-k2");
assert_eq!(r.label_override.as_deref(), Some("Kimi K2"));
}
@@ -945,9 +939,7 @@ mod import_claude_desktop_tests {
Some("github_copilot"),
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
let r = routes
.get("claude-sonnet-4-6")
.expect("sonnet route present");
let r = routes.get("claude-sonnet-5").expect("sonnet route present");
assert_eq!(r.model, "gpt-5-codex");
assert_eq!(r.label_override.as_deref(), Some("gpt-5-codex"));
assert_eq!(r.supports_1m, Some(true));
@@ -962,9 +954,7 @@ mod import_claude_desktop_tests {
Some("github_copilot"),
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
let r = routes
.get("claude-sonnet-4-6")
.expect("sonnet route present");
let r = routes.get("claude-sonnet-5").expect("sonnet route present");
assert_eq!(r.model, "gpt-5-codex");
assert_eq!(r.label_override.as_deref(), Some("gpt-5-codex"));
assert_eq!(r.supports_1m, Some(false));
@@ -982,9 +972,7 @@ mod import_claude_desktop_tests {
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
assert_eq!(routes.len(), 1, "three aliases → one merged route");
let r = routes
.get("claude-sonnet-4-6")
.expect("merged route present");
let r = routes.get("claude-sonnet-5").expect("merged route present");
assert_eq!(r.model, "MiniMax-M2");
assert_eq!(r.label_override.as_deref(), Some("MiniMax-M2"));
}
@@ -1002,9 +990,7 @@ mod import_claude_desktop_tests {
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
assert_eq!(routes.len(), 1);
let r = routes
.get("claude-sonnet-4-6")
.expect("merged route present");
let r = routes.get("claude-sonnet-5").expect("merged route present");
assert_eq!(r.supports_1m, Some(true));
}
@@ -1020,12 +1006,12 @@ mod import_claude_desktop_tests {
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
assert_eq!(routes.len(), 3);
assert_eq!(routes.get("claude-sonnet-4-6").unwrap().model, "GLM-4.6");
assert_eq!(routes.get("claude-sonnet-5").unwrap().model, "GLM-4.6");
assert_eq!(routes.get("claude-opus-4-8").unwrap().model, "GLM-4-Air");
assert_eq!(routes.get("claude-haiku-4-5").unwrap().model, "GLM-4-Flash");
assert_eq!(
routes
.get("claude-sonnet-4-6")
.get("claude-sonnet-5")
.unwrap()
.label_override
.as_deref(),
@@ -1045,7 +1031,7 @@ mod import_claude_desktop_tests {
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
assert_eq!(routes.len(), 1);
let r = routes
.get("claude-sonnet-4-6")
.get("claude-sonnet-5")
.expect("fallback route present");
assert_eq!(r.model, "kimi-k2");
assert_eq!(r.label_override.as_deref(), Some("kimi-k2"));
@@ -1060,13 +1046,10 @@ mod import_claude_desktop_tests {
None,
);
let routes = suggested_claude_desktop_routes(&p).expect("routes built");
assert!(routes.contains_key("claude-sonnet-4-6"));
assert!(routes.contains_key("claude-sonnet-5"));
assert!(!routes.contains_key("claude-claude-sonnet-4-5-20250929"));
assert_eq!(
routes
.get("claude-sonnet-4-6")
.expect("route")
.label_override,
routes.get("claude-sonnet-5").expect("route").label_override,
None
);
}
+7 -7
View File
@@ -32,7 +32,7 @@ export interface ClaudeDesktopRoutePreset {
* `next_catalog_safe_route_id` 都从此映射派生 routeId,避免散落硬编码。
*/
export const CLAUDE_DESKTOP_ROLE_ROUTE_IDS = {
sonnet: "claude-sonnet-4-6",
sonnet: "claude-sonnet-5",
opus: "claude-opus-4-8",
fable: "claude-fable-5",
haiku: "claude-haiku-4-5",
@@ -163,7 +163,7 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
mode: "direct",
apiFormat: "anthropic",
modelRoutes: mappedRoutes(
"anthropic/claude-sonnet-4.6",
"anthropic/claude-sonnet-5",
"anthropic/claude-opus-4.8",
"anthropic/claude-haiku-4.5",
),
@@ -375,8 +375,8 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
providerType: "github_copilot",
requiresOAuth: true,
modelRoutes: brandedRoutes(
"claude-sonnet-4.6",
"claude-sonnet-4.6",
"claude-sonnet-5",
"claude-sonnet-5",
"claude-haiku-4.5",
),
icon: "github",
@@ -651,7 +651,7 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
mode: "direct",
apiFormat: "anthropic",
modelRoutes: mappedRoutes(
"anthropic/claude-sonnet-4.6",
"anthropic/claude-sonnet-5",
"anthropic/claude-opus-4.8",
"anthropic/claude-haiku-4.5",
),
@@ -1014,7 +1014,7 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
mode: "proxy",
apiFormat: "anthropic",
modelRoutes: mappedRoutes(
"anthropic/claude-sonnet-4.6",
"anthropic/claude-sonnet-5",
"anthropic/claude-opus-4.8",
"anthropic/claude-haiku-4.5",
true,
@@ -1031,7 +1031,7 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
mode: "proxy",
apiFormat: "anthropic",
modelRoutes: mappedRoutes(
"anthropic/claude-sonnet-4.6",
"anthropic/claude-sonnet-5",
"anthropic/claude-opus-4.8",
"anthropic/claude-haiku-4.5",
true,
+14 -14
View File
@@ -99,9 +99,9 @@ export const providerPresets: ProviderPreset[] = [
env: {
ANTHROPIC_BASE_URL: "https://router.shengsuanyun.com/api",
ANTHROPIC_AUTH_TOKEN: "",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "anthropic/claude-haiku-4.5",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "anthropic/claude-opus-4.8",
},
},
@@ -690,9 +690,9 @@ export const providerPresets: ProviderPreset[] = [
env: {
ANTHROPIC_BASE_URL: "https://open.cherryin.net",
ANTHROPIC_AUTH_TOKEN: "",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "anthropic/claude-haiku-4.5",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "anthropic/claude-opus-4.8",
},
},
@@ -1119,9 +1119,9 @@ export const providerPresets: ProviderPreset[] = [
env: {
ANTHROPIC_BASE_URL: "https://openrouter.ai/api",
ANTHROPIC_AUTH_TOKEN: "",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "anthropic/claude-haiku-4.5",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "anthropic/claude-opus-4.8",
},
},
@@ -1138,9 +1138,9 @@ export const providerPresets: ProviderPreset[] = [
ANTHROPIC_BASE_URL: "https://api.therouter.ai",
ANTHROPIC_AUTH_TOKEN: "",
ANTHROPIC_API_KEY: "",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "anthropic/claude-haiku-4.5",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-4.6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "anthropic/claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "anthropic/claude-opus-4.8",
},
},
@@ -1172,10 +1172,10 @@ export const providerPresets: ProviderPreset[] = [
settingsConfig: {
env: {
ANTHROPIC_BASE_URL: "https://api.githubcopilot.com",
ANTHROPIC_MODEL: "claude-sonnet-4.6",
ANTHROPIC_MODEL: "claude-sonnet-5",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "claude-haiku-4.5",
ANTHROPIC_DEFAULT_SONNET_MODEL: "claude-sonnet-4.6",
ANTHROPIC_DEFAULT_OPUS_MODEL: "claude-sonnet-4.6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "claude-sonnet-5",
},
},
category: "third_party",
@@ -1235,7 +1235,7 @@ export const providerPresets: ProviderPreset[] = [
ANTHROPIC_AUTH_TOKEN: "",
ANTHROPIC_MODEL: "claude-opus-4-8",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "claude-haiku-4-5-20251001",
ANTHROPIC_DEFAULT_SONNET_MODEL: "claude-sonnet-4-6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "claude-opus-4-8",
},
includeCoAuthoredBy: false,
@@ -1292,7 +1292,7 @@ export const providerPresets: ProviderPreset[] = [
ANTHROPIC_MODEL: "global.anthropic.claude-opus-4-8",
ANTHROPIC_DEFAULT_HAIKU_MODEL:
"global.anthropic.claude-haiku-4-5-20251001-v1:0",
ANTHROPIC_DEFAULT_SONNET_MODEL: "global.anthropic.claude-sonnet-4-6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "global.anthropic.claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "global.anthropic.claude-opus-4-8",
CLAUDE_CODE_USE_BEDROCK: "1",
},
@@ -1330,7 +1330,7 @@ export const providerPresets: ProviderPreset[] = [
ANTHROPIC_MODEL: "global.anthropic.claude-opus-4-8",
ANTHROPIC_DEFAULT_HAIKU_MODEL:
"global.anthropic.claude-haiku-4-5-20251001-v1:0",
ANTHROPIC_DEFAULT_SONNET_MODEL: "global.anthropic.claude-sonnet-4-6",
ANTHROPIC_DEFAULT_SONNET_MODEL: "global.anthropic.claude-sonnet-5",
ANTHROPIC_DEFAULT_OPUS_MODEL: "global.anthropic.claude-opus-4-8",
CLAUDE_CODE_USE_BEDROCK: "1",
},
+20 -20
View File
@@ -424,8 +424,8 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
context_length: 1000000,
},
{
id: "anthropic/claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "anthropic/claude-sonnet-5",
name: "Claude Sonnet 5",
context_length: 1000000,
},
{
@@ -834,7 +834,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "anthropic/claude-opus-4.8", name: "Claude Opus 4.8" },
{ id: "anthropic/claude-sonnet-4.6", name: "Claude Sonnet 4.6" },
{ id: "anthropic/claude-sonnet-5", name: "Claude Sonnet 5" },
],
},
category: "aggregator",
@@ -923,7 +923,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -951,8 +951,8 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
context_length: 1000000,
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
context_length: 1000000,
},
{
@@ -1051,7 +1051,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1075,7 +1075,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5", name: "Claude Haiku 4.5" },
],
},
@@ -1091,7 +1091,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
},
},
suggestedDefaults: {
model: { default: "claude-sonnet-4-6", provider: "claudecn" },
model: { default: "claude-sonnet-5", provider: "claudecn" },
},
},
{
@@ -1105,7 +1105,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5", name: "Claude Haiku 4.5" },
],
},
@@ -1121,7 +1121,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
},
},
suggestedDefaults: {
model: { default: "claude-sonnet-4-6", provider: "runapi" },
model: { default: "claude-sonnet-5", provider: "runapi" },
},
},
{
@@ -1135,7 +1135,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1159,7 +1159,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1183,7 +1183,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1207,7 +1207,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1231,7 +1231,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1299,7 +1299,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1323,7 +1323,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1347,7 +1347,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{ id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },
],
},
@@ -1428,7 +1428,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
api_mode: "anthropic_messages",
models: [
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "claude-sonnet-5", name: "Claude Sonnet 5" },
{
id: "claude-haiku-4-5-20251001",
name: "Claude Haiku 4.5",
+70 -70
View File
@@ -116,8 +116,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "anthropic/claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
id: "anthropic/claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -137,11 +137,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "shengsuanyun/anthropic/claude-opus-4.8",
fallbacks: ["shengsuanyun/anthropic/claude-sonnet-4.6"],
fallbacks: ["shengsuanyun/anthropic/claude-sonnet-5"],
},
modelCatalog: {
"shengsuanyun/anthropic/claude-opus-4.8": { alias: "Opus" },
"shengsuanyun/anthropic/claude-sonnet-4.6": { alias: "Sonnet" },
"shengsuanyun/anthropic/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1161,8 +1161,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1181,11 +1181,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "aihubmix/claude-opus-4-8",
fallbacks: ["aihubmix/claude-sonnet-4-6"],
fallbacks: ["aihubmix/claude-sonnet-5"],
},
modelCatalog: {
"aihubmix/claude-opus-4-8": { alias: "Opus" },
"aihubmix/claude-sonnet-4-6": { alias: "Sonnet" },
"aihubmix/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1204,8 +1204,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
contextWindow: 1000000,
},
{
id: "anthropic/claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
id: "anthropic/claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
},
],
@@ -1222,11 +1222,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "cherryin/anthropic/claude-opus-4.8",
fallbacks: ["cherryin/anthropic/claude-sonnet-4.6"],
fallbacks: ["cherryin/anthropic/claude-sonnet-5"],
},
modelCatalog: {
"cherryin/anthropic/claude-opus-4.8": { alias: "Opus" },
"cherryin/anthropic/claude-sonnet-4.6": { alias: "Sonnet" },
"cherryin/anthropic/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1246,8 +1246,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1266,11 +1266,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "dmxapi/claude-opus-4-8",
fallbacks: ["dmxapi/claude-sonnet-4-6"],
fallbacks: ["dmxapi/claude-sonnet-5"],
},
modelCatalog: {
"dmxapi/claude-opus-4-8": { alias: "Opus" },
"dmxapi/claude-sonnet-4-6": { alias: "Sonnet" },
"dmxapi/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1289,8 +1289,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
contextWindow: 1000000,
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
},
{
@@ -1313,11 +1313,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "claudecn/claude-sonnet-4-6",
primary: "claudecn/claude-sonnet-5",
},
modelCatalog: {
"claudecn/claude-opus-4-8": { alias: "Opus" },
"claudecn/claude-sonnet-4-6": { alias: "Sonnet" },
"claudecn/claude-sonnet-5": { alias: "Sonnet" },
"claudecn/claude-haiku-4-5": { alias: "Haiku" },
},
},
@@ -1337,8 +1337,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
contextWindow: 1000000,
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
},
{
@@ -1361,11 +1361,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "runapi/claude-sonnet-4-6",
primary: "runapi/claude-sonnet-5",
},
modelCatalog: {
"runapi/claude-opus-4-8": { alias: "Opus" },
"runapi/claude-sonnet-4-6": { alias: "Sonnet" },
"runapi/claude-sonnet-5": { alias: "Sonnet" },
"runapi/claude-haiku-4-5": { alias: "Haiku" },
},
},
@@ -1386,8 +1386,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "anthropic/claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
id: "anthropic/claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1406,11 +1406,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "openrouter/anthropic/claude-opus-4.8",
fallbacks: ["openrouter/anthropic/claude-sonnet-4.6"],
fallbacks: ["openrouter/anthropic/claude-sonnet-5"],
},
modelCatalog: {
"openrouter/anthropic/claude-opus-4.8": { alias: "Opus" },
"openrouter/anthropic/claude-sonnet-4.6": { alias: "Sonnet" },
"openrouter/anthropic/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1424,8 +1424,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
api: "openai-completions",
models: [
{
id: "anthropic/claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
id: "anthropic/claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
},
@@ -1465,14 +1465,14 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "therouter/anthropic/claude-sonnet-4.6",
primary: "therouter/anthropic/claude-sonnet-5",
fallbacks: [
"therouter/openai/gpt-5.2",
"therouter/google/gemini-3.5-flash",
],
},
modelCatalog: {
"therouter/anthropic/claude-sonnet-4.6": { alias: "Sonnet" },
"therouter/anthropic/claude-sonnet-5": { alias: "Sonnet" },
"therouter/openai/gpt-5.2": { alias: "GPT-5.2" },
"therouter/google/gemini-3.5-flash": { alias: "Gemini Flash" },
"therouter/openai/gpt-5.3-codex": { alias: "Codex" },
@@ -1672,8 +1672,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "claude-sonnet-4-6",
id: "claude-sonnet-5",
name: "claude-sonnet-5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1697,11 +1697,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "pipellm/claude-opus-4-8",
fallbacks: ["pipellm/claude-sonnet-4-6"],
fallbacks: ["pipellm/claude-sonnet-5"],
},
modelCatalog: {
"pipellm/claude-opus-4-8": { alias: "Opus" },
"pipellm/claude-sonnet-4-6": { alias: "Sonnet" },
"pipellm/claude-sonnet-5": { alias: "Sonnet" },
"pipellm/claude-haiku-4-5-20251001": { alias: "Haiku" },
},
},
@@ -1724,8 +1724,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1745,11 +1745,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "packycode/claude-opus-4-8",
fallbacks: ["packycode/claude-sonnet-4-6"],
fallbacks: ["packycode/claude-sonnet-5"],
},
modelCatalog: {
"packycode/claude-opus-4-8": { alias: "Opus" },
"packycode/claude-sonnet-4-6": { alias: "Sonnet" },
"packycode/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1768,8 +1768,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
contextWindow: 1000000,
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
},
{
@@ -1793,11 +1793,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "apikeyfun/claude-opus-4-8",
fallbacks: ["apikeyfun/claude-sonnet-4-6"],
fallbacks: ["apikeyfun/claude-sonnet-5"],
},
modelCatalog: {
"apikeyfun/claude-opus-4-8": { alias: "Opus" },
"apikeyfun/claude-sonnet-4-6": { alias: "Sonnet" },
"apikeyfun/claude-sonnet-5": { alias: "Sonnet" },
"apikeyfun/claude-haiku-4-5": { alias: "Haiku" },
},
},
@@ -1912,8 +1912,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1934,11 +1934,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "cubence/claude-opus-4-8",
fallbacks: ["cubence/claude-sonnet-4-6"],
fallbacks: ["cubence/claude-sonnet-5"],
},
modelCatalog: {
"cubence/claude-opus-4-8": { alias: "Opus" },
"cubence/claude-sonnet-4-6": { alias: "Sonnet" },
"cubence/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -1958,8 +1958,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -1980,11 +1980,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "aigocode/claude-opus-4-8",
fallbacks: ["aigocode/claude-sonnet-4-6"],
fallbacks: ["aigocode/claude-sonnet-5"],
},
modelCatalog: {
"aigocode/claude-opus-4-8": { alias: "Opus" },
"aigocode/claude-sonnet-4-6": { alias: "Sonnet" },
"aigocode/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -2004,8 +2004,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -2026,11 +2026,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "rightcode/claude-opus-4-8",
fallbacks: ["rightcode/claude-sonnet-4-6"],
fallbacks: ["rightcode/claude-sonnet-5"],
},
modelCatalog: {
"rightcode/claude-opus-4-8": { alias: "Opus" },
"rightcode/claude-sonnet-4-6": { alias: "Sonnet" },
"rightcode/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -2050,8 +2050,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -2072,11 +2072,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "aicodemirror/claude-opus-4-8",
fallbacks: ["aicodemirror/claude-sonnet-4-6"],
fallbacks: ["aicodemirror/claude-sonnet-5"],
},
modelCatalog: {
"aicodemirror/claude-opus-4-8": { alias: "Opus" },
"aicodemirror/claude-sonnet-4-6": { alias: "Sonnet" },
"aicodemirror/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -2096,8 +2096,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -2118,11 +2118,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "crazyrouter/claude-opus-4-8",
fallbacks: ["crazyrouter/claude-sonnet-4-6"],
fallbacks: ["crazyrouter/claude-sonnet-5"],
},
modelCatalog: {
"crazyrouter/claude-opus-4-8": { alias: "Opus" },
"crazyrouter/claude-sonnet-4-6": { alias: "Sonnet" },
"crazyrouter/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -2142,8 +2142,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25 },
},
{
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15 },
},
@@ -2164,11 +2164,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
suggestedDefaults: {
model: {
primary: "sssaicode/claude-opus-4-8",
fallbacks: ["sssaicode/claude-sonnet-4-6"],
fallbacks: ["sssaicode/claude-sonnet-5"],
},
modelCatalog: {
"sssaicode/claude-opus-4-8": { alias: "Opus" },
"sssaicode/claude-sonnet-4-6": { alias: "Sonnet" },
"sssaicode/claude-sonnet-5": { alias: "Sonnet" },
},
},
},
@@ -2407,8 +2407,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
},
{
id: "anthropic.claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "anthropic.claude-sonnet-5",
name: "Claude Sonnet 5",
contextWindow: 1000000,
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
},
+22 -22
View File
@@ -156,8 +156,8 @@ export const OPENCODE_PRESET_MODEL_VARIANTS: Record<
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
},
{
id: "global.anthropic.claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
id: "global.anthropic.claude-sonnet-5",
name: "Claude Sonnet 5",
contextLimit: 1000000,
outputLimit: 64000,
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
@@ -294,7 +294,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
"anthropic/claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"anthropic/claude-sonnet-5": { name: "Claude Sonnet 5" },
},
},
category: "aggregator",
@@ -1229,7 +1229,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1257,7 +1257,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"anthropic/claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"anthropic/claude-sonnet-5": { name: "Claude Sonnet 5" },
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
},
},
@@ -1284,7 +1284,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1312,7 +1312,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"anthropic/claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"anthropic/claude-sonnet-5": { name: "Claude Sonnet 5" },
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
},
},
@@ -1340,7 +1340,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"anthropic/claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"anthropic/claude-sonnet-5": { name: "Claude Sonnet 5" },
"openai/gpt-5.3-codex": { name: "GPT-5.3 Codex" },
"openai/gpt-5.2": { name: "GPT-5.2" },
"google/gemini-3.5-flash": {
@@ -1426,7 +1426,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-opus-4-8": { name: "claude-opus-4-8" },
"claude-sonnet-4-6": { name: "claude-sonnet-4-6" },
"claude-sonnet-5": { name: "claude-sonnet-5" },
"claude-haiku-4-5-20251001": { name: "claude-haiku-4-5-20251001" },
},
},
@@ -1454,7 +1454,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1484,7 +1484,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-haiku-4-5": { name: "Claude Haiku 4.5" },
},
},
@@ -1595,7 +1595,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1625,7 +1625,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1684,7 +1684,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4.8": { name: "Claude Opus 4.8" },
},
},
@@ -1714,7 +1714,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-haiku-4-5": { name: "Claude Haiku 4.5" },
},
@@ -1744,7 +1744,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-haiku-4-5": { name: "Claude Haiku 4.5" },
},
@@ -1774,7 +1774,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1804,7 +1804,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
@@ -1835,7 +1835,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
},
},
category: "third_party",
@@ -1865,7 +1865,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
},
},
category: "third_party",
@@ -1925,8 +1925,8 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"global.anthropic.claude-opus-4-8": { name: "Claude Opus 4.8" },
"global.anthropic.claude-sonnet-4-6": {
name: "Claude Sonnet 4.6",
"global.anthropic.claude-sonnet-5": {
name: "Claude Sonnet 5",
},
"global.anthropic.claude-haiku-4-5-20251001-v1:0": {
name: "Claude Haiku 4.5",
+2 -2
View File
@@ -41,9 +41,9 @@ export interface UniversalProviderPreset {
*/
const NEWAPI_DEFAULT_MODELS: UniversalProviderModels = {
claude: {
model: "claude-sonnet-4-6",
model: "claude-sonnet-5",
haikuModel: "claude-haiku-4-5-20251001",
sonnetModel: "claude-sonnet-4-6",
sonnetModel: "claude-sonnet-5",
opusModel: "claude-opus-4-8",
},
codex: {