| import { useMemo } from 'react'; |
| import { AgentCapabilities } from 'librechat-data-provider'; |
|
|
| interface AgentCapabilitiesResult { |
| toolsEnabled: boolean; |
| actionsEnabled: boolean; |
| artifactsEnabled: boolean; |
| ocrEnabled: boolean; |
| contextEnabled: 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 contextEnabled = useMemo( |
| () => capabilities?.includes(AgentCapabilities.context) ?? 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, |
| contextEnabled, |
| artifactsEnabled, |
| webSearchEnabled, |
| fileSearchEnabled, |
| }; |
| } |
|
|