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

Commit 2541449

Browse files
PeterDaveHellohannesrudolphRobot Tom
authored
Add OpenAI's GPT-5.3-Codex model support (#11728)
* Add OpenAI's GPT-5.3-Codex model support Reference: - https://openai.com/index/introducing-gpt-5-3-codex/ - https://developers.openai.com/api/docs/models/gpt-5.3-codex * chore: add changeset for GPT-5.3-Codex support * fix: rename CodeAccordian to CodeAccordion in FileChangesPanel --------- Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> Co-authored-by: Robot Tom <bot@example.com>
1 parent d0e72b7 commit 2541449

5 files changed

Lines changed: 39 additions & 3 deletions

File tree

.changeset/gpt-5-3-codex.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"roo-cline": patch
3+
---
4+
5+
Add OpenAI's GPT-5.3-Codex model support

packages/types/src/providers/openai.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,24 @@ export const openAiNativeModels = {
6363
description:
6464
"GPT-5.2 Codex: Our most intelligent coding model optimized for long-horizon, agentic coding tasks",
6565
},
66+
"gpt-5.3-codex": {
67+
maxTokens: 128000,
68+
contextWindow: 400000,
69+
includedTools: ["apply_patch"],
70+
excludedTools: ["apply_diff", "write_to_file"],
71+
supportsImages: true,
72+
supportsPromptCache: true,
73+
promptCacheRetention: "24h",
74+
supportsReasoningEffort: ["low", "medium", "high", "xhigh"],
75+
reasoningEffort: "medium",
76+
inputPrice: 1.75,
77+
outputPrice: 14.0,
78+
cacheReadsPrice: 0.175,
79+
supportsTemperature: false,
80+
tiers: [{ name: "priority", contextWindow: 400000, inputPrice: 3.5, outputPrice: 28.0, cacheReadsPrice: 0.35 }],
81+
description:
82+
"GPT-5.3 Codex: Our most intelligent coding model optimized for long-horizon, agentic coding tasks",
83+
},
6684
"gpt-5.2-chat-latest": {
6785
maxTokens: 16_384,
6886
contextWindow: 128_000,

src/api/providers/__tests__/openai-native.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,19 @@ describe("OpenAiNativeHandler", () => {
236236
expect(modelInfo.info.contextWindow).toBe(1047576)
237237
})
238238

239+
it("should return GPT-5.3 Codex model info when selected", () => {
240+
const codexHandler = new OpenAiNativeHandler({
241+
...mockOptions,
242+
apiModelId: "gpt-5.3-codex",
243+
})
244+
245+
const modelInfo = codexHandler.getModel()
246+
expect(modelInfo.id).toBe("gpt-5.3-codex")
247+
expect(modelInfo.info.maxTokens).toBe(128000)
248+
expect(modelInfo.info.contextWindow).toBe(400000)
249+
expect(modelInfo.info.supportsReasoningEffort).toEqual(["low", "medium", "high", "xhigh"])
250+
})
251+
239252
it("should handle undefined model ID", () => {
240253
const handlerWithoutModel = new OpenAiNativeHandler({
241254
openAiNativeApiKey: "test-api-key",

webview-ui/src/__tests__/FileChangesPanel.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ vi.mock("react-i18next", () => ({
2525
}))
2626

2727
// Lightweight mock so we don't pull in CodeBlock/DiffView
28-
vi.mock("@src/components/common/CodeAccordian", () => ({
28+
vi.mock("@src/components/common/CodeAccordion", () => ({
2929
default: ({
3030
path,
3131
isExpanded,

webview-ui/src/components/chat/FileChangesPanel.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { cn } from "@/lib/utils"
1010
import { vscode } from "@src/utils/vscode"
1111

1212
import { fileChangesFromMessages, type FileChangeEntry } from "./utils/fileChangesFromMessages"
13-
import CodeAccordian from "../common/CodeAccordian"
13+
import CodeAccordion from "../common/CodeAccordion"
1414

1515
interface FileChangesPanelProps {
1616
clineMessages: ClineMessage[] | undefined
@@ -151,7 +151,7 @@ const FileChangesPanel = memo(({ clineMessages, className }: FileChangesPanelPro
151151
const isExpanded = expandedPaths.has(path)
152152
return (
153153
<div key={path} className="rounded border border-vscode-panel-border overflow-hidden">
154-
<CodeAccordian
154+
<CodeAccordion
155155
path={path}
156156
code={displayDiff}
157157
language="diff"

0 commit comments

Comments
 (0)