import { generateInternalToken } from '@/lib/auth/internal' import { getBaseUrl, getInternalApiBaseUrl } from '@/lib/core/utils/urls' import { HTTP } from '@/executor/constants' export async function buildAuthHeaders(userId?: string): Promise> { const headers: Record = { 'Content-Type': HTTP.CONTENT_TYPE.JSON, } if (typeof window === 'undefined') { const token = await generateInternalToken(userId) headers.Authorization = `Bearer ${token}` } return headers } export function buildAPIUrl(path: string, params?: Record): URL { const baseUrl = path.startsWith('/api/') ? getInternalApiBaseUrl() : getBaseUrl() const url = new URL(path, baseUrl) if (params) { for (const [key, value] of Object.entries(params)) { if (value !== undefined && value !== null) { url.searchParams.set(key, value) } } } return url } export async function extractAPIErrorMessage(response: Response): Promise { const defaultMessage = `API request failed with status ${response.status}` try { const errorData = await response.json() return errorData.error || defaultMessage } catch { return defaultMessage } }