(error, provider, model)
| 74701 | function isModelNotFoundMessage(message) { |
| 74702 | const lowerMessage = message.toLowerCase(); |
| 74703 | return lowerMessage.includes("model") && (lowerMessage.includes("not found") || lowerMessage.includes("does not exist") || lowerMessage.includes("pull")) || lowerMessage.includes("does_not_exist"); |
| 74704 | } |
| 74705 | function isInsufficientCreditsMessage(message) { |
| 74706 | const lowerMessage = message.toLowerCase(); |
| 74707 | return lowerMessage.includes("insufficient") || lowerMessage.includes("credit") || lowerMessage.includes("quota") || lowerMessage.includes("balance too low") || lowerMessage.includes("billing") || lowerMessage.includes("payment required") || lowerMessage.includes("exceeded"); |
| 74708 | } |
| 74709 | function normalizeEngineError(error, provider, model) { |
| 74710 | if (error instanceof ModelNotFoundError || error instanceof AuthenticationError3 || error instanceof InsufficientCreditsError || error instanceof RateLimitError3 || error instanceof ServiceUnavailableError) { |
| 74711 | return error; |
| 74712 | } |
| 74713 | const statusCode = getStatusCode(error); |
| 74714 | const message = extractErrorMessage(error); |
| 74715 | switch (statusCode) { |
| 74716 | case 401: |
| 74717 | return new AuthenticationError3(provider, message); |
| 74718 | case 402: |
| 74719 | return new InsufficientCreditsError(provider, message); |
| 74720 | case 404: |
| 74721 | if (isModelNotFoundMessage(message)) { |
| 74722 | return new ModelNotFoundError(model, provider, 404); |
| 74723 | } |
| 74724 | return error instanceof Error ? error : new Error(message); |
| 74725 | case 429: |
| 74726 | const retryAfter = getRetryAfter(error); |
| 74727 | return new RateLimitError3(provider, retryAfter, message); |
| 74728 | case 500: |
| 74729 | case 502: |
| 74730 | case 503: |
| 74731 | case 504: |
| 74732 | return new ServiceUnavailableError(provider, statusCode, message); |
| 74733 | } |
| 74734 | if (statusCode === 400) { |
| 74735 | return error instanceof Error ? error : new Error(message); |
| 74736 | } |
| 74737 | if (isModelNotFoundMessage(message)) { |
| 74738 | return new ModelNotFoundError(model, provider, 404); |
| 74739 | } |
| 74740 | if (isInsufficientCreditsMessage(message)) { |
| 74741 | return new InsufficientCreditsError(provider, message); |
| 74742 | } |
| 74743 | const lowerMessage = message.toLowerCase(); |
| 74744 | if (lowerMessage.includes("rate limit") || lowerMessage.includes("rate_limit") || lowerMessage.includes("too many requests")) { |
| 74745 | return new RateLimitError3(provider, void 0, message); |
| 74746 | } |
| 74747 | if (lowerMessage.includes("unauthorized") || lowerMessage.includes("api key") || lowerMessage.includes("apikey") || lowerMessage.includes("authentication") || lowerMessage.includes("invalid_api_key")) { |
| 74748 | return new AuthenticationError3(provider, message); |
no test coverage detected
searching dependent graphs…