Files
makelore/shared/ai-gateway-error-kind.ts

33 lines
1.3 KiB
TypeScript

export type AIGatewayErrorKind = 'quota_exhausted' | 'authentication_invalid';
export function isTokenBalanceExhausted(message: string | null | undefined): boolean {
const normalized = message?.trim().toLowerCase() ?? '';
return normalized.includes('token_balance_exhausted')
|| normalized.includes('token_point_balance_exhausted')
|| normalized.includes('token balance exhausted')
|| normalized.includes('balance exhausted')
|| normalized.includes('词元点数余额不足');
}
export function getAIGatewayErrorKind(message: string | null | undefined): AIGatewayErrorKind | null {
const normalized = message?.trim().toLowerCase() ?? '';
if (!normalized) return null;
if (
isTokenBalanceExhausted(normalized)
|| normalized.includes('user quota is not enough')
|| normalized.includes('quota is not enough')
|| normalized.includes('quota not enough')
|| normalized.includes('insufficient quota')
|| normalized.includes('quota exhausted')
|| normalized.includes('quota exceeded')
|| normalized.includes('rolling 5-hour window')
|| normalized.includes('额度不足')
) {
return 'quota_exhausted';
}
if (normalized.includes('works_square_gateway_authorize_failed')) {
return 'authentication_invalid';
}
return null;
}