-
Notifications
You must be signed in to change notification settings - Fork 577
feat: add Claude Opus 4.6 and GPT-5.3-Codex model support #757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
3b361cb
835ffe3
f974534
220c8e4
09507bf
8ed1356
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,27 +18,39 @@ const MAX_OUTPUT_16K = 16000; | |
| */ | ||
| export const CODEX_MODELS: ModelDefinition[] = [ | ||
| // ========== Recommended Codex Models ========== | ||
| { | ||
| id: CODEX_MODEL_MAP.gpt53Codex, | ||
| name: 'GPT-5.3-Codex', | ||
| modelString: CODEX_MODEL_MAP.gpt53Codex, | ||
| provider: 'openai', | ||
| description: 'Latest frontier agentic coding model.', | ||
| contextWindow: CONTEXT_WINDOW_256K, | ||
| maxOutputTokens: MAX_OUTPUT_32K, | ||
| supportsVision: true, | ||
| supportsTools: true, | ||
| tier: 'premium' as const, | ||
| default: true, | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This correctly sets
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed — updated |
||
| hasReasoning: true, | ||
| }, | ||
| { | ||
| id: CODEX_MODEL_MAP.gpt52Codex, | ||
| name: 'GPT-5.2-Codex', | ||
| modelString: CODEX_MODEL_MAP.gpt52Codex, | ||
| provider: 'openai', | ||
| description: | ||
| 'Most advanced agentic coding model for complex software engineering (default for ChatGPT users).', | ||
| description: 'Frontier agentic coding model.', | ||
| contextWindow: CONTEXT_WINDOW_256K, | ||
| maxOutputTokens: MAX_OUTPUT_32K, | ||
| supportsVision: true, | ||
| supportsTools: true, | ||
| tier: 'premium' as const, | ||
| default: true, | ||
| hasReasoning: true, | ||
| }, | ||
| { | ||
| id: CODEX_MODEL_MAP.gpt51CodexMax, | ||
| name: 'GPT-5.1-Codex-Max', | ||
| modelString: CODEX_MODEL_MAP.gpt51CodexMax, | ||
| provider: 'openai', | ||
| description: 'Optimized for long-horizon, agentic coding tasks in Codex.', | ||
| description: 'Codex-optimized flagship for deep and fast reasoning.', | ||
| contextWindow: CONTEXT_WINDOW_256K, | ||
| maxOutputTokens: MAX_OUTPUT_32K, | ||
| supportsVision: true, | ||
|
|
@@ -51,7 +63,7 @@ export const CODEX_MODELS: ModelDefinition[] = [ | |
| name: 'GPT-5.1-Codex-Mini', | ||
| modelString: CODEX_MODEL_MAP.gpt51CodexMini, | ||
| provider: 'openai', | ||
| description: 'Smaller, more cost-effective version for faster workflows.', | ||
| description: 'Optimized for codex. Cheaper, faster, but less capable.', | ||
| contextWindow: CONTEXT_WINDOW_128K, | ||
| maxOutputTokens: MAX_OUTPUT_16K, | ||
| supportsVision: true, | ||
|
|
@@ -66,7 +78,7 @@ export const CODEX_MODELS: ModelDefinition[] = [ | |
| name: 'GPT-5.2', | ||
| modelString: CODEX_MODEL_MAP.gpt52, | ||
| provider: 'openai', | ||
| description: 'Best general agentic model for tasks across industries and domains.', | ||
| description: 'Latest frontier model with improvements across knowledge, reasoning and coding.', | ||
| contextWindow: CONTEXT_WINDOW_256K, | ||
| maxOutputTokens: MAX_OUTPUT_32K, | ||
| supportsVision: true, | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Warning
Major - Logic: Adaptive and none thinking levels produce identical SDK configuration
When
thinkingLevelis 'adaptive',buildThinkingOptionsreturns an empty object{}— the same as when thinking is disabled ('none'). This means 'adaptive' and 'none' produce identical SDK options. The PR description says adaptive thinking means 'just don't set maxThinkingTokens - model uses adaptive by default', which aligns with the implementation. However, there's no way for the SDK to distinguish between 'thinking off' and 'adaptive thinking'. If the SDK requires some indication (e.g., a different parameter) to enable adaptive thinking vs. simply disabling thinking, this could be a bug. Verify with the Claude Agent SDK 0.2.32 documentation that omitting maxThinkingTokens truly enables adaptive thinking rather than disabling thinking entirely.Problematic code:
Suggested fix:
// Verify that the Claude Agent SDK 0.2.32 uses adaptive thinking by default // when maxThinkingTokens is omitted. If the SDK needs an explicit signal, // this should be updated. For example, if there's a `thinking` option: // // if (thinkingLevel === 'adaptive') { // return { thinking: 'adaptive' }; // or whatever the SDK expects // }There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. Verified against the Claude Agent SDK docs —
maxThinkingTokensdefaults toundefined. For Opus 4.6, omitting it enables adaptive thinking (the model's default behavior). For other models, omitting it means no thinking.The behavior is intentionally the same for both
'none'and'adaptive'returning{}— the difference is at the UI level: Opus 4.6 only shows 'None' and 'Adaptive' options, so users can't accidentally set manual thinking budgets on a model that doesn't support them. When a user picks 'Adaptive', the empty return signals 'use the model default' which IS adaptive thinking for Opus 4.6.That said, the
'none'case for Opus 4.6 does mean we can't explicitly disable thinking for that model through the SDK. This is a known SDK limitation — there's nothinking: falseoption. We could setmaxThinkingTokens: 0but it's unclear if the SDK supports that. Leaving as-is for now since the UI guides users correctly.