ui : add the model grouping setting

Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
This commit is contained in:
Aleksander Grygier
2026-09-28 12:10:12 +02:00
parent 04fc538952
commit 07aabcbb7a
3 changed files with 24 additions and 1 deletions
@@ -41,6 +41,8 @@ export const SETTINGS_KEYS = {
MCP_SERVERS: 'mcpServers',
MENTION_SEARCH_MAX_DEPTH: 'mentionSearchMaxDepth',
MIN_P: 'min_p',
// Display
MODEL_GROUPING: 'modelGrouping',
PASTE_LONG_TEXT_TO_FILE_LEN: 'pasteLongTextToFileLen',
PDF_AS_IMAGE: 'pdfAsImage',
// Performance
@@ -4,9 +4,11 @@ import { SETTINGS_KEYS } from './settings-keys.constants';
import { TITLE_GENERATION } from './title-generation.constants';
import { FILE_GLOB_SEARCH_PICKERS } from './working-directory.constants';
import {
Boxes,
Code,
Database,
Funnel,
Layers,
ListRestart,
Monitor,
Moon,
@@ -16,7 +18,7 @@ import {
Sun
} from '@lucide/svelte';
import { SyncableParameterType } from '$lib/enums';
import { SettingsFieldType } from '$lib/enums/settings.enums';
import { ModelGroupingMode, SettingsFieldType } from '$lib/enums/settings.enums';
import { ColorMode } from '$lib/enums/ui.enums';
import type {
SettingsConfigValue,
@@ -321,6 +323,17 @@ export const SETTINGS_REGISTRY: SettingsSectionEntry[] = [
label: 'Show full path in mentions',
type: SettingsFieldType.CHECKBOX
},
{
defaultValue: ModelGroupingMode.PROVIDER,
help: 'How the models manager groups its sections. One section per provider keeps every backend separate. By capability merges them into a llama-compat block, whose models can load and unload, and an OAI-compat block, which is chat only.',
key: SETTINGS_KEYS.MODEL_GROUPING,
label: 'Model grouping',
options: [
{ icon: Layers, label: 'One section per provider', value: ModelGroupingMode.PROVIDER },
{ icon: Boxes, label: 'By capability', value: ModelGroupingMode.COMPAT }
],
type: SettingsFieldType.SELECT
},
{
defaultValue: true,
help: 'Group models into families (e.g. "Qwen") in the model picker and the models manager. Turn it off to list every model on its own.',
+8
View File
@@ -18,6 +18,14 @@ export enum SyncableParameterType {
/**
* Settings field type - defines the input type for settings fields
*/
/** How the models manager builds its sections below Loaded and Favorites. */
export enum ModelGroupingMode {
/** One llama-compat block and one OAI-compat block, families inside each. */
COMPAT = 'compat',
/** One section per provider, families inside each. */
PROVIDER = 'provider'
}
export enum SettingsFieldType {
CHECKBOX = 'checkbox',
INPUT = 'input',