( prompt: string )
| 166 | * Tries the primary provider first; on failure switches to the fallback. |
| 167 | */ |
| 168 | export async function callAIProviderWithFallback( |
| 169 | prompt: string |
| 170 | ): Promise<string> { |
| 171 | const primaryName = |
| 172 | (process.env.AI_PROVIDER as AIProviderName) || "gemini"; |
| 173 | const fallbackName = getFallbackProviderName(primaryName); |
| 174 | |
| 175 | try { |
| 176 | return await callAIProvider(prompt, primaryName); |
| 177 | } catch (primaryError) { |
| 178 | console.error( |
| 179 | `⚠️ ${primaryName} failed, switching to ${fallbackName} fallback`, |
| 180 | primaryError |
| 181 | ); |
| 182 | return await callAIProvider(prompt, fallbackName); |
| 183 | } |
| 184 | } |
no test coverage detected