Skip to content
Open
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 extension/src/sidepanel/SettingsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1215,7 +1215,7 @@ export function SettingsPanel({
<input
type="text"
value={visionSettings.visionModelOverride}
placeholder="e.g. openai/gpt-5.6-luna"
placeholder="e.g. openai/gpt-5.6-terra-pro"
onChange={(e) =>
setVisionSettings({
...visionSettings,
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/llm/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ export const LLM_PROVIDER_PRESETS: LlmProviderPreset[] = [
keyPlaceholder: "sk-or-v1-…",
openRouterServerTools: true,
hint: "Default — many models + built-in web search",
defaultOrchestratorModel: "x-ai/grok-4.5",
defaultWorkerModel: "deepseek/deepseek-v4-flash-0731",
defaultVisionModel: "x-ai/grok-4.5",
defaultOrchestratorModel: "openai/gpt-5.6-terra-pro",
defaultWorkerModel: "openai/gpt-5.6-terra-pro",
defaultVisionModel: "openai/gpt-5.6-terra-pro",
},
{
id: "openai",
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/models.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import {

describe("normalizeModelId provider-aware", () => {
it("keeps openrouter defaults", () => {
expect(normalizeModelId(null, "openrouter")).toBe("x-ai/grok-4.5");
expect(normalizeModelId("x-ai/grok-4.5", "openrouter")).toBe("x-ai/grok-4.5");
expect(normalizeModelId(null, "openrouter")).toBe("openai/gpt-5.6-terra-pro");
expect(normalizeModelId("openai/gpt-5.6-terra-pro", "openrouter")).toBe("openai/gpt-5.6-terra-pro");
});

it("rewrites cloud id when switching to ollama", () => {
Expand All @@ -23,7 +23,7 @@ describe("normalizeModelId provider-aware", () => {
});

it("rewrites ollama tag when on openrouter", () => {
expect(normalizeModelId("qwen2.5:32b", "openrouter")).toBe("x-ai/grok-4.5");
expect(normalizeModelId("qwen2.5:32b", "openrouter")).toBe("openai/gpt-5.6-terra-pro");
});

it("moonshot bare ids stay", () => {
Expand Down
33 changes: 20 additions & 13 deletions packages/core/src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
import type { LlmProviderId } from "./llm/providers.js";
import { resolveProvider } from "./llm/providers.js";

export const DEFAULT_MODEL = "x-ai/grok-4.5";
export const DEFAULT_MODEL = "openai/gpt-5.6-terra-pro";

/**
* Cheap worker for parse_data / auto-approval only — NOT a browser "executor".
* Worker for parse_data / auto-approval only — NOT a browser "executor".
* The orchestrator runs every tool-calling turn itself; worker never clicks.
* Default aligned with DeepSeek Flash (prompt-cache friendly) so Settings that
* only change the orch model don't silently keep a second-provider hop.
* Aligned with estate OpenRouter default (Terra Pro).
*/
export const DEFAULT_WORKER_MODEL = "deepseek/deepseek-v4-flash-0731";
export const DEFAULT_WORKER_MODEL = "openai/gpt-5.6-terra-pro";

/** Legacy bad default from Combo-X v0.1 — auto-migrate. */
export const LEGACY_BAD_MODELS = new Set(["x-ai/grok-4.5-fast", "openrouter/x-ai/grok-4.5-fast"]);
Expand All @@ -26,21 +25,29 @@ export type ModelPreset = {
};

export const MODEL_PRESETS: ModelPreset[] = [
{ id: "x-ai/grok-4.5", label: "Grok 4.5", hint: "default", vision: true, providers: ["openrouter"] },
{ id: "x-ai/grok-4.3", label: "Grok 4.3", vision: true, providers: ["openrouter"] },
{ id: "x-ai/grok-4.20", label: "Grok 4.20", vision: true, providers: ["openrouter"] },
{ id: "anthropic/claude-sonnet-5", label: "Claude Sonnet 5", vision: true, providers: ["openrouter"] },
{ id: "anthropic/claude-fable-5", label: "Claude Fable 5", vision: true, providers: ["openrouter"] },
{ id: "google/gemini-3.5-flash", label: "Gemini 3.5 Flash", hint: "cheap", vision: true, providers: ["openrouter"] },
{ id: "openai/gpt-5.5", label: "GPT-5.5", vision: true, providers: ["openrouter"] },
{ id: "openai/gpt-5.4-mini", label: "GPT-5.4 Mini", hint: "cheap", vision: true, providers: ["openrouter"] },
{
id: "openai/gpt-5.6-terra-pro",
label: "GPT-5.6 Terra Pro",
hint: "default",
vision: true,
providers: ["openrouter"],
},
{ id: "openai/gpt-5.6-terra", label: "GPT-5.6 Terra", vision: true, providers: ["openrouter"] },
{
id: "openai/gpt-5.6-luna",
label: "GPT-5.6 Luna",
hint: "vision · cheap",
vision: true,
providers: ["openrouter"],
},
{ id: "x-ai/grok-4.5", label: "Grok 4.5", vision: true, providers: ["openrouter"] },
{ id: "x-ai/grok-4.3", label: "Grok 4.3", vision: true, providers: ["openrouter"] },
{ id: "x-ai/grok-4.20", label: "Grok 4.20", vision: true, providers: ["openrouter"] },
{ id: "anthropic/claude-sonnet-5", label: "Claude Sonnet 5", vision: true, providers: ["openrouter"] },
{ id: "anthropic/claude-fable-5", label: "Claude Fable 5", vision: true, providers: ["openrouter"] },
{ id: "google/gemini-3.5-flash", label: "Gemini 3.5 Flash", hint: "cheap", vision: true, providers: ["openrouter"] },
{ id: "openai/gpt-5.5", label: "GPT-5.5", vision: true, providers: ["openrouter"] },
{ id: "openai/gpt-5.4-mini", label: "GPT-5.4 Mini", hint: "cheap", vision: true, providers: ["openrouter"] },
// DeepSeek — automatic prefix caching makes long tool loops very cheap
// (cache reads bill ~10× less), so these suit multi-step browser runs.
{
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/vision/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export const VISION_STORAGE_KEYS = {
} as const;

export const DEFAULT_VISION_SETTINGS: VisionSettings = {
visionWorkerModel: "google/gemini-3.5-flash",
visionWorkerModel: "openai/gpt-5.6-terra-pro",
autoAttachScreenshots: true,
critiqueImageDetail: "high",
screenshotQuality: "high",
Expand Down
Loading