| const express = require('express'); |
| const { generateCheckAccess, skipAgentCheck } = require('@librechat/api'); |
| const { PermissionTypes, Permissions, PermissionBits } = require('librechat-data-provider'); |
| const { |
| setHeaders, |
| moderateText, |
| |
| 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); |
| }; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| router.post('/', controller); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| router.post('/:endpoint', controller); |
|
|
| module.exports = router; |
|
|