🗂️ feat: Add File Search Toggle Permission for Chat Area Badge (#8605)

This commit is contained in:
Danny Avila 2025-07-22 17:51:21 -04:00 committed by GitHub
parent 5178507b1c
commit e5d08ccdf1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 184 additions and 19 deletions

View file

@ -517,6 +517,7 @@ export const intefaceSchema = z
temporaryChatRetention: z.number().min(1).max(8760).optional(),
runCode: z.boolean().optional(),
webSearch: z.boolean().optional(),
fileSearch: z.boolean().optional(),
})
.default({
endpointsMenu: true,
@ -532,6 +533,7 @@ export const intefaceSchema = z
temporaryChat: true,
runCode: true,
webSearch: true,
fileSearch: true,
});
export type TInterfaceConfig = z.infer<typeof intefaceSchema>;

View file

@ -36,6 +36,10 @@ export enum PermissionTypes {
* Type for using the "Web Search" feature
*/
WEB_SEARCH = 'WEB_SEARCH',
/**
* Type for using the "File Search" feature
*/
FILE_SEARCH = 'FILE_SEARCH',
}
/**
@ -103,6 +107,11 @@ export const webSearchPermissionsSchema = z.object({
});
export type TWebSearchPermissions = z.infer<typeof webSearchPermissionsSchema>;
export const fileSearchPermissionsSchema = z.object({
[Permissions.USE]: z.boolean().default(true),
});
export type TFileSearchPermissions = z.infer<typeof fileSearchPermissionsSchema>;
// Define a single permissions schema that holds all permission types.
export const permissionsSchema = z.object({
[PermissionTypes.PROMPTS]: promptPermissionsSchema,
@ -113,4 +122,5 @@ export const permissionsSchema = z.object({
[PermissionTypes.TEMPORARY_CHAT]: temporaryChatPermissionsSchema,
[PermissionTypes.RUN_CODE]: runCodePermissionsSchema,
[PermissionTypes.WEB_SEARCH]: webSearchPermissionsSchema,
[PermissionTypes.FILE_SEARCH]: fileSearchPermissionsSchema,
});

View file

@ -7,8 +7,9 @@ import {
promptPermissionsSchema,
memoryPermissionsSchema,
runCodePermissionsSchema,
webSearchPermissionsSchema,
bookmarkPermissionsSchema,
webSearchPermissionsSchema,
fileSearchPermissionsSchema,
multiConvoPermissionsSchema,
temporaryChatPermissionsSchema,
} from './permissions';
@ -74,6 +75,9 @@ const defaultRolesSchema = z.object({
[PermissionTypes.WEB_SEARCH]: webSearchPermissionsSchema.extend({
[Permissions.USE]: z.boolean().default(true),
}),
[PermissionTypes.FILE_SEARCH]: fileSearchPermissionsSchema.extend({
[Permissions.USE]: z.boolean().default(true),
}),
}),
}),
[SystemRoles.USER]: roleSchema.extend({
@ -118,6 +122,9 @@ export const roleDefaults = defaultRolesSchema.parse({
[PermissionTypes.WEB_SEARCH]: {
[Permissions.USE]: true,
},
[PermissionTypes.FILE_SEARCH]: {
[Permissions.USE]: true,
},
},
},
[SystemRoles.USER]: {
@ -131,6 +138,7 @@ export const roleDefaults = defaultRolesSchema.parse({
[PermissionTypes.TEMPORARY_CHAT]: {},
[PermissionTypes.RUN_CODE]: {},
[PermissionTypes.WEB_SEARCH]: {},
[PermissionTypes.FILE_SEARCH]: {},
},
},
});