diff --git a/packages/coding-agent/docs/sdk.md b/packages/coding-agent/docs/sdk.md index f1e3885..be56106 100644 --- a/packages/coding-agent/docs/sdk.md +++ b/packages/coding-agent/docs/sdk.md @@ -318,7 +318,7 @@ const authStorage = AuthStorage.create(); const modelRegistry = new ModelRegistry(authStorage); // Find specific built-in model (doesn't check if API key exists) -const opus = getModel("anthropic", "claude-opus-4-5"); +const opus = getModel("anthropic", "claude-opus-4-6"); if (!opus) throw new Error("Model not found"); // Find any model by provider/id, including custom models from models.json @@ -841,7 +841,7 @@ const statusTool: ToolDefinition = { }), }; -const model = getModel("anthropic", "claude-opus-4-5"); +const model = getModel("anthropic", "claude-opus-4-6"); if (!model) throw new Error("Model not found"); // In-memory settings with overrides diff --git a/packages/coding-agent/src/core/model-resolver.ts b/packages/coding-agent/src/core/model-resolver.ts index 55c656b..0279484 100644 --- a/packages/coding-agent/src/core/model-resolver.ts +++ b/packages/coding-agent/src/core/model-resolver.ts @@ -21,7 +21,7 @@ export const defaultModelPerProvider: Record = { anthropic: "claude-opus-4-6", openai: "gpt-5.4", "azure-openai-responses": "gpt-5.2", - "openai-codex": "gpt-5.4", + "openai-codex": "gpt-5.3-codex", google: "gemini-2.5-pro", "google-gemini-cli": "gemini-2.5-pro", "google-antigravity": "gemini-3.1-pro-high", diff --git a/packages/coding-agent/src/core/sdk.ts b/packages/coding-agent/src/core/sdk.ts index c3c5068..c0cd0e4 100644 --- a/packages/coding-agent/src/core/sdk.ts +++ b/packages/coding-agent/src/core/sdk.ts @@ -151,7 +151,7 @@ function getDefaultAgentDir(): string { * // With explicit model * import { getModel } from '@mariozechner/pi-ai'; * const { session } = await createAgentSession({ - * model: getModel('anthropic', 'claude-opus-4-5'), + * model: getModel('anthropic', 'claude-opus-4-6'), * thinkingLevel: 'high', * }); * diff --git a/packages/coding-agent/test/model-resolver.test.ts b/packages/coding-agent/test/model-resolver.test.ts index 2302d40..db13769 100644 --- a/packages/coding-agent/test/model-resolver.test.ts +++ b/packages/coding-agent/test/model-resolver.test.ts @@ -395,9 +395,12 @@ describe("resolveCliModel", () => { }); describe("default model selection", () => { - test("openai defaults are gpt-5.4", () => { + test("openai default stays on gpt-5.4", () => { expect(defaultModelPerProvider.openai).toBe("gpt-5.4"); - expect(defaultModelPerProvider["openai-codex"]).toBe("gpt-5.4"); + }); + + test("openai-codex default is gpt-5.3-codex", () => { + expect(defaultModelPerProvider["openai-codex"]).toBe("gpt-5.3-codex"); }); test("ai-gateway default is opus 4.6", () => { diff --git a/packages/coding-agent/test/settings-manager.test.ts b/packages/coding-agent/test/settings-manager.test.ts index e6ef775..4aef2e8 100644 --- a/packages/coding-agent/test/settings-manager.test.ts +++ b/packages/coding-agent/test/settings-manager.test.ts @@ -40,7 +40,7 @@ describe("SettingsManager", () => { // Simulate user editing settings.json externally to add enabledModels const currentSettings = JSON.parse(readFileSync(settingsPath, "utf-8")); - currentSettings.enabledModels = ["claude-opus-4-5", "gpt-5.2-codex"]; + currentSettings.enabledModels = ["claude-opus-4-6", "gpt-5.3-codex"]; writeFileSync(settingsPath, JSON.stringify(currentSettings, null, 2)); // User changes thinking level via Shift+Tab @@ -50,8 +50,8 @@ describe("SettingsManager", () => { // Verify enabledModels is preserved const savedSettings = JSON.parse(readFileSync(settingsPath, "utf-8")); expect(savedSettings.enabledModels).toEqual([ - "claude-opus-4-5", - "gpt-5.2-codex", + "claude-opus-4-6", + "gpt-5.3-codex", ]); expect(savedSettings.defaultThinkingLevel).toBe("high"); expect(savedSettings.theme).toBe("dark");