| 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); |
| } |
|
|