eve 0.39.2 → 0.40.0
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/CHANGELOG.md +24 -1
- package/dist/src/channel/delivery-metadata.js +1 -1
- package/dist/src/cli/commands/registry.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/cli/run.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +6 -6
- package/dist/src/compiled/@workflow/core/create-hook.d.ts +9 -5
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.d.ts +31 -12
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +27 -0
- package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +2 -0
- package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +49 -1
- package/dist/src/compiled/@workflow/core/runtime/step-latency.d.ts +6 -0
- package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +81 -1
- package/dist/src/compiled/@workflow/core/runtime.js +3 -3
- package/dist/src/compiled/@workflow/core/serialization.d.ts +10 -2
- package/dist/src/compiled/@workflow/core/telemetry.d.ts +6 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/world/env-config.d.ts +10 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +96 -0
- package/dist/src/compiled/@workflow/world/index.d.ts +2 -1
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +38 -1
- package/dist/src/compiled/@workflow/world/node-http-flag.d.ts +41 -0
- package/dist/src/compiled/@workflow/world/node-http.d.ts +81 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +12 -12
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-B8K0pwpH.js → attribute-changes-DXbpwBdw.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/{dist-BRGbNjhD.js → dist-Dk0aQqFO.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{env-config-DxamfI7T.js → env-config-L94XftKz.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/frames-Dl2Hcma4.js +3 -0
- package/dist/src/compiled/_chunks/workflow/{private-z_2Kcwee.js → private-CuQ4HTFC.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-E-Nkx8q_.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-cIeex2KF.js +1 -0
- package/dist/src/compiled/_chunks/workflow/sleep-CxFsdxB_.js +1 -0
- package/dist/src/compiled/_chunks/workflow/undici-DznrXKcM.js +95 -0
- package/dist/src/compiled/_chunks/workflow/wait-until-BZHmJCAW.js +15 -0
- package/dist/src/compiled/_chunks/workflow/{ws-transport-TYZ9zwoZ.js → ws-transport-Ct6yyRWZ.js} +1 -1
- package/dist/src/compiled/shadcn-registry/index.d.ts +1 -0
- package/dist/src/compiled/shadcn-registry/index.js +285 -379
- package/dist/src/compiler/extension-compatibility.d.ts +2 -2
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/execution/parked-delivery-wait.js +1 -1
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/report-dropped-wire-payload-step.d.ts +13 -0
- package/dist/src/execution/report-dropped-wire-payload-step.js +1 -0
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/logging-session.js +1 -1
- package/dist/src/execution/session-command-inbox.d.ts +3 -5
- package/dist/src/execution/session-command-inbox.js +1 -1
- package/dist/src/execution/session-timeout-steps.js +1 -1
- package/dist/src/execution/tasks/child/steps.d.ts +1 -0
- package/dist/src/execution/tasks/child/steps.js +1 -1
- package/dist/src/execution/tasks/parent/control-shared.d.ts +1 -1
- package/dist/src/execution/tasks/parent/dispatch-task-step.d.ts +1 -1
- package/dist/src/execution/tasks/parent/dispatch.js +1 -1
- package/dist/src/execution/turn-control-receiver.js +1 -1
- package/dist/src/execution/wire/session-inbox-contract.d.ts +24 -0
- package/dist/src/execution/wire/session-inbox-contract.js +1 -0
- package/dist/src/execution/wire/session-inbox-encoder.d.ts +23 -0
- package/dist/src/execution/wire/session-inbox-encoder.js +1 -0
- package/dist/src/execution/wire/session-inbox-resume.d.ts +10 -0
- package/dist/src/execution/wire/session-inbox-resume.js +1 -0
- package/dist/src/execution/wire/session-inbox-wire.d.ts +29 -0
- package/dist/src/execution/wire/session-inbox-wire.js +1 -0
- package/dist/src/execution/wire/session-inbox-wire.v0.d.ts +5 -0
- package/dist/src/execution/wire/session-inbox-wire.v0.js +1 -0
- package/dist/src/execution/wire/session-inbox-wire.v1.d.ts +237 -0
- package/dist/src/execution/wire/session-inbox-wire.v1.js +1 -0
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/harness/execute-tool.d.ts +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-module-loader.js +3 -3
- package/dist/src/internal/nitro/host/extension-external-dependency-plugin.js +1 -1
- package/dist/src/public/channels/eve.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +3 -1
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/definitions/channel.d.ts +2 -0
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/sandbox/just-bash-sandbox.d.ts +2 -0
- package/dist/src/runtime/actions/types.js +1 -1
- package/dist/src/runtime/framework-tools/tasks.d.ts +1 -5
- package/dist/src/runtime/framework-tools/tasks.js +1 -1
- package/dist/src/runtime/prompt/compose.js +1 -1
- package/dist/src/runtime/session-callback-route.js +1 -1
- package/dist/src/runtime/task-input-response-route.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/shared/empty-delivery.d.ts +1 -1
- package/dist/src/shared/empty-delivery.js +1 -1
- package/docs/meta.json +2 -1
- package/package.json +7 -6
- package/dist/src/compiled/_chunks/workflow/frames-DoexhtxJ.js +0 -3
- package/dist/src/compiled/_chunks/workflow/resume-hook-DO_MuJlY.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-lq7-eG0l.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-7TgF3i-e.js +0 -1
- package/dist/src/compiled/_chunks/workflow/undici-BBG5cZTy.js +0 -95
- package/dist/src/compiled/_chunks/workflow/wait-until-BPSgt1Wg.js +0 -15
- package/dist/src/execution/session-command-wire.d.ts +0 -24
- package/dist/src/execution/session-command-wire.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{i as e,t}from"../../_chunks/workflow/rolldown-runtime-8V8biNmG.js";import{D as n,d as r,f as i,k as a,o,r as s,v as c}from"../../_chunks/workflow/dist-CqvWKNQv.js";import"../../_chunks/workflow/dist-DpYyXbJv.js";import{i as l,n as u,r as d,t as f}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{$ as p,A as m,Dn as h,G as g,H as _,I as v,K as y,L as b,M as x,Q as S,R as C,Rr as w,S as T,Tr as E,U as ee,W as D,Y as O,_ as k,_i as A,a as j,c as te,d as ne,h as M,j as re,l as ie,m as ae,n as oe,nt as se,o as ce,q as N,r as le,tt as ue,y as P}from"../../_chunks/workflow/dist-
|
|
2
|
-
`);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=
|
|
3
|
-
`).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=
|
|
4
|
-
`);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Le(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function Ve(e){try{let{stdout:t}=await Ie(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Fe(t,e)}catch{return[]}}async function He(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await ze(e);case`darwin`:return await Be(e);case`win32`:return await Ve(e);default:return[]}}catch(e){return process.env.NODE_ENV===`development`&&console.debug(`[getAllPorts] Detection failed:`,e),[]}}const Ue=`${f}/flow?__health`;async function We(e,t={}){let{endpoint:n=Ue,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function Ge(e){let t=await He();if(t.length===0)return;if(t.length===1)return t[0];let n=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await We(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(process.env.NODE_ENV===`development`&&console.debug(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function Ke(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const qe=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,Je=()=>process.env.WORKFLOW_LOCAL_BASE_URL,Ye=Ke(()=>({dataDir:qe(),baseUrl:Je()}));function Xe(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return!(t===`0`||t===`false`)}function Ze(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??u(`http://localhost`)}async function Qe(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return u(`http://localhost:${e.port}`);if(process.env.PORT)return u(`http://localhost:${process.env.PORT}`);let t=await Ge({endpoint:d()});if(t)return u(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const $e=ce(()=>Math.random());function et(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var tt=class extends a{constructor(e,t){super(`Unsafe ${e} "${et(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function H(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new tt(e,t)}function U(e,...t){let n=V.resolve(e),r=V.resolve(e,...t);if(r!==n&&!r.startsWith(n+V.sep))throw new tt(`path`,t.join(`/`));return r}const nt=process.platform===`win32`;async function W(e,t=5){if(!nt)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}const rt=new Set,it=new Set;function at(){rt.clear(),it.clear()}const ot=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function G(e){return e.replace(ot,``)}function st(e,t){return e.endsWith(`.${t}`)}function ct(e){return!ot.test(e)}function K(e,t,n,r){return H(`fileId`,n),r!==void 0&&H(`tag`,r),U(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function q(e,t,n,r,i){if(H(`fileId`,n),i!==void 0&&H(`tag`,i),i){let a=await X(U(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(U(e,t,`${n}.json`),r)}async function lt(e,t){let n=`.${t}.json`;try{return(await L.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function ut(e,t,n){let r=`.${t}${n}`;try{return(await L.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function dt(e){let t=V.resolve(e);if(!it.has(t))try{await L.mkdir(t,{recursive:!0}),it.add(t)}catch(e){let n=e.code;if(je(n)&&!await ft(t))throw new ke(t,n)}}async function ft(e){try{return(await L.stat(e)).isDirectory()}catch{return!1}}async function pt(e,t){await dt(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return it.delete(V.resolve(e)),await dt(e),t()}}function J(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function mt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function Y(e,t,n){return ht(e,JSON.stringify(t,J,2),n)}async function ht(e,t,n){if(!n?.overwrite){if(rt.has(e))throw new s(`File ${e} already exists and 'overwrite' is false`);try{throw await L.access(e),rt.add(e),new s(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${$e()}`,i=!1;try{await pt(V.dirname(e),async()=>{await L.writeFile(r,t),i=!0,await W(()=>L.rename(r,e))}),rt.add(e)}catch(e){throw i&&await W(()=>L.unlink(r),3).catch(()=>{}),e}}async function X(e,t){try{let n=await L.readFile(e,`utf-8`);return t.parse(JSON.parse(n,mt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function gt(e){return await L.readFile(e)}async function _t(e){let t=await L.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function Z(e){try{await W(()=>L.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${$e()}`,r=!1;try{return await pt(V.dirname(e),async()=>{await L.writeFile(n,t,{flag:`wx`}),r=!0;try{return await W(()=>L.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await W(()=>L.unlink(n),3).catch(()=>{})}}async function vt(e,t){try{return await pt(V.dirname(t),()=>W(()=>L.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function yt(e){return bt(e,`.json`)}async function bt(e,t){try{return(await L.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const xt=`key:`;function St(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function Ct(e,t,n){return n?`${xt}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function wt(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&H(`filePrefix`,i);let m=V.resolve(t),h=await yt(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=St(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=V.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await X(t,n):structuredClone(e)}catch(t){if(t instanceof A)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?Ct(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}let Tt=null;function Et(){return typeof import.meta.url==`string`&&import.meta.url?V.dirname(I(import.meta.url)):null}async function Dt(){if(Tt)return Tt;let e=Et();if(e)try{let t=await B(V.join(e,`../package.json`),`utf-8`);return Tt=JSON.parse(t),Tt}catch{}return Tt={name:`@workflow/world-local`,version:`5.0.0-beta.36`},Tt}const Ot=`version.txt`;var kt=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},At=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function jt(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function $(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function Mt(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:jt(t.substring(n+1))}}function Nt(e,t){return`${e}@${$(t)}`}function Pt(e,t){console.log(`[world-local] Upgrading from version ${$(e)} to ${$(t)}`)}async function Ft(e){let t=V.resolve(e);try{await ve(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new kt(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await z(t,_e.R_OK)}catch(e){let n=e;throw new kt(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=V.join(t,`.workflow-write-test-${Date.now()}`);try{await Ce(n,``),await Se(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new kt(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function It(e){let t=V.join(V.resolve(e),Ot);try{return Mt(await B(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Lt(e,t){await Ce(V.join(V.resolve(e),Ot),Nt((await Dt()).name,t))}function Rt(e,t){return t||$(e)}async function zt(e){await Ft(e);let t=await Dt(),n=jt(t.version),r=await It(e);if(r===null){await Lt(e,n);return}let{version:i}=r;if($(i)!==$(n))try{Pt(i,n),await Lt(e,n)}catch(e){let r=Rt(i,e instanceof At?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${$(i)} to ${$(n)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${t.name}@${r}`),e}}let Bt=null;async function Vt(){return Bt||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),Bt}let Ht=null;async function Ut(){return Ht||=Vt().then(e=>e?e.trace.getTracer(`workflow`):null),Ht}async function Wt(e,...t){let[n,r]=await Promise.all([Ut(),Vt()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function Gt(e){let t=await Vt();if(t)return t.SpanKind[e]}function Kt(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const qt=Kt(`peer.service`),Jt=Kt(`rpc.system`),Yt=Kt(`rpc.service`),Xt=Kt(`rpc.method`),Zt=Kt(`workflow.run.id`),Qt=Kt(`step.id`),$t={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},en={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},tn=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function nn(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function rn(e,t){return typeof e[t]==`string`?e[t]:void 0}function an(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function on(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function sn(e,t,n){let r=`${e}.${t}`,i={},a=en[r],o=a===void 0?tn.has(r)?an(n[0]):void 0:rn(n,a);if(o&&Object.assign(i,Zt(o)),r===`world.steps.get`){let e=rn(n,1);e&&Object.assign(i,Qt(e))}return i}function cn(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=nn(t);r&&(n=`${e}.${a} ${r}`)}return Wt(n,{kind:await Gt(`INTERNAL`)},async r=>{r?.setAttributes({...qt($t.peerService),...Jt($t.rpcSystem),...Yt($t.rpcService),...Xt(n),...sn(e,a,t)});let o=await i(...t),s=on(o);return s&&r?.setAttributes(Zt(s)),o})}}return n}var ln=t((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),un=me(),dn=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,J))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t).toString();return JSON.parse(r,mt)}};const fn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,pn=2147483647,mn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function hn(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function gn(){return{bodyTimeout:hn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,3e4),connections:1e3,headersTimeout:hn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,3e4),keepAliveTimeout:3e4}}const _n=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function vn(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(_n))return!0;t=`cause`in t?t.cause:void 0}return!1}function yn(e){let t=new un.Agent(gn()),n=new dn,r=ce(),i=new ln.Sema(mn),a=new AbortController,o=a.signal,s=new Map,c=new Map,u=async(a,u,d)=>{let f=[];if(d?.idempotencyKey){let e=s.get(d.idempotencyKey);if(e)return{messageId:e}}let p=n.serialize(u),{prefix:m}=T(a),h=k.parse(`msg_${r()}`),g=u,_=g.runId??void 0,v=g.stepId??void 0;if(d?.idempotencyKey){let e=d.idempotencyKey;s.set(e,h),f.push(()=>{s.delete(e)})}return(async()=>{d?.delaySeconds&&d.delaySeconds>0&&await Ee(Math.min(d.delaySeconds*1e3,pn),void 0,{signal:o}),i.tryAcquire()||(console.warn(`[world-local]: concurrency limit (${mn}) reached, waiting for queue to free up`),await i.acquire());let n=0;try{for(let r=0;r<256;r++){let i={...d?.headers,"content-type":`application/json`,"x-vqs-queue-name":a,"x-vqs-message-id":h,"x-vqs-message-attempt":String(n+1)},s=c.get(m),u,f;try{if(s)u=await s(new Request(l(Ze(e),{type:`flow`}),{method:`POST`,headers:i,body:p}));else{let n=await Qe(e);u=await fetch(l(n,{type:`flow`}),{method:`POST`,duplex:`half`,dispatcher:t,headers:i,body:p})}n++,f=await u.text()}catch(e){let t=e?.name;if(o.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(vn(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${r+1}), retrying`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},error:String(e)}),await Ee(5e3,void 0,{signal:o});continue}if(u.ok){try{let e=Number(JSON.parse(f).timeoutSeconds);if(Number.isFinite(e)&&e>=0){e>0&&await Ee(Math.min(e*1e3,pn),void 0,{signal:o});continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${n}, HTTP ${u.status})`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},handlerError:f}),await Ee(5e3,void 0,{signal:o})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v}})}finally{i.release()}})().catch(e=>{e?.name===`AbortError`||e?.name===`ResponseAborted`||(vn(e)?console.error(`[local world] Queue operation failed: detected "${_n}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:a,messageId:h,..._&&{runId:_},...v&&{stepId:v},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of f)e()}),{messageId:h}},d=E({"x-vqs-queue-name":P,"x-vqs-message-id":k,"x-vqs-message-attempt":se()});return{queue:u,createQueueHandler:(e,t)=>async n=>{let r=d.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new dn().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a}),n=null;return typeof e?.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,fn)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await Dt()).version}`,registerHandler(e,t){c.set(e,t)},async close(){o.aborted||(a.abort(),await t.close())}}}var bn=t(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!e||e.code===`ENOSYS`||(!process.getuid||process.getuid()!==0)&&(e.code===`EINVAL`||e.code===`EPERM`)}}})),xn=t(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=64*1024,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),Sn=t(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),Cn=t(((t,n)=>{var r=e(`fs`),i=bn(),a=xn(),o=Sn(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
|
|
5
|
-
GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=T,e.createWriteStream=E;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=w),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;D(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function w(){var e=this;D(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function T(t,n){return new e.ReadStream(t,n)}function E(t,n){return new e.WriteStream(t,n)}var ee=e.open;e.open=D;function D(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return ee(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),wn=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1;var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),Tn=t((e=>{var t=wn();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),En=t(((e,t)=>{t.exports=Tn()})),Dn=t(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),On=t(((t,n)=>{let r=e(`path`),i=Cn(),a=En(),o=he(),s=Dn(),c={};function l(e,t){return t.lockfilePath||`${e}.lock`}function u(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function d(e,t,n){let r=l(e,t);t.fs.mkdir(r,i=>{if(!i)return s.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?d(e,{...t,stale:0},n):n(r);if(!f(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));p(e,t,r=>{if(r)return n(r);d(e,{...t,stale:0},n)})})})}function f(e,t){return e.mtime.getTime()<Date.now()-t.stale}function p(e,t,n){t.fs.rmdir(l(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function m(e,t){let n=c[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return h(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=s.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,m(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function h(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),c[e]===t&&delete c[e],t.options.onCompromised(n)}function g(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:i,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),u(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{d(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=c[r]={lockfilePath:l(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};m(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));_(r,{...t,realpath:!1},e)})})})})}function _(e,t,n){t={fs:i,realpath:!0,...t},u(e,t,(e,r)=>{if(e)return n(e);let i=c[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete c[r],p(r,t,n)})}function v(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),u(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(l(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!f(r,t)))})}function y(){return c}o(()=>{for(let e in c){let t=c[e].options;try{t.fs.rmdirSync(l(e,t))}catch{}}}),n.exports.lock=g,n.exports.unlock=_,n.exports.check=v,n.exports.getLocks=y})),kn=t(((e,t)=>{let n=Cn();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),An=t(((e,t)=>{let n=On(),{toPromise:r,toSync:i,toSyncOptions:a}=kn();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function jn(e){return ge(`sha256`).update(e).digest(`hex`)}function Mn(e,t,n){return U(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function Nn(e,t,n){let r=[Mn(e,t)];n&&r.push(Mn(e,t,n));for(let e of r)try{return await R.access(e),!0}catch{}return!1}function Pn(e,t,n){return U(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function Fn(e,t,n){let r=[Pn(e,t)];n&&r.push(Pn(e,t,n));for(let e of r)try{return await R.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function In(e,t,n){return U(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Ln(e,t,n,r){return V.join(In(e,t,r),`${n}.json`)}async function Rn(e,t,n){let r=[In(e,t)];n&&r.push(In(e,t,n));for(let e of r){let t;try{t=await R.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await W(()=>R.unlink(V.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await R.rmdir(e).catch(()=>{})}}async function zn(e,t,n){let r=await Bn(e,t,n),i=Date.now();if(r.maxId)try{let e=j(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${Jn(i)}`,createdAt:new Date(i)}}async function Bn(e,t,n){let r=[];try{r=await R.readdir(V.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!ct(t)&&!(n&&st(t,n)))continue;let r=G(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=te(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function Vn(e,t){return V.join(e,`hooks`,`tokens`,`${jn(t)}.json`)}const Hn=E({hookId:w().optional(),runId:w(),eventId:w().optional(),tokenRetentionUntil:ue().optional()});async function Un(e){try{return await X(e,Hn)}catch(e){if(e instanceof SyntaxError||e instanceof A)return null;throw e}}async function Wn(e,t,n){let r=Vn(e,t);await R.mkdir(V.dirname(r),{recursive:!0});let i=new AbortController,o;try{o=await(0,An.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new a(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new a(`Could not acquire Hook token claim lock`,{cause:e})}let s;try{s=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await o().catch(()=>{}),e}try{await o()}catch(e){throw new a(`Could not release Hook token claim lock`,{cause:e})}return s}function Gn(e,t,n){let r=ge(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return V.join(e,`hooks`,`resumes`,`${r}.json`)}async function Kn(e,t,n,r){await Wn(e,t,async i=>{let a=Vn(e,t),o=await Un(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function qn(e,t,n,r){let i=ge(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return V.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const Jn=ce(()=>Math.random()),Yn=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=G(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);return i===-1?oe(r.replace(/\.json$/,``).replace(t,``)):e===`step`?null:oe(r.substring(i+1).replace(/\.json$/,``).replace(t,``))}},Xn=E({runId:w()}),Zn=E({hookId:w(),tag:w().optional()});function Qn(e,t){return U(e,`hooks`,`token-index`,jn(t))}function $n(e,t){return H(`hookId`,t),U(e,`hooks`,`id-index`,t)}function er(e){return U(e,`hooks`,`by-run`)}function tr(e){let t=G(e);return t===e?void 0:e.slice(t.length+1)}function nr(e,t){return t?ct(e)||st(e,t):ct(e)}async function rr(e){try{return await X(e,C)}catch(e){if(e instanceof SyntaxError||e instanceof A)return null;throw e}}async function ir(e,t,n,r,i,a){H(`runId`,n),H(`eventId`,i),a!==void 0&&H(`tag`,a);let o=a?`${i}.${a}.json`:`${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(V.join(Qn(e,t),o),s),Q(V.join($n(e,r),o),s)])}function ar(e,t,n,r){return K(e,`hooks/by-run`,`${t}-${n}`,r)}async function or(e,t,n,r){await Q(ar(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function sr(e,t,n,r){await Z(ar(e,t,n,r)),r&&await Z(ar(e,t,n))}async function cr(e,t){H(`runId`,t);let n=er(e),r=`${t}-`,i=[];for(let e of await yt(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(V.join(n,`${e}.json`),Zn)}catch(e){if(!(e instanceof SyntaxError||e instanceof A))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function lr(e,t){await Z(V.join(er(e),`${t}.json`))}const ur=new Map;function dr(){ur.clear()}async function fr(e){let t=V.resolve(e),n=ur.get(t);return n||(n=mr(t).catch(e=>{throw ur.delete(t),e}),ur.set(t,n)),n}async function pr(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function mr(e){let t=V.join(e,`hooks`,`.hook-index-complete`);try{await R.access(t);return}catch{}let n=V.join(e,`events`);await pr(await yt(n),32,async t=>{let r=await rr(V.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await ir(e,i,r.runId,r.correlationId,r.eventId,tr(t))}catch{}});let r=V.join(e,`hooks`);await pr(await yt(r),32,async t=>{let n=null;try{n=await X(V.join(r,`${t}.json`),M)}catch(e){if(!(e instanceof SyntaxError||e instanceof A))throw e}if(n)try{await or(e,n.runId,n.hookId,tr(t))}catch{}}),await Q(t,``)}async function hr(e,t,n,r){await fr(e);let i;try{i=t.kind===`token`?Qn(e,t.token):$n(e,t.hookId)}catch{return null}let a=(await yt(i)).filter(e=>nr(e,r)).sort((e,t)=>G(t).localeCompare(G(e)));for(let t of a){let r=null;try{r=await X(V.join(i,`${t}.json`),Xn)}catch(e){if(!(e instanceof SyntaxError||e instanceof A))throw e}if(!r)continue;let a=G(t),o;try{o=K(e,`events`,`${r.runId}-${a}`,tr(t))}catch{continue}let s=await rr(o);if(s&&s.eventType===`hook_created`&&typeof s.correlationId==`string`&&n(s))return s}return null}function gr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function _r(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function vr(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function yr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function br(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function xr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Sr(e,t,n){let r=await q(e,`runs`,t,v,n);return r?b(r.status):!1}async function Cr(e,t,n,r){let i=await hr(e,t,e=>xr(e,n),r);if(!i||!xr(i,n))return null;if(await Sr(e,i.runId,r)){let e=i.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return null}return await Nn(e,i.correlationId,r)?null:i}async function wr(e,t,n){let r=br(t);return await Q(Vn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil})),await or(e,r.runId,r.hookId,n),await Q(K(e,`hooks`,r.hookId,n),JSON.stringify(r,J,2)),r}async function Tr(e,t,n){let r=await Cr(e,{kind:`token`,token:t},e=>yr(e)===t,n);return r?wr(e,r,n):null}async function Er(e,t,n){let r=await Cr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?wr(e,r,n):null}function Dr(e,t){async function n(n){return await Nn(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Sr(e,n.runId,t)}async function r(r){let i=await Un(Vn(e,r));if(i?.hookId){try{let a=await q(e,`hooks`,i.hookId,M,t);if(a?.token===r){if(!await n(a))throw new o(r);return{...a,isWebhook:a.isWebhook??!0}}}catch(e){if(!tt.is(e))throw e}return null}let a=V.join(e,`hooks`),s=await yt(a);for(let e of s){let t=await X(V.join(a,`${e}.json`),M);if(t?.token===r){if(!await n(t))throw new o(r);return{...t,isWebhook:t.isWebhook??!0}}}return null}async function i(r,i){H(`hookId`,r);let a=await q(e,`hooks`,r,M,t);if(a&&!await n(a))throw new o(r);let s=a??await Er(e,r,t);if(!s)throw new o(r);let c=i?.resolveData||`all`;return vr({...s,isWebhook:s.isWebhook??!0},c)}async function a(n){let i=await r(n)??await Tr(e,n,t);if(!i)throw new o(n);return i}async function s(t){let r=V.join(e,`hooks`),i=t.resolveData||`all`,a=await wt({directory:r,schema:M,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>vr(e,i))}}return{get:i,getByToken:a,list:s}}async function Or(e,t){await fr(e);for(let n of await cr(e,t)){if(n.hookId){let r=null,i=null;try{i=K(e,`hooks`,n.hookId,n.tag),r=await X(i,M)}catch(e){if(!tt.is(e)&&!(e instanceof SyntaxError||e instanceof A))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await Kn(e,r.token,r.runId,r.hookId),await Z(qn(e,r.token,r.runId,r.hookId)),await Z(i)}}await lr(e,n.fileId)}}async function kr(e,t,n,i,a,o){if(b(o.status)||await Fn(e,t))throw new r(`Workflow run "${t}" is already in a terminal state`);let s=Ln(e,t,n);await Q(s,i);try{if(await Fn(e,t)||await vt(s,a)!==`linked`)throw new r(`Workflow run "${t}" is already in a terminal state`)}finally{await R.unlink(s).catch(()=>{})}}async function Ar(e,t,n,r,i){H(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(Pn(e,t),``),await Rn(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes};return await Y(U(e,`runs`,`${t}.json`),i,{overwrite:!0}),await Or(e,t),{event:void 0,run:gr(i,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${Jn()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:6},c=U(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await kr(e,t,i,JSON.stringify(s,J,2),c,r):await Y(c,s),{event:N(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const jr=new Map;function Mr(e,t){let n=jr.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{jr.get(e)===r.task&&jr.delete(e)}})();return r.task=i,jr.set(e,i),i}function Nr(e,t){let r=(async(r,i)=>{H(`runId`,r);let a=await q(e,`runs`,r,v,t);if(!a)throw new n(r);return gr(a,i?.resolveData??`all`)});return{get:r,getMany:(async(e,t)=>{let i=[...new Set(e)],a=await Promise.all(i.map(async e=>{try{return await r(e,t)}catch(e){if(e instanceof n)return null;throw e}})),o=new Map(i.map((e,t)=>[e,a[t]]));return e.map(e=>o.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await wt({directory:V.join(e,`runs`),schema:v,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status&&e.status!==t.status),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:Yn(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r}),experimentalSetAttributes:async(r,i,a)=>(H(`runId`,r),Mr(r,async()=>{let o=await q(e,`runs`,r,v,t);if(!o)throw new n(r);try{p(i,{existingKeys:Object.keys(o.attributes??{}),allowReservedAttributes:a?.allowReservedAttributes})}catch(e){throw e instanceof O,e}let s=S(o.attributes,i),c={...o,attributes:s,updatedAt:new Date};return await Y(K(e,`runs`,r,t),c,{overwrite:!0}),{attributes:s}}))}}const Pr=1440*60*1e3;function Fr(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new a(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Pr}const Ir=E({eventId:w()}),Lr=E({runId:w(),resumeId:w(),hookId:w(),eventId:w(),payloadDigest:w().optional()});function Rr(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function zr(e,t,n,r){let i=await Bn(e,t,r);for(let a of i.ids){let i=await q(e,`events`,`${t}-${a}`,C,r);if(i&&i.resumeId===n.resumeId&&Rr(i,n))return i}return null}async function Br(e,t,n){if(t.hookId&&await Nn(e,t.hookId,n))return!0;let r=await q(e,`runs`,t.runId,v,n);return r?b(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Vr(e){try{return await X(e,Ir)}catch(e){if(e instanceof SyntaxError||e instanceof A)return null;throw e}}function Hr(e){return ie(e.eventId)?e.eventId:null}function Ur(e,t){let n=G(t).slice(e.length+1);return ie(n)?n:null}async function Wr(e,t,n){return(await wt({directory:V.join(e,`events`),schema:C,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:Yn(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Gr(e,t,n,r,i){let a=await q(e,`events`,`${t}-${r}`,C,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await q(e,`hooks`,n,M,i))return;let o=br(a);await ir(e,o.token,t,n,r,i),await or(e,t,n,i),await Q(K(e,`hooks`,n,i),JSON.stringify(o,J,2))}async function Kr(e,t,n,r,i){let a=qn(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await Vr(a))?.eventId??null}function qr(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Jr(e,t){let n=V.join(e,`waits`),r=await yt(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(V.join(n,`${e}.json`))}async function Yr(e,t,n,r){return Mr(t,async()=>{let i=await X(K(e,`runs`,t,n),v),a={...r,attributes:i?.attributes??r.attributes};return await Y(K(e,`runs`,t,n),a,{overwrite:!0}),a})}function Xr(e,t){let l=Fr(),u=4*1024*1024,d=new Map,f=new Map,h=new Map,w=0;function T(e){let t=d.get(e);if(!t)return;d.delete(e),w-=f.get(e)??0,f.delete(e);let n=h.get(t.runId);n?.delete(e),n?.size===0&&h.delete(t.runId)}function E(e){for(let t of h.get(e)??[])T(t)}function O(){d.clear(),f.clear(),h.clear(),w=0,k.clear()}let k=new Map;function A(e){return t?`${e}.${t}`:e}async function j(n,r){let i=`${n}-${ne(r)}`;for(let n of t?[K(e,`events`,i,t),K(e,`events`,i)]:[K(e,`events`,i)])try{return await R.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function ae(n,r){let i=A(n),a=k.get(i);if(a===void 0||r?.rescan){let r=await Bn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},k.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await j(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function se(e,t){let n=te(t);if(n===null)return;let r=k.get(A(e));r&&(r.published=Math.max(r.published,n))}async function ce(e){let t=await ae(e);return t===null?`evnt_${Jn()}`:ne(t)}async function ue(n){let r=await ae(n,{rescan:!0});return r===null?zn(e,n,t):{eventId:ne(r),createdAt:new Date}}function P(e,t,n){if(n>u)return;for(;d.size>0&&(d.size>=1e3||w+n>u);){let e=d.keys().next().value;T(e)}d.set(e,t),f.set(e,n),w+=n;let r=h.get(t.runId)??new Set;r.add(e),h.set(t.runId,r)}function me(e,t,n){if(y(e.eventType)){E(e.runId);return}let r=Buffer.byteLength(n);if(r>u)return;let i=C.safeParse(JSON.parse(n,mt));i.success&&P(t,i.data,r)}async function he(n){let r=n;for(let n=0;;n++){let i=K(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,J,2),o=te(r.eventId);if(o===null)return await ht(i,a),me(r,i,a),r;if(await Q(i,a))return se(r.runId,r.eventId),me(r,i,a),r;let s=await ae(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});De(s!==null),r={...r,eventId:ne(s)}}}let ge=(t,n)=>wt({directory:V.join(e,`events`),schema:C,cachedItems:d,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:Yn(`evnt`),getId:e=>e.eventId,getSortKey:Hr,getSortKeyFromFileId:e=>Ur(t,e)}),F=new Map,I=new Map,L={clearCache:O,async create(u,d,f){if(d.eventType===`hook_created`&&d.eventData.tokenRetentionUntil!==void 0&&d.eventData.tokenRetentionUntil.getTime()>Date.now()+l)throw new a(`Hook minimum retention cannot exceed ${l/Pr} days in the Local World.`,{status:400});if(u!=null&&u!==``&&H(`runId`,u),`correlationId`in d&&typeof d.correlationId==`string`&&H(`correlationId`,d.correlationId),g(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.${t}`:`${u}-${d.correlationId}`;return qr(F,e,h)}if(D(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.hook.${t}`:`${u}-${d.correlationId}.hook`;return qr(I,e,h)}return h();async function h(){let l=``,h=!1,w=null,T=new Date,E;if(d.eventType===`run_created`&&(!u||u===``))E=`wrun_${Jn()}`;else if(u)E=u;else throw Error(`runId is required for non-run_created events`);if(d.eventType===`run_created`&&u&&u!==``){let e=le(E,`wrun_`);if(e)throw new a(e)}let D=d.specVersion??6,O=null;if(d.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(d.eventType)&&(O=await q(e,`runs`,E,v,t),d.eventType===`run_started`&&!O&&`eventData`in d&&d.eventData)){let n=d.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){p(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:E,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:D,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:T,updatedAt:T};if(await Q(K(e,`runs`,E,t),JSON.stringify(r,J))){let e=await ce(E);await he({eventType:`run_created`,runId:E,eventId:e,createdAt:T,specVersion:D,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),O=r}else O=await q(e,`runs`,E,v,t)}}if(l=await ce(E),!O&&(d.eventType===`run_failed`||d.eventType===`attr_set`||d.eventType===`run_started`))throw new n(E);if(O){if(fe(O.specVersion))throw new i(O.specVersion,6);if(pe(O.specVersion))return Ar(e,E,d,O,f)}let k=_(d),A=k&&d.eventType===`step_started`;if(O&&b(O.status)){if(d.eventType===`run_cancelled`&&O.status===`cancelled`)return{event:N(await he({...d,runId:E,eventId:l,createdAt:T,specVersion:D}),f?.resolveData??`all`),run:O,...O?{maxEvents:de()}:{}};if(d.eventType===`run_started`)throw new r(`Workflow run "${E}" is already in terminal state "${O.status}"`);if(y(d.eventType))throw new s(`Cannot transition run from terminal state "${O.status}"`);if(k)throw new s(`Cannot create new entities on run in terminal state "${O.status}"`);if(d.eventType===`attr_set`)throw new s(`Cannot set attributes on run in terminal state "${O.status}"`)}let j=null;if(g(d.eventType)&&d.eventType!==`step_created`&&d.correlationId){if(j=await q(e,`steps`,`${E}-${d.correlationId}`,re,t),!j&&!A)throw new a(`Step "${d.correlationId}" not found`);if(A&&j)throw new s(`Step "${d.correlationId}" already created`);if(j){if(x(j.status))throw new s(`Cannot modify step in terminal state "${j.status}"`);if(O&&b(O.status)&&j.status!==`running`)throw new r(`Cannot modify non-running step on run in terminal state "${O.status}"`)}}if(ee(d.eventType)&&d.correlationId){if(d.eventType===`hook_received`&&f?.resumeId){let n=await X(Gn(e,E,f.resumeId),Lr);if(n&&n.hookId===d.correlationId&&(!f.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===f.resumePayloadDigest)){let r=await q(e,`events`,`${E}-${n.eventId}`,C,t),i=r&&Rr(r,n)?r:await zr(e,E,n,t);if(i)return{event:i}}}if(d.eventType===`hook_received`&&await Nn(e,d.correlationId,t)||!await q(e,`hooks`,d.correlationId,M,t))throw new o(d.correlationId);if(d.eventType===`hook_received`&&f?.resumeId){let n=Gn(e,E,f.resumeId),r=async n=>{if(n.hookId!==d.correlationId)throw new s(`hook_received resumeId "${f.resumeId}" already recorded for a different hook`);if(f.resumePayloadDigest&&n.payloadDigest&&n.payloadDigest!==f.resumePayloadDigest)throw new s(`hook_received resumeId "${f.resumeId}" already recorded with a different payload`);let r=await q(e,`events`,`${E}-${n.eventId}`,C,t);if(r&&Rr(r,n))return{event:r};let i=await zr(e,E,n,t);return i?{event:i}:(w=n.eventId,r||(l=n.eventId,h=!0),null)},i=await X(n,Lr);if(i){let e=await r(i);if(e)return e}else if(h=!ie(l),w=l,!await Q(n,JSON.stringify({runId:E,resumeId:f.resumeId,hookId:d.correlationId,eventId:l,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}))){w=null;let e=await X(n,Lr);if(e){let t=await r(e);if(t)return t}}}}let P={...d,runId:E,eventId:l,createdAt:T,specVersion:D,...d.eventType===`hook_received`&&f?.resumeId?{resumeId:f.resumeId}:{}};if(d.eventType===`run_started`&&`eventData`in P&&delete P.eventData,A&&P.eventType===`step_started`&&P.eventData){let{input:e,...t}=P.eventData;P={...P,eventData:t}}let F,I,L,z,_e=!1,ve;if(y(d.eventType)&&O){await Q(Pn(e,E,t),``),await Rn(e,E,t);let n=await ue(E);l=n.eventId,P={...P,eventId:l,createdAt:n.createdAt}}if(d.eventType===`run_created`&&`eventData`in d){let n=d.eventData;if(p(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),F={runId:E,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:D,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:T,updatedAt:T},!await Q(K(e,`runs`,E,t),JSON.stringify(F,J,2)))throw new s(`Workflow run "${E}" already exists`)}else if(d.eventType===`run_started`){if(O){if(O.status===`running`){if(f?.skipPreload)return{run:O,maxEvents:de()};let e=await ge(E,{limit:de()});return{run:O,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:de()}}F=await Yr(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:O.startedAt??T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey})}}else if(d.eventType===`run_completed`&&`eventData`in d){let n=d.eventData;O&&(F=await Yr(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,startedAt:O.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey}),await Promise.all([Or(e,E),Jr(e,E)]))}else if(d.eventType===`run_failed`&&`eventData`in d){let n=d.eventData;O&&(F=await Yr(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,startedAt:O.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey}),await Promise.all([Or(e,E),Jr(e,E)]))}else if(d.eventType===`run_cancelled`)O&&(F=await Yr(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,startedAt:O.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey}),await Promise.all([Or(e,E),Jr(e,E)]));else if(d.eventType===`attr_set`&&O)F=await Mr(E,async()=>{let r=await X(K(e,`runs`,E,t),v);if(!r)throw new n(E);if(p(d.eventData.changes,{existingKeys:Object.keys(r.attributes),allowReservedAttributes:d.eventData.allowReservedAttributes===!0}),d.correlationId&&d.eventData.writer.type===`workflow`&&!await Q(U(e,`.locks`,`attributes`,t?`${E}-${d.correlationId}.created.${t}`:`${E}-${d.correlationId}.created`),``))throw new s(`Attribute event "${d.correlationId}" already exists`);let i={...r,attributes:S(r.attributes,d.eventData.changes),updatedAt:T};return await Y(K(e,`runs`,E,t),i,{overwrite:!0}),i});else if(d.eventType===`step_created`&&`eventData`in d){if(!await Q(U(e,`.locks`,`steps`,t?`${E}-${d.correlationId}.created.${t}`:`${E}-${d.correlationId}.created`),``))throw new s(`Step "${d.correlationId}" already created`);let n=d.eventData;I={runId:E,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:T,updatedAt:T,specVersion:D},await Y(K(e,`steps`,`${E}-${d.correlationId}`,t),I)}else if(d.eventType===`step_started`){if(!j&&A){let n=d.eventData;if(await Q(U(e,`.locks`,`steps`,t?`${E}-${d.correlationId}.created.${t}`:`${E}-${d.correlationId}.created`),``)){let r={runId:E,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:T,updatedAt:T,specVersion:D};await Y(K(e,`steps`,`${E}-${d.correlationId}`,t),r);let i=await ce(E);await he({eventType:`step_created`,runId:E,eventId:i,createdAt:T,specVersion:D,correlationId:d.correlationId,eventData:{stepName:n.stepName,input:n.input}}),j=r,_e=!0}else throw new s(`Step "${d.correlationId}" already created`)}if(j){if(j.retryAfter&&j.retryAfter.getTime()>Date.now())throw new c(`Cannot start step "${d.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((j.retryAfter.getTime()-Date.now())/1e3)});let n=`${E}-${d.correlationId}`,r=await q(e,`steps`,n,re,t);if(r&&x(r.status))throw new s(`Cannot modify step in terminal state "${r.status}"`);I={...j,status:`running`,startedAt:j.startedAt??T,attempt:j.attempt+1,retryAfter:void 0,updatedAt:T},await Y(K(e,`steps`,n,t),I,{overwrite:!0})}}else if(d.eventType===`step_completed`&&`eventData`in d){let n=d.eventData;if(j){let r=`${E}-${d.correlationId}`;if(!await Q(U(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new s(`Cannot modify step in terminal state`);I={...j,status:`completed`,output:n.result,completedAt:T,updatedAt:T},await Y(K(e,`steps`,r,t),I,{overwrite:!0})}}else if(d.eventType===`step_failed`&&`eventData`in d){let n=d.eventData;if(j){let r=`${E}-${d.correlationId}`;if(!await Q(U(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new s(`Cannot modify step in terminal state`);I={...j,status:`failed`,error:n.error,completedAt:T,updatedAt:T},await Y(K(e,`steps`,r,t),I,{overwrite:!0})}}else if(d.eventType===`step_retrying`&&`eventData`in d){let n=d.eventData;if(j){let r=`${E}-${d.correlationId}`;I={...j,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:T},await Y(K(e,`steps`,r,t),I,{overwrite:!0})}}else if(d.eventType===`hook_created`&&`eventData`in d){let n=d.eventData,r=Vn(e,n.token),i=JSON.stringify({token:n.token,hookId:d.correlationId,runId:E,eventId:l,tokenRetentionUntil:n.tokenRetentionUntil}),a=await Wn(e,n.token,async a=>{let o=await Un(r);return o||=(a.throwIfAborted(),await Z(r),await Tr(e,n.token,t),await Un(r)),o?o.runId===E&&o.hookId===d.correlationId?{status:`owned`,claim:o}:await Br(e,o,t)?(a.throwIfAborted(),await Z(r),o.hookId&&(await Z(K(e,`hooks`,o.hookId,t)),await Z(qn(e,n.token,o.runId,o.hookId)),await sr(e,o.runId,o.hookId,t)),a.throwIfAborted(),De(await Q(r,i)),{status:`claimed`}):{status:`conflict`,claim:o}:(a.throwIfAborted(),De(await Q(r,i)),{status:`claimed`})});if(a.status===`owned`){let r=a.claim,i;if(r.eventId)i=r.eventId;else{let r=await Wr(e,E,d.correlationId);if(r!==null)throw await Gr(e,E,d.correlationId,r,t),new s(`Hook "${d.correlationId}" already created`);let a=await Kr(e,n.token,E,d.correlationId,l);if(a===null)throw new s(`Hook "${d.correlationId}" already created`);i=a}l=i,h=!0;let o=oe(l.replace(/^evnt_/,``))??T;P={...d,eventData:{...d.eventData,tokenRetentionUntil:r.tokenRetentionUntil},runId:E,eventId:l,createdAt:o,specVersion:D}}if(a.status===`conflict`){let e=a.claim;return{event:N(await he({eventType:`hook_conflict`,correlationId:d.correlationId,eventData:{token:n.token,conflictingRunId:e.runId},runId:E,eventId:l,createdAt:T,specVersion:D}),f?.resolveData??`all`),run:F,step:I,hook:void 0}}let o=P.eventData;L={runId:E,hookId:d.correlationId,token:o.token,metadata:o.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:P.createdAt,specVersion:D,isWebhook:o.isWebhook??!1,isSystem:o.isSystem??!1,tokenRetentionUntil:o.tokenRetentionUntil},ve=a.status===`owned`?{overwrite:!0}:void 0,await ir(e,n.token,E,d.correlationId,l,t)}else if(d.eventType===`hook_disposed`){if(!await Q(Mn(e,d.correlationId,t),``))throw new s(`Hook "${d.correlationId}" already disposed`);let n=K(e,`hooks`,d.correlationId,t),r=await q(e,`hooks`,d.correlationId,M,t);r&&(await Kn(e,r.token,r.runId,r.hookId),await Z(qn(e,r.token,r.runId,r.hookId))),await Z(n),await sr(e,E,d.correlationId,t)}else if(d.eventType===`wait_created`&&`eventData`in d){let n=`${E}-${d.correlationId}`;if(!await Q(U(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new s(`Wait "${d.correlationId}" already exists`);let r=d.eventData;z={waitId:n,runId:E,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:T,updatedAt:T,specVersion:D},await Y(K(e,`waits`,n,t),z)}else if(d.eventType===`wait_completed`){let n=`${E}-${d.correlationId}`,r=U(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new s(`Wait "${d.correlationId}" already completed`);let i=await q(e,`waits`,n,m,t);if(!i)throw await R.unlink(r).catch(()=>{}),new a(`Wait "${d.correlationId}" not found`);z={...i,status:`completed`,completedAt:T,updatedAt:T},await Y(K(e,`waits`,n,t),z,{overwrite:!0})}if(d.eventType===`hook_received`&&d.correlationId&&await Nn(e,d.correlationId,t))throw new o(d.correlationId);let B=K(e,`events`,`${E}-${l}`,t),ye=JSON.stringify(P,J,2),be=async n=>{let r=te(l);if(h||r===null)return!1;let i=await ae(E,{rescan:n>0&&n%8==0,atLeast:r+1});return i===null?!1:(l=ne(i),P={...P,eventId:l},B=K(e,`events`,`${E}-${l}`,t),ye=JSON.stringify(P,J,2),!0)},xe=!1;for(let n=0;;n++){if(d.eventType===`hook_received`){let n=await Fn(e,E,t),i=n?null:await q(e,`runs`,E,v,t);if(n||i&&b(i.status))throw new r(`Workflow run "${E}" is already in a terminal state`);let o=Ln(e,E,`${l}.${Jn()}`,t);if(!await Q(o,ye))throw new a(`Failed to stage event "${l}" for run "${E}": staging path already exists`);try{if(await Fn(e,E,t))throw new r(`Workflow run "${E}" is already in a terminal state`);let n=await vt(o,B);if(n===`missing`)throw new r(`Workflow run "${E}" is already in a terminal state`);xe=n===`linked`}finally{await Z(o).catch(()=>{})}}else xe=await Q(B,ye);if(xe){se(E,l);break}if(d.eventType===`hook_received`&&f?.resumeId){let n=await q(e,`events`,`${E}-${l}`,C,t);if(n&&Rr(n,{runId:E,resumeId:f.resumeId,hookId:d.correlationId,eventId:l}))return{event:n}}if(!await be(n))break}if(!xe)throw d.eventType===`hook_created`&&d.correlationId&&await Gr(e,E,d.correlationId,l,t),new s(`Event "${l}" already exists for run "${E}"`);me(P,B,ye),d.eventType===`hook_received`&&f?.resumeId&&w!==null&&w!==l&&await ht(Gn(e,E,f.resumeId),JSON.stringify({runId:E,resumeId:f.resumeId,hookId:d.correlationId,eventId:l,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}),{overwrite:!0}),L&&d.eventType===`hook_created`&&(await or(e,L.runId,L.hookId,t),await Y(K(e,`hooks`,L.hookId,t),L,ve));let Se=f?.resolveData??`all`,Ce=N(P,Se),V;if(d.eventType===`run_started`&&F&&!f?.skipPreload&&(V=await ge(E,{limit:de()})),typeof f?.sinceCursor==`string`){let e=await ge(E,{sortOrder:`asc`,cursor:f.sinceCursor});V=Se===`none`?{...e,data:e.data.map(e=>N(e,Se))}:e}let we={event:Ce,run:F,step:I,hook:L,wait:z,..._e?{stepCreated:!0}:{},...F?{maxEvents:de()}:{}};return V?{...we,events:V.data,cursor:V.cursor,hasMore:V.hasMore}:we}},async get(n,r,i){H(`runId`,n),H(`eventId`,r);let a=await q(e,`events`,`${n}-${r}`,C,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);return N(a,i?.resolveData??`all`)},async list(e){let{runId:t}=e;H(`runId`,t);let n=e.resolveData??`all`,r=await ge(t,{...e.pagination,limit:e.pagination?.limit??de()});return n===`none`?{...r,data:r.data.map(e=>N(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;H(`correlationId`,n),H(`runId`,t.runId);let r=t.resolveData??`all`,i=await wt({directory:V.join(e,`events`),schema:C,cachedItems:d,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:Yn(`evnt`),getId:e=>e.eventId,getSortKey:Hr,getSortKeyFromFileId:e=>Ur(t.runId,e)});return r===`none`?{...i,data:i.data.map(e=>N(e,r))}:i}};async function z(e,t,n){if(!e.event)return e;let r=te(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await L.list({runId:e.event.runId,pagination:{cursor:`${xt}${ne(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let _e=(async(e,t,n)=>{if(n?.eventCount===void 0)return L.create(e,t,n);let r=n.resolveData??`all`,i=await L.create(e,t,n);return typeof n.sinceCursor==`string`?i:z(i,n.eventCount,r)});return{...L,create:_e}}function Zr(e,t){return{get:(async(n,r,i)=>{H(`runId`,n),H(`stepId`,r);let a=await q(e,`steps`,`${n}-${r}`,re,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return _r(a,i?.resolveData??`all`)}),list:(async t=>{H(`runId`,t.runId);let n=t.resolveData??`all`,r=await wt({directory:V.join(e,`steps`),schema:re,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:Yn(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function Qr(e,t){let n=Nr(e,t),r=Zr(e,t),i=Xr(e,t),a=Dr(e,t);return{runs:cn(`world.runs`,n),steps:cn(`world.steps`,r),events:cn(`world.events`,i),hooks:cn(`world.hooks`,a),clearCache:()=>i.clearCache()}}const $r=ce(()=>Math.random()),ei=E({streams:h(w())});function ti(e){return e===1}function ni(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function ri(e){return ti(e[0])}function ii(e){return{eof:ri(e),chunk:Buffer.from(e.subarray(1))}}async function ai(e){try{return await R.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function oi(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function si(e,t){return H(`streamName`,t),V.join(e,t)}async function ci(e,t,n){let r=si(e,t),i=await ai(r),a=new Map;return oi(a,i,`.json`),oi(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&oi(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}function li(e,t){let n=t?`.${t}`:``,r=new Oe,i=new Set;async function a(n,r){H(`runId`,n),H(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=K(e,`streams/runs`,n,t),s=(await q(e,`streams/runs`,n,ei,t))?.streams??[];s.includes(r)||(s.push(r),await Y(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${$r()}`;await a(await t,i);let l=o(s),u=ni({chunk:l,eof:!1});await ht(V.join(si(V.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${$r()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=ni({chunk:t,eof:!1});return await ht(V.join(si(V.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${$r()}`;await a(await t,i),await ht(V.join(si(V.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),ni({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return H(`runId`,n),(await q(e,`streams/runs`,n,ei,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await ci(V.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=V.join(c,`${e}${t}`);if(f<l){if(ti(await _t(n))){u=!0;break}f++;continue}if(d.length>=a){ti(await _t(n))?u=!0:f++;break}let r=ii(await gt(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await ci(V.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(ti(await _t(V.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=V.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await ci(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;ti(await _t(V.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=ii(await gt(V.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await ci(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=ii(await gt(V.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function ui(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...Ye.value,...t};Ne(n.dataDir);let r=n.tag,i=yn(n),{clearCache:a,...o}=Qr(n.dataDir,r),s=Xe(n);return{specVersion:6,capabilities:{hookRetention:{active:!0},hookResumeDedup:!0},...i,...o,...cn(`world.streams`,{...li(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await zt(n.dataDir),!s)return;let e=r?e=>st(e,r):ct;await ae({...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))},i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=V.join(e,`hooks`),i=await lt(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-BRGbNjhD.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await X(V.join(t,n),a);r?.token&&(await Z(V.join(t,`tokens`,`${jn(r.token)}.json`)),await Z(qn(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=V.join(e,t),i=await lt(n,r);await Promise.all(i.map(e=>Z(V.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=V.join(e,`hooks`,t),i;try{i=await L.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=V.join(n,e.name),i=await lt(t,r);await Promise.all(i.map(e=>Z(V.join(t,e))))}))}await L.rm(V.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=V.join(e,`streams`,`chunks`),s;try{s=await L.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=V.join(o,e.name),n=await ut(t,r,`.bin`);await Promise.all(n.map(e=>L.unlink(V.join(t,e)).catch(()=>{})))})),at()}else at(),dr(),await xe(n.dataDir,{recursive:!0,force:!0}),await zt(n.dataDir)}}}export{kt as DataDirAccessError,At as DataDirVersionError,ke as UnwritableDataDirError,ui as createWorld,Ft as ensureDataDir,zt as initDataDir,jt as parseVersion};
|
|
1
|
+
import{i as e,t}from"../../_chunks/workflow/rolldown-runtime-8V8biNmG.js";import{D as n,d as r,f as i,k as a,o,r as s,v as c}from"../../_chunks/workflow/dist-CqvWKNQv.js";import"../../_chunks/workflow/dist-DpYyXbJv.js";import{i as l,n as u,r as d,t as f}from"../../_chunks/workflow/workflow-routes-CwqB063q.js";import{$ as p,A as m,Dn as h,G as g,H as _,I as v,K as y,L as b,M as x,Q as S,R as C,Rr as w,S as T,Tr as E,U as ee,W as D,Y as O,_ as k,_i as A,a as j,c as te,d as ne,h as M,j as re,l as ie,m as ae,n as oe,nt as se,o as ce,q as N,r as le,tt as ue,y as P}from"../../_chunks/workflow/dist-Dk0aQqFO.js";import{r as de}from"../../_chunks/workflow/env-config-L94XftKz.js";import{a as fe,i as pe,n as me,r as F,t as I}from"../../_chunks/workflow/undici-DznrXKcM.js";import{n as he,t as ge}from"../../_chunks/workflow/spec-version-DBUVfF_R.js";import{t as L}from"../../_chunks/workflow/signal-exit-o3IPQwwv.js";import{createHash as R}from"node:crypto";import{promisify as _e}from"node:util";import{fileURLToPath as ve}from"node:url";import{promises as z}from"node:fs";import B,{access as ye,constants as be,mkdir as xe,readFile as Se,readdir as Ce,readlink as V,rm as we,unlink as Te,writeFile as Ee}from"node:fs/promises";import H from"node:path";import{tmpdir as De}from"node:os";import{execFile as Oe}from"node:child_process";import{setTimeout as ke}from"node:timers/promises";import Ae from"node:assert";import{EventEmitter as je}from"node:events";var Me=class extends a{dataDir;constructor(e,t){super(`[workflow] The local (filesystem) world cannot create its data directory "${e}" (${t}). Workflow runs cannot be stored, so every run will fail before its first step. If this is a Vercel deployment, its filesystem is read-only and the local world cannot work there. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world. Otherwise point WORKFLOW_LOCAL_DATA_DIR at a writable directory.`,{code:t}),this.name=`UnwritableDataDirError`,this.dataDir=e}static is(e){return e instanceof Error&&e.name===`UnwritableDataDirError`}};const Ne=new Set([`EROFS`,`EACCES`,`EPERM`]);function Pe(e){return e!==void 0&&Ne.has(e)}let Fe=!1;function Ie(e){if(Fe||!process.env.VERCEL_DEPLOYMENT_ID)return;let t=H.resolve(e),n=De();t===n||t.startsWith(`${n}${H.sep}`)||(Fe=!0,console.warn(`[workflow] Warning: the local (filesystem) world is running inside a Vercel deployment, writing to ${t}. That filesystem is read-only, so workflow runs will fail before their first step. The world is selected from the environment when the process starts: the Vercel world is used when VERCEL_DEPLOYMENT_ID is set, unless WORKFLOW_TARGET_WORLD says otherwise. Unset WORKFLOW_TARGET_WORLD in this deployment, or set WORKFLOW_TARGET_WORLD=vercel, to use the Vercel world.`))}function Le(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}function Re(e,t){let n=[],r=e.trim().split(`
|
|
2
|
+
`);for(let e of r){let r=e.trim().split(/\s+/);if(r.length<5||r[0]?.toUpperCase()!==`TCP`)continue;let[,i,,a,o]=r;if(a?.toUpperCase()!==`LISTENING`||o!==t.toString())continue;let s=i.lastIndexOf(`:`);if(s===-1)continue;let c=Le(i.slice(s+1));c!==void 0&&n.push(c)}return n}const ze=_e(Oe);function Be(e,t=10){let n=parseInt(e,t);if(!Number.isNaN(n)&&n>=0&&n<=65535)return n}const Ve=((e,t)=>e.join(t))([``,`proc`],`/`);async function He(e){let t=[`${Ve}/net/tcp`,`${Ve}/net/tcp6`],n=[],r=new Set,i=`${Ve}/${e}/fd`;try{let e=(await Ce(i)).sort((e,t)=>Number.parseInt(e,10)-Number.parseInt(t,10)),t=await Promise.allSettled(e.map(async e=>(await V(`${i}/${e}`)).match(/^socket:\[(\d+)\]$/)?.[1]??null));for(let e of t)e.status===`fulfilled`&&e.value&&(n.push(e.value),r.add(e.value))}catch{return[]}if(n.length===0)return[];let a=new Map;for(let e of t)try{let t=(await Se(e,`utf8`)).split(`
|
|
3
|
+
`).slice(1);for(let e of t){if(!e.trim())continue;let t=e.trim().split(/\s+/);if(t.length<10)continue;let n=t[1],i=t[3],o=t[9];if(!n||i!==`0A`||!o||!r.has(o))continue;let s=n.indexOf(`:`);if(s===-1)continue;let c=n.slice(s+1);if(!c)continue;let l=Be(c,16);l!==void 0&&a.set(o,l)}}catch{}let o=[];for(let e of n){let t=a.get(e);t!==void 0&&o.push(t)}return o}async function Ue(e){try{let{stdout:t}=await ze(`lsof`,[`-a`,`-i`,`-P`,`-n`,`-p`,e.toString()]),n=[],r=t.split(`
|
|
4
|
+
`);for(let e of r)if(e.includes(`LISTEN`)){let t=e.trim().split(/\s+/)[8];if(t){let e=t.lastIndexOf(`:`);if(e!==-1){let r=Be(t.slice(e+1));r!==void 0&&n.push(r)}}}return n}catch{return[]}}async function We(e){try{let{stdout:t}=await ze(`cmd`,[`/c`,`netstat -ano -p tcp | findstr LISTENING`]);return Re(t,e)}catch{return[]}}async function Ge(){let{pid:e,platform:t}=process;try{switch(t){case`linux`:return await He(e);case`darwin`:return await Ue(e);case`win32`:return await We(e);default:return[]}}catch(e){return process.env.NODE_ENV===`development`&&console.debug(`[getAllPorts] Detection failed:`,e),[]}}const Ke=`${f}/flow?__health`;async function qe(e,t={}){let{endpoint:n=Ke,timeout:r=500}=t,i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return(await fetch(`http://localhost:${e}${n}`,{method:`HEAD`,signal:i.signal})).status===200}catch{return!1}finally{clearTimeout(a)}}async function Je(e){let t=await Ge();if(t.length===0)return;if(t.length===1)return t[0];let n=(await Promise.all(t.map(async t=>({port:t,isWorkflow:await qe(t,e)})))).find(e=>e.isWorkflow);return n?n.port:(process.env.NODE_ENV===`development`&&console.debug(`[getWorkflowPort] Probing failed, falling back to first port:`,t[0]),t[0])}function Ye(e){let t={get value(){let n=e();return Object.defineProperty(t,"value",{value:n}),n}};return t}const Xe=()=>process.env.WORKFLOW_LOCAL_DATA_DIR||`.workflow-data`,Ze=()=>process.env.WORKFLOW_LOCAL_BASE_URL,Qe=Ye(()=>({dataDir:Xe(),baseUrl:Ze()}));function $e(e){if(e.recoverActiveRuns!==void 0)return e.recoverActiveRuns;let t=process.env.WORKFLOW_LOCAL_RECOVER_ACTIVE_RUNS?.toLowerCase();return!(t===`0`||t===`false`)}function et(e){return e.baseUrl??process.env.WORKFLOW_LOCAL_BASE_URL??u(`http://localhost`)}async function tt(e){if(e.baseUrl)return e.baseUrl;if(process.env.WORKFLOW_LOCAL_BASE_URL)return process.env.WORKFLOW_LOCAL_BASE_URL;if(typeof e.port==`number`)return u(`http://localhost:${e.port}`);if(process.env.PORT)return u(`http://localhost:${process.env.PORT}`);let t=await Je({endpoint:d()});if(t)return u(`http://localhost:${t}`);throw Error(`Unable to resolve base URL for workflow queue.`)}const nt=ce(()=>Math.random());function rt(e){let t=typeof e==`string`?e:String(e);return t.length>48?`${t.slice(0,48)}…`:t}var it=class extends a{constructor(e,t){super(`Unsafe ${e} "${rt(t)}": must not be empty, contain ".", "/", "\\", or null bytes`),this.name=`UnsafeEntityIdError`}static is(e){return e instanceof Error&&e.name===`UnsafeEntityIdError`}};function U(e,t){if(t.length===0||t.startsWith(`.`)||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)||t.includes(`.`))throw new it(e,t)}function W(e,...t){let n=H.resolve(e),r=H.resolve(e,...t);if(r!==n&&!r.startsWith(n+H.sep))throw new it(`path`,t.join(`/`));return r}const at=process.platform===`win32`;async function G(e,t=5){if(!at)return e();let n=[`EPERM`,`EBUSY`,`EACCES`];for(let r=0;r<=t;r++)try{return await e()}catch(e){if(!(r<t&&n.includes(e.code)))throw e;let i=10*2**r+Math.random()*10;await new Promise(e=>setTimeout(e,i))}throw Error(`Retry loop exited unexpectedly`)}const ot=new Set,st=new Set;function ct(){ot.clear(),st.clear()}const lt=/\.[a-zA-Z][a-zA-Z0-9-]*$/;function ut(e){return e.replace(lt,``)}function dt(e,t){return e.endsWith(`.${t}`)}function ft(e){return!lt.test(e)}function K(e,t,n,r){return U(`fileId`,n),r!==void 0&&U(`tag`,r),W(e,t,r?`${n}.${r}.json`:`${n}.json`)}async function q(e,t,n,r,i){if(U(`fileId`,n),i!==void 0&&U(`tag`,i),i){let a=await X(W(e,t,`${n}.${i}.json`),r);if(a!==null)return a}return X(W(e,t,`${n}.json`),r)}async function pt(e,t){let n=`.${t}.json`;try{return(await z.readdir(e)).filter(e=>e.endsWith(n))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function mt(e,t,n){let r=`.${t}${n}`;try{return(await z.readdir(e)).filter(e=>e.endsWith(r))}catch(e){if(e.code===`ENOENT`)return[];throw e}}async function ht(e){let t=H.resolve(e);if(!st.has(t))try{await z.mkdir(t,{recursive:!0}),st.add(t)}catch(e){let n=e.code;if(Pe(n)&&!await gt(t))throw new Me(t,n)}}async function gt(e){try{return(await z.stat(e)).isDirectory()}catch{return!1}}async function _t(e,t){await ht(e);try{return await t()}catch(n){if(n.code!==`ENOENT`)throw n;return st.delete(H.resolve(e)),await ht(e),t()}}function J(e,t){return t instanceof Uint8Array?{__type:`Uint8Array`,data:Buffer.from(t).toString(`base64`)}:t}function vt(e,t){return typeof t==`object`&&t&&t.__type===`Uint8Array`&&typeof t.data==`string`?new Uint8Array(Buffer.from(t.data,`base64`)):t}async function Y(e,t,n){return yt(e,JSON.stringify(t,J,2),n)}async function yt(e,t,n){if(!n?.overwrite){if(ot.has(e))throw new s(`File ${e} already exists and 'overwrite' is false`);try{throw await z.access(e),ot.add(e),new s(`File ${e} already exists and 'overwrite' is false`)}catch(e){if(e.code!==`ENOENT`)throw e}}let r=`${e}.tmp.${nt()}`,i=!1;try{await _t(H.dirname(e),async()=>{await z.writeFile(r,t),i=!0,await G(()=>z.rename(r,e))}),ot.add(e)}catch(e){throw i&&await G(()=>z.unlink(r),3).catch(()=>{}),e}}async function X(e,t){try{let n=await z.readFile(e,`utf-8`);return t.parse(JSON.parse(n,vt))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function bt(e){return await z.readFile(e)}async function xt(e){let t=await z.open(e,`r`);try{let e=Buffer.allocUnsafe(1),{bytesRead:n}=await t.read(e,0,1,0);return n===0?void 0:e[0]}finally{await t.close()}}async function Z(e){try{await G(()=>z.unlink(e))}catch(e){if(e.code!==`ENOENT`)throw e}}async function Q(e,t){let n=`${e}.tmp.${nt()}`,r=!1;try{return await _t(H.dirname(e),async()=>{await z.writeFile(n,t,{flag:`wx`}),r=!0;try{return await G(()=>z.link(n,e)),!0}catch(e){if(e.code===`EEXIST`)return!1;throw e}})}finally{r&&await G(()=>z.unlink(n),3).catch(()=>{})}}async function St(e,t){try{return await _t(H.dirname(t),()=>G(()=>z.link(e,t))),`linked`}catch(e){if(e.code===`EEXIST`)return`exists`;if(e.code===`ENOENT`)return`missing`;throw e}}async function Ct(e){return wt(e,`.json`)}async function wt(e,t){try{return(await z.readdir(e)).filter(e=>e.endsWith(t)).map(e=>e.slice(0,-t.length))}catch(e){if(e.code===`ENOENT`)return[];throw e}}const Tt=`key:`;function Et(e){if(!e)return null;if(e.startsWith(`key:`))return{timestamp:new Date(0),id:null,sortKey:e.slice(4)};let t=e.split(`|`);return{timestamp:new Date(t[0]),id:t[1]||null,sortKey:null}}function Dt(e,t,n){return n?`${Tt}${n}`:t?`${e.toISOString()}|${t}`:e.toISOString()}async function Ot(e){let{directory:t,schema:n,cachedItems:r,filePrefix:i,fileIdFilter:a,filter:o,sortOrder:s=`desc`,limit:c=20,cursor:l,getCreatedAt:u,getId:d,getSortKey:f,getSortKeyFromFileId:p}=e;i!==void 0&&U(`filePrefix`,i);let m=H.resolve(t),h=await Ct(m),g=i?h.filter(e=>e.startsWith(i)):h,_=a?g.filter(a):g,v=Et(l),y=_;if(v?.sortKey&&p){let e=v.sortKey;y=_.filter(t=>{let n=p(t);if(n===null)return!0;let r=n.localeCompare(e);return s===`desc`?r<0:r>0})}else v&&!v.sortKey&&(y=_.filter(e=>{let t=u(`${e}.json`);if(t){let e=v.timestamp.getTime(),n=t.getTime();return v.id?s===`desc`?n<=e:n>=e:s===`desc`?n<e:n>e}return!0}));let b=[];for(let e=0;e<y.length;e+=32){let t=y.slice(e,e+32),i=await Promise.all(t.map(async e=>{let t=H.join(m,`${e}.json`),i;try{let e=r?.get(t);i=e===void 0?await X(t,n):structuredClone(e)}catch(t){if(t instanceof A)return console.warn(`Skipping item ${e} due to malformed JSON: ${t.message}`),null;throw t}return i&&o&&!await o(i)?null:i}));for(let e of i){if(!e)continue;let t=f?.(e)??null;if(v?.sortKey){if(t){let e=t.localeCompare(v.sortKey);if(s===`desc`?e>=0:e<=0)continue}b.push(e);continue}if(v){let t=e.createdAt.getTime(),n=v.timestamp.getTime();if(s===`desc`){if(t>n||t===n&&v.id&&d&&d(e)>=v.id)continue}else if(t<n||t===n&&v.id&&d&&d(e)<=v.id)continue}b.push(e)}}b.sort((e,t)=>{if(f){let n=f(e),r=f(t);if(n!==null&&r!==null)return s===`asc`?n.localeCompare(r):r.localeCompare(n)}let n=e.createdAt.getTime(),r=t.createdAt.getTime(),i=s===`asc`?n-r:r-n;if(i===0&&d){let n=d(e),r=d(t);return s===`asc`?n.localeCompare(r):r.localeCompare(n)}return i});let x=b.length>c,S=x?b.slice(0,c):b;return{data:S,cursor:S.length>0?Dt(S[S.length-1].createdAt,d?.(S[S.length-1]),f?.(S[S.length-1])):null,hasMore:x}}let kt=null;function At(){return typeof import.meta.url==`string`&&import.meta.url?H.dirname(ve(import.meta.url)):null}async function jt(){if(kt)return kt;let e=At();if(e)try{let t=await Se(H.join(e,`../package.json`),`utf-8`);return kt=JSON.parse(t),kt}catch{}return kt={name:`@workflow/world-local`,version:`5.0.0-beta.37`},kt}const Mt=`version.txt`;var Nt=class extends Error{dataDir;code;constructor(e,t,n){super(e),this.name=`DataDirAccessError`,this.dataDir=t,this.code=n}},Pt=class extends Error{oldVersion;newVersion;suggestedVersion;constructor(e,t,n,r){super(e),this.name=`DataDirVersionError`,this.oldVersion=t,this.newVersion=n,this.suggestedVersion=r}};function Ft(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw Error(`Invalid version string: "${e}"`);return{major:parseInt(t[1],10),minor:parseInt(t[2],10),patch:parseInt(t[3],10),prerelease:t[4],raw:e}}function $(e){let t=`${e.major}.${e.minor}.${e.patch}`;return e.prerelease?`${t}-${e.prerelease}`:t}function It(e){let t=e.trim(),n=t.lastIndexOf(`@`);if(n<=0)throw Error(`Invalid version file content: "${e}"`);return{packageName:t.substring(0,n),version:Ft(t.substring(n+1))}}function Lt(e,t){return`${e}@${$(t)}`}function Rt(e,t){console.log(`[world-local] Upgrading from version ${$(e)} to ${$(t)}`)}async function zt(e){let t=H.resolve(e);try{await xe(t,{recursive:!0})}catch(e){let n=e;if(n.code!==`EEXIST`)throw new Nt(`Failed to create data directory "${t}": ${n.message}`,t,n.code)}try{await ye(t,be.R_OK)}catch(e){let n=e;throw new Nt(`Data directory "${t}" is not readable: ${n.message}`,t,n.code)}let n=H.join(t,`.workflow-write-test-${Date.now()}`);try{await Ee(n,``),await Te(n).catch(e=>{if(e.code!==`ENOENT`)throw e})}catch(e){let n=e;throw new Nt(`Data directory "${t}" is not writable: ${n.message}`,t,n.code)}}async function Bt(e){let t=H.join(H.resolve(e),Mt);try{return It(await Se(t,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}}async function Vt(e,t){await Ee(H.join(H.resolve(e),Mt),Lt((await jt()).name,t))}function Ht(e,t){return t||$(e)}async function Ut(e){await zt(e);let t=await jt(),n=Ft(t.version),r=await Bt(e);if(r===null){await Vt(e,n);return}let{version:i}=r;if($(i)!==$(n))try{Rt(i,n),await Vt(e,n)}catch(e){let r=Ht(i,e instanceof Pt?e.suggestedVersion:void 0);throw console.error(`[world-local] Failed to upgrade data directory from version ${$(i)} to ${$(n)}:`,e instanceof Error?e.message:e),console.error(`[world-local] Data is not compatible with the current version. Please downgrade to ${t.name}@${r}`),e}}let Wt=null;async function Gt(){return Wt||=import(`../../@opentelemetry/api/index.js`).catch(()=>null),Wt}let Kt=null;async function qt(){return Kt||=Gt().then(e=>e?e.trace.getTracer(`workflow`):null),Kt}async function Jt(e,...t){let[n,r]=await Promise.all([qt(),Gt()]),{fn:i,opts:a}=typeof t[0]==`function`?{fn:t[0],opts:{}}:{fn:t[1],opts:t[0]};if(!i)throw Error(`Function to trace must be provided`);return!n||!r?await i():n.startActiveSpan(e,a,async e=>{try{let t=await i(e);return e.setStatus({code:r.SpanStatusCode.OK}),t}catch(t){throw e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function Yt(e){let t=await Gt();if(t)return t.SpanKind[e]}function Xt(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const Zt=Xt(`peer.service`),Qt=Xt(`rpc.system`),$t=Xt(`rpc.service`),en=Xt(`rpc.method`),tn=Xt(`workflow.run.id`),nn=Xt(`step.id`),rn={peerService:`world-local`,rpcSystem:`local`,rpcService:`world-local`},an={"world.runs.get":0,"world.runs.experimentalSetAttributes":0,"world.steps.get":0,"world.events.create":0,"world.events.get":0},on=new Set([`world.steps.list`,`world.events.list`,`world.hooks.list`]);function sn(e){if(e.length>=2&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];if(typeof t.eventType==`string`)return t.eventType}}function cn(e,t){return typeof e[t]==`string`?e[t]:void 0}function ln(e){if(typeof e!=`object`||!e)return;let t=e.runId;return typeof t==`string`?t:void 0}function un(e){if(typeof e!=`object`||!e)return;let t=e;if(typeof t.runId==`string`)return t.runId;for(let e of[`run`,`step`,`hook`,`wait`]){let n=t[e];if(typeof n==`object`&&n){let e=n.runId;if(typeof e==`string`)return e}}}function dn(e,t,n){let r=`${e}.${t}`,i={},a=an[r],o=a===void 0?on.has(r)?ln(n[0]):void 0:cn(n,a);if(o&&Object.assign(i,tn(o)),r===`world.steps.get`){let e=cn(n,1);e&&Object.assign(i,nn(e))}return i}function fn(e,t){let n={};for(let r of Object.keys(t))if(typeof t[r]!=`function`)n[r]=t[r];else{let i=t[r],a=String(r);n[r]=async(...t)=>{let n=`${e}.${a}`;if(e===`world.events`&&a===`create`){let r=sn(t);r&&(n=`${e}.${a} ${r}`)}return Jt(n,{kind:await Yt(`INTERNAL`)},async r=>{r?.setAttributes({...Zt(rn.peerService),...Qt(rn.rpcSystem),...$t(rn.rpcService),...en(n),...dn(e,a,t)});let o=await i(...t),s=un(o);return s&&r?.setAttributes(tn(s)),o})}}return n}var pn=t((t=>{var n=t&&t.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RateLimit=t.Sema=void 0;let r=n(e(`events`));function i(e,t,n,r,i){for(let a=0;a<i;++a)n[a+r]=e[a+t],e[a+t]=void 0}function a(e){return e>>>=0,--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e+1}function o(e){return a(Math.min(Math.max(16,e),1073741824))}var s=class{constructor(e){this._capacity=o(e),this._length=0,this._front=0,this.arr=[]}push(e){let t=this._length;this.checkCapacity(t+1);let n=this._front+t&this._capacity-1;return this.arr[n]=e,this._length=t+1,t+1}pop(){let e=this._length;if(e===0)return;let t=this._front+e-1&this._capacity-1,n=this.arr[t];return this.arr[t]=void 0,this._length=e-1,n}shift(){let e=this._length;if(e===0)return;let t=this._front,n=this.arr[t];return this.arr[t]=void 0,this._front=t+1&this._capacity-1,this._length=e-1,n}get length(){return this._length}checkCapacity(e){this._capacity<e&&this.resizeTo(o(this._capacity*1.5+16))}resizeTo(e){let t=this._capacity;this._capacity=e;let n=this._front,r=this._length;if(n+r>t){let e=n+r&t-1;i(this.arr,0,this.arr,t,e)}}},c=class extends r.default{};function l(e){return typeof e==`function`}function u(){return`1`}var d=class{constructor(e,{initFn:t=u,pauseFn:n,resumeFn:r,capacity:i=10}={}){if(l(n)!==l(r))throw Error(`pauseFn and resumeFn must be both set for pausing`);this.nrTokens=e,this.free=new s(e),this.waiting=new s(i),this.releaseEmitter=new c,this.noTokens=t===u,this.pauseFn=n,this.resumeFn=r,this.paused=!1,this.releaseEmitter.on(`release`,e=>{let t=this.waiting.shift();t?t.resolve(e):(this.resumeFn&&this.paused&&(this.paused=!1,this.resumeFn()),this.free.push(e))});for(let n=0;n<e;n++)this.free.push(t())}tryAcquire(){return this.free.pop()}async acquire(){let e=this.tryAcquire();return e===void 0?new Promise((e,t)=>{this.pauseFn&&!this.paused&&(this.paused=!0,this.pauseFn()),this.waiting.push({resolve:e,reject:t})}):e}release(e){this.releaseEmitter.emit(`release`,this.noTokens?`1`:e)}drain(){let e=Array(this.nrTokens);for(let t=0;t<this.nrTokens;t++)e[t]=this.acquire();return Promise.all(e)}nrWaiting(){return this.waiting.length}};t.Sema=d;function f(e,{timeUnit:t=1e3,uniformDistribution:n=!1}={}){let r=new d(n?1:e),i=n?t/e:t;return async function(){await r.acquire(),setTimeout(()=>r.release(),i)}}t.RateLimit=f}))(),mn=I(),hn=class{contentType=`application/json`;serialize(e){return Buffer.from(JSON.stringify(e,J))}async deserialize(e){let t=[],n=e.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)break;r&&t.push(r)}let r=Buffer.concat(t).toString();return JSON.parse(r,vt)}};const gn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX_VISIBILITY??`0`,10)||1/0,_n=2147483647,vn=parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY??`0`,10)||1e3;function yn(e,t){let n=process.env[e];if(n===void 0||n===``)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>=0?r:t}function bn(){return{bodyTimeout:yn(`WORKFLOW_LOCAL_BODY_TIMEOUT_MS`,3e4),connections:1e3,headersTimeout:yn(`WORKFLOW_LOCAL_HEADERS_TIMEOUT_MS`,3e4),keepAliveTimeout:3e4}}const xn=`Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer`;function Sn(e){let t=e,n=new Set;for(;t&&typeof t==`object`&&!n.has(t);){if(n.add(t),`message`in t&&typeof t.message==`string`&&t.message.includes(xn))return!0;t=`cause`in t?t.cause:void 0}return!1}function Cn(e){let t=bn(),n=fe()?me({maxSockets:t.connections,keepAliveMs:t.keepAliveTimeout}):void 0,r=n?void 0:new mn.Agent(t),i=new hn,a=ce(),o=new pn.Sema(vn),s=new AbortController,c=s.signal,u=new Map,d=new Map,f=async(s,f,p)=>{let m=[];if(p?.idempotencyKey){let e=u.get(p.idempotencyKey);if(e)return{messageId:e}}let h=i.serialize(f),{prefix:g}=T(s),_=k.parse(`msg_${a()}`),v=f,y=v.runId??void 0,b=v.stepId??void 0;if(p?.idempotencyKey){let e=p.idempotencyKey;u.set(e,_),m.push(()=>{u.delete(e)})}return(async()=>{p?.delaySeconds&&p.delaySeconds>0&&await ke(Math.min(p.delaySeconds*1e3,_n),void 0,{signal:c}),o.tryAcquire()||(console.warn(`[world-local]: concurrency limit (${vn}) reached, waiting for queue to free up`),await o.acquire());let i=0;try{for(let a=0;a<256;a++){let o={...p?.headers,"content-type":`application/json`,"x-vqs-queue-name":s,"x-vqs-message-id":_,"x-vqs-message-attempt":String(i+1)},u=d.get(g),f,m;try{if(u)f=await u(new Request(l(et(e),{type:`flow`}),{method:`POST`,headers:o,body:h}));else{let i=l(await tt(e),{type:`flow`});f=n?await pe(i,{method:`POST`,headers:new Headers(o),body:h,agents:n,headersTimeoutMs:t.headersTimeout,bodyTimeoutMs:t.bodyTimeout}):await fetch(i,{method:`POST`,duplex:`half`,dispatcher:r,headers:o,body:h})}i++,m=await f.text()}catch(e){let t=e?.name;if(c.aborted||t===`AbortError`||t===`ResponseAborted`)return;if(Sn(e))throw e;console.error(`[world-local] Queue delivery failed at the transport (loop ${a+1}), retrying`,{queueName:s,messageId:_,...y&&{runId:y},...b&&{stepId:b},error:String(e)}),await ke(5e3,void 0,{signal:c});continue}if(f.ok){try{let e=Number(JSON.parse(m).timeoutSeconds);if(Number.isFinite(e)&&e>=0){e>0&&await ke(Math.min(e*1e3,_n),void 0,{signal:c});continue}}catch{}return}console.error(`[world-local] Queue message failed (attempt ${i}, HTTP ${f.status})`,{queueName:s,messageId:_,...y&&{runId:y},...b&&{stepId:b},handlerError:m}),await ke(5e3,void 0,{signal:c})}console.error(`[world-local] Queue message exhausted safety limit (256 attempts)`,{queueName:s,messageId:_,...y&&{runId:y},...b&&{stepId:b}})}finally{o.release()}})().catch(e=>{e?.name===`AbortError`||e?.name===`ResponseAborted`||(Sn(e)?console.error(`[local world] Queue operation failed: detected "${xn}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler`,{queueName:s,messageId:_,...y&&{runId:y},...b&&{stepId:b},originalError:e}):console.error(`[local world] Queue operation failed:`,e))}).finally(()=>{for(let e of m)e()}),{messageId:_}},p=E({"x-vqs-queue-name":P,"x-vqs-message-id":k,"x-vqs-message-attempt":se()});return{queue:f,createQueueHandler:(e,t)=>async n=>{let r=p.safeParse(Object.fromEntries(n.headers));if(!r.success||!n.body)return Response.json({error:n.body?`Missing required headers`:`Missing request body`},{status:400});let i=r.data[`x-vqs-queue-name`],a=r.data[`x-vqs-message-id`],o=r.data[`x-vqs-message-attempt`];if(!i.startsWith(e))return Response.json({error:`Unhandled queue`},{status:400});let s=await new hn().deserialize(n.body);try{let e=await t(s,{attempt:o,queueName:i,messageId:a}),n=null;return typeof e?.timeoutSeconds==`number`&&(n=Math.min(e.timeoutSeconds,gn)),n==null?Response.json({ok:!0}):Response.json({timeoutSeconds:n})}catch(e){return Response.json(String(e),{status:500})}},getDeploymentId:async()=>`dpl_local@${(await jt()).version}`,registerHandler(e,t){d.set(e,t)},async close(){c.aborted||(s.abort(),n&&F(n),await r?.close())}}}var wn=t(((t,n)=>{var r=e(`constants`),i=process.cwd,a=null,o=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return a||=i.call(process),a};try{process.cwd()}catch{}if(typeof process.chdir==`function`){var s=process.chdir;process.chdir=function(e){a=null,s.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,s)}n.exports=c;function c(e){r.hasOwnProperty(`O_SYMLINK`)&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||n(e),e.chown=s(e.chown),e.fchown=s(e.fchown),e.lchown=s(e.lchown),e.chmod=i(e.chmod),e.fchmod=i(e.fchmod),e.lchmod=i(e.lchmod),e.chownSync=c(e.chownSync),e.fchownSync=c(e.fchownSync),e.lchownSync=c(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=l(e.stat),e.fstat=l(e.fstat),e.lstat=l(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){}),o===`win32`&&(e.rename=typeof e.rename==`function`?(function(t){function n(n,r,i){var a=Date.now(),o=0;t(n,r,function s(c){if(c&&(c.code===`EACCES`||c.code===`EPERM`||c.code===`EBUSY`)&&Date.now()-a<6e4){setTimeout(function(){e.stat(r,function(e,a){e&&e.code===`ENOENT`?t(n,r,s):i(c)})},o),o<100&&(o+=10);return}i&&i(c)})}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.rename):e.rename),e.read=typeof e.read==`function`?(function(t){function n(n,r,i,a,o,s){var c;if(s&&typeof s==`function`){var l=0;c=function(u,d,f){if(u&&u.code===`EAGAIN`&&l<10)return l++,t.call(e,n,r,i,a,o,c);s.apply(this,arguments)}}return t.call(e,n,r,i,a,o,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n})(e.read):e.read,e.readSync=typeof e.readSync==`function`?(function(t){return function(n,r,i,a,o){for(var s=0;;)try{return t.call(e,n,r,i,a,o)}catch(e){if(e.code===`EAGAIN`&&s<10){s++;continue}throw e}}})(e.readSync):e.readSync;function t(e){e.lchmod=function(t,n,i){e.open(t,r.O_WRONLY|r.O_SYMLINK,n,function(t,r){if(t){i&&i(t);return}e.fchmod(r,n,function(t){e.close(r,function(e){i&&i(t||e)})})})},e.lchmodSync=function(t,n){var i=e.openSync(t,r.O_WRONLY|r.O_SYMLINK,n),a=!0,o;try{o=e.fchmodSync(i,n),a=!1}finally{if(a)try{e.closeSync(i)}catch{}else e.closeSync(i)}return o}}function n(e){r.hasOwnProperty(`O_SYMLINK`)&&e.futimes?(e.lutimes=function(t,n,i,a){e.open(t,r.O_SYMLINK,function(t,r){if(t){a&&a(t);return}e.futimes(r,n,i,function(t){e.close(r,function(e){a&&a(t||e)})})})},e.lutimesSync=function(t,n,i){var a=e.openSync(t,r.O_SYMLINK),o,s=!0;try{o=e.futimesSync(a,n,i),s=!1}finally{if(s)try{e.closeSync(a)}catch{}else e.closeSync(a)}return o}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}function i(t){return t&&function(n,r,i){return t.call(e,n,r,function(e){d(e)&&(e=null),i&&i.apply(this,arguments)})}}function a(t){return t&&function(n,r){try{return t.call(e,n,r)}catch(e){if(!d(e))throw e}}}function s(t){return t&&function(n,r,i,a){return t.call(e,n,r,i,function(e){d(e)&&(e=null),a&&a.apply(this,arguments)})}}function c(t){return t&&function(n,r,i){try{return t.call(e,n,r,i)}catch(e){if(!d(e))throw e}}}function l(t){return t&&function(n,r,i){typeof r==`function`&&(i=r,r=null);function a(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),i&&i.apply(this,arguments)}return r?t.call(e,n,r,a):t.call(e,n,a)}}function u(t){return t&&function(n,r){var i=r?t.call(e,n,r):t.call(e,n);return i&&(i.uid<0&&(i.uid+=4294967296),i.gid<0&&(i.gid+=4294967296)),i}}function d(e){return!e||e.code===`ENOSYS`||(!process.getuid||process.getuid()!==0)&&(e.code===`EINVAL`||e.code===`EPERM`)}}})),Tn=t(((t,n)=>{var r=e(`stream`).Stream;n.exports=i;function i(e){return{ReadStream:t,WriteStream:n};function t(n,i){if(!(this instanceof t))return new t(n,i);r.call(this);var a=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags=`r`,this.mode=438,this.bufferSize=64*1024,i||={};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var l=o[s];this[l]=i[l]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.end===void 0)this.end=1/0;else if(typeof this.end!=`number`)throw TypeError(`end must be a Number`);if(this.start>this.end)throw Error(`start must be <= end`);this.pos=this.start}if(this.fd!==null){process.nextTick(function(){a._read()});return}e.open(this.path,this.flags,this.mode,function(e,t){if(e){a.emit(`error`,e),a.readable=!1;return}a.fd=t,a.emit(`open`,t),a._read()})}function n(t,i){if(!(this instanceof n))return new n(t,i);r.call(this),this.path=t,this.fd=null,this.writable=!0,this.flags=`w`,this.encoding=`binary`,this.mode=438,this.bytesWritten=0,i||={};for(var a=Object.keys(i),o=0,s=a.length;o<s;o++){var c=a[o];this[c]=i[c]}if(this.start!==void 0){if(typeof this.start!=`number`)throw TypeError(`start must be a Number`);if(this.start<0)throw Error(`start must be >= zero`);this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}})),En=t(((e,t)=>{t.exports=r;var n=Object.getPrototypeOf||function(e){return e.__proto__};function r(e){if(typeof e!=`object`||!e)return e;if(e instanceof Object)var t={__proto__:n(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}})),Dn=t(((t,n)=>{var r=e(`fs`),i=wn(),a=Tn(),o=En(),s=e(`util`),c,l;typeof Symbol==`function`&&typeof Symbol.for==`function`?(c=Symbol.for(`graceful-fs.queue`),l=Symbol.for(`graceful-fs.previous`)):(c=`___graceful-fs.queue`,l=`___graceful-fs.previous`);function u(){}function d(e,t){Object.defineProperty(e,c,{get:function(){return t}})}var f=u;s.debuglog?f=s.debuglog(`gfs4`):/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&(f=function(){var e=s.format.apply(s,arguments);e=`GFS4: `+e.split(/\n/).join(`
|
|
5
|
+
GFS4: `),console.error(e)}),r[c]||(d(r,global[c]||[]),r.close=(function(e){function t(t,n){return e.call(r,t,function(e){e||g(),typeof n==`function`&&n.apply(this,arguments)})}return Object.defineProperty(t,l,{value:e}),t})(r.close),r.closeSync=(function(e){function t(t){e.apply(r,arguments),g()}return Object.defineProperty(t,l,{value:e}),t})(r.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||``)&&process.on(`exit`,function(){f(r[c]),e(`assert`).equal(r[c].length,0)})),global[c]||d(global,r[c]),n.exports=p(o(r)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!r.__patched&&(n.exports=p(r),r.__patched=!0);function p(e){i(e),e.gracefulify=p,e.createReadStream=T,e.createWriteStream=E;var t=e.readFile;e.readFile=n;function n(e,n,r){return typeof n==`function`&&(r=n,n=null),i(e,n,r);function i(e,n,r,a){return t(e,n,function(t){t&&(t.code===`EMFILE`||t.code===`ENFILE`)?m([i,[e,n,r],t,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var r=e.writeFile;e.writeFile=o;function o(e,t,n,i){return typeof n==`function`&&(i=n,n=null),a(e,t,n,i);function a(e,t,n,i,o){return r(e,t,n,function(r){r&&(r.code===`EMFILE`||r.code===`ENFILE`)?m([a,[e,t,n,i],r,o||Date.now(),Date.now()]):typeof i==`function`&&i.apply(this,arguments)})}}var s=e.appendFile;s&&(e.appendFile=c);function c(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return s(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var l=e.copyFile;l&&(e.copyFile=u);function u(e,t,n,r){return typeof n==`function`&&(r=n,n=0),i(e,t,n,r);function i(e,t,n,r,a){return l(e,t,n,function(o){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}var d=e.readdir;e.readdir=h;var f=/^v[0-5]\./;function h(e,t,n){typeof t==`function`&&(n=t,t=null);var r=f.test(process.version)?function(e,t,n,r){return d(e,i(e,t,n,r))}:function(e,t,n,r){return d(e,t,i(e,t,n,r))};return r(e,t,n);function i(e,t,n,i){return function(a,o){a&&(a.code===`EMFILE`||a.code===`ENFILE`)?m([r,[e,t,n],a,i||Date.now(),Date.now()]):(o&&o.sort&&o.sort(),typeof n==`function`&&n.call(this,a,o))}}}if(process.version.substr(0,4)===`v0.8`){var g=a(e);x=g.ReadStream,C=g.WriteStream}var _=e.ReadStream;_&&(x.prototype=Object.create(_.prototype),x.prototype.open=S);var v=e.WriteStream;v&&(C.prototype=Object.create(v.prototype),C.prototype.open=w),Object.defineProperty(e,"ReadStream",{get:function(){return x},set:function(e){x=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return C},set:function(e){C=e},enumerable:!0,configurable:!0});var y=x;Object.defineProperty(e,"FileReadStream",{get:function(){return y},set:function(e){y=e},enumerable:!0,configurable:!0});var b=C;Object.defineProperty(e,"FileWriteStream",{get:function(){return b},set:function(e){b=e},enumerable:!0,configurable:!0});function x(e,t){return this instanceof x?(_.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function S(){var e=this;D(e.path,e.flags,e.mode,function(t,n){t?(e.autoClose&&e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n),e.read())})}function C(e,t){return this instanceof C?(v.apply(this,arguments),this):C.apply(Object.create(C.prototype),arguments)}function w(){var e=this;D(e.path,e.flags,e.mode,function(t,n){t?(e.destroy(),e.emit(`error`,t)):(e.fd=n,e.emit(`open`,n))})}function T(t,n){return new e.ReadStream(t,n)}function E(t,n){return new e.WriteStream(t,n)}var ee=e.open;e.open=D;function D(e,t,n,r){return typeof n==`function`&&(r=n,n=null),i(e,t,n,r);function i(e,t,n,r,a){return ee(e,t,n,function(o,s){o&&(o.code===`EMFILE`||o.code===`ENFILE`)?m([i,[e,t,n,r],o,a||Date.now(),Date.now()]):typeof r==`function`&&r.apply(this,arguments)})}}return e}function m(e){f(`ENQUEUE`,e[0].name,e[1]),r[c].push(e),_()}var h;function g(){for(var e=Date.now(),t=0;t<r[c].length;++t)r[c][t].length>2&&(r[c][t][3]=e,r[c][t][4]=e);_()}function _(){if(clearTimeout(h),h=void 0,r[c].length!==0){var e=r[c].shift(),t=e[0],n=e[1],i=e[2],a=e[3],o=e[4];if(a===void 0)f(`RETRY`,t.name,n),t.apply(null,n);else if(Date.now()-a>=6e4){f(`TIMEOUT`,t.name,n);var s=n.pop();typeof s==`function`&&s.call(null,i)}else{var l=Date.now()-o,u=Math.max(o-a,1);l>=Math.min(u*1.2,100)?(f(`RETRY`,t.name,n),t.apply(null,n.concat([a]))):r[c].push(e)}h===void 0&&(h=setTimeout(_,0))}}})),On=t(((e,t)=>{function n(e,t){typeof t==`boolean`&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}t.exports=n,n.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},n.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},n.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error(`RetryOperation timeout occurred`)),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),n=this._timeouts.shift();else return!1;var r=this,i=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n);return this._options.unref&&i.unref(),!0},n.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},n.prototype.try=function(e){console.log(`Using RetryOperation.try() is deprecated`),this.attempt(e)},n.prototype.start=function(e){console.log(`Using RetryOperation.start() is deprecated`),this.attempt(e)},n.prototype.start=n.prototype.try,n.prototype.errors=function(){return this._errors},n.prototype.attempts=function(){return this._attempts},n.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var i=this._errors[r],a=i.message,o=(e[a]||0)+1;e[a]=o,o>=n&&(t=i,n=o)}return t}})),kn=t((e=>{var t=On();e.operation=function(n){return new t(e.timeouts(n),{forever:n&&n.forever,unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw Error(`minTimeout is greater than maxTimeout`);for(var r=[],i=0;i<t.retries;i++)r.push(this.createTimeout(i,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(i,t)),r.sort(function(e,t){return e-t}),r},e.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*t.minTimeout*t.factor**+e);return r=Math.min(r,t.maxTimeout),r},e.wrap=function(t,n,r){if(n instanceof Array&&(r=n,n=null),!r)for(var i in r=[],t)typeof t[i]==`function`&&r.push(i);for(var a=0;a<r.length;a++){var o=r[a],s=t[o];t[o]=function(r){var i=e.operation(n),a=Array.prototype.slice.call(arguments,1),o=a.pop();a.push(function(e){i.retry(e)||(e&&(arguments[0]=i.mainError()),o.apply(this,arguments))}),i.attempt(function(){r.apply(t,a)})}.bind(t,s),t[o].options=n}}})),An=t(((e,t)=>{t.exports=kn()})),jn=t(((e,t)=>{let n=Symbol();function r(e,t,r){let i=t[n];if(i)return t.stat(e,(e,t)=>{if(e)return r(e);r(null,t.mtime,i)});let a=new Date(Math.ceil(Date.now()/1e3)*1e3+5);t.utimes(e,a,a,i=>{if(i)return r(i);t.stat(e,(e,i)=>{if(e)return r(e);let a=i.mtime.getTime()%1e3==0?`s`:`ms`;Object.defineProperty(t,n,{value:a}),r(null,i.mtime,a)})})}function i(e){let t=Date.now();return e===`s`&&(t=Math.ceil(t/1e3)*1e3),new Date(t)}t.exports.probe=r,t.exports.getMtime=i})),Mn=t(((t,n)=>{let r=e(`path`),i=Dn(),a=An(),o=L(),s=jn(),c={};function l(e,t){return t.lockfilePath||`${e}.lock`}function u(e,t,n){if(!t.realpath)return n(null,r.resolve(e));t.fs.realpath(e,n)}function d(e,t,n){let r=l(e,t);t.fs.mkdir(r,i=>{if(!i)return s.probe(r,t.fs,(e,i,a)=>{if(e)return t.fs.rmdir(r,()=>{}),n(e);n(null,i,a)});if(i.code!==`EEXIST`)return n(i);if(t.stale<=0)return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));t.fs.stat(r,(r,i)=>{if(r)return r.code===`ENOENT`?d(e,{...t,stale:0},n):n(r);if(!f(i,t))return n(Object.assign(Error(`Lock file is already being held`),{code:`ELOCKED`,file:e}));p(e,t,r=>{if(r)return n(r);d(e,{...t,stale:0},n)})})})}function f(e,t){return e.mtime.getTime()<Date.now()-t.stale}function p(e,t,n){t.fs.rmdir(l(e,t),e=>{if(e&&e.code!==`ENOENT`)return n(e);n()})}function m(e,t){let n=c[e];n.updateTimeout||(n.updateDelay=n.updateDelay||t.update,n.updateTimeout=setTimeout(()=>{n.updateTimeout=null,t.fs.stat(n.lockfilePath,(r,i)=>{let a=n.lastUpdate+t.stale<Date.now();if(r)return r.code===`ENOENT`||a?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));if(n.mtime.getTime()!==i.mtime.getTime())return h(e,n,Object.assign(Error(`Unable to update lock within the stale threshold`),{code:`ECOMPROMISED`}));let o=s.getMtime(n.mtimePrecision);t.fs.utimes(n.lockfilePath,o,o,r=>{let i=n.lastUpdate+t.stale<Date.now();if(!n.released){if(r)return r.code===`ENOENT`||i?h(e,n,Object.assign(r,{code:`ECOMPROMISED`})):(n.updateDelay=1e3,m(e,t));n.mtime=o,n.lastUpdate=Date.now(),n.updateDelay=null,m(e,t)}})})},n.updateDelay),n.updateTimeout.unref&&n.updateTimeout.unref())}function h(e,t,n){t.released=!0,t.updateTimeout&&clearTimeout(t.updateTimeout),c[e]===t&&delete c[e],t.options.onCompromised(n)}function g(e,t,n){t={stale:1e4,update:null,realpath:!0,retries:0,fs:i,onCompromised:e=>{throw e},...t},t.retries=t.retries||0,t.retries=typeof t.retries==`number`?{retries:t.retries}:t.retries,t.stale=Math.max(t.stale||0,2e3),t.update=t.update==null?t.stale/2:t.update||0,t.update=Math.max(Math.min(t.update,t.stale/2),1e3),u(e,t,(e,r)=>{if(e)return n(e);let i=a.operation(t.retries);i.attempt(()=>{d(r,t,(e,a,o)=>{if(i.retry(e))return;if(e)return n(i.mainError());let s=c[r]={lockfilePath:l(r,t),mtime:a,mtimePrecision:o,options:t,lastUpdate:Date.now()};m(r,t),n(null,e=>{if(s.released)return e&&e(Object.assign(Error(`Lock is already released`),{code:`ERELEASED`}));_(r,{...t,realpath:!1},e)})})})})}function _(e,t,n){t={fs:i,realpath:!0,...t},u(e,t,(e,r)=>{if(e)return n(e);let i=c[r];if(!i)return n(Object.assign(Error(`Lock is not acquired/owned by you`),{code:`ENOTACQUIRED`}));i.updateTimeout&&clearTimeout(i.updateTimeout),i.released=!0,delete c[r],p(r,t,n)})}function v(e,t,n){t={stale:1e4,realpath:!0,fs:i,...t},t.stale=Math.max(t.stale||0,2e3),u(e,t,(e,r)=>{if(e)return n(e);t.fs.stat(l(r,t),(e,r)=>e?e.code===`ENOENT`?n(null,!1):n(e):n(null,!f(r,t)))})}function y(){return c}o(()=>{for(let e in c){let t=c[e].options;try{t.fs.rmdirSync(l(e,t))}catch{}}}),n.exports.lock=g,n.exports.unlock=_,n.exports.check=v,n.exports.getLocks=y})),Nn=t(((e,t)=>{let n=Dn();function r(e){let t=[`mkdir`,`realpath`,`stat`,`rmdir`,`utimes`],n={...e};return t.forEach(t=>{n[t]=(...n)=>{let r=n.pop(),i;try{i=e[`${t}Sync`](...n)}catch(e){return r(e)}r(null,i)}}),n}function i(e){return(...t)=>new Promise((n,r)=>{t.push((e,t)=>{e?r(e):n(t)}),e(...t)})}function a(e){return(...t)=>{let n,r;if(t.push((e,t)=>{n=e,r=t}),e(...t),n)throw n;return r}}function o(e){if(e={...e},e.fs=r(e.fs||n),typeof e.retries==`number`&&e.retries>0||e.retries&&typeof e.retries.retries==`number`&&e.retries.retries>0)throw Object.assign(Error(`Cannot use retries with the sync api`),{code:`ESYNC`});return e}t.exports={toPromise:i,toSync:a,toSyncOptions:o}})),Pn=t(((e,t)=>{let n=Mn(),{toPromise:r,toSync:i,toSyncOptions:a}=Nn();async function o(e,t){let i=await r(n.lock)(e,t);return r(i)}function s(e,t){let r=i(n.lock)(e,a(t));return i(r)}function c(e,t){return r(n.unlock)(e,t)}function l(e,t){return i(n.unlock)(e,a(t))}function u(e,t){return r(n.check)(e,t)}function d(e,t){return i(n.check)(e,a(t))}t.exports=o,t.exports.lock=o,t.exports.unlock=c,t.exports.lockSync=s,t.exports.unlockSync=l,t.exports.check=u,t.exports.checkSync=d}))();function Fn(e){return R(`sha256`).update(e).digest(`hex`)}function In(e,t,n){return W(e,`.locks`,`hooks`,n?`${t}.disposed.${n}`:`${t}.disposed`)}async function Ln(e,t,n){let r=[In(e,t)];n&&r.push(In(e,t,n));for(let e of r)try{return await B.access(e),!0}catch{}return!1}function Rn(e,t,n){return W(e,`.locks`,`runs`,n?`${t}.terminal.${n}`:`${t}.terminal`)}async function zn(e,t,n){let r=[Rn(e,t)];n&&r.push(Rn(e,t,n));for(let e of r)try{return await B.access(e),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}function Bn(e,t,n){return W(e,`.locks`,`runs`,n?`${t}.pending.${n}`:`${t}.pending`)}function Vn(e,t,n,r){return H.join(Bn(e,t,r),`${n}.json`)}async function Hn(e,t,n){let r=[Bn(e,t)];n&&r.push(Bn(e,t,n));for(let e of r){let t;try{t=await B.readdir(e)}catch(e){if(e.code===`ENOENT`)continue;throw e}for(let n of t)try{await G(()=>B.unlink(H.join(e,n)))}catch(e){if(e.code!==`ENOENT`)throw e}await B.rmdir(e).catch(()=>{})}}async function Un(e,t,n){let r=await Wn(e,t,n),i=Date.now();if(r.maxId)try{let e=j(r.maxId.replace(/^evnt_/,``));i<=e&&(i=e+1)}catch{}return{eventId:`evnt_${Qn(i)}`,createdAt:new Date(i)}}async function Wn(e,t,n){let r=[];try{r=await B.readdir(H.join(e,`events`))}catch(e){if(e.code!==`ENOENT`)throw e}let i=`${t}-`,a=[],o=null,s=0,c=!1,l=0;for(let e of r){if(!e.startsWith(i)||!e.endsWith(`.json`))continue;let t=e.slice(0,-5);if(!ft(t)&&!(n&&dt(t,n)))continue;let r=ut(t).slice(i.length);l+=1,a.push(r),(!o||r>o)&&(o=r);let u=te(r);u!==null&&(c=!0,u>s&&(s=u))}return{maxId:o,usesSlots:c,maxSlot:s,count:l,ids:a}}function Gn(e,t){return H.join(e,`hooks`,`tokens`,`${Fn(t)}.json`)}const Kn=E({hookId:w().optional(),runId:w(),eventId:w().optional(),tokenRetentionUntil:ue().optional()});async function qn(e){try{return await X(e,Kn)}catch(e){if(e instanceof SyntaxError||e instanceof A)return null;throw e}}async function Jn(e,t,n){let r=Gn(e,t);await B.mkdir(H.dirname(r),{recursive:!0});let i=new AbortController,o;try{o=await(0,Pn.lock)(r,{realpath:!1,stale:3e4,update:1e3,retries:{retries:350,factor:1,minTimeout:100,maxTimeout:100},onCompromised(e){i.abort(new a(`Hook token claim lock was compromised`,{cause:e}))}})}catch(e){throw new a(`Could not acquire Hook token claim lock`,{cause:e})}let s;try{s=await n(i.signal),i.signal.throwIfAborted()}catch(e){throw i.signal.aborted||await o().catch(()=>{}),e}try{await o()}catch(e){throw new a(`Could not release Hook token claim lock`,{cause:e})}return s}function Yn(e,t,n){let r=R(`sha256`).update(`${t}\x00${n}`).digest(`hex`);return H.join(e,`hooks`,`resumes`,`${r}.json`)}async function Xn(e,t,n,r){await Jn(e,t,async i=>{let a=Gn(e,t),o=await qn(a);o&&o.runId===n&&o.hookId===r&&(i.throwIfAborted(),await Z(a))})}function Zn(e,t,n,r){let i=R(`sha256`).update(`${t}\x00${n}\x00${r}`).digest(`hex`);return H.join(e,`hooks`,`tokens`,`${i}.recovery.json`)}const Qn=ce(()=>Math.random()),$n=e=>{let t=RegExp(`^${e}_`,`g`);return n=>{let r=ut(n.replace(/\.json$/,``))+`.json`,i=r.indexOf(`-`);return i===-1?oe(r.replace(/\.json$/,``).replace(t,``)):e===`step`?null:oe(r.substring(i+1).replace(/\.json$/,``).replace(t,``))}},er=E({runId:w()}),tr=E({hookId:w(),tag:w().optional()});function nr(e,t){return W(e,`hooks`,`token-index`,Fn(t))}function rr(e,t){return U(`hookId`,t),W(e,`hooks`,`id-index`,t)}function ir(e){return W(e,`hooks`,`by-run`)}function ar(e){let t=ut(e);return t===e?void 0:e.slice(t.length+1)}function or(e,t){return t?ft(e)||dt(e,t):ft(e)}async function sr(e){try{return await X(e,C)}catch(e){if(e instanceof SyntaxError||e instanceof A)return null;throw e}}async function cr(e,t,n,r,i,a){U(`runId`,n),U(`eventId`,i),a!==void 0&&U(`tag`,a);let o=a?`${i}.${a}.json`:`${i}.json`,s=JSON.stringify({runId:n});await Promise.all([Q(H.join(nr(e,t),o),s),Q(H.join(rr(e,r),o),s)])}function lr(e,t,n,r){return K(e,`hooks/by-run`,`${t}-${n}`,r)}async function ur(e,t,n,r){await Q(lr(e,t,n,r),JSON.stringify(r?{hookId:n,tag:r}:{hookId:n}))}async function dr(e,t,n,r){await Z(lr(e,t,n,r)),r&&await Z(lr(e,t,n))}async function fr(e,t){U(`runId`,t);let n=ir(e),r=`${t}-`,i=[];for(let e of await Ct(n)){if(!e.startsWith(r))continue;let t=null;try{t=await X(H.join(n,`${e}.json`),tr)}catch(e){if(!(e instanceof SyntaxError||e instanceof A))throw e}i.push({fileId:e,hookId:t?.hookId??null,tag:t?.tag})}return i}async function pr(e,t){await Z(H.join(ir(e),`${t}.json`))}const mr=new Map;function hr(){mr.clear()}async function gr(e){let t=H.resolve(e),n=mr.get(t);return n||(n=vr(t).catch(e=>{throw mr.delete(t),e}),mr.set(t,n)),n}async function _r(e,t,n){for(let r=0;r<e.length;r+=t)await Promise.all(e.slice(r,r+t).map(n))}async function vr(e){let t=H.join(e,`hooks`,`.hook-index-complete`);try{await B.access(t);return}catch{}let n=H.join(e,`events`);await _r(await Ct(n),32,async t=>{let r=await sr(H.join(n,`${t}.json`));if(!r||r.eventType!==`hook_created`||typeof r.correlationId!=`string`)return;let i=r.eventData?.token;if(typeof i==`string`)try{await cr(e,i,r.runId,r.correlationId,r.eventId,ar(t))}catch{}});let r=H.join(e,`hooks`);await _r(await Ct(r),32,async t=>{let n=null;try{n=await X(H.join(r,`${t}.json`),M)}catch(e){if(!(e instanceof SyntaxError||e instanceof A))throw e}if(n)try{await ur(e,n.runId,n.hookId,ar(t))}catch{}}),await Q(t,``)}async function yr(e,t,n,r){await gr(e);let i;try{i=t.kind===`token`?nr(e,t.token):rr(e,t.hookId)}catch{return null}let a=(await Ct(i)).filter(e=>or(e,r)).sort((e,t)=>ut(t).localeCompare(ut(e)));for(let t of a){let r=null;try{r=await X(H.join(i,`${t}.json`),er)}catch(e){if(!(e instanceof SyntaxError||e instanceof A))throw e}if(!r)continue;let a=ut(t),o;try{o=K(e,`events`,`${r.runId}-${a}`,ar(t))}catch{continue}let s=await sr(o);if(s&&s.eventType===`hook_created`&&typeof s.correlationId==`string`&&n(s))return s}return null}function br(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function xr(e,t){return t===`none`?{...e,input:void 0,output:void 0}:e}function Sr(e,t){if(t===`none`){let{metadata:t,...n}=e;return n}return e}function Cr(e){if(e.eventType!==`hook_created`)return;let t=e.eventData.token;return typeof t==`string`?t:void 0}function wr(e){let{token:t,metadata:n,isWebhook:r,isSystem:i,tokenRetentionUntil:a}=e.eventData;return{runId:e.runId,hookId:e.correlationId,token:t,metadata:n,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:e.createdAt,specVersion:e.specVersion,isWebhook:r??!0,isSystem:i??!1,tokenRetentionUntil:a}}function Tr(e,t){return e.eventType===`hook_created`&&typeof e.correlationId==`string`&&t(e)}async function Er(e,t,n){let r=await q(e,`runs`,t,v,n);return r?b(r.status):!1}async function Dr(e,t,n,r){let i=await yr(e,t,e=>Tr(e,n),r);if(!i||!Tr(i,n))return null;if(await Er(e,i.runId,r)){let e=i.eventData.tokenRetentionUntil;if(!e||e.getTime()<=Date.now())return null}return await Ln(e,i.correlationId,r)?null:i}async function Or(e,t,n){let r=wr(t);return await Q(Gn(e,r.token),JSON.stringify({token:r.token,hookId:r.hookId,runId:r.runId,eventId:t.eventId,tokenRetentionUntil:t.eventData.tokenRetentionUntil})),await ur(e,r.runId,r.hookId,n),await Q(K(e,`hooks`,r.hookId,n),JSON.stringify(r,J,2)),r}async function kr(e,t,n){let r=await Dr(e,{kind:`token`,token:t},e=>Cr(e)===t,n);return r?Or(e,r,n):null}async function Ar(e,t,n){let r=await Dr(e,{kind:`id`,hookId:t},e=>e.correlationId===t,n);return r?Or(e,r,n):null}function jr(e,t){async function n(n){return await Ln(e,n.hookId,t)?!1:n.tokenRetentionUntil&&n.tokenRetentionUntil.getTime()>Date.now()?!0:!await Er(e,n.runId,t)}async function r(r){let i=await qn(Gn(e,r));if(i?.hookId){try{let a=await q(e,`hooks`,i.hookId,M,t);if(a?.token===r){if(!await n(a))throw new o(r);return{...a,isWebhook:a.isWebhook??!0}}}catch(e){if(!it.is(e))throw e}return null}let a=H.join(e,`hooks`),s=await Ct(a);for(let e of s){let t=await X(H.join(a,`${e}.json`),M);if(t?.token===r){if(!await n(t))throw new o(r);return{...t,isWebhook:t.isWebhook??!0}}}return null}async function i(r,i){U(`hookId`,r);let a=await q(e,`hooks`,r,M,t);if(a&&!await n(a))throw new o(r);let s=a??await Ar(e,r,t);if(!s)throw new o(r);let c=i?.resolveData||`all`;return Sr({...s,isWebhook:s.isWebhook??!0},c)}async function a(n){let i=await r(n)??await kr(e,n,t);if(!i)throw new o(n);return i}async function s(t){let r=H.join(e,`hooks`),i=t.resolveData||`all`,a=await Ot({directory:r,schema:M,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,filePrefix:void 0,filter:async e=>t.runId&&e.runId!==t.runId?!1:n(e),getCreatedAt:()=>null,getId:e=>e.hookId});return{...a,data:a.data.map(e=>Sr(e,i))}}return{get:i,getByToken:a,list:s}}async function Mr(e,t){await gr(e);for(let n of await fr(e,t)){if(n.hookId){let r=null,i=null;try{i=K(e,`hooks`,n.hookId,n.tag),r=await X(i,M)}catch(e){if(!it.is(e)&&!(e instanceof SyntaxError||e instanceof A))throw e}if(r&&i&&r.runId===t){if(r.tokenRetentionUntil&&r.tokenRetentionUntil.getTime()>Date.now())continue;await Xn(e,r.token,r.runId,r.hookId),await Z(Zn(e,r.token,r.runId,r.hookId)),await Z(i)}}await pr(e,n.fileId)}}async function Nr(e,t,n,i,a,o){if(b(o.status)||await zn(e,t))throw new r(`Workflow run "${t}" is already in a terminal state`);let s=Vn(e,t,n);await Q(s,i);try{if(await zn(e,t)||await St(s,a)!==`linked`)throw new r(`Workflow run "${t}" is already in a terminal state`)}finally{await B.unlink(s).catch(()=>{})}}async function Pr(e,t,n,r,i){U(`runId`,t);let a=i?.resolveData??`all`;switch(n.eventType){case`run_cancelled`:{await Q(Rn(e,t),``),await Hn(e,t);let n=new Date,i={runId:r.runId,deploymentId:r.deploymentId,workflowName:r.workflowName,specVersion:r.specVersion,executionContext:r.executionContext,input:r.input,createdAt:r.createdAt,expiredAt:r.expiredAt,startedAt:r.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:n,updatedAt:n,attributes:r.attributes};return await Y(W(e,`runs`,`${t}.json`),i,{overwrite:!0}),await Mr(e,t),{event:void 0,run:br(i,a)}}case`wait_completed`:case`hook_received`:{let i=`evnt_${Qn()}`,o=new Date,s={...n,runId:t,eventId:i,createdAt:o,specVersion:6},c=W(e,`events`,`${`${t}-${i}`}.json`);return n.eventType===`hook_received`?await Nr(e,t,i,JSON.stringify(s,J,2),c,r):await Y(c,s),{event:N(s,a)}}default:throw Error(`Event type '${n.eventType}' not supported for legacy runs (specVersion: ${r.specVersion||`undefined`}). Please upgrade 'workflow' package.`)}}const Fr=new Map;function Ir(e,t){let n=Fr.get(e),r={},i=(async()=>{n&&await n.catch(()=>void 0);try{return await t()}finally{Fr.get(e)===r.task&&Fr.delete(e)}})();return r.task=i,Fr.set(e,i),i}function Lr(e,t){let r=(async(r,i)=>{U(`runId`,r);let a=await q(e,`runs`,r,v,t);if(!a)throw new n(r);return br(a,i?.resolveData??`all`)});return{get:r,getMany:(async(e,t)=>{let i=[...new Set(e)],a=await Promise.all(i.map(async e=>{try{return await r(e,t)}catch(e){if(e instanceof n)return null;throw e}})),o=new Map(i.map((e,t)=>[e,a[t]]));return e.map(e=>o.get(e)??null)}),list:(async t=>{let n=t?.resolveData??`all`,r=await Ot({directory:H.join(e,`runs`),schema:v,fileIdFilter:t?.fileIdFilter,filter:e=>!(t?.workflowName&&e.workflowName!==t.workflowName||t?.status&&e.status!==t.status),sortOrder:t?.pagination?.sortOrder??`desc`,limit:t?.pagination?.limit??200,cursor:t?.pagination?.cursor,getCreatedAt:$n(`wrun`),getId:e=>e.runId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r}),experimentalSetAttributes:async(r,i,a)=>(U(`runId`,r),Ir(r,async()=>{let o=await q(e,`runs`,r,v,t);if(!o)throw new n(r);try{p(i,{existingKeys:Object.keys(o.attributes??{}),allowReservedAttributes:a?.allowReservedAttributes})}catch(e){throw e instanceof O,e}let s=S(o.attributes,i),c={...o,attributes:s,updatedAt:new Date};return await Y(K(e,`runs`,r,t),c,{overwrite:!0}),{attributes:s}}))}}const Rr=1440*60*1e3;function zr(){let e=Number(process.env.WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS??30);if(!Number.isFinite(e)||e<=0)throw new a(`WORKFLOW_LOCAL_HOOK_RETENTION_LIMIT_DAYS must be a positive number`,{status:400});return e*Rr}const Br=E({eventId:w()}),Vr=E({runId:w(),resumeId:w(),hookId:w(),eventId:w(),payloadDigest:w().optional()});function Hr(e,t){return e.eventType===`hook_received`&&e.correlationId===t.hookId&&(e.resumeId===void 0||e.resumeId===t.resumeId)}async function Ur(e,t,n,r){let i=await Wn(e,t,r);for(let a of i.ids){let i=await q(e,`events`,`${t}-${a}`,C,r);if(i&&i.resumeId===n.resumeId&&Hr(i,n))return i}return null}async function Wr(e,t,n){if(t.hookId&&await Ln(e,t.hookId,n))return!0;let r=await q(e,`runs`,t.runId,v,n);return r?b(r.status)?!t.tokenRetentionUntil||t.tokenRetentionUntil.getTime()<=Date.now():!1:!0}async function Gr(e){try{return await X(e,Br)}catch(e){if(e instanceof SyntaxError||e instanceof A)return null;throw e}}function Kr(e){return ie(e.eventId)?e.eventId:null}function qr(e,t){let n=ut(t).slice(e.length+1);return ie(n)?n:null}async function Jr(e,t,n){return(await Ot({directory:H.join(e,`events`),schema:C,filePrefix:`${t}-`,filter:e=>e.eventType===`hook_created`&&e.correlationId===n,limit:1,getCreatedAt:$n(`evnt`),getId:e=>e.eventId})).data[0]?.eventId??null}async function Yr(e,t,n,r,i){let a=await q(e,`events`,`${t}-${r}`,C,i);if(!a||a.eventType!==`hook_created`||a.correlationId!==n||await q(e,`hooks`,n,M,i))return;let o=wr(a);await cr(e,o.token,t,n,r,i),await ur(e,t,n,i),await Q(K(e,`hooks`,n,i),JSON.stringify(o,J,2))}async function Xr(e,t,n,r,i){let a=Zn(e,t,n,r);return await Q(a,JSON.stringify({eventId:i}))?i:(await Gr(a))?.eventId??null}function Zr(e,t,n){let r=e.get(t),i={},a=(async()=>{r&&await r.catch(()=>void 0);try{return await n()}finally{e.get(t)===i.task&&e.delete(t)}})();return i.task=a,e.set(t,a),a}async function Qr(e,t){let n=H.join(e,`waits`),r=await Ct(n);for(let e of r)e.startsWith(`${t}-`)&&await Z(H.join(n,`${e}.json`))}async function $r(e,t,n,r){return Ir(t,async()=>{let i=await X(K(e,`runs`,t,n),v),a={...r,attributes:i?.attributes??r.attributes};return await Y(K(e,`runs`,t,n),a,{overwrite:!0}),a})}function ei(e,t){let l=zr(),u=4*1024*1024,d=new Map,f=new Map,h=new Map,w=0;function T(e){let t=d.get(e);if(!t)return;d.delete(e),w-=f.get(e)??0,f.delete(e);let n=h.get(t.runId);n?.delete(e),n?.size===0&&h.delete(t.runId)}function E(e){for(let t of h.get(e)??[])T(t)}function O(){d.clear(),f.clear(),h.clear(),w=0,k.clear()}let k=new Map;function A(e){return t?`${e}.${t}`:e}async function j(n,r){let i=`${n}-${ne(r)}`;for(let n of t?[K(e,`events`,i,t),K(e,`events`,i)]:[K(e,`events`,i)])try{return await B.stat(n),!0}catch(e){if(e.code!==`ENOENT`)throw e}return!1}async function ae(n,r){let i=A(n),a=k.get(i);if(a===void 0||r?.rescan){let r=await Wn(e,n,t);a===void 0?(a=r.count>0&&!r.usesSlots?null:{published:r.maxSlot},k.set(i,a)):a!==null&&(a.published=Math.max(a.published,r.maxSlot))}if(a===null)return null;let o=Math.max(a.published+1,1,r?.atLeast??1);for(;await j(n,o);)a.published=Math.max(a.published,o),o+=1;return o}function se(e,t){let n=te(t);if(n===null)return;let r=k.get(A(e));r&&(r.published=Math.max(r.published,n))}async function ce(e){let t=await ae(e);return t===null?`evnt_${Qn()}`:ne(t)}async function ue(n){let r=await ae(n,{rescan:!0});return r===null?Un(e,n,t):{eventId:ne(r),createdAt:new Date}}function P(e,t,n){if(n>u)return;for(;d.size>0&&(d.size>=1e3||w+n>u);){let e=d.keys().next().value;T(e)}d.set(e,t),f.set(e,n),w+=n;let r=h.get(t.runId)??new Set;r.add(e),h.set(t.runId,r)}function fe(e,t,n){if(y(e.eventType)){E(e.runId);return}let r=Buffer.byteLength(n);if(r>u)return;let i=C.safeParse(JSON.parse(n,vt));i.success&&P(t,i.data,r)}async function pe(n){let r=n;for(let n=0;;n++){let i=K(e,`events`,`${r.runId}-${r.eventId}`,t),a=JSON.stringify(r,J,2),o=te(r.eventId);if(o===null)return await yt(i,a),fe(r,i,a),r;if(await Q(i,a))return se(r.runId,r.eventId),fe(r,i,a),r;let s=await ae(r.runId,{rescan:n>0&&n%8==0,atLeast:o+1});Ae(s!==null),r={...r,eventId:ne(s)}}}let me=(t,n)=>Ot({directory:H.join(e,`events`),schema:C,cachedItems:d,filePrefix:`${t}-`,sortOrder:n.sortOrder??`asc`,limit:n.limit,cursor:n.cursor,getCreatedAt:$n(`evnt`),getId:e=>e.eventId,getSortKey:Kr,getSortKeyFromFileId:e=>qr(t,e)}),F=new Map,I=new Map,L={clearCache:O,async create(u,d,f){if(d.eventType===`hook_created`&&d.eventData.tokenRetentionUntil!==void 0&&d.eventData.tokenRetentionUntil.getTime()>Date.now()+l)throw new a(`Hook minimum retention cannot exceed ${l/Rr} days in the Local World.`,{status:400});if(u!=null&&u!==``&&U(`runId`,u),`correlationId`in d&&typeof d.correlationId==`string`&&U(`correlationId`,d.correlationId),g(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.${t}`:`${u}-${d.correlationId}`;return Zr(F,e,h)}if(D(d.eventType)&&u&&d.correlationId){let e=t?`${u}-${d.correlationId}.hook.${t}`:`${u}-${d.correlationId}.hook`;return Zr(I,e,h)}return h();async function h(){let l=``,h=!1,w=null,T=new Date,E;if(d.eventType===`run_created`&&(!u||u===``))E=`wrun_${Qn()}`;else if(u)E=u;else throw Error(`runId is required for non-run_created events`);if(d.eventType===`run_created`&&u&&u!==``){let e=le(E,`wrun_`);if(e)throw new a(e)}let D=d.specVersion??6,O=null;if(d.eventType!==`run_created`&&![`step_completed`,`step_retrying`].includes(d.eventType)&&(O=await q(e,`runs`,E,v,t),d.eventType===`run_started`&&!O&&`eventData`in d&&d.eventData)){let n=d.eventData;if(n.deploymentId&&n.workflowName&&n.input!==void 0){p(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0});let r={runId:E,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:D,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:T,updatedAt:T};if(await Q(K(e,`runs`,E,t),JSON.stringify(r,J))){let e=await ce(E);await pe({eventType:`run_created`,runId:E,eventId:e,createdAt:T,specVersion:D,eventData:{deploymentId:n.deploymentId,workflowName:n.workflowName,input:n.input,executionContext:n.executionContext,attributes:n.attributes,allowReservedAttributes:n.allowReservedAttributes,encryptionPublicKey:n.encryptionPublicKey}}),O=r}else O=await q(e,`runs`,E,v,t)}}if(l=await ce(E),!O&&(d.eventType===`run_failed`||d.eventType===`attr_set`||d.eventType===`run_started`))throw new n(E);if(O){if(he(O.specVersion))throw new i(O.specVersion,6);if(ge(O.specVersion))return Pr(e,E,d,O,f)}let k=_(d),A=k&&d.eventType===`step_started`;if(O&&b(O.status)){if(d.eventType===`run_cancelled`&&O.status===`cancelled`)return{event:N(await pe({...d,runId:E,eventId:l,createdAt:T,specVersion:D}),f?.resolveData??`all`),run:O,...O?{maxEvents:de()}:{}};if(d.eventType===`run_started`)throw new r(`Workflow run "${E}" is already in terminal state "${O.status}"`);if(y(d.eventType))throw new s(`Cannot transition run from terminal state "${O.status}"`);if(k)throw new s(`Cannot create new entities on run in terminal state "${O.status}"`);if(d.eventType===`attr_set`)throw new s(`Cannot set attributes on run in terminal state "${O.status}"`)}let j=null;if(g(d.eventType)&&d.eventType!==`step_created`&&d.correlationId){if(j=await q(e,`steps`,`${E}-${d.correlationId}`,re,t),!j&&!A)throw new a(`Step "${d.correlationId}" not found`);if(A&&j)throw new s(`Step "${d.correlationId}" already created`);if(j){if(x(j.status))throw new s(`Cannot modify step in terminal state "${j.status}"`);if(O&&b(O.status)&&j.status!==`running`)throw new r(`Cannot modify non-running step on run in terminal state "${O.status}"`)}}if(ee(d.eventType)&&d.correlationId){if(d.eventType===`hook_received`&&f?.resumeId){let n=await X(Yn(e,E,f.resumeId),Vr);if(n&&n.hookId===d.correlationId&&(!f.resumePayloadDigest||!n.payloadDigest||n.payloadDigest===f.resumePayloadDigest)){let r=await q(e,`events`,`${E}-${n.eventId}`,C,t),i=r&&Hr(r,n)?r:await Ur(e,E,n,t);if(i)return{event:i}}}if(d.eventType===`hook_received`&&await Ln(e,d.correlationId,t)||!await q(e,`hooks`,d.correlationId,M,t))throw new o(d.correlationId);if(d.eventType===`hook_received`&&f?.resumeId){let n=Yn(e,E,f.resumeId),r=async n=>{if(n.hookId!==d.correlationId)throw new s(`hook_received resumeId "${f.resumeId}" already recorded for a different hook`);if(f.resumePayloadDigest&&n.payloadDigest&&n.payloadDigest!==f.resumePayloadDigest)throw new s(`hook_received resumeId "${f.resumeId}" already recorded with a different payload`);let r=await q(e,`events`,`${E}-${n.eventId}`,C,t);if(r&&Hr(r,n))return{event:r};let i=await Ur(e,E,n,t);return i?{event:i}:(w=n.eventId,r||(l=n.eventId,h=!0),null)},i=await X(n,Vr);if(i){let e=await r(i);if(e)return e}else if(h=!ie(l),w=l,!await Q(n,JSON.stringify({runId:E,resumeId:f.resumeId,hookId:d.correlationId,eventId:l,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}))){w=null;let e=await X(n,Vr);if(e){let t=await r(e);if(t)return t}}}}let P={...d,runId:E,eventId:l,createdAt:T,specVersion:D,...d.eventType===`hook_received`&&f?.resumeId?{resumeId:f.resumeId}:{}};if(d.eventType===`run_started`&&`eventData`in P&&delete P.eventData,A&&P.eventType===`step_started`&&P.eventData){let{input:e,...t}=P.eventData;P={...P,eventData:t}}let F,I,L,R,_e=!1,ve;if(y(d.eventType)&&O){await Q(Rn(e,E,t),``),await Hn(e,E,t);let n=await ue(E);l=n.eventId,P={...P,eventId:l,createdAt:n.createdAt}}if(d.eventType===`run_created`&&`eventData`in d){let n=d.eventData;if(p(Object.entries(n.attributes??{}).map(([e,t])=>({key:e,value:t})),{allowReservedAttributes:n.allowReservedAttributes===!0}),F={runId:E,deploymentId:n.deploymentId,status:`pending`,workflowName:n.workflowName,specVersion:D,executionContext:n.executionContext,input:n.input,output:void 0,error:void 0,startedAt:void 0,completedAt:void 0,attributes:n.attributes??{},encryptionPublicKey:n.encryptionPublicKey,createdAt:T,updatedAt:T},!await Q(K(e,`runs`,E,t),JSON.stringify(F,J,2)))throw new s(`Workflow run "${E}" already exists`)}else if(d.eventType===`run_started`){if(O){if(O.status===`running`){if(f?.skipPreload)return{run:O,maxEvents:de()};let e=await me(E,{limit:de()});return{run:O,events:e.data,cursor:e.cursor,hasMore:e.hasMore,maxEvents:de()}}F=await $r(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,status:`running`,output:void 0,error:void 0,completedAt:void 0,startedAt:O.startedAt??T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey})}}else if(d.eventType===`run_completed`&&`eventData`in d){let n=d.eventData;O&&(F=await $r(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,startedAt:O.startedAt,status:`completed`,output:n.output,error:void 0,completedAt:T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey}),await Promise.all([Mr(e,E),Qr(e,E)]))}else if(d.eventType===`run_failed`&&`eventData`in d){let n=d.eventData;O&&(F=await $r(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,startedAt:O.startedAt,status:`failed`,output:void 0,error:n.error,errorCode:n.errorCode,completedAt:T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey}),await Promise.all([Mr(e,E),Qr(e,E)]))}else if(d.eventType===`run_cancelled`)O&&(F=await $r(e,E,t,{runId:O.runId,deploymentId:O.deploymentId,workflowName:O.workflowName,specVersion:O.specVersion,executionContext:O.executionContext,input:O.input,createdAt:O.createdAt,expiredAt:O.expiredAt,startedAt:O.startedAt,status:`cancelled`,output:void 0,error:void 0,completedAt:T,updatedAt:T,attributes:O.attributes,encryptionPublicKey:O.encryptionPublicKey}),await Promise.all([Mr(e,E),Qr(e,E)]));else if(d.eventType===`attr_set`&&O)F=await Ir(E,async()=>{let r=await X(K(e,`runs`,E,t),v);if(!r)throw new n(E);if(p(d.eventData.changes,{existingKeys:Object.keys(r.attributes),allowReservedAttributes:d.eventData.allowReservedAttributes===!0}),d.correlationId&&d.eventData.writer.type===`workflow`&&!await Q(W(e,`.locks`,`attributes`,t?`${E}-${d.correlationId}.created.${t}`:`${E}-${d.correlationId}.created`),``))throw new s(`Attribute event "${d.correlationId}" already exists`);let i={...r,attributes:S(r.attributes,d.eventData.changes),updatedAt:T};return await Y(K(e,`runs`,E,t),i,{overwrite:!0}),i});else if(d.eventType===`step_created`&&`eventData`in d){if(!await Q(W(e,`.locks`,`steps`,t?`${E}-${d.correlationId}.created.${t}`:`${E}-${d.correlationId}.created`),``))throw new s(`Step "${d.correlationId}" already created`);let n=d.eventData;I={runId:E,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:T,updatedAt:T,specVersion:D},await Y(K(e,`steps`,`${E}-${d.correlationId}`,t),I)}else if(d.eventType===`step_started`){if(!j&&A){let n=d.eventData;if(await Q(W(e,`.locks`,`steps`,t?`${E}-${d.correlationId}.created.${t}`:`${E}-${d.correlationId}.created`),``)){let r={runId:E,stepId:d.correlationId,stepName:n.stepName,status:`pending`,input:n.input,output:void 0,error:void 0,attempt:0,startedAt:void 0,completedAt:void 0,createdAt:T,updatedAt:T,specVersion:D};await Y(K(e,`steps`,`${E}-${d.correlationId}`,t),r);let i=await ce(E);await pe({eventType:`step_created`,runId:E,eventId:i,createdAt:T,specVersion:D,correlationId:d.correlationId,eventData:{stepName:n.stepName,input:n.input}}),j=r,_e=!0}else throw new s(`Step "${d.correlationId}" already created`)}if(j){if(j.retryAfter&&j.retryAfter.getTime()>Date.now())throw new c(`Cannot start step "${d.correlationId}": retryAfter timestamp has not been reached yet`,{retryAfter:Math.ceil((j.retryAfter.getTime()-Date.now())/1e3)});let n=`${E}-${d.correlationId}`,r=await q(e,`steps`,n,re,t);if(r&&x(r.status))throw new s(`Cannot modify step in terminal state "${r.status}"`);I={...j,status:`running`,startedAt:j.startedAt??T,attempt:j.attempt+1,retryAfter:void 0,updatedAt:T},await Y(K(e,`steps`,n,t),I,{overwrite:!0})}}else if(d.eventType===`step_completed`&&`eventData`in d){let n=d.eventData;if(j){let r=`${E}-${d.correlationId}`;if(!await Q(W(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new s(`Cannot modify step in terminal state`);I={...j,status:`completed`,output:n.result,completedAt:T,updatedAt:T},await Y(K(e,`steps`,r,t),I,{overwrite:!0})}}else if(d.eventType===`step_failed`&&`eventData`in d){let n=d.eventData;if(j){let r=`${E}-${d.correlationId}`;if(!await Q(W(e,`.locks`,`steps`,t?`${r}.terminal.${t}`:`${r}.terminal`),``))throw new s(`Cannot modify step in terminal state`);I={...j,status:`failed`,error:n.error,completedAt:T,updatedAt:T},await Y(K(e,`steps`,r,t),I,{overwrite:!0})}}else if(d.eventType===`step_retrying`&&`eventData`in d){let n=d.eventData;if(j){let r=`${E}-${d.correlationId}`;I={...j,status:`pending`,error:n.error,retryAfter:n.retryAfter,updatedAt:T},await Y(K(e,`steps`,r,t),I,{overwrite:!0})}}else if(d.eventType===`hook_created`&&`eventData`in d){let n=d.eventData,r=Gn(e,n.token),i=JSON.stringify({token:n.token,hookId:d.correlationId,runId:E,eventId:l,tokenRetentionUntil:n.tokenRetentionUntil}),a=await Jn(e,n.token,async a=>{let o=await qn(r);return o||=(a.throwIfAborted(),await Z(r),await kr(e,n.token,t),await qn(r)),o?o.runId===E&&o.hookId===d.correlationId?{status:`owned`,claim:o}:await Wr(e,o,t)?(a.throwIfAborted(),await Z(r),o.hookId&&(await Z(K(e,`hooks`,o.hookId,t)),await Z(Zn(e,n.token,o.runId,o.hookId)),await dr(e,o.runId,o.hookId,t)),a.throwIfAborted(),Ae(await Q(r,i)),{status:`claimed`}):{status:`conflict`,claim:o}:(a.throwIfAborted(),Ae(await Q(r,i)),{status:`claimed`})});if(a.status===`owned`){let r=a.claim,i;if(r.eventId)i=r.eventId;else{let r=await Jr(e,E,d.correlationId);if(r!==null)throw await Yr(e,E,d.correlationId,r,t),new s(`Hook "${d.correlationId}" already created`);let a=await Xr(e,n.token,E,d.correlationId,l);if(a===null)throw new s(`Hook "${d.correlationId}" already created`);i=a}l=i,h=!0;let o=oe(l.replace(/^evnt_/,``))??T;P={...d,eventData:{...d.eventData,tokenRetentionUntil:r.tokenRetentionUntil},runId:E,eventId:l,createdAt:o,specVersion:D}}if(a.status===`conflict`){let e=a.claim;return{event:N(await pe({eventType:`hook_conflict`,correlationId:d.correlationId,eventData:{token:n.token,conflictingRunId:e.runId},runId:E,eventId:l,createdAt:T,specVersion:D}),f?.resolveData??`all`),run:F,step:I,hook:void 0}}let o=P.eventData;L={runId:E,hookId:d.correlationId,token:o.token,metadata:o.metadata,ownerId:`local-owner`,projectId:`local-project`,environment:`local`,createdAt:P.createdAt,specVersion:D,isWebhook:o.isWebhook??!1,isSystem:o.isSystem??!1,tokenRetentionUntil:o.tokenRetentionUntil},ve=a.status===`owned`?{overwrite:!0}:void 0,await cr(e,n.token,E,d.correlationId,l,t)}else if(d.eventType===`hook_disposed`){if(!await Q(In(e,d.correlationId,t),``))throw new s(`Hook "${d.correlationId}" already disposed`);let n=K(e,`hooks`,d.correlationId,t),r=await q(e,`hooks`,d.correlationId,M,t);r&&(await Xn(e,r.token,r.runId,r.hookId),await Z(Zn(e,r.token,r.runId,r.hookId))),await Z(n),await dr(e,E,d.correlationId,t)}else if(d.eventType===`wait_created`&&`eventData`in d){let n=`${E}-${d.correlationId}`;if(!await Q(W(e,`.locks`,`waits`,t?`${n}.created.${t}`:`${n}.created`),``))throw new s(`Wait "${d.correlationId}" already exists`);let r=d.eventData;R={waitId:n,runId:E,status:`waiting`,resumeAt:r.resumeAt,completedAt:void 0,createdAt:T,updatedAt:T,specVersion:D},await Y(K(e,`waits`,n,t),R)}else if(d.eventType===`wait_completed`){let n=`${E}-${d.correlationId}`,r=W(e,`.locks`,`waits`,t?`${n}.completed.${t}`:`${n}.completed`);if(!await Q(r,``))throw new s(`Wait "${d.correlationId}" already completed`);let i=await q(e,`waits`,n,m,t);if(!i)throw await B.unlink(r).catch(()=>{}),new a(`Wait "${d.correlationId}" not found`);R={...i,status:`completed`,completedAt:T,updatedAt:T},await Y(K(e,`waits`,n,t),R,{overwrite:!0})}if(d.eventType===`hook_received`&&d.correlationId&&await Ln(e,d.correlationId,t))throw new o(d.correlationId);let z=K(e,`events`,`${E}-${l}`,t),ye=JSON.stringify(P,J,2),be=async n=>{let r=te(l);if(h||r===null)return!1;let i=await ae(E,{rescan:n>0&&n%8==0,atLeast:r+1});return i===null?!1:(l=ne(i),P={...P,eventId:l},z=K(e,`events`,`${E}-${l}`,t),ye=JSON.stringify(P,J,2),!0)},xe=!1;for(let n=0;;n++){if(d.eventType===`hook_received`){let n=await zn(e,E,t),i=n?null:await q(e,`runs`,E,v,t);if(n||i&&b(i.status))throw new r(`Workflow run "${E}" is already in a terminal state`);let o=Vn(e,E,`${l}.${Qn()}`,t);if(!await Q(o,ye))throw new a(`Failed to stage event "${l}" for run "${E}": staging path already exists`);try{if(await zn(e,E,t))throw new r(`Workflow run "${E}" is already in a terminal state`);let n=await St(o,z);if(n===`missing`)throw new r(`Workflow run "${E}" is already in a terminal state`);xe=n===`linked`}finally{await Z(o).catch(()=>{})}}else xe=await Q(z,ye);if(xe){se(E,l);break}if(d.eventType===`hook_received`&&f?.resumeId){let n=await q(e,`events`,`${E}-${l}`,C,t);if(n&&Hr(n,{runId:E,resumeId:f.resumeId,hookId:d.correlationId,eventId:l}))return{event:n}}if(!await be(n))break}if(!xe)throw d.eventType===`hook_created`&&d.correlationId&&await Yr(e,E,d.correlationId,l,t),new s(`Event "${l}" already exists for run "${E}"`);fe(P,z,ye),d.eventType===`hook_received`&&f?.resumeId&&w!==null&&w!==l&&await yt(Yn(e,E,f.resumeId),JSON.stringify({runId:E,resumeId:f.resumeId,hookId:d.correlationId,eventId:l,...f.resumePayloadDigest?{payloadDigest:f.resumePayloadDigest}:{}}),{overwrite:!0}),L&&d.eventType===`hook_created`&&(await ur(e,L.runId,L.hookId,t),await Y(K(e,`hooks`,L.hookId,t),L,ve));let Se=f?.resolveData??`all`,Ce=N(P,Se),V;if(d.eventType===`run_started`&&F&&!f?.skipPreload&&(V=await me(E,{limit:de()})),typeof f?.sinceCursor==`string`){let e=await me(E,{sortOrder:`asc`,cursor:f.sinceCursor});V=Se===`none`?{...e,data:e.data.map(e=>N(e,Se))}:e}let we={event:Ce,run:F,step:I,hook:L,wait:R,..._e?{stepCreated:!0}:{},...F?{maxEvents:de()}:{}};return V?{...we,events:V.data,cursor:V.cursor,hasMore:V.hasMore}:we}},async get(n,r,i){U(`runId`,n),U(`eventId`,r);let a=await q(e,`events`,`${n}-${r}`,C,t);if(!a)throw Error(`Event ${r} in run ${n} not found`);return N(a,i?.resolveData??`all`)},async list(e){let{runId:t}=e;U(`runId`,t);let n=e.resolveData??`all`,r=await me(t,{...e.pagination,limit:e.pagination?.limit??de()});return n===`none`?{...r,data:r.data.map(e=>N(e,n))}:r},async listByCorrelationId(t){let n=t.correlationId;U(`correlationId`,n),U(`runId`,t.runId);let r=t.resolveData??`all`,i=await Ot({directory:H.join(e,`events`),schema:C,cachedItems:d,filePrefix:`${t.runId}-`,filter:e=>e.correlationId===n,sortOrder:t.pagination?.sortOrder??`asc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:$n(`evnt`),getId:e=>e.eventId,getSortKey:Kr,getSortKeyFromFileId:e=>qr(t.runId,e)});return r===`none`?{...i,data:i.data.map(e=>N(e,r))}:i}};async function R(e,t,n){if(!e.event)return e;let r=te(e.event.eventId);if(r===null||t<1||r<=t+1)return e;let i=r-t-1,a=await L.list({runId:e.event.runId,pagination:{cursor:`${Tt}${ne(t)}`,limit:i,sortOrder:`asc`},resolveData:n}),o=e.event.eventId,s=a.data.filter(e=>e.eventId<o);return{...e,events:s,cursor:null,hasMore:s.length<r-t-1}}let _e=(async(e,t,n)=>{if(n?.eventCount===void 0)return L.create(e,t,n);let r=n.resolveData??`all`,i=await L.create(e,t,n);return typeof n.sinceCursor==`string`?i:R(i,n.eventCount,r)});return{...L,create:_e}}function ti(e,t){return{get:(async(n,r,i)=>{U(`runId`,n),U(`stepId`,r);let a=await q(e,`steps`,`${n}-${r}`,re,t);if(!a)throw Error(`Step ${r} in run ${n} not found`);return xr(a,i?.resolveData??`all`)}),list:(async t=>{U(`runId`,t.runId);let n=t.resolveData??`all`,r=await Ot({directory:H.join(e,`steps`),schema:re,filePrefix:`${t.runId}-`,sortOrder:t.pagination?.sortOrder??`desc`,limit:t.pagination?.limit,cursor:t.pagination?.cursor,getCreatedAt:$n(`step`),getId:e=>e.stepId});return n===`none`?{...r,data:r.data.map(e=>({...e,input:void 0,output:void 0}))}:r})}}function ni(e,t){let n=Lr(e,t),r=ti(e,t),i=ei(e,t),a=jr(e,t);return{runs:fn(`world.runs`,n),steps:fn(`world.steps`,r),events:fn(`world.events`,i),hooks:fn(`world.hooks`,a),clearCache:()=>i.clearCache()}}const ri=ce(()=>Math.random()),ii=E({streams:h(w())});function ai(e){return e===1}function oi(e){let t=Buffer.from([+!!e.eof]);return Buffer.concat([t,e.chunk])}function si(e){return ai(e[0])}function ci(e){return{eof:si(e),chunk:Buffer.from(e.subarray(1))}}async function li(e){try{return await B.readdir(e)}catch(e){if(e.code===`ENOENT`)return[];throw e}}function ui(e,t,n,r=n,i=()=>!0){for(let a of t){if(!a.endsWith(n))continue;let t=a.slice(0,-n.length);i(t)&&e.set(t,r)}}function di(e,t){return U(`streamName`,t),H.join(e,t)}async function fi(e,t,n){let r=di(e,t),i=await li(r),a=new Map;return ui(a,i,`.json`),ui(a,i,`.bin`,`.bin`,n?e=>!e.endsWith(`.${n}`):void 0),n&&ui(a,i,`.${n}.bin`),{files:[...a.keys()].sort(),extMap:a,dir:r}}function pi(e,t){let n=t?`.${t}`:``,r=new je,i=new Set;async function a(n,r){U(`runId`,n),U(`streamName`,r);let a=`${n}:${r}`;if(i.has(a))return;let o=K(e,`streams/runs`,n,t),s=(await q(e,`streams/runs`,n,ii,t))?.streams??[];s.includes(r)||(s.push(r),await Y(o,{streams:s},{overwrite:!0})),i.add(a)}function o(e){return typeof e==`string`?Buffer.from(new TextEncoder().encode(e)):e instanceof Buffer?e:Buffer.from(e)}return{streams:{async write(t,i,s){let c=`chnk_${ri()}`;await a(await t,i);let l=o(s),u=oi({chunk:l,eof:!1});await yt(H.join(di(H.join(e,`streams`,`chunks`),i),`${c}${n}.bin`),u);let d=Uint8Array.from(l);r.emit(`chunk:${i}`,{streamName:i,chunkData:d,chunkId:c})},async writeMulti(t,i,s){if(s.length===0)return;let c=s.map(()=>`chnk_${ri()}`);await a(await t,i);let l=s.map(e=>o(e)).map(async(t,r)=>{let a=c[r],o=oi({chunk:t,eof:!1});return await yt(H.join(di(H.join(e,`streams`,`chunks`),i),`${a}${n}.bin`),o),{chunkId:a,chunkData:Uint8Array.from(t)}});for(let e of l){let{chunkId:t,chunkData:n}=await e;r.emit(`chunk:${i}`,{streamName:i,chunkData:n,chunkId:t})}},async close(t,i){let o=`chnk_${ri()}`;await a(await t,i),await yt(H.join(di(H.join(e,`streams`,`chunks`),i),`${o}${n}.bin`),oi({chunk:Buffer.from([]),eof:!0})),r.emit(`close:${i}`,{streamName:i})},async list(n){return U(`runId`,n),(await q(e,`streams/runs`,n,ii,t))?.streams??[]},async getChunks(n,r,i){let a=i?.limit??100,{files:o,extMap:s,dir:c}=await fi(H.join(e,`streams`,`chunks`),r,t),l=0;if(i?.cursor)try{l=JSON.parse(Buffer.from(i.cursor,`base64`).toString(`utf-8`)).i}catch{l=0}let u=!1,d=[],f=0;for(let e of o){let t=s.get(e)??`.bin`,n=H.join(c,`${e}${t}`);if(f<l){if(ai(await xt(n))){u=!0;break}f++;continue}if(d.length>=a){ai(await xt(n))?u=!0:f++;break}let r=ci(await bt(n));if(r.eof){u=!0;break}d.push({index:f,data:Uint8Array.from(r.chunk)}),f++}let p=!u&&f>l+d.length,m=l+d.length;return{data:d,cursor:p?Buffer.from(JSON.stringify({i:m})).toString(`base64`):null,hasMore:p,done:u}},async getInfo(n,r){let{files:i,extMap:a,dir:o}=await fi(H.join(e,`streams`,`chunks`),r,t),s=!1,c=0;for(let e of i){let t=a.get(e)??`.bin`;if(ai(await xt(H.join(o,`${e}${t}`)))){s=!0;break}c++}return{tailIndex:c-1,done:s}},async get(n,i,a=0){let o=H.join(e,`streams`,`chunks`),s=()=>{},c=null,l=!1;return new ReadableStream({async start(e){let n=new Set,u=[],d=!0,f=!1,p=t=>{if(t.chunkData.byteLength===0){n.add(t.chunkId);return}d?(n.add(t.chunkId),u.push({chunkId:t.chunkId,chunkData:Uint8Array.from(t.chunkData)})):n.has(t.chunkId)||(n.add(t.chunkId),e.enqueue(Uint8Array.from(t.chunkData)))},m=()=>{if(d){f=!0;return}l=!0,s();try{e.close()}catch{}};s=()=>{r.off(`chunk:${i}`,p),r.off(`close:${i}`,m),c&&=(clearInterval(c),null)},r.on(`chunk:${i}`,p),r.on(`close:${i}`,m);let{files:h,extMap:g,dir:_}=await fi(o,i,t),v=h.length;if(typeof a==`number`&&a<0&&h.length>0){let e=h[h.length-1],t=g.get(e)??`.bin`;ai(await xt(H.join(_,`${e}${t}`)))&&v--}let y=typeof a==`number`&&a<0?Math.max(0,v+a):a,b=!1;for(let t=y;t<h.length;t++){let r=h[t],i=r;if(n.has(i))continue;let a=g.get(r)??`.bin`,o=ci(await bt(H.join(_,`${r}${a}`)));if(o?.eof===!0){b=!0;break}n.add(i),o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}d=!1,u.sort((e,t)=>e.chunkId.localeCompare(t.chunkId));for(let t of u)e.enqueue(Uint8Array.from(t.chunkData));if(b){l=!0,s();try{e.close()}catch{}return}if(f){l=!0,s();try{e.close()}catch{}return}for(let e=0;e<y&&e<h.length;e++)n.add(h[e]);if(l){s();return}let x=!1;c=setInterval(async()=>{if(!x){x=!0;try{let{files:r,extMap:a}=await fi(o,i,t);for(let t of r){let r=t;if(n.has(r))continue;n.add(r);let i=a.get(t)??`.bin`,o=ci(await bt(H.join(_,`${t}${i}`)));if(o?.eof===!0){l=!0,s();try{e.close()}catch{}return}if(l)return;o.chunk.byteLength&&e.enqueue(Uint8Array.from(o.chunk))}}catch(e){e instanceof Error&&`code`in e||console.error(`[world-local] Unexpected polling error:`,e)}finally{x=!1}}},100)},cancel(){l=!0,s()}})}}}}function mi(e){let t=e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{},n={...Qe.value,...t};Ie(n.dataDir);let r=n.tag,i=Cn(n),{clearCache:a,...o}=ni(n.dataDir,r),s=$e(n);return{specVersion:6,capabilities:{hookRetention:{active:!0},hookResumeDedup:!0},...i,...o,...fn(`world.streams`,{...pi(n.dataDir,r),...n.streamFlushIntervalMs!==void 0&&{streamFlushIntervalMs:n.streamFlushIntervalMs}}),async start(){if(await Ut(n.dataDir),!s)return;let e=r?e=>dt(e,r):ft;await ae({...o.runs,list:(t=>o.runs.list({...t,fileIdFilter:e}))},i.queue,`world-local`)},async close(){a(),await i.close()},async clear(){if(a(),r){let e=n.dataDir,t=H.join(e,`hooks`),i=await pt(t,r),{HookSchema:a}=await import(`../../_chunks/workflow/dist-Dk0aQqFO.js`).then(e=>e.t);await Promise.all(i.map(async n=>{let r=await X(H.join(t,n),a);r?.token&&(await Z(H.join(t,`tokens`,`${Fn(r.token)}.json`)),await Z(Zn(e,r.token,r.runId,r.hookId)))})),await Promise.all([`runs`,`steps`,`events`,`hooks`,`hooks/by-run`,`waits`,`streams/runs`].map(async t=>{let n=H.join(e,t),i=await pt(n,r);await Promise.all(i.map(e=>Z(H.join(n,e))))}));for(let t of[`token-index`,`id-index`]){let n=H.join(e,`hooks`,t),i;try{i=await z.readdir(n,{withFileTypes:!0})}catch{i=[]}await Promise.all(i.filter(e=>e.isDirectory()).map(async e=>{let t=H.join(n,e.name),i=await pt(t,r);await Promise.all(i.map(e=>Z(H.join(t,e))))}))}await z.rm(H.join(e,`.locks`),{recursive:!0,force:!0}).catch(()=>{});let o=H.join(e,`streams`,`chunks`),s;try{s=await z.readdir(o,{withFileTypes:!0})}catch{s=[]}await Promise.all(s.filter(e=>e.isDirectory()).map(async e=>{let t=H.join(o,e.name),n=await mt(t,r,`.bin`);await Promise.all(n.map(e=>z.unlink(H.join(t,e)).catch(()=>{})))})),ct()}else ct(),hr(),await we(n.dataDir,{recursive:!0,force:!0}),await Ut(n.dataDir)}}}export{Nt as DataDirAccessError,Pt as DataDirVersionError,Me as UnwritableDataDirError,mi as createWorld,zt as ensureDataDir,Ut as initDataDir,Ft as parseVersion};
|