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.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]; };