mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-03-18 21:56:33 +01:00
* style: update input IDs in BasicInfoSection for consistency and improve accessibility * style: add border-destructive variable for improved design consistency * style: update error border color for title input in BasicInfoSection * style: update delete confirmation dialog title and description for MCP Server * style: add text-destructive variable for improved design consistency * style: update error message and border color for URL and trust fields for consistency * style: reorder imports and update error message styling for consistency across sections * style: enhance MCPServerDialog with copy link functionality and UI improvements * style: enhance MCPServerDialog with improved accessibility and loading indicators * style: bump @librechat/client to 0.4.51 and enhance OGDialogTemplate for improved selection handling * a11y: enhance accessibility and error handling in MCPServerDialog sections * style: enhance MCPServerDialog accessibility and improve resource name handling * style: improve accessibility in MCPServerDialog and AuthSection, update translation for delete confirmation * style: update aria-invalid attributes to use string values for improved accessibility in form sections * style: enhance accessibility in AuthSection by updating aria attributes and adding error messages * style: remove unnecessary aria-hidden attributes from Spinner components in MCPServerDialog * style: simplify legacy selection check in OGDialogTemplate
67 lines
3.2 KiB
TypeScript
67 lines
3.2 KiB
TypeScript
import { AccessRoleIds, ResourceType } from 'librechat-data-provider';
|
|
|
|
export interface ResourceConfig {
|
|
resourceType: ResourceType;
|
|
defaultViewerRoleId: AccessRoleIds;
|
|
defaultEditorRoleId: AccessRoleIds;
|
|
defaultOwnerRoleId: AccessRoleIds;
|
|
getResourceUrl?: (resourceId: string) => string;
|
|
getResourceName: (resourceName?: string) => string;
|
|
getShareMessage: (resourceName?: string) => string;
|
|
getManageMessage: (resourceName?: string) => string;
|
|
getCopyUrlMessage: () => string;
|
|
}
|
|
|
|
export const RESOURCE_CONFIGS: Record<ResourceType, ResourceConfig> = {
|
|
[ResourceType.AGENT]: {
|
|
resourceType: ResourceType.AGENT,
|
|
defaultViewerRoleId: AccessRoleIds.AGENT_VIEWER,
|
|
defaultEditorRoleId: AccessRoleIds.AGENT_EDITOR,
|
|
defaultOwnerRoleId: AccessRoleIds.AGENT_OWNER,
|
|
getResourceUrl: (agentId: string) => `${window.location.origin}/c/new?agent_id=${agentId}`,
|
|
getResourceName: (name?: string) => (name && name !== '' ? name : 'agent'),
|
|
getShareMessage: (name?: string) => (name && name !== '' ? name : 'agent'),
|
|
getManageMessage: (name?: string) =>
|
|
`Manage permissions for ${name && name !== '' ? name : 'agent'}`,
|
|
getCopyUrlMessage: () => 'Agent URL copied',
|
|
},
|
|
[ResourceType.PROMPTGROUP]: {
|
|
resourceType: ResourceType.PROMPTGROUP,
|
|
defaultViewerRoleId: AccessRoleIds.PROMPTGROUP_VIEWER,
|
|
defaultEditorRoleId: AccessRoleIds.PROMPTGROUP_EDITOR,
|
|
defaultOwnerRoleId: AccessRoleIds.PROMPTGROUP_OWNER,
|
|
getResourceName: (name?: string) => (name && name !== '' ? name : 'prompt'),
|
|
getShareMessage: (name?: string) => (name && name !== '' ? name : 'prompt'),
|
|
getManageMessage: (name?: string) =>
|
|
`Manage permissions for ${name && name !== '' ? name : 'prompt'}`,
|
|
getCopyUrlMessage: () => 'Prompt URL copied',
|
|
},
|
|
[ResourceType.MCPSERVER]: {
|
|
resourceType: ResourceType.MCPSERVER,
|
|
defaultViewerRoleId: AccessRoleIds.MCPSERVER_VIEWER,
|
|
defaultEditorRoleId: AccessRoleIds.MCPSERVER_EDITOR,
|
|
defaultOwnerRoleId: AccessRoleIds.MCPSERVER_OWNER,
|
|
getResourceName: (name?: string) => (name && name !== '' ? name : 'MCP server'),
|
|
getShareMessage: (name?: string) => (name && name !== '' ? name : 'MCP server'),
|
|
getManageMessage: (name?: string) =>
|
|
`Manage permissions for ${name && name !== '' ? name : 'MCP server'}`,
|
|
getCopyUrlMessage: () => 'MCP Server URL copied',
|
|
},
|
|
[ResourceType.REMOTE_AGENT]: {
|
|
resourceType: ResourceType.REMOTE_AGENT,
|
|
defaultViewerRoleId: AccessRoleIds.REMOTE_AGENT_VIEWER,
|
|
defaultEditorRoleId: AccessRoleIds.REMOTE_AGENT_EDITOR,
|
|
defaultOwnerRoleId: AccessRoleIds.REMOTE_AGENT_OWNER,
|
|
getResourceUrl: () => `${window.location.origin}/api/v1/responses`,
|
|
getResourceName: (name?: string) => (name && name !== '' ? `"${name}"` : 'remote agent'),
|
|
getShareMessage: (name?: string) =>
|
|
name && name !== '' ? `"${name}" (API Access)` : 'remote agent access',
|
|
getManageMessage: (name?: string) =>
|
|
`Manage API access for ${name && name !== '' ? `"${name}"` : 'agent'}`,
|
|
getCopyUrlMessage: () => 'API endpoint copied',
|
|
},
|
|
};
|
|
|
|
export const getResourceConfig = (resourceType: ResourceType): ResourceConfig | undefined => {
|
|
return RESOURCE_CONFIGS[resourceType];
|
|
};
|