Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/browser/constants.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { BrowserModelStrategy } from "./types.js";

export const CHATGPT_URL = "https://chatgpt.com/";
export const DEFAULT_MODEL_TARGET = "GPT-5.4 Pro";
export const DEFAULT_MODEL_TARGET = "Extended Pro";
export const DEFAULT_MODEL_STRATEGY: BrowserModelStrategy = "select";
export const COOKIE_URLS = [
"https://chatgpt.com",
Expand Down
8 changes: 4 additions & 4 deletions src/cli/browserConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ const DEFAULT_CHROME_PROFILE = "Default";
// The browser label is passed to the model picker which fuzzy-matches against ChatGPT's UI.
const BROWSER_MODEL_LABELS: [ModelName, string][] = [
// Most specific first (e.g., "gpt-5.2-thinking" before "gpt-5.2")
["gpt-5.4-pro", "GPT-5.4 Pro"],
["gpt-5.4-pro", "Extended Pro"],
["gpt-5.2-thinking", "GPT-5.2 Thinking"],
["gpt-5.2-instant", "GPT-5.2 Instant"],
["gpt-5.2-pro", "GPT-5.4 Pro"],
["gpt-5.1-pro", "GPT-5.4 Pro"],
["gpt-5-pro", "GPT-5.4 Pro"],
["gpt-5.2-pro", "Extended Pro"],
["gpt-5.1-pro", "Extended Pro"],
["gpt-5-pro", "Extended Pro"],
// Base models last (least specific)
["gpt-5.4", "Thinking 5.4"],
["gpt-5.2", "GPT-5.2"], // Selects "Auto" in ChatGPT UI
Expand Down
14 changes: 7 additions & 7 deletions tests/cli/browserConfig.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ describe("buildBrowserConfig", () => {
headless: undefined,
keepBrowser: undefined,
hideWindow: undefined,
desiredModel: "GPT-5.4 Pro",
desiredModel: "Extended Pro",
debug: undefined,
allowCookieErrors: true,
});
Expand Down Expand Up @@ -76,7 +76,7 @@ describe("buildBrowserConfig", () => {
model: "gpt-5.2-pro",
browserModelLabel: "Instant",
});
expect(config.desiredModel).toBe("GPT-5.4 Pro");
expect(config.desiredModel).toBe("Extended Pro");
});

test("falls back to canonical label when override matches base model", async () => {
Expand Down Expand Up @@ -200,11 +200,11 @@ describe("buildBrowserConfig", () => {

describe("resolveBrowserModelLabel", () => {
test("returns canonical ChatGPT label when CLI value matches API model", () => {
expect(resolveBrowserModelLabel("gpt-5.4-pro", "gpt-5.4-pro")).toBe("GPT-5.4 Pro");
expect(resolveBrowserModelLabel("gpt-5.4-pro", "gpt-5.4-pro")).toBe("Extended Pro");
expect(resolveBrowserModelLabel("gpt-5.4", "gpt-5.4")).toBe("Thinking 5.4");
expect(resolveBrowserModelLabel("gpt-5-pro", "gpt-5-pro")).toBe("GPT-5.4 Pro");
expect(resolveBrowserModelLabel("gpt-5.2-pro", "gpt-5.2-pro")).toBe("GPT-5.4 Pro");
expect(resolveBrowserModelLabel("gpt-5.1-pro", "gpt-5.1-pro")).toBe("GPT-5.4 Pro");
expect(resolveBrowserModelLabel("gpt-5-pro", "gpt-5-pro")).toBe("Extended Pro");
expect(resolveBrowserModelLabel("gpt-5.2-pro", "gpt-5.2-pro")).toBe("Extended Pro");
expect(resolveBrowserModelLabel("gpt-5.1-pro", "gpt-5.1-pro")).toBe("Extended Pro");
expect(resolveBrowserModelLabel("GPT-5.1", "gpt-5.1")).toBe("GPT-5.2");
});

Expand All @@ -217,7 +217,7 @@ describe("resolveBrowserModelLabel", () => {
});

test("supports undefined or whitespace-only input", () => {
expect(resolveBrowserModelLabel(undefined, "gpt-5.2-pro")).toBe("GPT-5.4 Pro");
expect(resolveBrowserModelLabel(undefined, "gpt-5.2-pro")).toBe("Extended Pro");
expect(resolveBrowserModelLabel(" ", "gpt-5.1")).toBe("GPT-5.2");
});

Expand Down