- Add useMarketplaceAgentsInfiniteQuery and useGetAgentCategoriesQuery to client/src/data-provider/Agents/

- Replace manual pagination in AgentGrid with infinite query pattern
  - Update imports to use local data provider instead of librechat-data-provider
  - Add proper permission handling with PERMISSION_BITS.VIEW/EDIT constants
  - Improve agent access control by adding requiredPermission validation in backend
  - Remove manual cursor/state management in favor of infinite query built-ins
  - Maintain existing search and category filtering functionality
This commit is contained in:
Danny Avila 2025-06-23 11:44:12 -04:00
parent 83122f160f
commit d549a64317
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
9 changed files with 143 additions and 128 deletions

View file

@ -389,6 +389,16 @@ const deleteAgentHandler = async (req, res) => {
const getListAgentsHandler = async (req, res) => {
try {
const userId = req.user.id;
if (!req.query.requiredPermission) {
req.query.requiredPermission = PermissionBits.VIEW;
} else if (typeof req.query.requiredPermission === 'string') {
req.query.requiredPermission = parseInt(req.query.requiredPermission, 10);
if (isNaN(req.query.requiredPermission)) {
req.query.requiredPermission = PermissionBits.VIEW;
}
} else if (typeof req.query.requiredPermission !== 'number') {
req.query.requiredPermission = PermissionBits.VIEW;
}
const requiredPermission = req.query.requiredPermission || PermissionBits.VIEW;
// Get agent IDs the user has VIEW access to via ACL
const accessibleIds = await findAccessibleResources({