import pRetry, { AbortError } from 'p-retry'; | |
import pTimeout from 'p-timeout'; | |
export async function withQwenTimeout<T>( | |
fn: () => Promise<T>, | |
{ totalTimeout = 180_000, retries = 2 } = {} | |
): Promise<T> { | |
return pRetry( | |
() => pTimeout(fn(), { milliseconds: totalTimeout }), | |
{ | |
retries, | |
onFailedAttempt: (error) => { | |
console.error(`qwen3 attempt #${error.attemptNumber} failed: ${error.message}`); | |
if (error.retriesLeft === 0) { | |
console.error('qwen3 max retries reached, giving up'); | |
} | |
} | |
} | |
); | |
} |