Browse Source

respect server suggestion for default model

Dax Raad 3 months ago
parent
commit
bc232045a1

+ 2 - 2
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,
         }
       })
 

+ 9 - 2
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!)),
       ])

+ 1 - 1
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,