| import { z } from 'zod'; |
|
|
| |
| |
| |
| export enum PermissionTypes { |
| |
| |
| |
| PROMPTS = 'PROMPTS', |
| |
| |
| |
| BOOKMARKS = 'BOOKMARKS', |
| |
| |
| |
| AGENTS = 'AGENTS', |
| |
| |
| |
| MEMORIES = 'MEMORIES', |
| |
| |
| |
| MULTI_CONVO = 'MULTI_CONVO', |
| |
| |
| |
| TEMPORARY_CHAT = 'TEMPORARY_CHAT', |
| |
| |
| |
| RUN_CODE = 'RUN_CODE', |
| |
| |
| |
| WEB_SEARCH = 'WEB_SEARCH', |
| |
| |
| |
| PEOPLE_PICKER = 'PEOPLE_PICKER', |
| |
| |
| |
| MARKETPLACE = 'MARKETPLACE', |
| |
| |
| |
| FILE_SEARCH = 'FILE_SEARCH', |
| |
| |
| |
| FILE_CITATIONS = 'FILE_CITATIONS', |
| } |
|
|
| |
| |
| |
| export enum Permissions { |
| SHARED_GLOBAL = 'SHARED_GLOBAL', |
| USE = 'USE', |
| CREATE = 'CREATE', |
| UPDATE = 'UPDATE', |
| READ = 'READ', |
| READ_AUTHOR = 'READ_AUTHOR', |
| SHARE = 'SHARE', |
| |
| OPT_OUT = 'OPT_OUT', |
| VIEW_USERS = 'VIEW_USERS', |
| VIEW_GROUPS = 'VIEW_GROUPS', |
| VIEW_ROLES = 'VIEW_ROLES', |
| } |
|
|
| export const promptPermissionsSchema = z.object({ |
| [Permissions.SHARED_GLOBAL]: z.boolean().default(false), |
| [Permissions.USE]: z.boolean().default(true), |
| [Permissions.CREATE]: z.boolean().default(true), |
| |
| }); |
| export type TPromptPermissions = z.infer<typeof promptPermissionsSchema>; |
|
|
| export const bookmarkPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TBookmarkPermissions = z.infer<typeof bookmarkPermissionsSchema>; |
|
|
| export const memoryPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| [Permissions.CREATE]: z.boolean().default(true), |
| [Permissions.UPDATE]: z.boolean().default(true), |
| [Permissions.READ]: z.boolean().default(true), |
| [Permissions.OPT_OUT]: z.boolean().default(true), |
| }); |
| export type TMemoryPermissions = z.infer<typeof memoryPermissionsSchema>; |
|
|
| export const agentPermissionsSchema = z.object({ |
| [Permissions.SHARED_GLOBAL]: z.boolean().default(false), |
| [Permissions.USE]: z.boolean().default(true), |
| [Permissions.CREATE]: z.boolean().default(true), |
| |
| }); |
| export type TAgentPermissions = z.infer<typeof agentPermissionsSchema>; |
|
|
| export const multiConvoPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TMultiConvoPermissions = z.infer<typeof multiConvoPermissionsSchema>; |
|
|
| export const temporaryChatPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TTemporaryChatPermissions = z.infer<typeof temporaryChatPermissionsSchema>; |
|
|
| export const runCodePermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TRunCodePermissions = z.infer<typeof runCodePermissionsSchema>; |
|
|
| export const webSearchPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TWebSearchPermissions = z.infer<typeof webSearchPermissionsSchema>; |
|
|
| export const peoplePickerPermissionsSchema = z.object({ |
| [Permissions.VIEW_USERS]: z.boolean().default(true), |
| [Permissions.VIEW_GROUPS]: z.boolean().default(true), |
| [Permissions.VIEW_ROLES]: z.boolean().default(true), |
| }); |
| export type TPeoplePickerPermissions = z.infer<typeof peoplePickerPermissionsSchema>; |
|
|
| export const marketplacePermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(false), |
| }); |
| export type TMarketplacePermissions = z.infer<typeof marketplacePermissionsSchema>; |
|
|
| export const fileSearchPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TFileSearchPermissions = z.infer<typeof fileSearchPermissionsSchema>; |
|
|
| export const fileCitationsPermissionsSchema = z.object({ |
| [Permissions.USE]: z.boolean().default(true), |
| }); |
| export type TFileCitationsPermissions = z.infer<typeof fileCitationsPermissionsSchema>; |
|
|
| |
| export const permissionsSchema = z.object({ |
| [PermissionTypes.PROMPTS]: promptPermissionsSchema, |
| [PermissionTypes.BOOKMARKS]: bookmarkPermissionsSchema, |
| [PermissionTypes.MEMORIES]: memoryPermissionsSchema, |
| [PermissionTypes.AGENTS]: agentPermissionsSchema, |
| [PermissionTypes.MULTI_CONVO]: multiConvoPermissionsSchema, |
| [PermissionTypes.TEMPORARY_CHAT]: temporaryChatPermissionsSchema, |
| [PermissionTypes.RUN_CODE]: runCodePermissionsSchema, |
| [PermissionTypes.WEB_SEARCH]: webSearchPermissionsSchema, |
| [PermissionTypes.PEOPLE_PICKER]: peoplePickerPermissionsSchema, |
| [PermissionTypes.MARKETPLACE]: marketplacePermissionsSchema, |
| [PermissionTypes.FILE_SEARCH]: fileSearchPermissionsSchema, |
| [PermissionTypes.FILE_CITATIONS]: fileCitationsPermissionsSchema, |
| }); |
|
|