From 0a444f6ff8c50d3ae61382d645f5b2adb18dc06e Mon Sep 17 00:00:00 2001 From: Mathew Pareles Date: Mon, 30 Dec 2024 01:45:02 -0500 Subject: [PATCH] mark if model is detected locally --- .../void/common/voidSettingsService.ts | 2 +- .../platform/void/common/voidSettingsTypes.ts | 19 +++++++++---------- .../react/src/void-settings-tsx/Settings.tsx | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/vs/platform/void/common/voidSettingsService.ts b/src/vs/platform/void/common/voidSettingsService.ts index 4cbf8951..895d3f6b 100644 --- a/src/vs/platform/void/common/voidSettingsService.ts +++ b/src/vs/platform/void/common/voidSettingsService.ts @@ -222,7 +222,7 @@ class VoidSettingsService extends Disposable implements IVoidSettingsService { setDefaultModels(providerName: ProviderName, newDefaultModelNames: string[]) { const { models } = this.state.settingsOfProvider[providerName] - const newDefaultModels = modelInfoOfDefaultNames(newDefaultModelNames, models) + const newDefaultModels = modelInfoOfDefaultNames(newDefaultModelNames, { isAutodetected: true, existingModels: models }) const newModels = [ ...newDefaultModels, ...models.filter(m => !m.isDefault), // keep any non-default models diff --git a/src/vs/platform/void/common/voidSettingsTypes.ts b/src/vs/platform/void/common/voidSettingsTypes.ts index cfbf2d75..c704accb 100644 --- a/src/vs/platform/void/common/voidSettingsTypes.ts +++ b/src/vs/platform/void/common/voidSettingsTypes.ts @@ -11,18 +11,21 @@ export type VoidModelInfo = { modelName: string, isDefault: boolean, // whether or not it's a default for its provider isHidden: boolean, // whether or not the user is hiding it + isAutodetected?: boolean, // whether the model was autodetected by polling } +type ModelInfoOfDefaultNamesOptions = { isAutodetected: true, existingModels: VoidModelInfo[] } // | { isOtherOption: true, ...otherOptions } +export const modelInfoOfDefaultNames = (modelNames: string[], options?: ModelInfoOfDefaultNamesOptions): VoidModelInfo[] => { -export const modelInfoOfDefaultNames = (modelNames: string[], existingModels?: VoidModelInfo[]): VoidModelInfo[] => { - + const { isAutodetected, existingModels } = options ?? {} + const isDefault = true const isHidden = modelNames.length >= 10 // hide all models if there are a ton of them, and make user enable them individually - if (!existingModels) { - return modelNames.map((modelName, i) => ({ modelName, isDefault: true, isHidden, })) + + return modelNames.map((modelName, i) => ({ modelName, isDefault, isAutodetected, isHidden, })) + } else { - // merge `modelNames` with `existingModels` // keep existing `isHidden` property const existingModelsMap: Record = {} @@ -30,11 +33,7 @@ export const modelInfoOfDefaultNames = (modelNames: string[], existingModels?: V existingModelsMap[em.modelName] = em } - return modelNames.map((modelName, i) => ({ - modelName, - isDefault: true, - isHidden: !!existingModelsMap[modelName]?.isHidden, - })) + return modelNames.map((modelName, i) => ({ modelName, isDefault, isAutodetected, isHidden: !!existingModelsMap[modelName]?.isHidden, })) } diff --git a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx index a6075791..f060e066 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx @@ -183,7 +183,7 @@ export const ModelDump = () => { return
{modelDump.map(m => { - const { isHidden, isDefault, modelName, providerName, providerEnabled } = m + const { isHidden, isDefault, isAutodetected, modelName, providerName, providerEnabled } = m const disabled = !providerEnabled @@ -194,7 +194,7 @@ export const ModelDump = () => {
{/* right part is anything that fits */}
- {isDefault ? '' : '(custom model)'} + {isAutodetected ? '(detected locally)' : isDefault ? '' : '(custom model)'}