| 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', |
| }, |
| }; |
|
|
| export const getResourceConfig = (resourceType: ResourceType): ResourceConfig | undefined => { |
| return RESOURCE_CONFIGS[resourceType]; |
| }; |
|
|