@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 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 isRateLimitError(error) {
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 (!isRateLimitError(error) || attempt >= MAX_RETRIES) {
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?.(`Rate limited, retrying in ${(delay / 1e3).toFixed(1)}s (attempt ${attempt + 1}/${MAX_RETRIES})...`);
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
  }