Upgrade default Claude Opus model to 4.8

Bump the default Opus route/model from claude-opus-4-7 to claude-opus-4-8
across provider presets (claude, claudeDesktop, hermes, openclaw, opencode,
universal), i18n locales (zh/en/ja/zh-TW), pricing seed data, and the
user-manual docs.

- Add claude-opus-4-8 pricing row ($5/$25/$0.50/$6.25); keep the 4-7 row
  for historical usage stats (seeded via INSERT OR IGNORE).
- Claude Desktop proxy: accept bidirectional opus 4-7 <-> 4-8 route alias
  during rollout so previously saved routes keep resolving.
- thinking_optimizer: route opus-4-8 through adaptive thinking and normalize
  dotted model ids (also fixes dotted 4-6/4-7 falling back to legacy).
- usage_stats: normalize Bedrock/Vertex/aggregator opus-4-8 ids to base
  pricing.

Also merge role:"system" messages into the Gemini systemInstruction in the
Anthropic->Gemini transform.
This commit is contained in:
Jason
2026-05-29 12:09:33 +08:00
parent 554e3b4875
commit 0877b9e35d
27 changed files with 386 additions and 221 deletions
+21 -21
View File
@@ -166,8 +166,8 @@ export const OPENCODE_PRESET_MODEL_VARIANTS: Record<
],
"@ai-sdk/amazon-bedrock": [
{
id: "global.anthropic.claude-opus-4-7",
name: "Claude Opus 4.7",
id: "global.anthropic.claude-opus-4-8",
name: "Claude Opus 4.8",
contextLimit: 1000000,
outputLimit: 128000,
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
@@ -234,8 +234,8 @@ export const OPENCODE_PRESET_MODEL_VARIANTS: Record<
},
},
{
id: "claude-opus-4-7",
name: "Claude Opus 4.7",
id: "claude-opus-4-8",
name: "Claude Opus 4.8",
contextLimit: 1000000,
outputLimit: 128000,
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
@@ -310,7 +310,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"anthropic/claude-opus-4.7": { name: "Claude Opus 4.7" },
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
"anthropic/claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
},
},
@@ -993,7 +993,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "aggregator",
@@ -1021,7 +1021,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "aggregator",
@@ -1049,7 +1049,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"anthropic/claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"anthropic/claude-opus-4.7": { name: "Claude Opus 4.7" },
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
},
},
category: "aggregator",
@@ -1161,7 +1161,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-opus-4-7": { name: "claude-opus-4-7" },
"claude-opus-4-8": { name: "claude-opus-4-8" },
"claude-sonnet-4-6": { name: "claude-sonnet-4-6" },
"claude-haiku-4-5-20251001": { name: "claude-haiku-4-5-20251001" },
},
@@ -1191,7 +1191,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "third_party",
@@ -1219,7 +1219,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-haiku-4-5": { name: "Claude Haiku 4.5" },
},
@@ -1334,7 +1334,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "third_party",
@@ -1364,7 +1364,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "third_party",
@@ -1423,7 +1423,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4.6": { name: "Claude Sonnet 4.6" },
"claude-opus-4.7": { name: "Claude Opus 4.7" },
"claude-opus-4.8": { name: "Claude Opus 4.8" },
},
},
category: "third_party",
@@ -1453,7 +1453,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-haiku-4-5": { name: "Claude Haiku 4.5" },
},
},
@@ -1483,7 +1483,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-haiku-4-5": { name: "Claude Haiku 4.5" },
},
},
@@ -1513,7 +1513,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "third_party",
@@ -1543,7 +1543,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
models: {
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "third_party",
@@ -1572,7 +1572,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
},
},
@@ -1602,7 +1602,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"claude-opus-4-7": { name: "Claude Opus 4.7" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
"claude-sonnet-4-6": { name: "Claude Sonnet 4.6" },
},
},
@@ -1690,7 +1690,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
setCacheKey: true,
},
models: {
"global.anthropic.claude-opus-4-7": { name: "Claude Opus 4.7" },
"global.anthropic.claude-opus-4-8": { name: "Claude Opus 4.8" },
"global.anthropic.claude-sonnet-4-6": {
name: "Claude Sonnet 4.6",
},