mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 16:30:15 +01:00
28 lines
1,018 B
TypeScript
28 lines
1,018 B
TypeScript
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);
|
|
}
|