mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
refactor: organize Sharing/Agent components, improve type safety for resource types and access role ids, rename enums to PascalCase refactor: organize Sharing/Agent components, improve type safety for resource types and access role ids chore: move sharing related components to dedicated "Sharing" directory chore: remove PublicSharingToggle component and update index exports chore: move non-sidepanel agent components to `~/components/Agents` chore: move AgentCategoryDisplay component with tests chore: remove commented out code refactor: change PERMISSION_BITS from const to enum for better type safety refactor: reorganize imports in GenericGrantAccessDialog and update index exports for hooks refactor: update type definitions to use ACCESS_ROLE_IDS for improved type safety refactor: remove unused canAccessPromptResource middleware and related code refactor: remove unused prompt access roles from createAccessRoleMethods refactor: update resourceType in AclEntry type definition to remove unused 'prompt' value refactor: introduce ResourceType enum and update resourceType usage across data provider files for improved type safety refactor: update resourceType usage to ResourceType enum across sharing and permissions components for improved type safety refactor: standardize resourceType usage to ResourceType enum across agent and prompt models, permissions controller, and middleware for enhanced type safety refactor: update resourceType references from PROMPT_GROUP to PROMPTGROUP for consistency across models, middleware, and components refactor: standardize access role IDs and resource type usage across agent, file, and prompt models for improved type safety and consistency chore: add typedefs for TUpdateResourcePermissionsRequest and TUpdateResourcePermissionsResponse to enhance type definitions chore: move SearchPicker to PeoplePicker dir refactor: implement debouncing for query changes in SearchPicker for improved performance chore: fix typing, import order for agent admin settings fix: agent admin settings, prevent agent form submission refactor: rename `ACCESS_ROLE_IDS` to `AccessRoleIds` refactor: replace PermissionBits with PERMISSION_BITS refactor: replace PERMISSION_BITS with PermissionBits
61 lines
1.9 KiB
JavaScript
61 lines
1.9 KiB
JavaScript
const express = require('express');
|
|
const { generateCheckAccess, skipAgentCheck } = require('@librechat/api');
|
|
const { PermissionTypes, Permissions, PermissionBits } = require('librechat-data-provider');
|
|
const {
|
|
setHeaders,
|
|
moderateText,
|
|
// validateModel,
|
|
validateConvoAccess,
|
|
buildEndpointOption,
|
|
canAccessAgentFromBody,
|
|
} = require('~/server/middleware');
|
|
const { initializeClient } = require('~/server/services/Endpoints/agents');
|
|
const AgentController = require('~/server/controllers/agents/request');
|
|
const addTitle = require('~/server/services/Endpoints/agents/title');
|
|
const { getRoleByName } = require('~/models/Role');
|
|
|
|
const router = express.Router();
|
|
|
|
router.use(moderateText);
|
|
|
|
const checkAgentAccess = generateCheckAccess({
|
|
permissionType: PermissionTypes.AGENTS,
|
|
permissions: [Permissions.USE],
|
|
skipCheck: skipAgentCheck,
|
|
getRoleByName,
|
|
});
|
|
const checkAgentResourceAccess = canAccessAgentFromBody({
|
|
requiredPermission: PermissionBits.VIEW,
|
|
});
|
|
|
|
router.use(checkAgentAccess);
|
|
router.use(checkAgentResourceAccess);
|
|
router.use(validateConvoAccess);
|
|
router.use(buildEndpointOption);
|
|
router.use(setHeaders);
|
|
|
|
const controller = async (req, res, next) => {
|
|
await AgentController(req, res, next, initializeClient, addTitle);
|
|
};
|
|
|
|
/**
|
|
* @route POST / (regular endpoint)
|
|
* @desc Chat with an assistant
|
|
* @access Public
|
|
* @param {express.Request} req - The request object, containing the request data.
|
|
* @param {express.Response} res - The response object, used to send back a response.
|
|
* @returns {void}
|
|
*/
|
|
router.post('/', controller);
|
|
|
|
/**
|
|
* @route POST /:endpoint (ephemeral agents)
|
|
* @desc Chat with an assistant
|
|
* @access Public
|
|
* @param {express.Request} req - The request object, containing the request data.
|
|
* @param {express.Response} res - The response object, used to send back a response.
|
|
* @returns {void}
|
|
*/
|
|
router.post('/:endpoint', controller);
|
|
|
|
module.exports = router;
|