Skip to content
This repository was archived by the owner on Aug 6, 2026. It is now read-only.

Commit bf27356

Browse files
authored
feat(models): add Claude Opus 5 to available models (#3796)
1 parent f4c0f07 commit bf27356

8 files changed

Lines changed: 32 additions & 1 deletion

File tree

‎apps/mobile/src/features/tasks/composer/options.ts‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@ export const MODELS: ModelOption[] = [
4242
description: "Newest, most capable",
4343
supportsReasoning: true,
4444
},
45+
{
46+
value: "claude-opus-5",
47+
label: "Claude Opus 5",
48+
description: "Most capable, slower",
49+
supportsReasoning: true,
50+
},
4551
{
4652
value: "claude-opus-4-8",
4753
label: "Claude Opus 4.8",
48-
description: "Most capable, slower",
54+
description: "Previous Opus generation",
4955
supportsReasoning: true,
5056
},
5157
{

‎packages/agent/src/adapters/claude/session/models.test.ts‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ describe("toSdkModelId", () => {
3030
expect(toSdkModelId("claude-sonnet-5")).toBe("claude-sonnet-5");
3131
});
3232

33+
it("passes claude-opus-5 through unchanged (no SDK alias)", () => {
34+
expect(toSdkModelId("claude-opus-5")).toBe("claude-opus-5");
35+
});
36+
3337
it("passes deprecated gateway IDs through unchanged", () => {
3438
expect(toSdkModelId("claude-opus-4-6")).toBe("claude-opus-4-6");
3539
expect(toSdkModelId("claude-sonnet-4-5")).toBe("claude-sonnet-4-5");
@@ -67,6 +71,13 @@ describe("model capability flags", () => {
6771
xhighEffort: true,
6872
mcpInjection: true,
6973
},
74+
{
75+
modelId: "claude-opus-5",
76+
oneMContext: true,
77+
effort: true,
78+
xhighEffort: true,
79+
mcpInjection: true,
80+
},
7081
{
7182
modelId: "claude-sonnet-4-6",
7283
oneMContext: true,
@@ -123,6 +134,7 @@ describe("resolveEffortForModel", () => {
123134
["claude-fable-5", undefined, "high"],
124135
["claude-opus-4-8", undefined, "high"],
125136
["claude-opus-4-7", undefined, "high"],
137+
["claude-opus-5", undefined, "high"],
126138
["claude-sonnet-4-6", undefined, "high"],
127139
["claude-sonnet-5", undefined, "high"],
128140
["@cf/zai-org/glm-5.2", undefined, "high"],

‎packages/agent/src/adapters/claude/session/models.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export function toSdkModelId(modelId: string): string {
2424
const MODELS_WITH_1M_CONTEXT = new Set([
2525
"claude-opus-4-7",
2626
"claude-opus-4-8",
27+
"claude-opus-5",
2728
"claude-sonnet-4-6",
2829
"claude-sonnet-5",
2930
"claude-fable-5",
@@ -46,6 +47,7 @@ const EXTENDED_EFFORT_LEVELS: readonly EffortLevel[] = [
4647
const MODEL_EFFORT_LEVELS: Readonly<Record<string, readonly EffortLevel[]>> = {
4748
"claude-opus-4-7": EXTENDED_EFFORT_LEVELS,
4849
"claude-opus-4-8": EXTENDED_EFFORT_LEVELS,
50+
"claude-opus-5": EXTENDED_EFFORT_LEVELS,
4951
"claude-sonnet-4-6": STANDARD_EFFORT_LEVELS,
5052
"claude-sonnet-5": EXTENDED_EFFORT_LEVELS,
5153
"claude-fable-5": EXTENDED_EFFORT_LEVELS,

‎packages/agent/src/gateway-models.test.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ describe("getClaudeModelRecency", () => {
111111
["claude-sonnet-4-6", 4006],
112112
["claude-opus-4-7", 4007],
113113
["claude-opus-4-8", 4008],
114+
["claude-opus-5", 5000],
114115
["claude-sonnet-5", 5000],
115116
["claude-fable-5", 5000],
116117
])("ranks %s by its embedded version (%i)", (modelId, rank) => {

‎packages/harness/src/extensions/posthog-provider/models.ts‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,12 @@ function toModelConfig(
124124
}
125125

126126
const FALLBACK_GATEWAY_MODELS: GatewayModel[] = [
127+
{
128+
id: "claude-opus-5",
129+
owned_by: "anthropic",
130+
context_window: 1000000,
131+
supports_vision: true,
132+
},
127133
{
128134
id: "claude-opus-4-8",
129135
owned_by: "anthropic",

‎packages/ui/src/features/loops/loopModels.test.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ describe("loopModelOptions", () => {
128128
"claude-sonnet-4-6",
129129
"claude-opus-4-7",
130130
"claude-opus-4-8",
131+
"claude-opus-5",
131132
"claude-sonnet-5",
132133
"claude-fable-5",
133134
"@cf/zai-org/glm-5.2",
@@ -153,6 +154,7 @@ describe("loopModelOptions", () => {
153154
"claude-sonnet-4-6",
154155
"claude-opus-4-7",
155156
"claude-opus-4-8",
157+
"claude-opus-5",
156158
"claude-sonnet-5",
157159
"claude-fable-5",
158160
],

‎packages/ui/src/features/loops/loopModels.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const FALLBACK_MODEL_OPTIONS: Record<
3636
{ value: "claude-sonnet-4-6", label: "Claude Sonnet 4.6" },
3737
{ value: "claude-opus-4-7", label: "Claude Opus 4.7" },
3838
{ value: "claude-opus-4-8", label: "Claude Opus 4.8" },
39+
{ value: "claude-opus-5", label: "Claude Opus 5" },
3940
{ value: "claude-sonnet-5", label: "Claude Sonnet 5" },
4041
{ value: "claude-fable-5", label: "Claude Fable 5" },
4142
{ value: "@cf/zai-org/glm-5.2", label: "GLM-5.2" },

‎packages/ui/src/features/message-editor/components/PromptInput.stories.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const mockModelOption = {
2424
name: "Recommended",
2525
options: [
2626
{ value: "gpt-5.5", name: "gpt-5.5" },
27+
{ value: "claude-opus-5", name: "Claude Opus 5" },
2728
{ value: "claude-sonnet-5", name: "Claude Sonnet 5" },
2829
{ value: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
2930
],

0 commit comments

Comments
 (0)