/** * Helper для /api/voice/tools/* — общий bearer-check и forwarding к внутренним endpoint'ам. * Позволяет голосовому скрипту вызывать tools через один и тот же токен (VOICE_API_KEY). */ export function isBearerAuthorized(req: Request): boolean { const expected = process.env.VOICE_API_KEY if (!expected) return false const auth = req.headers.get('authorization') || '' const token = auth.replace(/^Bearer\s+/i, '').trim() return token === expected } export function unauthorized() { return new Response(JSON.stringify({ error: 'unauthorized' }), { status: 401, headers: { 'Content-Type': 'application/json' }, }) } /** * Headers для loopback-вызовов к другим /api/* роутам из tool endpoints. * Middleware пропускает запросы с этим header'ом (см. middleware.ts). */ export function internalHeaders(): HeadersInit { const key = process.env.VOICE_API_KEY || '' return { 'x-voice-internal': key } }