1
import { AgentRuntimeErrorType, ILobeAgentRuntimeErrorType } from '@/libs/agent-runtime';
2
import { ChatErrorType, ErrorResponse, ErrorType } from '@/types/fetch';
4
const getStatus = (errorType: ILobeAgentRuntimeErrorType | ErrorType) => {
6
if (errorType.toString().includes('Invalid')) return 401;
10
case AgentRuntimeErrorType.InvalidProviderAPIKey:
11
case AgentRuntimeErrorType.NoOpenAIAPIKey: {
15
case AgentRuntimeErrorType.LocationNotSupportError: {
19
case AgentRuntimeErrorType.QuotaLimitReached: {
24
case AgentRuntimeErrorType.AgentRuntimeError: {
28
case AgentRuntimeErrorType.ProviderBizError:
29
case AgentRuntimeErrorType.OpenAIBizError: {
33
case ChatErrorType.OllamaServiceUnavailable:
34
case AgentRuntimeErrorType.OllamaBizError: {
39
return errorType as number;
42
export const createErrorResponse = (
43
errorType: ErrorType | ILobeAgentRuntimeErrorType,
46
const statusCode = getStatus(errorType);
48
const data: ErrorResponse = { body, errorType };
50
if (typeof statusCode !== 'number' || statusCode < 200 || statusCode > 599) {
52
`current StatusCode: \`${statusCode}\` .`,
53
'Please go to `./src/app/api/errorResponse.ts` to defined the statusCode.',
57
return new Response(JSON.stringify(data), { status: statusCode });