import { AiApiError, AiErrorCodes, type AiErrorCode } from './AiError'; export interface AiResponseBody { ret: number; code: number; success: boolean; message: string; msg: string; data: T | null; } export function aiSuccessResponse(data: T): Response { return Response.json(createAiResponseBody(0, '', data)); } export function aiErrorResponse(error: unknown): Response { const normalized = normalizeAiError(error); const status = normalized.code === AiErrorCodes.AI_CONFIG_MISSING ? 500 : 200; return Response.json(createAiResponseBody(normalized.code, normalized.message, null), { status }); } export function createAiResponseBody( code: number, message: string, data: T | null, ): AiResponseBody { return { ret: code, code, success: code === 0, message, msg: message, data, }; } export function normalizeAiError(error: unknown): { code: AiErrorCode; message: string } { if (error instanceof AiApiError) { return { code: error.code, message: error.message }; } return { code: AiErrorCodes.AI_UPSTREAM_ERROR, message: 'AI 上游服务异常', }; }