2025-07-04 14:51:26 -04:00
|
|
|
import { useMemo } from 'react';
|
|
|
|
|
import { AgentCapabilities } from 'librechat-data-provider';
|
|
|
|
|
|
|
|
|
|
interface AgentCapabilitiesResult {
|
|
|
|
|
toolsEnabled: boolean;
|
|
|
|
|
actionsEnabled: boolean;
|
|
|
|
|
artifactsEnabled: boolean;
|
|
|
|
|
ocrEnabled: boolean;
|
2025-09-18 20:06:59 -04:00
|
|
|
contextEnabled: boolean;
|
2025-07-04 14:51:26 -04:00
|
|
|
fileSearchEnabled: boolean;
|
|
|
|
|
webSearchEnabled: boolean;
|
|
|
|
|
codeEnabled: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default function useAgentCapabilities(
|
|
|
|
|
capabilities: AgentCapabilities[] | undefined,
|
|
|
|
|
): AgentCapabilitiesResult {
|
|
|
|
|
const toolsEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.tools) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const actionsEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.actions) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const artifactsEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.artifacts) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const ocrEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.ocr) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
2025-09-18 20:06:59 -04:00
|
|
|
const contextEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.context) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
2025-07-04 14:51:26 -04:00
|
|
|
const fileSearchEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.file_search) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const webSearchEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.web_search) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const codeEnabled = useMemo(
|
|
|
|
|
() => capabilities?.includes(AgentCapabilities.execute_code) ?? false,
|
|
|
|
|
[capabilities],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
ocrEnabled,
|
|
|
|
|
codeEnabled,
|
|
|
|
|
toolsEnabled,
|
|
|
|
|
actionsEnabled,
|
2025-09-18 20:06:59 -04:00
|
|
|
contextEnabled,
|
2025-07-04 14:51:26 -04:00
|
|
|
artifactsEnabled,
|
|
|
|
|
webSearchEnabled,
|
|
|
|
|
fileSearchEnabled,
|
|
|
|
|
};
|
|
|
|
|
}
|