mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
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
This commit is contained in:
parent
c8a8188f8c
commit
4d97efc187
3 changed files with 29 additions and 12 deletions
|
|
@ -932,8 +932,16 @@ export const webviewMessageHandler = async (
|
|||
break
|
||||
case "requestVsCodeLmModels":
|
||||
const vsCodeLmModels = await getVsCodeLmModels()
|
||||
// Map the models to include all necessary properties for the UI
|
||||
const mappedModels = vsCodeLmModels.map((model) => ({
|
||||
vendor: model.vendor,
|
||||
family: model.family,
|
||||
version: model.version,
|
||||
id: model.id,
|
||||
name: model.name, // Include the name property for better display
|
||||
}))
|
||||
// TODO: Cache like we do for OpenRouter, etc?
|
||||
provider.postMessageToWebview({ type: "vsCodeLmModels", vsCodeLmModels })
|
||||
provider.postMessageToWebview({ type: "vsCodeLmModels", vsCodeLmModels: mappedModels })
|
||||
break
|
||||
case "requestHuggingFaceModels":
|
||||
// TODO: Why isn't this handled by `requestRouterModels` above?
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ export interface ExtensionMessage {
|
|||
openAiModels?: string[]
|
||||
ollamaModels?: ModelRecord
|
||||
lmStudioModels?: ModelRecord
|
||||
vsCodeLmModels?: { vendor?: string; family?: string; version?: string; id?: string }[]
|
||||
vsCodeLmModels?: { vendor?: string; family?: string; version?: string; id?: string; name?: string }[]
|
||||
huggingFaceModels?: Array<{
|
||||
id: string
|
||||
object: string
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
import { useState, useCallback } from "react"
|
||||
import { useEvent } from "react-use"
|
||||
import { LanguageModelChatSelector } from "vscode"
|
||||
|
||||
import type { ProviderSettings } from "@roo-code/types"
|
||||
|
||||
import { ExtensionMessage } from "@roo/ExtensionMessage"
|
||||
import { ExtensionMessage, LanguageModelChatSelector } from "@roo/ExtensionMessage"
|
||||
|
||||
import { useAppTranslation } from "@src/i18n/TranslationContext"
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@src/components/ui"
|
||||
|
|
@ -19,7 +18,7 @@ type VSCodeLMProps = {
|
|||
export const VSCodeLM = ({ apiConfiguration, setApiConfigurationField }: VSCodeLMProps) => {
|
||||
const { t } = useAppTranslation()
|
||||
|
||||
const [vsCodeLmModels, setVsCodeLmModels] = useState<LanguageModelChatSelector[]>([])
|
||||
const [vsCodeLmModels, setVsCodeLmModels] = useState<Array<LanguageModelChatSelector & { name?: string }>>([])
|
||||
|
||||
const handleInputChange = useCallback(
|
||||
<K extends keyof ProviderSettings, E>(
|
||||
|
|
@ -66,13 +65,23 @@ export const VSCodeLM = ({ apiConfiguration, setApiConfigurationField }: VSCodeL
|
|||
<SelectValue placeholder={t("settings:common.select")} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vsCodeLmModels.map((model) => (
|
||||
<SelectItem
|
||||
key={`${model.vendor}/${model.family}`}
|
||||
value={`${model.vendor}/${model.family}`}>
|
||||
{`${model.vendor} - ${model.family}`}
|
||||
</SelectItem>
|
||||
))}
|
||||
{vsCodeLmModels.map((model) => {
|
||||
// Create a more user-friendly display name
|
||||
// Use the model's name property if available, otherwise fall back to vendor/family
|
||||
const displayName =
|
||||
model.name ||
|
||||
(model.vendor && model.family
|
||||
? `${model.vendor} - ${model.family}`
|
||||
: model.id || "Unknown Model")
|
||||
|
||||
return (
|
||||
<SelectItem
|
||||
key={`${model.vendor}/${model.family}`}
|
||||
value={`${model.vendor}/${model.family}`}>
|
||||
{displayName}
|
||||
</SelectItem>
|
||||
)
|
||||
})}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
) : (
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue