summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-10 07:27:30 -0600
committerAdam <[email protected]>2025-12-10 15:17:03 -0600
commitf20d6e855556693e33cddd51c837263c8846694d (patch)
tree7a61162e874d7250dce181449c9f2e058f22dd5d
parente694d4d8806857fa5035c2953027ffee03e843dc (diff)
downloadopencode-f20d6e855556693e33cddd51c837263c8846694d.tar.gz
opencode-f20d6e855556693e33cddd51c837263c8846694d.zip
wip(desktop): progress
-rw-r--r--packages/desktop/src/components/prompt-input.tsx3
-rw-r--r--packages/desktop/src/context/local.tsx13
2 files changed, 15 insertions, 1 deletions
diff --git a/packages/desktop/src/components/prompt-input.tsx b/packages/desktop/src/components/prompt-input.tsx
index fbb643e58..bbd638e44 100644
--- a/packages/desktop/src/components/prompt-input.tsx
+++ b/packages/desktop/src/components/prompt-input.tsx
@@ -489,6 +489,9 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
<Show when={!i.cost || i.cost?.input === 0}>
<Tag>Free</Tag>
</Show>
+ <Show when={i.latest}>
+ <Tag>Latest</Tag>
+ </Show>
</div>
)}
</SelectDialog>
diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx
index 8223a36b9..58a65b0de 100644
--- a/packages/desktop/src/context/local.tsx
+++ b/packages/desktop/src/context/local.tsx
@@ -25,6 +25,7 @@ export type View = LocalFile["view"]
export type LocalModel = Omit<Model, "provider"> & {
provider: Provider
+ latest?: boolean
}
export type ModelKey = { providerID: string; modelID: string }
@@ -114,7 +115,17 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
})
const list = createMemo(() =>
- sync.data.provider.flatMap((p) => Object.values(p.models).map((m) => ({ ...m, provider: p }) as LocalModel)),
+ 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,
+ ),
+ ),
)
const find = (key: ModelKey) => list().find((m) => m.id === key?.modelID && m.provider.id === key.providerID)