diff --git a/packages/shared/data/preference/preferenceSchemas.ts b/packages/shared/data/preference/preferenceSchemas.ts
index 6b758c0ff53..dfb4e2f7f90 100644
--- a/packages/shared/data/preference/preferenceSchemas.ts
+++ b/packages/shared/data/preference/preferenceSchemas.ts
@@ -399,6 +399,7 @@ export interface PreferenceSchemas {
'ui.custom_css': string
// redux/settings/navbarPosition
'ui.navbar.position': 'left' | 'top'
+ 'ui.provider.show_disabled': boolean
// redux/settings/sidebarIcons.disabled
'ui.sidebar.icons.invisible': PreferenceTypes.SidebarIcon[]
// redux/settings/sidebarIcons.visible
@@ -656,6 +657,7 @@ export const DefaultPreferences: PreferenceSchemas = {
'topic.tab.show_time': false,
'ui.custom_css': '',
'ui.navbar.position': 'top',
+ 'ui.provider.show_disabled': true,
'ui.sidebar.icons.invisible': [],
'ui.sidebar.icons.visible': [
'assistants',
diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json
index e49eb7fa72a..3cec366cb18 100644
--- a/src/renderer/src/i18n/locales/en-us.json
+++ b/src/renderer/src/i18n/locales/en-us.json
@@ -4176,6 +4176,11 @@
"docs_check": "Check",
"docs_more_details": "for more details",
"get_api_key": "Get API Key",
+ "list": {
+ "settings": {
+ "show_disabled": "Show disabled providers"
+ }
+ },
"misc": "Other",
"no_models_for_check": "No models available for checking (e.g. chat models)",
"not_checked": "Not Checked",
@@ -4230,7 +4235,7 @@
"system": "System Proxy",
"title": "Proxy Mode"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "Supports fuzzy matching (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Click the tray icon to start",
diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json
index 074b935b345..b2035176fce 100644
--- a/src/renderer/src/i18n/locales/zh-tw.json
+++ b/src/renderer/src/i18n/locales/zh-tw.json
@@ -538,7 +538,7 @@
"context": "清除上下文 {{Command}}"
},
"new_topic": "新話題 {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "貼到輸入框?",
"pause": "暫停",
"placeholder": "在此輸入您的訊息,按 {{key}} 傳送 - @ 選擇模型,/ 包含工具",
"placeholder_without_triggers": "在此輸入您的訊息,按 {{key}} 傳送",
@@ -4230,7 +4230,7 @@
"system": "系統代理伺服器",
"title": "代理伺服器模式"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "支援模糊匹配(*.test.com,192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "點選工具列圖示啟動",
diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json
index e4c07b1b079..424d8bca724 100644
--- a/src/renderer/src/i18n/translate/de-de.json
+++ b/src/renderer/src/i18n/translate/de-de.json
@@ -2656,11 +2656,11 @@
"go_to_settings": "Zu Einstellungen",
"open_accessibility_settings": "Bedienungshilfen-Einstellungen öffnen"
},
- "description": [
- "Der Textauswahl-Assistent benötigt Bedienungshilfen-Berechtigungen, um ordnungsgemäß zu funktionieren.",
- "Klicken Sie auf Zu Einstellungen und anschließend im Berechtigungsdialog auf Systemeinstellungen öffnen. Suchen Sie danach in der App-Liste Cherry Studio und aktivieren Sie den Schalter.",
- "Nach Abschluss der Einrichtung Textauswahl-Assistent erneut aktivieren."
- ],
+ "description": {
+ "0": "Der Textauswahl-Assistent benötigt Bedienungshilfen-Berechtigungen, um ordnungsgemäß zu funktionieren.",
+ "1": "Klicken Sie auf Zu Einstellungen und anschließend im Berechtigungsdialog auf Systemeinstellungen öffnen. Suchen Sie danach in der App-Liste Cherry Studio und aktivieren Sie den Schalter.",
+ "2": "Nach Abschluss der Einrichtung Textauswahl-Assistent erneut aktivieren."
+ },
"title": "Bedienungshilfen-Berechtigung"
},
"title": "Aktivieren"
diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json
index 569820776c0..13547011d4e 100644
--- a/src/renderer/src/i18n/translate/el-gr.json
+++ b/src/renderer/src/i18n/translate/el-gr.json
@@ -538,7 +538,7 @@
"context": "Καθαρισμός ενδιάμεσων {{Command}}"
},
"new_topic": "Νέο θέμα {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "Επικόλληση στο πλαίσιο εισόδου;",
"pause": "Παύση",
"placeholder": "Εισάγετε μήνυμα εδώ...",
"placeholder_without_triggers": "Γράψτε το μήνυμά σας εδώ, πατήστε {{key}} για αποστολή",
@@ -1962,12 +1962,12 @@
"rename_changed": "Λόγω πολιτικής ασφάλειας, το όνομα του αρχείου έχει αλλάξει από {{original}} σε {{final}}",
"save": "αποθήκευση στις σημειώσεις",
"search": {
- "both": "[to be translated]:名称+内容",
- "content": "[to be translated]:内容",
- "found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
- "more_matches": "[to be translated]:个匹配",
- "searching": "[to be translated]:搜索中...",
- "show_less": "[to be translated]:收起"
+ "both": "Όνομα + περιεχόμενο",
+ "content": "περιεχόμενο",
+ "found_results": "Βρέθηκαν {{count}} αποτελέσματα (όνομα: {{nameCount}}, περιεχόμενο: {{contentCount}})",
+ "more_matches": "ένας αγώνας",
+ "searching": "Αναζήτηση...",
+ "show_less": "κλείσιμο"
},
"settings": {
"data": {
@@ -2117,8 +2117,8 @@
"install_code_103": "Η λήψη του OVMS runtime απέτυχε",
"install_code_104": "Η αποσυμπίεση του OVMS runtime απέτυχε",
"install_code_105": "Ο καθαρισμός του OVMS runtime απέτυχε",
- "install_code_106": "[to be translated]:创建 run.bat 失败",
- "install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
+ "install_code_106": "Η δημιουργία του run.bat απέτυχε",
+ "install_code_110": "Η διαγραφή του παλιού χρόνου εκτέλεσης OVMS απέτυχε",
"run": "Η εκτέλεση του OVMS απέτυχε:",
"stop": "Η διακοπή του OVMS απέτυχε:"
},
@@ -4230,7 +4230,7 @@
"system": "συστηματική προξενική",
"title": "κλίμακα προξενικής"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "υποστηρίζει ασαφή αντιστοίχιση (*.test.com,192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Επιλέξτε την εικόνα στο πίνακα για να ενεργοποιήσετε",
diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json
index 96fdbf5127c..c5c19faaa08 100644
--- a/src/renderer/src/i18n/translate/es-es.json
+++ b/src/renderer/src/i18n/translate/es-es.json
@@ -538,7 +538,7 @@
"context": "Limpiar contexto {{Command}}"
},
"new_topic": "Nuevo tema {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "¿Pegar en el cuadro de entrada?",
"pause": "Pausar",
"placeholder": "Escribe aquí tu mensaje...",
"placeholder_without_triggers": "Escribe tu mensaje aquí, presiona {{key}} para enviar",
@@ -1962,12 +1962,12 @@
"rename_changed": "Debido a políticas de seguridad, el nombre del archivo ha cambiado de {{original}} a {{final}}",
"save": "Guardar en notas",
"search": {
- "both": "[to be translated]:名称+内容",
- "content": "[to be translated]:内容",
- "found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
- "more_matches": "[to be translated]:个匹配",
- "searching": "[to be translated]:搜索中...",
- "show_less": "[to be translated]:收起"
+ "both": "nombre+contenido",
+ "content": "contenido",
+ "found_results": "encontrados {{count}} resultados (nombre: {{nameCount}}, contenido: {{contentCount}})",
+ "more_matches": "una coincidencia",
+ "searching": "Buscando...",
+ "show_less": "Recoger"
},
"settings": {
"data": {
@@ -2117,8 +2117,8 @@
"install_code_103": "Error al descargar el tiempo de ejecución de OVMS",
"install_code_104": "Error al descomprimir el tiempo de ejecución de OVMS",
"install_code_105": "Error al limpiar el tiempo de ejecución de OVMS",
- "install_code_106": "[to be translated]:创建 run.bat 失败",
- "install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
+ "install_code_106": "Error al crear run.bat",
+ "install_code_110": "Error al limpiar el antiguo runtime de OVMS",
"run": "Error al ejecutar OVMS:",
"stop": "Error al detener OVMS:"
},
@@ -4230,7 +4230,7 @@
"system": "Proxy del sistema",
"title": "Modo de proxy"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "Admite coincidencia difusa (*.test.com,192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Haz clic en el icono de la bandeja para iniciar",
diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json
index add50fb2025..5dfac57d35b 100644
--- a/src/renderer/src/i18n/translate/fr-fr.json
+++ b/src/renderer/src/i18n/translate/fr-fr.json
@@ -538,7 +538,7 @@
"context": "Effacer le contexte {{Command}}"
},
"new_topic": "Nouveau sujet {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "Coller dans la zone de saisie ?",
"pause": "Pause",
"placeholder": "Entrez votre message ici...",
"placeholder_without_triggers": "Tapez votre message ici, appuyez sur {{key}} pour envoyer",
@@ -1962,12 +1962,12 @@
"rename_changed": "En raison de la politique de sécurité, le nom du fichier a été changé de {{original}} à {{final}}",
"save": "sauvegarder dans les notes",
"search": {
- "both": "[to be translated]:名称+内容",
- "content": "[to be translated]:内容",
- "found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
- "more_matches": "[to be translated]:个匹配",
- "searching": "[to be translated]:搜索中...",
- "show_less": "[to be translated]:收起"
+ "both": "Nom + contenu",
+ "content": "suivre l’instruction du système",
+ "found_results": "{{count}} résultats trouvés (nom : {{nameCount}}, contenu : {{contentCount}})",
+ "more_matches": "une correspondance",
+ "searching": "Recherche en cours...",
+ "show_less": "Replier"
},
"settings": {
"data": {
@@ -2117,8 +2117,8 @@
"install_code_103": "Échec du téléchargement du runtime OVMS",
"install_code_104": "Échec de la décompression du runtime OVMS",
"install_code_105": "Échec du nettoyage du runtime OVMS",
- "install_code_106": "[to be translated]:创建 run.bat 失败",
- "install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
+ "install_code_106": "Échec de la création de run.bat",
+ "install_code_110": "Échec du nettoyage de l'ancien runtime OVMS",
"run": "Échec de l'exécution d'OVMS :",
"stop": "Échec de l'arrêt d'OVMS :"
},
@@ -4230,7 +4230,7 @@
"system": "Proxy système",
"title": "Mode de proxy"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "Prise en charge de la correspondance floue (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Cliquez sur l'icône dans la barre d'état système pour démarrer",
diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json
index 154a69edf58..f23055004b5 100644
--- a/src/renderer/src/i18n/translate/ja-jp.json
+++ b/src/renderer/src/i18n/translate/ja-jp.json
@@ -538,7 +538,7 @@
"context": "コンテキストをクリア {{Command}}"
},
"new_topic": "新しいトピック {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "入力ボックスに貼り付けますか?",
"pause": "一時停止",
"placeholder": "ここにメッセージを入力し、{{key}} を押して送信...",
"placeholder_without_triggers": "ここにメッセージを入力し、{{key}} を押して送信...",
@@ -1962,12 +1962,12 @@
"rename_changed": "セキュリティポリシーにより、ファイル名は{{original}}から{{final}}に変更されました",
"save": "メモに保存する",
"search": {
- "both": "[to be translated]:名称+内容",
- "content": "[to be translated]:内容",
- "found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
- "more_matches": "[to be translated]:个匹配",
- "searching": "[to be translated]:搜索中...",
- "show_less": "[to be translated]:收起"
+ "both": "名称+内容",
+ "content": "内容",
+ "found_results": "{{count}} 件の結果が見つかりました(名称: {{nameCount}}、内容: {{contentCount}})",
+ "more_matches": "個マッチ",
+ "searching": "検索中...",
+ "show_less": "閉じる"
},
"settings": {
"data": {
@@ -2117,8 +2117,8 @@
"install_code_103": "OVMSランタイムのダウンロードに失敗しました",
"install_code_104": "OVMSランタイムの解凍に失敗しました",
"install_code_105": "OVMSランタイムのクリーンアップに失敗しました",
- "install_code_106": "[to be translated]:创建 run.bat 失败",
- "install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
+ "install_code_106": "run.batの作成に失敗しました",
+ "install_code_110": "古いOVMSランタイムのクリーンアップに失敗しました",
"run": "OVMSの実行に失敗しました:",
"stop": "OVMSの停止に失敗しました:"
},
@@ -4230,7 +4230,7 @@
"system": "システムプロキシ",
"title": "プロキシモード"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "ワイルドカード一致をサポート (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "トレイアイコンをクリックして起動",
diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json
index 75faafe8892..d4281a844a2 100644
--- a/src/renderer/src/i18n/translate/pt-pt.json
+++ b/src/renderer/src/i18n/translate/pt-pt.json
@@ -538,7 +538,7 @@
"context": "Limpar contexto {{Command}}"
},
"new_topic": "Novo tópico {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "Colar na caixa de entrada?",
"pause": "Pausar",
"placeholder": "Digite sua mensagem aqui...",
"placeholder_without_triggers": "Escreve a tua mensagem aqui, pressiona {{key}} para enviar",
@@ -1962,12 +1962,12 @@
"rename_changed": "Devido às políticas de segurança, o nome do arquivo foi alterado de {{original}} para {{final}}",
"save": "salvar em notas",
"search": {
- "both": "[to be translated]:名称+内容",
- "content": "[to be translated]:内容",
- "found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
- "more_matches": "[to be translated]:个匹配",
- "searching": "[to be translated]:搜索中...",
- "show_less": "[to be translated]:收起"
+ "both": "nome+conteúdo",
+ "content": "conteúdo",
+ "found_results": "Encontrados {{count}} resultados (nome: {{nameCount}}, conteúdo: {{contentCount}})",
+ "more_matches": "个匹配",
+ "searching": "Procurando...",
+ "show_less": "Recolher"
},
"settings": {
"data": {
@@ -2117,8 +2117,8 @@
"install_code_103": "Falha ao baixar o tempo de execução do OVMS",
"install_code_104": "Falha ao descompactar o tempo de execução do OVMS",
"install_code_105": "Falha ao limpar o tempo de execução do OVMS",
- "install_code_106": "[to be translated]:创建 run.bat 失败",
- "install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
+ "install_code_106": "Falha ao criar run.bat",
+ "install_code_110": "Falha ao limpar o antigo runtime OVMS",
"run": "Falha ao executar o OVMS:",
"stop": "Falha ao parar o OVMS:"
},
@@ -4230,7 +4230,7 @@
"system": "Proxy do Sistema",
"title": "Modo de Proxy"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "Suporta correspondência difusa (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Clique no ícone da bandeja para iniciar",
diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json
index 4b56b7b0dad..7125b2fadee 100644
--- a/src/renderer/src/i18n/translate/ru-ru.json
+++ b/src/renderer/src/i18n/translate/ru-ru.json
@@ -538,7 +538,7 @@
"context": "Очистить контекст {{Command}}"
},
"new_topic": "Новый топик {{Command}}",
- "paste_text_file_confirm": "[to be translated]:粘贴到输入框?",
+ "paste_text_file_confirm": "Вставить в поле ввода?",
"pause": "Остановить",
"placeholder": "Введите ваше сообщение здесь, нажмите {{key}} для отправки...",
"placeholder_without_triggers": "Напишите сообщение здесь, нажмите {{key}} для отправки",
@@ -1962,12 +1962,12 @@
"rename_changed": "В связи с политикой безопасности имя файла было изменено с {{Original}} на {{final}}",
"save": "Сохранить в заметки",
"search": {
- "both": "[to be translated]:名称+内容",
- "content": "[to be translated]:内容",
- "found_results": "[to be translated]:找到 {{count}} 个结果 (名称: {{nameCount}}, 内容: {{contentCount}})",
- "more_matches": "[to be translated]:个匹配",
- "searching": "[to be translated]:搜索中...",
- "show_less": "[to be translated]:收起"
+ "both": "Название+содержание",
+ "content": "содержание",
+ "found_results": "Найдено результатов: {{count}} (название: {{nameCount}}, содержание: {{contentCount}})",
+ "more_matches": "соответствие",
+ "searching": "Поиск...",
+ "show_less": "Свернуть"
},
"settings": {
"data": {
@@ -2117,8 +2117,8 @@
"install_code_103": "Ошибка загрузки среды выполнения OVMS",
"install_code_104": "Ошибка распаковки среды выполнения OVMS",
"install_code_105": "Ошибка очистки среды выполнения OVMS",
- "install_code_106": "[to be translated]:创建 run.bat 失败",
- "install_code_110": "[to be translated]:清理旧 OVMS runtime 失败",
+ "install_code_106": "Создание run.bat не удалось",
+ "install_code_110": "Очистка старой среды выполнения OVMS не удалась",
"run": "Ошибка запуска OVMS:",
"stop": "Ошибка остановки OVMS:"
},
@@ -4230,7 +4230,7 @@
"system": "Системный прокси",
"title": "Режим прокси"
},
- "tip": "[to be translated]:支持模糊匹配(*.test.com,192.168.0.0/16)"
+ "tip": "Поддержка нечеткого соответствия (*.test.com, 192.168.0.0/16)"
},
"quickAssistant": {
"click_tray_to_show": "Нажмите на иконку трея для запуска",
diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderList.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderList.tsx
index ce04232eee4..2a98fc9e015 100644
--- a/src/renderer/src/pages/settings/ProviderSettings/ProviderList.tsx
+++ b/src/renderer/src/pages/settings/ProviderSettings/ProviderList.tsx
@@ -1,4 +1,5 @@
-import { Button } from '@cherrystudio/ui'
+import { Button, Popover, PopoverContent, PopoverTrigger, Switch } from '@cherrystudio/ui'
+import { usePreference } from '@data/hooks/usePreference'
import type { DropResult } from '@hello-pangea/dnd'
import { loggerService } from '@logger'
import {
@@ -16,7 +17,7 @@ import { isSystemProvider } from '@renderer/types'
import { getFancyProviderName, matchKeywordsInModel, matchKeywordsInProvider, uuid } from '@renderer/utils'
import type { MenuProps } from 'antd'
import { Dropdown, Input, Tag } from 'antd'
-import { GripVertical, PlusIcon, Search, UserPen } from 'lucide-react'
+import { GripVertical, PlusIcon, Search, SettingsIcon, UserPen } from 'lucide-react'
import type { FC } from 'react'
import { startTransition, useCallback, useEffect, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
@@ -30,7 +31,6 @@ import UrlSchemaInfoPopup from './UrlSchemaInfoPopup'
const logger = loggerService.withContext('ProviderList')
-const BUTTON_WRAPPER_HEIGHT = 50
const systemType = await window.api.system.getDeviceType()
const cpuName = await window.api.system.getCpuName()
@@ -45,6 +45,7 @@ const ProviderList: FC = () => {
const [dragging, setDragging] = useState(false)
const [providerLogos, setProviderLogos] = useState>({})
const listRef = useRef(null)
+ const [showDisabled, setShowDisabled] = usePreference('ui.provider.show_disabled')
const setSelectedProvider = useCallback((provider: Provider) => {
startTransition(() => _setSelectedProvider(provider))
@@ -283,6 +284,10 @@ const ProviderList: FC = () => {
return false
}
+ if (!showDisabled && !provider.enabled) {
+ return false
+ }
+
const keywords = searchText.toLowerCase().split(/\s+/).filter(Boolean)
const isProviderMatch = matchKeywordsInProvider(keywords, provider)
const isModelMatch = provider.models.some((model) => matchKeywordsInModel(keywords, model))
@@ -311,12 +316,12 @@ const ProviderList: FC = () => {
return (
-
+
+
+
+ }
+ isIconOnly
+ className="h-full min-h-0 w-9 min-w-0"
+ />
+
+
+
+ -
+
+ {t('settings.provider.list.settings.show_disabled')}
+
+
+
+
+
+
{
itemKey={itemKey}
overscan={3}
style={{
- height: `calc(100% - 2 * ${BUTTON_WRAPPER_HEIGHT}px)`
+ flex: 1,
+ overflow: 'hidden'
}}
scrollerStyle={{
padding: 8,
@@ -372,7 +400,7 @@ const ProviderList: FC = () => {
)}
-
+
+
@@ -451,12 +479,4 @@ const ProviderItemName = styled.div`
font-weight: 500;
`
-const AddButtonWrapper = styled.div`
- height: ${BUTTON_WRAPPER_HEIGHT}px;
- flex-direction: row;
- justify-content: center;
- align-items: center;
- padding: 10px 8px;
-`
-
export default ProviderList
diff --git a/src/renderer/src/pages/settings/ProviderSettings/index.ts b/src/renderer/src/pages/settings/ProviderSettings/index.ts
deleted file mode 100644
index 85e9a9d2791..00000000000
--- a/src/renderer/src/pages/settings/ProviderSettings/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { default as ProviderList } from './ProviderList'
diff --git a/src/renderer/src/pages/settings/SettingsPage.tsx b/src/renderer/src/pages/settings/SettingsPage.tsx
index a14e10973d0..81ba1e5551c 100644
--- a/src/renderer/src/pages/settings/SettingsPage.tsx
+++ b/src/renderer/src/pages/settings/SettingsPage.tsx
@@ -33,7 +33,7 @@ import GeneralSettings from './GeneralSettings'
import MCPSettings from './MCPSettings'
import MemorySettings from './MemorySettings'
import NotesSettings from './NotesSettings'
-import { ProviderList } from './ProviderSettings'
+import ProviderList from './ProviderSettings/ProviderList'
import QuickAssistantSettings from './QuickAssistantSettings'
import QuickPhraseSettings from './QuickPhraseSettings'
import SelectionAssistantSettings from './SelectionAssistantSettings/SelectionAssistantSettings'