summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/context/local.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-10 14:48:08 -0600
committerAdam <[email protected]>2025-12-10 15:17:03 -0600
commit190fa4c87aa2b3f954a419f716add1fc29e4011e (patch)
tree835e91a7457c4d92fd8d3118d225f12843b80a5b /packages/desktop/src/context/local.tsx
parent91d743ef9a5c346fe17bb857db68dca92a6e9ba1 (diff)
downloadopencode-190fa4c87aa2b3f954a419f716add1fc29e4011e.tar.gz
opencode-190fa4c87aa2b3f954a419f716add1fc29e4011e.zip
wip(desktop): progress
Diffstat (limited to 'packages/desktop/src/context/local.tsx')
-rw-r--r--packages/desktop/src/context/local.tsx38
1 files changed, 21 insertions, 17 deletions
diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx
index 58a65b0de..74d3ac364 100644
--- a/packages/desktop/src/context/local.tsx
+++ b/packages/desktop/src/context/local.tsx
@@ -39,8 +39,8 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
const sync = useSync()
function isModelValid(model: ModelKey) {
- const provider = sync.data.provider.find((x) => x.id === model.providerID)
- return !!provider?.models[model.modelID]
+ const provider = sync.data.provider?.all.find((x) => x.id === model.providerID)
+ return !!provider?.models[model.modelID] && sync.data.provider?.connected.includes(model.providerID)
}
function getFirstValidModel(...modelFns: (() => ModelKey | undefined)[]) {
@@ -115,17 +115,16 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
})
const list = createMemo(() =>
- sync.data.provider.flatMap((p) =>
- Object.values(p.models).map(
- (m) =>
- ({
- ...m,
- name: m.name.replace("(latest)", "").trim(),
- provider: p,
- latest: m.name.includes("(latest)"),
- }) as LocalModel,
+ sync.data.provider.all
+ .filter((p) => sync.data.provider.connected.includes(p.id))
+ .flatMap((p) =>
+ Object.values(p.models).map((m) => ({
+ ...m,
+ name: m.name.replace("(latest)", "").trim(),
+ provider: p,
+ latest: m.name.includes("(latest)"),
+ })),
),
- ),
)
const find = (key: ModelKey) => list().find((m) => m.id === key?.modelID && m.provider.id === key.providerID)
@@ -145,12 +144,17 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
return item
}
}
- const provider = sync.data.provider[0]
- const model = Object.values(provider.models)[0]
- return {
- providerID: provider.id,
- modelID: model.id,
+
+ for (const p of sync.data.provider.connected) {
+ if (p in sync.data.provider.default) {
+ return {
+ providerID: p,
+ modelID: sync.data.provider.default[p],
+ }
+ }
}
+
+ throw new Error("No default model found")
})
const currentModel = createMemo(() => {