mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-22 02:14:10 +01:00
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
|
|
import { useMemo } from 'react';
|
||
|
|
import { AgentCapabilities } from 'librechat-data-provider';
|
||
|
|
|
||
|
|
interface AgentCapabilitiesResult {
|
||
|
|
toolsEnabled: boolean;
|
||
|
|
actionsEnabled: boolean;
|
||
|
|
artifactsEnabled: boolean;
|
||
|
|
ocrEnabled: boolean;
|
||
|
|
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],
|
||
|
|
);
|
||
|
|
|
||
|
|
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,
|
||
|
|
artifactsEnabled,
|
||
|
|
webSearchEnabled,
|
||
|
|
fileSearchEnabled,
|
||
|
|
};
|
||
|
|
}
|