jest.mock('@librechat/data-schemas', () => ({ logger: { debug: jest.fn(), error: jest.fn(), warn: jest.fn() }, })); jest.mock('@librechat/api', () => ({ checkAccess: jest.fn(), loadWebSearchAuth: jest.fn(), })); jest.mock('~/models', () => ({ getRoleByName: jest.fn(), createToolCall: jest.fn(), getToolCallsByConvo: jest.fn(), getMessage: jest.fn(), })); jest.mock('~/server/services/Files/process', () => ({ processFileURL: jest.fn(), uploadImageBuffer: jest.fn(), })); jest.mock('~/server/services/Files/Code/process', () => ({ processCodeOutput: jest.fn(), })); jest.mock('~/server/services/Tools/credentials', () => ({ loadAuthValues: jest.fn(), })); jest.mock('~/app/clients/tools/util', () => ({ loadTools: jest.fn(), })); const { Tools, AuthType } = require('librechat-data-provider'); const { verifyToolAuth } = require('../tools'); /** * Phase 8 behavioral pin: `verifyToolAuth(execute_code)` unconditionally * returns system-authenticated. Sandbox auth moved server-side into the * agents library, so the per-user `CODE_API_KEY` check that previously * gated this endpoint is gone. The deployment contract is: if the * admin enabled the `execute_code` capability, the sandbox is * reachable. This endpoint does not probe reachability (would be too * expensive per UI-gate query); failures surface at execution time. * * A regression where someone re-adds an auth check here would * resurrect the per-user key-entry dialog on the client, which Phase 8 * explicitly removed. Pin the contract. */ describe('verifyToolAuth — execute_code system-auth contract', () => { const makeReq = (toolId) => ({ params: { toolId }, user: { id: 'user-1' }, config: {}, }); const makeRes = () => { const res = {}; res.status = jest.fn().mockReturnValue(res); res.json = jest.fn().mockReturnValue(res); return res; }; it('returns authenticated: true with SYSTEM_DEFINED for execute_code', async () => { const res = makeRes(); await verifyToolAuth(makeReq(Tools.execute_code), res); expect(res.status).toHaveBeenCalledWith(200); expect(res.json).toHaveBeenCalledWith({ authenticated: true, message: AuthType.SYSTEM_DEFINED, }); }); it('returns 404 for unknown tool ids (not in directCallableTools)', async () => { const res = makeRes(); await verifyToolAuth(makeReq('not_a_real_tool'), res); expect(res.status).toHaveBeenCalledWith(404); expect(res.json).toHaveBeenCalledWith({ message: 'Tool not found' }); }); it('does NOT invoke loadAuthValues for execute_code (no per-user credential check)', async () => { /* Regression guard: a future refactor that threads per-user auth back in would resurface the key-entry dialog on the client. Pin that the auth path is never consulted. */ const { loadAuthValues } = require('~/server/services/Tools/credentials'); loadAuthValues.mockClear(); await verifyToolAuth(makeReq(Tools.execute_code), makeRes()); expect(loadAuthValues).not.toHaveBeenCalled(); }); it('does NOT reference AuthType.USER_PROVIDED in the response (Phase 8 removed the path)', async () => { const res = makeRes(); await verifyToolAuth(makeReq(Tools.execute_code), res); const payload = res.json.mock.calls[0][0]; expect(payload.message).not.toBe(AuthType.USER_PROVIDED); }); });