Skip to content

Commit 4d97efc

Browse files
committed
fix: improve VS Code LM API model name display
- Add 'name' property to vsCodeLmModels type in ExtensionMessage - Map VS Code LM models to include name property when sending to webview - Update VSCodeLM component to display model.name when available - Falls back to vendor/family format if name is not provided Fixes #8443
1 parent c8a8188 commit 4d97efc

File tree

3 files changed

+29
-12
lines changed

3 files changed

+29
-12
lines changed

src/core/webview/webviewMessageHandler.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -932,8 +932,16 @@ export const webviewMessageHandler = async (
932932
break
933933
case "requestVsCodeLmModels":
934934
const vsCodeLmModels = await getVsCodeLmModels()
935+
// Map the models to include all necessary properties for the UI
936+
const mappedModels = vsCodeLmModels.map((model) => ({
937+
vendor: model.vendor,
938+
family: model.family,
939+
version: model.version,
940+
id: model.id,
941+
name: model.name, // Include the name property for better display
942+
}))
935943
// TODO: Cache like we do for OpenRouter, etc?
936-
provider.postMessageToWebview({ type: "vsCodeLmModels", vsCodeLmModels })
944+
provider.postMessageToWebview({ type: "vsCodeLmModels", vsCodeLmModels: mappedModels })
937945
break
938946
case "requestHuggingFaceModels":
939947
// TODO: Why isn't this handled by `requestRouterModels` above?

src/shared/ExtensionMessage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export interface ExtensionMessage {
154154
openAiModels?: string[]
155155
ollamaModels?: ModelRecord
156156
lmStudioModels?: ModelRecord
157-
vsCodeLmModels?: { vendor?: string; family?: string; version?: string; id?: string }[]
157+
vsCodeLmModels?: { vendor?: string; family?: string; version?: string; id?: string; name?: string }[]
158158
huggingFaceModels?: Array<{
159159
id: string
160160
object: string

webview-ui/src/components/settings/providers/VSCodeLM.tsx

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { useState, useCallback } from "react"
22
import { useEvent } from "react-use"
3-
import { LanguageModelChatSelector } from "vscode"
43

54
import type { ProviderSettings } from "@roo-code/types"
65

7-
import { ExtensionMessage } from "@roo/ExtensionMessage"
6+
import { ExtensionMessage, LanguageModelChatSelector } from "@roo/ExtensionMessage"
87

98
import { useAppTranslation } from "@src/i18n/TranslationContext"
109
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@src/components/ui"
@@ -19,7 +18,7 @@ type VSCodeLMProps = {
1918
export const VSCodeLM = ({ apiConfiguration, setApiConfigurationField }: VSCodeLMProps) => {
2019
const { t } = useAppTranslation()
2120

22-
const [vsCodeLmModels, setVsCodeLmModels] = useState<LanguageModelChatSelector[]>([])
21+
const [vsCodeLmModels, setVsCodeLmModels] = useState<Array<LanguageModelChatSelector & { name?: string }>>([])
2322

2423
const handleInputChange = useCallback(
2524
<K extends keyof ProviderSettings, E>(
@@ -66,13 +65,23 @@ export const VSCodeLM = ({ apiConfiguration, setApiConfigurationField }: VSCodeL
6665
<SelectValue placeholder={t("settings:common.select")} />
6766
</SelectTrigger>
6867
<SelectContent>
69-
{vsCodeLmModels.map((model) => (
70-
<SelectItem
71-
key={`${model.vendor}/${model.family}`}
72-
value={`${model.vendor}/${model.family}`}>
73-
{`${model.vendor} - ${model.family}`}
74-
</SelectItem>
75-
))}
68+
{vsCodeLmModels.map((model) => {
69+
// Create a more user-friendly display name
70+
// Use the model's name property if available, otherwise fall back to vendor/family
71+
const displayName =
72+
model.name ||
73+
(model.vendor && model.family
74+
? `${model.vendor} - ${model.family}`
75+
: model.id || "Unknown Model")
76+
77+
return (
78+
<SelectItem
79+
key={`${model.vendor}/${model.family}`}
80+
value={`${model.vendor}/${model.family}`}>
81+
{displayName}
82+
</SelectItem>
83+
)
84+
})}
7685
</SelectContent>
7786
</Select>
7887
) : (

0 commit comments

Comments
 (0)