e115934061
Publish `@librechat/data-schemas` to NPM / pack (push) Failing after 8s
Publish `@librechat/client` to NPM / pack (push) Failing after 0s
GitNexus Index / index (push) Failing after 1s
Sync Locize Translations & Create Translation PR / Create Translation PR on Version Published (push) Has been skipped
Sync Helm Chart Tags / Sync chart tags (push) Failing after 2s
Publish `librechat-data-provider` to NPM / pack (push) Failing after 1s
Docker Dev Images Build / build (Dockerfile, librechat-dev, node) (push) Failing after 1s
Docker Dev Images Build / build (Dockerfile.multi, librechat-dev-api, api-build) (push) Failing after 0s
Sync Helm Chart Tags / Ignore non-main push (push) Has been skipped
Sync Locize Translations & Create Translation PR / Sync Translation Keys with Locize (push) Failing after 1s
Publish `@librechat/client` to NPM / publish-npm (push) Has been cancelled
Publish `librechat-data-provider` to NPM / publish-npm (push) Has been cancelled
GitNexus Index / post-index (push) Has been cancelled
Publish `@librechat/data-schemas` to NPM / publish-npm (push) Has been cancelled
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
const { v4 } = require('uuid');
|
|
const { handleAbortError } = require('~/server/middleware/abortMiddleware');
|
|
|
|
/**
|
|
* Checks if the assistant is supported or excluded
|
|
* @param {object} req - Express Request
|
|
* @param {object} req.body - The request payload.
|
|
* @param {object} res - Express Response
|
|
* @param {function} next - Express next middleware function.
|
|
* @returns {Promise<void>}
|
|
*/
|
|
const validateAssistant = async (req, res, next) => {
|
|
const { endpoint, conversationId, assistant_id, messageId } = req.body;
|
|
|
|
const appConfig = req.config;
|
|
/** @type {Partial<TAssistantEndpoint>} */
|
|
const assistantsConfig = appConfig.endpoints?.[endpoint];
|
|
if (!assistantsConfig) {
|
|
return next();
|
|
}
|
|
|
|
const { supportedIds, excludedIds } = assistantsConfig;
|
|
const error = { message: 'validateAssistant: Assistant not supported' };
|
|
|
|
if (supportedIds?.length && !supportedIds.includes(assistant_id)) {
|
|
return await handleAbortError(res, req, error, {
|
|
sender: 'System',
|
|
conversationId,
|
|
messageId: v4(),
|
|
parentMessageId: messageId,
|
|
error,
|
|
});
|
|
} else if (excludedIds?.length && excludedIds.includes(assistant_id)) {
|
|
return await handleAbortError(res, req, error, {
|
|
sender: 'System',
|
|
conversationId,
|
|
messageId: v4(),
|
|
parentMessageId: messageId,
|
|
});
|
|
}
|
|
|
|
return next();
|
|
};
|
|
|
|
module.exports = validateAssistant;
|