@claritylabs/cl-sdk 0.7.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -241,16 +241,22 @@ module.exports = __toCommonJS(index_exports);
|
|
|
241
241
|
// src/core/retry.ts
|
|
242
242
|
var MAX_RETRIES = 5;
|
|
243
243
|
var BASE_DELAY_MS = 2e3;
|
|
244
|
-
function
|
|
244
|
+
function isRetryableError(error) {
|
|
245
245
|
if (error instanceof Error) {
|
|
246
246
|
const msg = error.message.toLowerCase();
|
|
247
247
|
if (msg.includes("rate limit") || msg.includes("rate_limit") || msg.includes("too many requests")) {
|
|
248
248
|
return true;
|
|
249
249
|
}
|
|
250
|
+
if (msg.includes("grammar compilation timed out")) return true;
|
|
251
|
+
if (msg.includes("no output generated")) return true;
|
|
252
|
+
if (msg.includes("overloaded")) return true;
|
|
253
|
+
if (msg.includes("internal server error")) return true;
|
|
254
|
+
if (msg.includes("service unavailable")) return true;
|
|
255
|
+
if (msg.includes("gateway timeout")) return true;
|
|
250
256
|
}
|
|
251
257
|
if (typeof error === "object" && error !== null) {
|
|
252
258
|
const status = error.status ?? error.statusCode;
|
|
253
|
-
if (status === 429) return true;
|
|
259
|
+
if (status === 429 || status === 500 || status === 502 || status === 503 || status === 504) return true;
|
|
254
260
|
}
|
|
255
261
|
return false;
|
|
256
262
|
}
|
|
@@ -259,12 +265,12 @@ async function withRetry(fn, log) {
|
|
|
259
265
|
try {
|
|
260
266
|
return await fn();
|
|
261
267
|
} catch (error) {
|
|
262
|
-
if (!
|
|
268
|
+
if (!isRetryableError(error) || attempt >= MAX_RETRIES) {
|
|
263
269
|
throw error;
|
|
264
270
|
}
|
|
265
271
|
const jitter = Math.random() * 1e3;
|
|
266
272
|
const delay = BASE_DELAY_MS * Math.pow(2, attempt) + jitter;
|
|
267
|
-
await log?.(`
|
|
273
|
+
await log?.(`Retryable error, retrying in ${(delay / 1e3).toFixed(1)}s (attempt ${attempt + 1}/${MAX_RETRIES})...`);
|
|
268
274
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
269
275
|
}
|
|
270
276
|
}
|