summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-11-17 20:53:48 -0500
committerDax Raad <[email protected]>2025-11-17 20:53:48 -0500
commitbc232045a108289a1684d058260ae445a88724db (patch)
tree183a530a3ce3bae97ddb2f371a7ca60ff9fbe817
parent16cab556df9b8fe7c2420175de886316ea62a193 (diff)
downloadopencode-bc232045a108289a1684d058260ae445a88724db.tar.gz
opencode-bc232045a108289a1684d058260ae445a88724db.zip
respect server suggestion for default model
-rw-r--r--packages/opencode/src/cli/cmd/tui/context/local.tsx4
-rw-r--r--packages/opencode/src/cli/cmd/tui/context/sync.tsx11
-rw-r--r--packages/opencode/src/provider/provider.ts2
3 files changed, 12 insertions, 5 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/context/local.tsx b/packages/opencode/src/cli/cmd/tui/context/local.tsx
index 998739f12..c2db85442 100644
--- a/packages/opencode/src/cli/cmd/tui/context/local.tsx
+++ b/packages/opencode/src/cli/cmd/tui/context/local.tsx
@@ -158,10 +158,10 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
}
}
const provider = sync.data.provider[0]
- const model = Object.values(provider.models)[0]
+ const model = sync.data.provider_default[provider.id] ?? Object.values(provider.models)[0].id
return {
providerID: provider.id,
- modelID: model.id,
+ modelID: model,
}
})
diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx
index 2c994a4a3..74fea2fd0 100644
--- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx
+++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx
@@ -19,7 +19,7 @@ import { Binary } from "@/util/binary"
import { createSimpleContext } from "./helper"
import type { Snapshot } from "@/snapshot"
import { useExit } from "./exit"
-import { onMount } from "solid-js"
+import { batch, onMount } from "solid-js"
export const { use: useSync, provider: SyncProvider } = createSimpleContext({
name: "Sync",
@@ -27,6 +27,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
const [store, setStore] = createStore<{
status: "loading" | "partial" | "complete"
provider: Provider[]
+ provider_default: Record<string, string>
agent: Agent[]
command: Command[]
permission: {
@@ -61,6 +62,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
permission: {},
command: [],
provider: [],
+ provider_default: {},
session: [],
session_status: {},
session_diff: {},
@@ -233,7 +235,12 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
onMount(() => {
// blocking
Promise.all([
- sdk.client.config.providers({ throwOnError: true }).then((x) => setStore("provider", x.data!.providers)),
+ sdk.client.config.providers({ throwOnError: true }).then((x) => {
+ batch(() => {
+ setStore("provider", x.data!.providers)
+ setStore("provider_default", x.data!.default)
+ })
+ }),
sdk.client.app.agents({ throwOnError: true }).then((x) => setStore("agent", x.data ?? [])),
sdk.client.config.get({ throwOnError: true }).then((x) => setStore("config", x.data!)),
])
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index b15df8b93..62b08d955 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -627,7 +627,7 @@ export namespace Provider {
}
}
- const priority = ["gemini-2.5-pro-preview", "gpt-5", "claude-sonnet-4"]
+ const priority = ["gemini-2.5-pro-preview", "gpt-5", "claude-sonnet-4", "big-pickle"]
export function sort(models: ModelsDev.Model[]) {
return sortBy(
models,