| import { memorySchema } from 'librechat-data-provider'; | |
| import type { TCustomConfig, TMemoryConfig } from 'librechat-data-provider'; | |
| const hasValidAgent = (agent: TMemoryConfig['agent']) => | |
| !!agent && | |
| (('id' in agent && !!agent.id) || | |
| ('provider' in agent && 'model' in agent && !!agent.provider && !!agent.model)); | |
| const isDisabled = (config?: TMemoryConfig | TCustomConfig['memory']) => | |
| !config || config.disabled === true; | |
| export function loadMemoryConfig(config: TCustomConfig['memory']): TMemoryConfig | undefined { | |
| if (!config) return undefined; | |
| if (isDisabled(config)) return config as TMemoryConfig; | |
| if (!hasValidAgent(config.agent)) { | |
| return { ...config, disabled: true } as TMemoryConfig; | |
| } | |
| const charLimit = memorySchema.shape.charLimit.safeParse(config.charLimit).data ?? 10000; | |
| return { ...config, charLimit }; | |
| } | |
| export function isMemoryEnabled(config: TMemoryConfig | undefined): boolean { | |
| if (isDisabled(config)) return false; | |
| return hasValidAgent(config!.agent); | |
| } | |