{"version":3,"file":"retry.mjs","names":[],"sources":["../../../../../../../ai/src/workflow/retry.ts"],"sourcesContent":["import type {\n  RetryBackoff,\n  RetryConfig,\n} from \"../contracts/workflow/retry-config.type\";\n\nexport const DEFAULT_BACKOFF_CAP_MS = 30_000;\n\nexport function resolveBackoff(\n  attempt: number,\n  backoff: RetryBackoff | undefined,\n): number {\n  const value = (() => {\n    switch (backoff) {\n      case \"none\":\n        return 0;\n      case \"linear\":\n        return attempt * 500;\n      case \"exponential\":\n      case undefined:\n        return 500 * 2 ** (attempt - 1);\n      default:\n        return backoff(attempt);\n    }\n  })();\n\n  return Math.max(0, Math.min(value, DEFAULT_BACKOFF_CAP_MS));\n}\n\nexport function isAbortError(error: unknown): boolean {\n  if (!error || typeof error !== \"object\") return false;\n  const name = (error as { name?: unknown }).name;\n  return name === \"AbortError\";\n}\n\n/**\n * Resolve the effective retry config for a step, merging per-step and\n * workflow-level defaults. `retry: false` disables retries entirely.\n */\nexport function resolveRetryConfig(\n  step: { retry?: RetryConfig | false } | undefined,\n  workflowDefault: RetryConfig | false | undefined,\n): RetryConfig {\n  if (step?.retry === false) return { attempts: 1 };\n  if (step?.retry) return step.retry;\n  if (workflowDefault === false || workflowDefault === undefined) {\n    return { attempts: 1 };\n  }\n  return workflowDefault;\n}\n"],"mappings":";AAKA,MAAa,yBAAyB;AAEtC,SAAgB,eACd,SACA,SACQ;CACR,MAAM,eAAe;EACnB,QAAQ,SAAR;GACE,KAAK,QACH,OAAO;GACT,KAAK,UACH,OAAO,UAAU;GACnB,KAAK;GACL,KAAK,QACH,OAAO,MAAM,MAAM,UAAU;GAC/B,SACE,OAAO,QAAQ,OAAO;EAC1B;CACF,EAAC,CAAE;CAEH,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,sBAAsB,CAAC;AAC5D;AAEA,SAAgB,aAAa,OAAyB;CACpD,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU,OAAO;CAEhD,OADc,MAA6B,SAC3B;AAClB;;;;;AAMA,SAAgB,mBACd,MACA,iBACa;CACb,IAAI,MAAM,UAAU,OAAO,OAAO,EAAE,UAAU,EAAE;CAChD,IAAI,MAAM,OAAO,OAAO,KAAK;CAC7B,IAAI,oBAAoB,SAAS,oBAAoB,QACnD,OAAO,EAAE,UAAU,EAAE;CAEvB,OAAO;AACT"}