| import { removeNullishValues } from 'librechat-data-provider'; |
| import type { TCustomConfig, TConfigDefaults } from 'librechat-data-provider'; |
| import type { AppConfig } from '~/types/app'; |
| import { isMemoryEnabled } from './memory'; |
|
|
| |
| |
| |
| |
| |
| |
| |
| export async function loadDefaultInterface({ |
| config, |
| configDefaults, |
| }: { |
| config?: Partial<TCustomConfig>; |
| configDefaults: TConfigDefaults; |
| }): Promise<AppConfig['interfaceConfig']> { |
| const { interface: interfaceConfig } = config ?? {}; |
| const { interface: defaults } = configDefaults; |
| const hasModelSpecs = (config?.modelSpecs?.list?.length ?? 0) > 0; |
| const includesAddedEndpoints = (config?.modelSpecs?.addedEndpoints?.length ?? 0) > 0; |
|
|
| const memoryConfig = config?.memory; |
| const memoryEnabled = isMemoryEnabled(memoryConfig); |
| |
| const shouldDisableMemories = memoryConfig && !memoryEnabled; |
|
|
| const loadedInterface: AppConfig['interfaceConfig'] = removeNullishValues({ |
| |
| endpointsMenu: |
| interfaceConfig?.endpointsMenu ?? (hasModelSpecs ? false : defaults.endpointsMenu), |
| modelSelect: |
| interfaceConfig?.modelSelect ?? |
| (hasModelSpecs ? includesAddedEndpoints : defaults.modelSelect), |
| parameters: interfaceConfig?.parameters ?? (hasModelSpecs ? false : defaults.parameters), |
| presets: interfaceConfig?.presets ?? (hasModelSpecs ? false : defaults.presets), |
| sidePanel: interfaceConfig?.sidePanel ?? defaults.sidePanel, |
| privacyPolicy: interfaceConfig?.privacyPolicy ?? defaults.privacyPolicy, |
| termsOfService: interfaceConfig?.termsOfService ?? defaults.termsOfService, |
| mcpServers: interfaceConfig?.mcpServers ?? defaults.mcpServers, |
| customWelcome: interfaceConfig?.customWelcome ?? defaults.customWelcome, |
|
|
| |
| bookmarks: interfaceConfig?.bookmarks, |
| memories: shouldDisableMemories ? false : interfaceConfig?.memories, |
| prompts: interfaceConfig?.prompts, |
| multiConvo: interfaceConfig?.multiConvo, |
| agents: interfaceConfig?.agents, |
| temporaryChat: interfaceConfig?.temporaryChat, |
| runCode: interfaceConfig?.runCode, |
| webSearch: interfaceConfig?.webSearch, |
| fileSearch: interfaceConfig?.fileSearch, |
| fileCitations: interfaceConfig?.fileCitations, |
| peoplePicker: interfaceConfig?.peoplePicker, |
| marketplace: interfaceConfig?.marketplace, |
| }); |
|
|
| return loadedInterface; |
| } |
|
|