chat / client /src /utils /resources.ts
helloya20's picture
Upload 2345 files
f0743f4 verified
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];
};