eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.08 kB
JavaScript
import{isObject}from"#shared/guards.js";const WORKFLOW_STREAM_WRITE_ERROR_PATTERN=/^Stream (write|close) failed: HTTP (\d+)(?: \(([^)]*)\))?/;function extractWorkflowStreamWriteErrorDetails(e){for(let t of causeChainMessages(e)){let e=parseStreamErrorMessage(t);if(e!==null)return e}return null}function isWorkflowStreamWriteError(e){return extractWorkflowStreamWriteErrorDetails(e)!==null}function parseStreamErrorMessage(e){let t=WORKFLOW_STREAM_WRITE_ERROR_PATTERN.exec(e);if(t===null)return null;let n=Number(t[2]),r={operation:t[1]??``};Number.isFinite(n)&&(r.statusCode=n);for(let e of(t[3]??``).split(`; `))e.startsWith(`PUT `)?r.url=e.slice(4):e.startsWith(`x-vercel-id=`)?r.vercelId=e.slice(12):e.startsWith(`x-vercel-error=`)&&(r.vercelError=e.slice(15));return r}function*causeChainMessages(e){let t=new Set,n=e;for(;n!=null&&!t.has(n);){if(t.add(n),n instanceof Error){yield n.message,n=n.cause;continue}if(isObject(n)&&typeof n.message==`string`){yield n.message,n=n.cause;continue}return}}export{extractWorkflowStreamWriteErrorDetails,isWorkflowStreamWriteError};