eve 0.31.0 → 0.31.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/src/channel/cross-channel-receive.d.ts +1 -1
  3. package/dist/src/compiled/.vendor-stamp.json +6 -6
  4. package/dist/src/compiled/@workflow/core/_quickjs-wasi.d.ts +8 -0
  5. package/dist/src/compiled/@workflow/core/correlation-id.d.ts +109 -0
  6. package/dist/src/compiled/@workflow/core/events-consumer.d.ts +1 -0
  7. package/dist/src/compiled/@workflow/core/index.js +2 -2
  8. package/dist/src/compiled/@workflow/core/private.d.ts +17 -1
  9. package/dist/src/compiled/@workflow/core/private.js +1 -1
  10. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +19 -0
  11. package/dist/src/compiled/@workflow/core/runtime/deployment-guard.d.ts +99 -0
  12. package/dist/src/compiled/@workflow/core/runtime/quickjs-assets.generated.d.ts +14 -0
  13. package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +124 -0
  14. package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +193 -0
  15. package/dist/src/compiled/@workflow/core/runtime/run.d.ts +2 -0
  16. package/dist/src/compiled/@workflow/core/runtime/runs.d.ts +18 -1
  17. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +7 -0
  18. package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +44 -0
  19. package/dist/src/compiled/@workflow/core/runtime/vm-serde-bundle.generated.d.ts +14 -0
  20. package/dist/src/compiled/@workflow/core/runtime.d.ts +1 -1
  21. package/dist/src/compiled/@workflow/core/runtime.js +3 -3
  22. package/dist/src/compiled/@workflow/core/serialization/codec-devalue-vm.d.ts +9 -0
  23. package/dist/src/compiled/@workflow/core/serialization/reducers/class-vm.d.ts +20 -0
  24. package/dist/src/compiled/@workflow/core/serialization/reducers/common-vm.d.ts +15 -0
  25. package/dist/src/compiled/@workflow/core/serialization/reducers/step-function-vm.d.ts +44 -0
  26. package/dist/src/compiled/@workflow/core/serialization/vm-bundle-entry.d.ts +12 -0
  27. package/dist/src/compiled/@workflow/core/serialization/workflow-vm.d.ts +24 -0
  28. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -1
  29. package/dist/src/compiled/@workflow/core/source-map.d.ts +20 -0
  30. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +78 -0
  31. package/dist/src/compiled/@workflow/core/telemetry.d.ts +5 -0
  32. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  33. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  34. package/dist/src/compiled/@workflow/errors/error-codes.d.ts +2 -0
  35. package/dist/src/compiled/@workflow/errors/index.d.ts +24 -0
  36. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  37. package/dist/src/compiled/@workflow/world/analytics.d.ts +2 -0
  38. package/dist/src/compiled/@workflow/world/events.d.ts +51 -1
  39. package/dist/src/compiled/@workflow/world/hooks.d.ts +1 -0
  40. package/dist/src/compiled/@workflow/world/index.d.ts +1 -1
  41. package/dist/src/compiled/@workflow/world/interfaces.d.ts +28 -1
  42. package/dist/src/compiled/@workflow/world/queue.d.ts +8 -0
  43. package/dist/src/compiled/@workflow/world/runs.d.ts +83 -0
  44. package/dist/src/compiled/@workflow/world-local/index.js +5 -4
  45. package/dist/src/compiled/@workflow/world-vercel/index.js +15 -15
  46. package/dist/src/compiled/_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js +1 -0
  47. package/dist/src/compiled/_chunks/workflow/{attribute-changes-DROfGk6l.js → attribute-changes-Du5ztewf.js} +2 -2
  48. package/dist/src/compiled/_chunks/workflow/{dist-D5bR13zs.js → dist-CNXUKQCp.js} +1 -1
  49. package/dist/src/compiled/_chunks/workflow/dist-CRTn4Sg8.js +3 -0
  50. package/dist/src/compiled/_chunks/workflow/dist-tJoQXAF6.js +1 -0
  51. package/dist/src/compiled/_chunks/workflow/functions-ClJbpZhR.js +1 -0
  52. package/dist/src/compiled/_chunks/workflow/{private-BcwCGTV5.js → private-CiWVdS5v.js} +1 -1
  53. package/dist/src/compiled/_chunks/workflow/resume-hook-CT0keOww.js +1 -0
  54. package/dist/src/compiled/_chunks/workflow/run-DBheaFhH.js +1 -0
  55. package/dist/src/compiled/_chunks/workflow/signal-exit-C8vsI6zj.js +1 -0
  56. package/dist/src/compiled/_chunks/workflow/sleep-BeH4B0Cd.js +1 -0
  57. package/dist/src/compiled/_chunks/workflow/{token-hiUWkDKe.js → token-DtCUEpJs.js} +1 -1
  58. package/dist/src/compiled/_chunks/workflow/{token-util-DURSL1l8.js → token-util-DNwIAn_u.js} +9 -9
  59. package/dist/src/compiled/_chunks/workflow/undici-CUIybhQ2.js +95 -0
  60. package/dist/src/compiled/_chunks/workflow/wait-until-CMX5LUWJ.js +15 -0
  61. package/dist/src/compiler/extension-compatibility.d.ts +2 -2
  62. package/dist/src/compiler/extension-compatibility.js +1 -1
  63. package/dist/src/context/container.d.ts +3 -0
  64. package/dist/src/context/container.js +1 -1
  65. package/dist/src/discover/filesystem.js +1 -1
  66. package/dist/src/execution/parked-delivery-wait.js +1 -1
  67. package/dist/src/execution/session-command-inbox.d.ts +11 -3
  68. package/dist/src/execution/session-command-wire.d.ts +24 -0
  69. package/dist/src/execution/session-command-wire.js +1 -0
  70. package/dist/src/execution/turn-control-receiver.js +1 -1
  71. package/dist/src/execution/workflow-runtime.js +1 -1
  72. package/dist/src/execution/workflow-steps.js +1 -1
  73. package/dist/src/harness/authorization.d.ts +8 -0
  74. package/dist/src/harness/authorization.js +1 -1
  75. package/dist/src/internal/application/package.js +1 -1
  76. package/dist/src/internal/nitro/dev-runtime-source-snapshot-copy.js +1 -1
  77. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  78. package/dist/src/public/definitions/tool.d.ts +18 -14
  79. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  80. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +2 -2
  81. package/dist/src/setup/scaffold/create/project.js +1 -1
  82. package/docs/guides/meta.json +2 -1
  83. package/docs/guides/remote-agents.md +6 -4
  84. package/docs/guides/ucp.mdx +181 -0
  85. package/package.json +6 -6
  86. package/dist/src/compiled/_chunks/workflow/dist-B-vbuNqP.js +0 -1
  87. package/dist/src/compiled/_chunks/workflow/dist-dNxTT6nO.js +0 -3
  88. package/dist/src/compiled/_chunks/workflow/functions-CiVUVDNB.js +0 -1
  89. package/dist/src/compiled/_chunks/workflow/resume-hook-bc-OQVI0.js +0 -1
  90. package/dist/src/compiled/_chunks/workflow/run-DM3ouA3U.js +0 -1
  91. package/dist/src/compiled/_chunks/workflow/sleep-D5iWly6-.js +0 -1
  92. package/dist/src/compiled/_chunks/workflow/undici-DWL_MYmT.js +0 -95
  93. package/dist/src/compiled/_chunks/workflow/wait-until-DoW76jdb.js +0 -15
@@ -0,0 +1,15 @@
1
+ import{o as e,t}from"./rolldown-runtime-DaDcL9Zw.js";import{A as n,D as r,O as i,S as a,a as o,b as s,c,g as l,h as u,i as d,k as f,l as p,m,p as h,s as g,t as _,u as v}from"./dist-CRTn4Sg8.js";import{n as y,o as b,r as ee,s as te,t as ne}from"./private-CiWVdS5v.js";import"./dist-tJoQXAF6.js";import{c as re,m as ie,n as ae,x,y as oe}from"./dist-CNXUKQCp.js";import{t as S}from"./env-config-CYoX3muK.js";import{types as C}from"node:util";import{AsyncLocalStorage as se}from"node:async_hooks";function ce(e,t){if(typeof t!=`string`)return null;let[n,r,...i]=t.split(`//`);if(n!==e||!r||i.length===0)return null;let a=i.join(`//`),o=a.split(`/`).at(-1)??``,s=``;return s=r.startsWith(`./`)?r.split(`/`).at(-1)??``:(r.split(`@`).slice(0,-1).join(`@`)||r.split(`@`)[0])?.split(`/`).at(-1)??``,[`default`,`__default`].includes(o)&&s&&(o=s),{shortName:o,moduleSpecifier:r,functionName:a}}function le(e){return ce(`workflow`,e)}function ue(e){return ce(`step`,e)}function de(e){return ge(ue(e),e)}function fe(e){return ge(le(e),e)}function pe(e){return le(e)?.shortName??he(`workflow`,e)??e}function me(e){return ue(e)?.shortName??he(`step`,e)??e}function he(e,t){if(!t.startsWith(`${e}--`))return null;let n=t.split(`--`).filter(Boolean),r=n.at(-1)?.split(`-`).filter(Boolean).at(-1)??``;if([`default`,`__default`].includes(r)){let t=n.at(-2)?.split(`-`).filter(Boolean).at(-1);t&&t!==e&&(r=t)}return r||null}function ge(e,t){return e?`${e.shortName} (${e.moduleSpecifier})`:t}const _e=(()=>{let e=globalThis.process;return e?.env?e.env.FORCE_COLOR&&e.env.FORCE_COLOR!==`0`?!0:!e.env.NO_COLOR&&!!e.stdout?.isTTY:!1})(),w=(e,t)=>n=>_e?`\x1b[${e}m${n}\x1b[${t}m`:n,T={bold:w(1,22),dim:w(2,22),italic:w(3,23),red:w(31,39),blue:w(34,39),cyan:w(36,39),yellow:w(33,39),magenta:w(35,39)},ve={info:T.blue,help:T.cyan,warn:T.yellow,error:T.red};function ye(e){let t=Array.isArray(e)?e.join(`
2
+ `):e;return ve.info(`${T.bold(`hint:`)} ${t}`)}function be(e){return ve.info(`${T.bold(`docs:`)} ${e}`)}function xe(e){return T.italic(`${T.dim("`")}${e}${T.dim("`")}`)}function E(e){return T.dim(e)}function Se(e){return T.bold(e)}function Ce(e){return T.red(e)}function we(e){return T.magenta(e)}function Te(e,t){let n=[e];return t.forEach((e,r)=>{let i=e.split(`
3
+ `),a=r===t.length-1,o=a?`╰▶ `:`├▶ `,s=a?` `:`│ `,c=i.map((e,t)=>`${t===0?o:s}${e}`);n.push(...c)}),n.join(`
4
+ `)}var Ee=t(((e,t)=>{t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:2**53-1||9007199254740991,RELEASE_TYPES:[`major`,`premajor`,`minor`,`preminor`,`patch`,`prepatch`,`prerelease`],SEMVER_SPEC_VERSION:`2.0.0`,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}})),De=t(((e,t)=>{t.exports=typeof process==`object`&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error(`SEMVER`,...e):()=>{}})),Oe=t(((e,t)=>{let{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=Ee(),a=De();e=t.exports={};let o=e.re=[],s=e.safeRe=[],c=e.src=[],l=e.safeSrc=[],u=e.t={},d=0,f=`[a-zA-Z0-9-]`,p=[[`\\s`,1],[`\\d`,i],[f,r]],m=e=>{for(let[t,n]of p)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},h=(e,t,n)=>{let r=m(t),i=d++;a(e,i,t),u[e]=i,c[i]=t,l[i]=r,o[i]=new RegExp(t,n?`g`:void 0),s[i]=new RegExp(r,n?`g`:void 0)};h(`NUMERICIDENTIFIER`,`0|[1-9]\\d*`),h(`NUMERICIDENTIFIERLOOSE`,`\\d+`),h(`NONNUMERICIDENTIFIER`,`\\d*[a-zA-Z-]${f}*`),h(`MAINVERSION`,`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),h(`MAINVERSIONLOOSE`,`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASEIDENTIFIER`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIER]})`),h(`PRERELEASEIDENTIFIERLOOSE`,`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIERLOOSE]})`),h(`PRERELEASE`,`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),h(`PRERELEASELOOSE`,`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),h(`BUILDIDENTIFIER`,`${f}+`),h(`BUILD`,`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),h(`FULLPLAIN`,`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),h(`FULL`,`^${c[u.FULLPLAIN]}$`),h(`LOOSEPLAIN`,`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),h(`LOOSE`,`^${c[u.LOOSEPLAIN]}$`),h(`GTLT`,`((?:<|>)?=?)`),h(`XRANGEIDENTIFIERLOOSE`,`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),h(`XRANGEIDENTIFIER`,`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),h(`XRANGEPLAIN`,`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),h(`XRANGEPLAINLOOSE`,`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),h(`XRANGE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),h(`XRANGELOOSE`,`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),h(`COERCEPLAIN`,`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),h(`COERCE`,`${c[u.COERCEPLAIN]}(?:$|[^\\d])`),h(`COERCEFULL`,c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?(?:${c[u.BUILD]})?(?:$|[^\\d])`),h(`COERCERTL`,c[u.COERCE],!0),h(`COERCERTLFULL`,c[u.COERCEFULL],!0),h(`LONETILDE`,`(?:~>?)`),h(`TILDETRIM`,`(\\s*)${c[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace=`$1~`,h(`TILDE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),h(`TILDELOOSE`,`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),h(`LONECARET`,`(?:\\^)`),h(`CARETTRIM`,`(\\s*)${c[u.LONECARET]}\\s+`,!0),e.caretTrimReplace=`$1^`,h(`CARET`,`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),h(`CARETLOOSE`,`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),h(`COMPARATORLOOSE`,`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),h(`COMPARATOR`,`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),h(`COMPARATORTRIM`,`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace=`$1$2$3`,h(`HYPHENRANGE`,`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),h(`HYPHENRANGELOOSE`,`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),h(`STAR`,`(<|>)?=?\\s*\\*`),h(`GTE0`,`^\\s*>=\\s*0\\.0\\.0\\s*$`),h(`GTE0PRE`,`^\\s*>=\\s*0\\.0\\.0-0\\s*$`)})),ke=t(((e,t)=>{let n=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?typeof e==`object`?e:n:r})),Ae=t(((e,t)=>{let n=/^[0-9]+$/,r=(e,t)=>{if(typeof e==`number`&&typeof t==`number`)return e===t?0:e<t?-1:1;let r=n.test(e),i=n.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e<t?-1:1};t.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}})),D=t(((e,t)=>{let n=De(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=Ee(),{safeRe:a,t:o}=Oe(),s=ke(),{compareIdentifiers:c}=Ae();t.exports=class e{constructor(t,c){if(c=s(c),t instanceof e){if(t.loose===!!c.loose&&t.includePrerelease===!!c.includePrerelease)return t;t=t.version}else if(typeof t!=`string`)throw TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>r)throw TypeError(`version is longer than ${r} characters`);n(`SemVer`,t,c),this.options=c,this.loose=!!c.loose,this.includePrerelease=!!c.includePrerelease;let l=t.trim().match(c.loose?a[o.LOOSE]:a[o.FULL]);if(!l)throw TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+l[1],this.minor=+l[2],this.patch=+l[3],this.major>i||this.major<0)throw TypeError(`Invalid major version`);if(this.minor>i||this.minor<0)throw TypeError(`Invalid minor version`);if(this.patch>i||this.patch<0)throw TypeError(`Invalid patch version`);l[4]?this.prerelease=l[4].split(`.`).map(e=>{if(/^[0-9]+$/.test(e)){let t=+e;if(t>=0&&t<i)return t}return e}):this.prerelease=[],this.build=l[5]?l[5].split(`.`):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(`.`)}`),this.version}toString(){return this.version}compare(t){if(n(`SemVer.compare`,this.version,this.options,t),!(t instanceof e)){if(typeof t==`string`&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:+(this.patch>t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let e=this.prerelease[r],i=t.prerelease[r];if(n(`prerelease compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e===i)continue;return c(e,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let e=this.build[r],i=t.build[r];if(n(`build compare`,r,e,i),e===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(e===void 0)return-1;if(e===i)continue;return c(e,i)}while(++r)}inc(e,t,n){if(e.startsWith(`pre`)){if(!t&&n===!1)throw Error(`invalid increment argument: identifier is empty`);if(t){let e=`-${t}`.match(this.options.loose?a[o.PRERELEASELOOSE]:a[o.PRERELEASE]);if(!e||e[1]!==t)throw Error(`invalid identifier: ${t}`)}}switch(e){case`premajor`:this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(`pre`,t,n);break;case`preminor`:this.prerelease.length=0,this.patch=0,this.minor++,this.inc(`pre`,t,n);break;case`prepatch`:this.prerelease.length=0,this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`prerelease`:this.prerelease.length===0&&this.inc(`patch`,t,n),this.inc(`pre`,t,n);break;case`release`:if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case`major`:(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case`minor`:(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case`patch`:this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case`pre`:{let e=+!!Number(n);if(this.prerelease.length===0)this.prerelease=[e];else{let r=this.prerelease.length;for(;--r>=0;)typeof this.prerelease[r]==`number`&&(this.prerelease[r]++,r=-2);if(r===-1){if(t===this.prerelease.join(`.`)&&n===!1)throw Error(`invalid increment argument: identifier already exists`);this.prerelease.push(e)}}if(t){let r=[t,e];n===!1&&(r=[t]),c(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=r):this.prerelease=r}break}default:throw Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(`.`)}`),this}}})),je=t(((e,t)=>{let n=D();t.exports=(e,t,r=!1)=>{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(!r)return null;throw e}}})),Me=t(((e,t)=>{let n=je();t.exports=(e,t)=>{let r=n(e,t);return r?r.version:null}})),Ne=t(((e,t)=>{let n=je();t.exports=(e,t)=>{let r=n(e.trim().replace(/^[=v]+/,``),t);return r?r.version:null}})),Pe=t(((e,t)=>{let n=D();t.exports=(e,t,r,i,a)=>{typeof r==`string`&&(a=i,i=r,r=void 0);try{return new n(e instanceof n?e.version:e,r).inc(t,i,a).version}catch{return null}}})),Fe=t(((e,t)=>{let n=je();t.exports=(e,t)=>{let r=n(e,null,!0),i=n(t,null,!0),a=r.compare(i);if(a===0)return null;let o=a>0,s=o?r:i,c=o?i:r,l=!!s.prerelease.length;if(c.prerelease.length&&!l){if(!c.patch&&!c.minor)return`major`;if(c.compareMain(s)===0)return c.minor&&!c.patch?`minor`:`patch`}let u=l?`pre`:``;return r.major===i.major?r.minor===i.minor?r.patch===i.patch?`prerelease`:u+`patch`:u+`minor`:u+`major`}})),Ie=t(((e,t)=>{let n=D();t.exports=(e,t)=>new n(e,t).major})),Le=t(((e,t)=>{let n=D();t.exports=(e,t)=>new n(e,t).minor})),Re=t(((e,t)=>{let n=D();t.exports=(e,t)=>new n(e,t).patch})),ze=t(((e,t)=>{let n=je();t.exports=(e,t)=>{let r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}})),O=t(((e,t)=>{let n=D();t.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))})),Be=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(t,e,r)})),Ve=t(((e,t)=>{let n=O();t.exports=(e,t)=>n(e,t,!0)})),He=t(((e,t)=>{let n=D();t.exports=(e,t,r)=>{let i=new n(e,r),a=new n(t,r);return i.compare(a)||i.compareBuild(a)}})),Ue=t(((e,t)=>{let n=He();t.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))})),We=t(((e,t)=>{let n=He();t.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))})),Ge=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)>0})),Ke=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)<0})),qe=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)===0})),Je=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)!==0})),Ye=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)>=0})),Xe=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(e,t,r)<=0})),Ze=t(((e,t)=>{let n=qe(),r=Je(),i=Ge(),a=Ye(),o=Ke(),s=Xe();t.exports=(e,t,c,l)=>{switch(t){case`===`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e===c;case`!==`:return typeof e==`object`&&(e=e.version),typeof c==`object`&&(c=c.version),e!==c;case``:case`=`:case`==`:return n(e,c,l);case`!=`:return r(e,c,l);case`>`:return i(e,c,l);case`>=`:return a(e,c,l);case`<`:return o(e,c,l);case`<=`:return s(e,c,l);default:throw TypeError(`Invalid operator: ${t}`)}}})),Qe=t(((e,t)=>{let n=D(),r=je(),{safeRe:i,t:a}=Oe();t.exports=(e,t)=>{if(e instanceof n)return e;if(typeof e==`number`&&(e=String(e)),typeof e!=`string`)return null;t||={};let o=null;if(!t.rtl)o=e.match(t.includePrerelease?i[a.COERCEFULL]:i[a.COERCE]);else{let n=t.includePrerelease?i[a.COERCERTLFULL]:i[a.COERCERTL],r;for(;(r=n.exec(e))&&(!o||o.index+o[0].length!==e.length);)(!o||r.index+r[0].length!==o.index+o[0].length)&&(o=r),n.lastIndex=r.index+r[1].length+r[2].length;n.lastIndex=-1}if(o===null)return null;let s=o[2],c=o[3]||`0`,l=o[4]||`0`,u=t.includePrerelease&&o[5]?`-${o[5]}`:``,d=t.includePrerelease&&o[6]?`+${o[6]}`:``;return r(`${s}.${c}.${l}${u}${d}`,t)}})),$e=t(((e,t)=>{t.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}})),k=t(((e,t)=>{let n=/\s+/g;t.exports=class e{constructor(t,r){if(r=i(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof a)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(n,` `),this.set=this.raw.split(`||`).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let e=this.set[0];if(this.set=this.set.filter(e=>!h(e[0])),this.set.length===0)this.set=[e];else if(this.set.length>1){for(let e of this.set)if(e.length===1&&g(e[0])){this.set=[e];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted=``;for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+=`||`);let t=this.set[e];for(let e=0;e<t.length;e++)e>0&&(this.formatted+=` `),this.formatted+=t[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let t=((this.options.includePrerelease&&p)|(this.options.loose&&m))+`:`+e,n=r.get(t);if(n)return n;let i=this.options.loose,s=i?c[l.HYPHENRANGELOOSE]:c[l.HYPHENRANGE];e=e.replace(s,oe(this.options.includePrerelease)),o(`hyphen replace`,e),e=e.replace(c[l.COMPARATORTRIM],u),o(`comparator trim`,e),e=e.replace(c[l.TILDETRIM],d),o(`tilde trim`,e),e=e.replace(c[l.CARETTRIM],f),o(`caret trim`,e);let g=e.split(` `).map(e=>v(e,this.options)).join(` `).split(/\s+/).map(e=>x(e,this.options));i&&(g=g.filter(e=>(o(`loose invalid filter`,e,this.options),!!e.match(c[l.COMPARATORLOOSE])))),o(`range list`,g);let _=new Map,y=g.map(e=>new a(e,this.options));for(let e of y){if(h(e))return[e];_.set(e.value,e)}_.size>1&&_.has(``)&&_.delete(``);let b=[..._.values()];return r.set(t,b),b}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Range is required`);return this.set.some(e=>_(e,n)&&t.set.some(t=>_(t,n)&&e.every(e=>t.every(t=>e.intersects(t,n)))))}test(e){if(!e)return!1;if(typeof e==`string`)try{e=new s(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(S(this.set[t],e,this.options))return!0;return!1}};let r=new($e()),i=ke(),a=et(),o=De(),s=D(),{safeRe:c,t:l,comparatorTrimReplace:u,tildeTrimReplace:d,caretTrimReplace:f}=Oe(),{FLAG_INCLUDE_PRERELEASE:p,FLAG_LOOSE:m}=Ee(),h=e=>e.value===`<0.0.0-0`,g=e=>e.value===``,_=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(e=>i.intersects(e,t)),i=r.pop();return n},v=(e,t)=>(e=e.replace(c[l.BUILD],``),o(`comp`,e,t),e=te(e,t),o(`caret`,e),e=b(e,t),o(`tildes`,e),e=re(e,t),o(`xrange`,e),e=ae(e,t),o(`stars`,e),e),y=e=>!e||e.toLowerCase()===`x`||e===`*`,b=(e,t)=>e.trim().split(/\s+/).map(e=>ee(e,t)).join(` `),ee=(e,t)=>{let n=t.loose?c[l.TILDELOOSE]:c[l.TILDE];return e.replace(n,(t,n,r,i,a)=>{o(`tilde`,e,t,n,r,i,a);let s;return y(n)?s=``:y(r)?s=`>=${n}.0.0 <${+n+1}.0.0-0`:y(i)?s=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:a?(o(`replaceTilde pr`,a),s=`>=${n}.${r}.${i}-${a} <${n}.${+r+1}.0-0`):s=`>=${n}.${r}.${i} <${n}.${+r+1}.0-0`,o(`tilde return`,s),s})},te=(e,t)=>e.trim().split(/\s+/).map(e=>ne(e,t)).join(` `),ne=(e,t)=>{o(`caret`,e,t);let n=t.loose?c[l.CARETLOOSE]:c[l.CARET],r=t.includePrerelease?`-0`:``;return e.replace(n,(t,n,i,a,s)=>{o(`caret`,e,t,n,i,a,s);let c;return y(n)?c=``:y(i)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:y(a)?c=n===`0`?`>=${n}.${i}.0${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.0${r} <${+n+1}.0.0-0`:s?(o(`replaceCaret pr`,s),c=n===`0`?i===`0`?`>=${n}.${i}.${a}-${s} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}-${s} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a}-${s} <${+n+1}.0.0-0`):(o(`no pr`),c=n===`0`?i===`0`?`>=${n}.${i}.${a}${r} <${n}.${i}.${+a+1}-0`:`>=${n}.${i}.${a}${r} <${n}.${+i+1}.0-0`:`>=${n}.${i}.${a} <${+n+1}.0.0-0`),o(`caret return`,c),c})},re=(e,t)=>(o(`replaceXRanges`,e,t),e.split(/\s+/).map(e=>ie(e,t)).join(` `)),ie=(e,t)=>{e=e.trim();let n=t.loose?c[l.XRANGELOOSE]:c[l.XRANGE];return e.replace(n,(n,r,i,a,s,c)=>{o(`xRange`,e,n,r,i,a,s,c);let l=y(i),u=l||y(a),d=u||y(s),f=d;return r===`=`&&f&&(r=``),c=t.includePrerelease?`-0`:``,l?n=r===`>`||r===`<`?`<0.0.0-0`:`*`:r&&f?(u&&(a=0),s=0,r===`>`?(r=`>=`,u?(i=+i+1,a=0,s=0):(a=+a+1,s=0)):r===`<=`&&(r=`<`,u?i=+i+1:a=+a+1),r===`<`&&(c=`-0`),n=`${r+i}.${a}.${s}${c}`):u?n=`>=${i}.0.0${c} <${+i+1}.0.0-0`:d&&(n=`>=${i}.${a}.0${c} <${i}.${+a+1}.0-0`),o(`xRange return`,n),n})},ae=(e,t)=>(o(`replaceStars`,e,t),e.trim().replace(c[l.STAR],``)),x=(e,t)=>(o(`replaceGTE0`,e,t),e.trim().replace(c[t.includePrerelease?l.GTE0PRE:l.GTE0],``)),oe=e=>(t,n,r,i,a,o,s,c,l,u,d,f)=>(n=y(r)?``:y(i)?`>=${r}.0.0${e?`-0`:``}`:y(a)?`>=${r}.${i}.0${e?`-0`:``}`:o?`>=${n}`:`>=${n}${e?`-0`:``}`,c=y(l)?``:y(u)?`<${+l+1}.0.0-0`:y(d)?`<${l}.${+u+1}.0-0`:f?`<=${l}.${u}.${d}-${f}`:e?`<${l}.${u}.${+d+1}-0`:`<=${c}`,`${n} ${c}`.trim()),S=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(o(e[n].semver),e[n].semver!==a.ANY&&e[n].semver.prerelease.length>0){let r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}})),et=t(((e,t)=>{let n=Symbol(`SemVer ANY`);t.exports=class e{static get ANY(){return n}constructor(t,i){if(i=r(i),t instanceof e){if(t.loose===!!i.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(` `),s(`comparator`,t,i),this.options=i,this.loose=!!i.loose,this.parse(t),this.semver===n?this.value=``:this.value=this.operator+this.semver.version,s(`comp`,this)}parse(e){let t=this.options.loose?i[a.COMPARATORLOOSE]:i[a.COMPARATOR],r=e.match(t);if(!r)throw TypeError(`Invalid comparator: ${e}`);this.operator=r[1]===void 0?``:r[1],this.operator===`=`&&(this.operator=``),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(s(`Comparator.test`,e,this.options.loose),this.semver===n||e===n)return!0;if(typeof e==`string`)try{e=new c(e,this.options)}catch{return!1}return o(e,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw TypeError(`a Comparator is required`);return this.operator===``?this.value===``||new l(t.value,n).test(this.value):t.operator===``?t.value===``||new l(this.value,n).test(t.semver):(n=r(n),n.includePrerelease&&(this.value===`<0.0.0-0`||t.value===`<0.0.0-0`)||!n.includePrerelease&&(this.value.startsWith(`<0.0.0`)||t.value.startsWith(`<0.0.0`))?!1:!!(this.operator.startsWith(`>`)&&t.operator.startsWith(`>`)||this.operator.startsWith(`<`)&&t.operator.startsWith(`<`)||this.semver.version===t.semver.version&&this.operator.includes(`=`)&&t.operator.includes(`=`)||o(this.semver,`<`,t.semver,n)&&this.operator.startsWith(`>`)&&t.operator.startsWith(`<`)||o(this.semver,`>`,t.semver,n)&&this.operator.startsWith(`<`)&&t.operator.startsWith(`>`)))}};let r=ke(),{safeRe:i,t:a}=Oe(),o=Ze(),s=De(),c=D(),l=k()})),tt=t(((e,t)=>{let n=k();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch{return!1}return t.test(e)}})),nt=t(((e,t)=>{let n=k();t.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(` `).trim().split(` `))})),rt=t(((e,t)=>{let n=D(),r=k();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===-1)&&(a=e,o=new n(a,i))}),a}})),it=t(((e,t)=>{let n=D(),r=k();t.exports=(e,t,i)=>{let a=null,o=null,s=null;try{s=new r(t,i)}catch{return null}return e.forEach(e=>{s.test(e)&&(!a||o.compare(e)===1)&&(a=e,o=new n(a,i))}),a}})),at=t(((e,t)=>{let n=D(),r=k(),i=Ge();t.exports=(e,t)=>{e=new r(e,t);let a=new n(`0.0.0`);if(e.test(a)||(a=new n(`0.0.0-0`),e.test(a)))return a;a=null;for(let t=0;t<e.set.length;++t){let r=e.set[t],o=null;r.forEach(e=>{let t=new n(e.semver.version);switch(e.operator){case`>`:t.prerelease.length===0?t.patch++:t.prerelease.push(0),t.raw=t.format();case``:case`>=`:(!o||i(t,o))&&(o=t);break;case`<`:case`<=`:break;default:throw Error(`Unexpected operation: ${e.operator}`)}}),o&&(!a||i(a,o))&&(a=o)}return a&&e.test(a)?a:null}})),ot=t(((e,t)=>{let n=k();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),st=t(((e,t)=>{let n=D(),r=et(),{ANY:i}=r,a=k(),o=tt(),s=Ge(),c=Ke(),l=Xe(),u=Ye();t.exports=(e,t,d,f)=>{e=new n(e,f),t=new a(t,f);let p,m,h,g,_;switch(d){case`>`:p=s,m=l,h=c,g=`>`,_=`>=`;break;case`<`:p=c,m=u,h=s,g=`<`,_=`<=`;break;default:throw TypeError(`Must provide a hilo val of "<" or ">"`)}if(o(e,t,f))return!1;for(let n=0;n<t.set.length;++n){let a=t.set[n],o=null,s=null;if(a.forEach(e=>{e.semver===i&&(e=new r(`>=0.0.0`)),o||=e,s||=e,p(e.semver,o.semver,f)?o=e:h(e.semver,s.semver,f)&&(s=e)}),o.operator===g||o.operator===_||(!s.operator||s.operator===g)&&m(e,s.semver)||s.operator===_&&h(e,s.semver))return!1}return!0}})),ct=t(((e,t)=>{let n=st();t.exports=(e,t,r)=>n(e,t,`>`,r)})),lt=t(((e,t)=>{let n=st();t.exports=(e,t,r)=>n(e,t,`<`,r)})),ut=t(((e,t)=>{let n=k();t.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t,r))})),dt=t(((e,t)=>{let n=tt(),r=O();t.exports=(e,t,i)=>{let a=[],o=null,s=null,c=e.sort((e,t)=>r(e,t,i));for(let e of c)n(e,t,i)?(s=e,o||=e):(s&&a.push([o,s]),s=null,o=null);o&&a.push([o,null]);let l=[];for(let[e,t]of a)e===t?l.push(e):!t&&e===c[0]?l.push(`*`):t?e===c[0]?l.push(`<=${t}`):l.push(`${e} - ${t}`):l.push(`>=${e}`);let u=l.join(` || `),d=typeof t.raw==`string`?t.raw:String(t);return u.length<d.length?u:t}})),ft=t(((e,t)=>{let n=k(),r=et(),{ANY:i}=r,a=tt(),o=O(),s=(e,t,r={})=>{if(e===t)return!0;e=new n(e,r),t=new n(t,r);let i=!1;OUTER:for(let n of e.set){for(let e of t.set){let t=u(n,e,r);if(i||=t!==null,t)continue OUTER}if(i)return!1}return!0},c=[new r(`>=0.0.0-0`)],l=[new r(`>=0.0.0`)],u=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===i){if(t.length===1&&t[0].semver===i)return!0;e=n.includePrerelease?c:l}if(t.length===1&&t[0].semver===i){if(n.includePrerelease)return!0;t=l}let r=new Set,s,u;for(let t of e)t.operator===`>`||t.operator===`>=`?s=d(s,t,n):t.operator===`<`||t.operator===`<=`?u=f(u,t,n):r.add(t.semver);if(r.size>1)return null;let p;if(s&&u&&(p=o(s.semver,u.semver,n),p>0||p===0&&(s.operator!==`>=`||u.operator!==`<=`)))return null;for(let e of r){if(s&&!a(e,String(s),n)||u&&!a(e,String(u),n))return null;for(let r of t)if(!a(e,String(r),n))return!1;return!0}let m,h,g,_,v=u&&!n.includePrerelease&&u.semver.prerelease.length?u.semver:!1,y=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;v&&v.prerelease.length===1&&u.operator===`<`&&v.prerelease[0]===0&&(v=!1);for(let e of t){if(_=_||e.operator===`>`||e.operator===`>=`,g=g||e.operator===`<`||e.operator===`<=`,s){if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),e.operator===`>`||e.operator===`>=`){if(m=d(s,e,n),m===e&&m!==s)return!1}else if(s.operator===`>=`&&!a(s.semver,String(e),n))return!1}if(u){if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),e.operator===`<`||e.operator===`<=`){if(h=f(u,e,n),h===e&&h!==u)return!1}else if(u.operator===`<=`&&!a(u.semver,String(e),n))return!1}if(!e.operator&&(u||s)&&p!==0)return!1}return!(s&&g&&!u&&p!==0||u&&_&&!s&&p!==0||y||v)},d=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r>0?e:r<0||t.operator===`>`&&e.operator===`>=`?t:e},f=(e,t,n)=>{if(!e)return t;let r=o(e.semver,t.semver,n);return r<0?e:r>0||t.operator===`<`&&e.operator===`<=`?t:e};t.exports=s})),pt=t(((e,t)=>{let n=Oe(),r=Ee(),i=D(),a=Ae();t.exports={parse:je(),valid:Me(),clean:Ne(),inc:Pe(),diff:Fe(),major:Ie(),minor:Le(),patch:Re(),prerelease:ze(),compare:O(),rcompare:Be(),compareLoose:Ve(),compareBuild:He(),sort:Ue(),rsort:We(),gt:Ge(),lt:Ke(),eq:qe(),neq:Je(),gte:Ye(),lte:Xe(),cmp:Ze(),coerce:Qe(),Comparator:et(),Range:k(),satisfies:tt(),toComparators:nt(),maxSatisfying:rt(),minSatisfying:it(),minVersion:at(),validRange:ot(),outside:st(),gtr:ct(),ltr:lt(),intersects:ut(),simplifyRange:dt(),subset:ft(),SemVer:i,re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}}));const mt=2**32-1,ht=mt-1;var A=class extends Error{constructor(e,t,n,r){super(e),this.name=`DevalueError`,this.path=t.join(``),this.value=n,this.root=r}};const gt=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function _t(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===gt}function vt(e){return Object.prototype.toString.call(e).slice(8,-1)}function yt(e){switch(e){case`"`:return`\\"`;case`<`:return`\\u003C`;case`\\`:return`\\\\`;case`
5
+ `:return`\\n`;case`\r`:return`\\r`;case` `:return`\\t`;case`\b`:return`\\b`;case`\f`:return`\\f`;case`\u2028`:return`\\u2028`;case`\u2029`:return`\\u2029`;default:return e<` `?`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`:``}}function j(e){let t=``,n=0,r=e.length;for(let i=0;i<r;i+=1){let r=e[i],a=yt(r);a&&(t+=e.slice(n,i)+a,n=i+1)}return`"${n===0?e:t+e.slice(n)}"`}function bt(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}const xt=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function St(e){return xt.test(e)?`.`+e:`[`+JSON.stringify(e)+`]`}function Ct(e){return!(!Number.isInteger(e)||e<0||e>ht)}function wt(e){return!(!Number.isInteger(e)||e<0||e>mt)}function Tt(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Ct(+e)}function Et(e){for(var t=e.length-1;t>=0&&!Tt(e[t]);t--);return t+1}function Dt(e){let t=Object.keys(e);return t.length=Et(t),t}function Ot(e){return new Uint8Array(e).toBase64()}function kt(e){return Uint8Array.fromBase64(e).buffer}function At(e){return Buffer.from(e).toString(`base64`)}function jt(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function Mt(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r){let i=t.subarray(e,e+r);n+=String.fromCharCode.apply(null,i)}return btoa(n)}function Nt(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer}const Pt=typeof Uint8Array.fromBase64==`function`,Ft=typeof process==`object`&&process.versions?.node!==void 0,It=Pt?Ot:Ft?At:Mt,Lt=Pt?kt:Ft?jt:Nt;function Rt(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))n[r]=t[r]??e[r];return n}const zt=Object.freeze({kind:`not-plain`}),Bt=Object.freeze({kind:`symbol-keys`}),Vt=Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>vt(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>({buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Dt(e),shapeOf:e=>_t(e)?bt(e).length>0?Bt:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:zt,get:(e,t)=>e[t]}),Ht=Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[ht]=void 0,delete t[ht],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});function Ut(e,t,n){return Wt(JSON.parse(e),t,n)}function Wt(e,t,n){let r=Rt(Ht,n?.operations);if(typeof e==`number`)return s(e,!0);if(!Array.isArray(e)||e.length===0)throw Error(`Invalid input`);let i=e,a=Array(i.length),o=null;function s(e,n=!1){if(e===-1)return r.fromPrimitive(void 0);if(e===-3)return r.fromPrimitive(NaN);if(e===-4)return r.fromPrimitive(1/0);if(e===-5)return r.fromPrimitive(-1/0);if(e===-6)return r.fromPrimitive(-0);if(n||typeof e!=`number`)throw Error(`Invalid input`);if(e in a)return a[e];let c=i[e];if(!c||typeof c!=`object`)a[e]=r.fromPrimitive(c);else if(Array.isArray(c))if(typeof c[0]==`string`){let n=c[0],l=t&&Object.hasOwn(t,n)?t[n]:void 0;if(l){let t=c[1];if(typeof t!=`number`&&(t=i.push(c[1])-1),Object.hasOwn(a,t))return a[e]=l(a[t]);if(o??=new Set,o.has(t))throw Error(`Invalid circular reference`);return o.add(t),a[e]=l(s(t)),o.delete(t),a[e]}switch(n){case`Date`:a[e]=r.fromISOString(c[1]);break;case`Set`:let t=r.createSet();a[e]=t;for(let e=1;e<c.length;e+=1)r.addValue(t,s(c[e]));break;case`Map`:let o=r.createMap();a[e]=o;for(let e=1;e<c.length;e+=2)r.addEntry(o,s(c[e]),s(c[e+1]));break;case`RegExp`:a[e]=r.fromRegExpInfo(c[1],c[2]);break;case`Object`:{let t=c[1];if(typeof i[t]==`object`&&i[t][0]!==`BigInt`)throw Error(`Invalid input`);a[e]=r.box(s(t));break}case`BigInt`:a[e]=r.fromPrimitive(BigInt(c[1]));break;case`null`:let l=r.createNullPrototypeObject();a[e]=l;for(let e=1;e<c.length;e+=2){if(c[e]===`__proto__`)throw Error("Cannot parse an object with a `__proto__` property");r.set(l,c[e],s(c[e+1]))}break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:case`DataView`:{if(i[c[1]][0]!==`ArrayBuffer`)throw Error(`Invalid data`);let t=s(c[1]);a[e]=r.fromViewInfo(n,t,c[2],c[3]);break}case`ArrayBuffer`:{let t=c[1];if(typeof t!=`string`)throw Error(`Invalid ArrayBuffer encoding`);a[e]=r.fromArrayBuffer(Lt(t));break}case`URL`:case`URLSearchParams`:case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:a[e]=r.fromStringValue(n,c[1]);break;default:throw Error(`Unknown type ${n}`)}}else if(c[0]===-7){let t=c[1];if(!wt(t))throw Error(`Invalid input`);let n=r.createSparseArray(t);a[e]=n;for(let e=2;e<c.length;e+=2){let i=c[e];if(!Ct(i)||i>=t)throw Error(`Invalid input`);r.set(n,i,s(c[e+1]))}}else{let t=r.createArray(c.length);a[e]=t;for(let e=0;e<c.length;e+=1){let n=c[e];n!==-2&&r.set(t,e,s(n))}}else{let t=r.createObject();a[e]=t;for(let e of Object.keys(c)){if(e===`__proto__`)throw Error("Cannot parse an object with a `__proto__` property");r.set(t,e,s(c[e]))}}return a[e]}return s(0)}function M(e,t,n){let r=Gt(!1,e,t,n);return typeof r==`string`?r:`[${r.join(`,`)}]`}function Gt(e,t,n,r){let i=Rt(Vt,r?.operations),a=[],o=new Map,s=[];if(n)for(let e of Object.getOwnPropertyNames(n))s.push({key:e,fn:n[e]});let c=[],l=0;function u(n,r){let d=i.typeOf(n);if(d===`undefined`)return-1;let f;if(d===`number`){if(f=i.toPrimitive(n),Number.isNaN(f))return-3;if(f===1/0)return-4;if(f===-1/0)return-5;if(f===0&&1/f<0)return-6}let p=i.identify(n);if(o.has(p))return o.get(p);r??=l++,o.set(p,r);for(let{key:e,fn:t}of s){let i=t(n);if(i)return a[r]=`["${e}",${u(i)}]`,r}if(d===`function`)throw new A(`Cannot stringify a function`,c,n,t);if(d===`symbol`)throw new A(`Cannot stringify a Symbol primitive`,c,n,t);let m=``;if(d!==`object`)m=Kt(d===`number`?f:i.toPrimitive(n));else if(i.isThenable(n)){if(!e)throw new A(`Cannot stringify a Promise or thenable — use stringifyAsync instead`,c,n,t);m=i.toPromise(n).then(e=>{let t=u(e,r);t<0&&(a[r]=t)})}else{let e=i.tagOf(n);switch(e){case`Number`:case`String`:case`Boolean`:case`BigInt`:m=`["Object",${u(i.unbox(n))}]`;break;case`Date`:m=`["Date","${i.toISOString(n)}"]`;break;case`URL`:m=`["URL",${j(i.toStringValue(n))}]`;break;case`URLSearchParams`:m=`["URLSearchParams",${j(i.toStringValue(n))}]`;break;case`RegExp`:let{source:r,flags:a}=i.regExpInfo(n);m=a?`["RegExp",${j(r)},"${a}"]`:`["RegExp",${j(r)}]`;break;case`Array`:{let e=!1,t=i.lengthOf(n);m=`[`;for(let r=0;r<t;r+=1)if(r>0&&(m+=`,`),i.hasOwn(n,r))c.push(`[${r}]`),m+=u(i.get(n,r)),c.pop();else if(e)m+=-2;else{let r=i.indicesOf(n),a=r.length,o=String(t).length;if((t-a)*3>4+o+a*(o+1)){m=`[-7,`+t;for(let e=0;e<r.length;e++){let t=r[e];c.push(`[${t}]`),m+=`,`+t+`,`+u(i.get(n,t)),c.pop()}break}else e=!0,m+=-2}m+=`]`;break}case`Set`:m=`["Set"`;for(let e of i.valuesOf(n))m+=`,${u(e)}`;m+=`]`;break;case`Map`:m=`["Map"`;for(let[e,t]of i.entriesOf(n)){let n=i.typeOf(e),r=n!==`object`&&n!==`function`&&n!==`symbol`;c.push(`.get(${r?Kt(i.toPrimitive(e)):`...`})`),m+=`,${u(e)},${u(t)}`,c.pop()}m+=`]`;break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:{let t=i.viewInfo(n);m=`["`+e+`",`+u(t.buffer),t.byteLength!==t.bufferByteLength&&(m+=`,${t.byteOffset},${t.length}`),m+=`]`;break}case`DataView`:{let t=i.viewInfo(n);m=`["`+e+`",`+u(t.buffer),t.byteLength!==t.bufferByteLength&&(m+=`,${t.byteOffset},${t.byteLength}`),m+=`]`;break}case`ArrayBuffer`:m=`["ArrayBuffer","${It(i.toArrayBuffer(n))}"]`;break;case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:m=`["${e}",${j(i.toStringValue(n))}]`;break;default:{let e=i.shapeOf(n);if(e.kind===`not-plain`)throw new A(`Cannot stringify arbitrary non-POJOs`,c,n,t);if(e.kind===`symbol-keys`)throw new A(`Cannot stringify POJOs with symbolic keys`,c,n,t);if(e.kind===`null-proto`){m=`["null"`;for(let r of e.keys){if(r===`__proto__`)throw new A(`Cannot stringify objects with __proto__ keys`,c,n,t);c.push(St(r)),m+=`,${j(r)},${u(i.get(n,r))}`,c.pop()}m+=`]`}else{m=`{`;let r=!1;for(let a of e.keys){if(a===`__proto__`)throw new A(`Cannot stringify objects with __proto__ keys`,c,n,t);r&&(m+=`,`),r=!0,c.push(St(a)),m+=`${j(a)}:${u(i.get(n,a))}`,c.pop()}m+=`}`}}}}return a[r]=m,r}let d=u(t);return d<0?`${d}`:a}function Kt(e){let t=typeof e;return t===`string`?j(e):e===void 0?`-1`:e===0&&1/e<0?`-6`:t===`bigint`?`["BigInt","${e}"]`:String(e)}var qt=e(pt(),1);async function Jt(e,t=[`encrypt`,`decrypt`]){if(e.byteLength!==32)throw new r(`Encryption key must be exactly 32 bytes, got ${e.byteLength}`);return globalThis.crypto.subtle.importKey(`raw`,e,`AES-GCM`,!1,t)}async function Yt(e,t,n){let r=globalThis.crypto.getRandomValues(new Uint8Array(12)),i;try{i=await globalThis.crypto.subtle.encrypt({name:`AES-GCM`,iv:r,tagLength:128,...n?{additionalData:n}:{}},e,t)}catch(e){throw new h(`AES-256-GCM encryption failed: ${e instanceof Error?e.message:String(e)}`,{cause:e,context:{operation:`encrypt`,byteLength:t.byteLength}})}let a=new Uint8Array(12+i.byteLength);return a.set(r,0),a.set(new Uint8Array(i),12),a}async function Xt(e,t,n){if(t.byteLength<28)throw new h(`Encrypted data too short: expected at least 28 bytes, got ${t.byteLength}`,{context:{operation:`decrypt`,byteLength:t.byteLength}});let r=t.subarray(0,12),i=t.subarray(12),a;try{a=await globalThis.crypto.subtle.decrypt({name:`AES-GCM`,iv:r,tagLength:128,...n?{additionalData:n}:{}},e,i)}catch(e){throw new h(`AES-256-GCM decryption failed: ${e instanceof Error?e.message:String(e)}`,{cause:e,context:{operation:`decrypt`,byteLength:t.byteLength}})}return new Uint8Array(a)}const Zt=Symbol.for(`WORKFLOW_USE_STEP`),Qt=Symbol.for(`WORKFLOW_SET_ATTRIBUTES`),$t=Symbol.for(`WORKFLOW_CREATE_HOOK`),en=Symbol.for(`WORKFLOW_SLEEP`),tn=Symbol.for(`WORKFLOW_GET_STREAM_ID`),nn=Symbol.for(`WORKFLOW_STABLE_ULID`),N=Symbol.for(`WORKFLOW_STREAM_NAME`),rn=Symbol.for(`WORKFLOW_STREAM_TYPE`),an=Symbol.for(`WORKFLOW_STREAM_FRAMING`),on=Symbol.for(`WORKFLOW_STREAM_SERVER_RUN_ID`),sn=Symbol.for(`WORKFLOW_STREAM_SERVER_DEPLOYMENT_ID`),cn=Symbol.for(`WORKFLOW_STREAM_SERVER_PUBLIC_KEY`),ln=Symbol.for(`WORKFLOW_STREAM_DRAIN`),un=Symbol.for(`BODY_INIT`),dn=Symbol.for(`WEBHOOK_RESPONSE_WRITABLE`),fn=Symbol.for(`workflow-class-registry`),P=Symbol.for(`WORKFLOW_ABORT_STREAM_NAME`),F=Symbol.for(`WORKFLOW_ABORT_HOOK_TOKEN`),pn=Symbol.for(`WORKFLOW_ABORT_LISTENER_ATTACHED`),mn=Symbol.for(`WORKFLOW_ABORT_READER_CANCEL`),hn=()=>S(`WORKFLOW_STREAM_MAX_INFLIGHT_CHUNKS`,1e3,{integer:!0,min:1}),gn=()=>S(`WORKFLOW_STREAM_MAX_CHUNKS_PER_BATCH`,1e3,{integer:!0,min:1}),_n=()=>S(`WORKFLOW_STREAM_MAX_BYTES_PER_BATCH`,1048576,{integer:!0,min:1}),vn=()=>S(`WORKFLOW_STREAM_MAX_BUFFERED_BYTES`,8388608,{integer:!0,min:1}),yn=()=>S(`WORKFLOW_LOCK_POLL_INTERVAL_MS`,10,{integer:!0,min:1});function bn(){let e={...te(),pendingOps:0,doneResolved:!1,streamEnded:!1};return e.promise.catch(()=>{}),e}function xn(e){if(e.locked)return!1;let t;try{t=e.getWriter()}catch{return!1}try{t.releaseLock()}catch{return!1}return!0}function Sn(e){if(e.locked)return!1;let t;try{t=e.getReader()}catch{return!1}try{t.releaseLock()}catch{return!1}return!0}function Cn(e){let t=e.drainBarrier;if(!t){e.resolve();return}t().then(()=>e.resolve(),t=>e.reject(t))}function wn(e,t){if(t.writablePollingInterval!==void 0)return;let n=setInterval(()=>{if(t.doneResolved||t.streamEnded){clearInterval(n),t.writablePollingInterval=void 0;return}xn(e)&&t.pendingOps===0&&(t.doneResolved=!0,clearInterval(n),t.writablePollingInterval=void 0,Cn(t))},yn());t.writablePollingInterval=n}function Tn(e,t){if(t.readablePollingInterval!==void 0)return;let n=setInterval(()=>{if(t.doneResolved||t.streamEnded){clearInterval(n),t.readablePollingInterval=void 0;return}Sn(e)&&t.pendingOps===0&&(t.doneResolved=!0,clearInterval(n),t.readablePollingInterval=void 0,Cn(t))},yn());t.readablePollingInterval=n}function En(e,t,n){let r=t[ln];return typeof r==`function`&&(n.drainBarrier=r),Dn(e,t,n)}async function Dn(e,t,n){let i=e.getReader(),a=t.getWriter(),o;try{for(;;){if(n.streamEnded)return;let e=await Promise.race([i.read(),a.closed.then(()=>{throw new r(`Writable stream closed prematurely`)})]);if(n.streamEnded)return;if(e.done){n.streamEnded=!0,await a.close(),n.doneResolved||(n.doneResolved=!0,n.resolve());return}n.pendingOps++;try{await a.write(e.value)}finally{n.pendingOps--}}}catch(e){throw n.streamEnded=!0,o=e,n.drainBarrier&&await n.drainBarrier().catch(()=>{}),n.doneResolved||(n.doneResolved=!0,n.reject(e)),e}finally{i.cancel(o).catch(()=>{}),i.releaseLock(),a.releaseLock()}}function On(e){if(e.specVersion!==5)throw new r(`This Workflow runtime requires a World with matching spec version 5, but the configured World declares spec version ${e.specVersion??`none`}. Install a World package version compatible with the current Workflow runtime.`)}const kn=Symbol.for(`@workflow/world//cache`),An=Symbol.for(`@workflow/world//cachePromise`),jn=Symbol.for(`@workflow/world//getWorldFn`);async function Mn(){let e=globalThis;if(e[kn])return On(e[kn]),e[kn];if(e[An])return e[kn]=await e[An],On(e[kn]),e[kn];let t=e[jn];if(t){let e=await t();return On(e),e}throw Error("Workflow world runtime was not initialized. Import from the host workflow entrypoints (`workflow`, `workflow/api`, or `workflow/runtime`) so @workflow/core/runtime/world-init can register getWorld before getWorldLazy() is used.")}const Nn=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,110,4,34,4,32]),Pn=new TextEncoder;function Fn(e){if(e.byteLength!==32)throw new r(`Run key material must be exactly 32 bytes, got ${e.byteLength}`)}function In(e,t){if(e.byteLength!==32)throw new r(`${t} must be exactly 32 bytes, got ${e.byteLength}`)}async function Ln(e){Fn(e);let t=await globalThis.crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),n=await globalThis.crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:new Uint8Array(32),info:Pn.encode(`workflow/encp/x25519/v1`)},t,256),r=new Uint8Array(n);return{scalar:r,publicKey:await Rn(r)}}async function Rn(e){let t=await zn(e,!0),n=await globalThis.crypto.subtle.exportKey(`jwk`,t);if(!n.x)throw new r(`X25519 JWK export did not include a public key component ("x")`);let i=Wn(n.x);if(i.byteLength!==32)throw new r(`X25519 JWK export produced a ${i.byteLength}-byte public key, expected 32`);return i}async function zn(e,t){let n=new Uint8Array(Nn.length+e.byteLength);return n.set(Nn,0),n.set(e,Nn.length),globalThis.crypto.subtle.importKey(`pkcs8`,n,{name:`X25519`},t,[`deriveBits`])}function Bn(e){return globalThis.crypto.subtle.importKey(`raw`,e,{name:`X25519`},!0,[])}const Vn=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;function Hn(e){let t=``;for(let n=0;n<e.length;n+=3){let r=e[n],i=n+1<e.length?e[n+1]:0,a=n+2<e.length?e[n+2]:0;t+=Vn[r>>2&63],t+=Vn[(r&3)<<4|i>>4&15],t+=n+1<e.length?Vn[(i&15)<<2|a>>6&3]:`=`,t+=n+2<e.length?Vn[a&63]:`=`}return t}function Un(e){let t=e.length;for(;t>0&&e[t-1]===`=`;)t--;let n=e.slice(0,t);if(n.includes(`=`)||n.length%4==1||t!==e.length&&e.length%4!=0)return;let r=0,i=0,a=[];for(let e=0;e<n.length;e++){let t=Vn.indexOf(n[e]);if(t===-1)return;r=r<<6|t,i+=6,i>=8&&(i-=8,a.push(r>>i&255))}if(!(i>0&&r&(1<<i)-1))return new Uint8Array(a)}function Wn(e){let t=0,n=0,i=[];for(let a=0;a<e.length;a++){let o=e[a];if(o===`=`)break;let s=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`.indexOf(o);if(s===-1)throw new r(`Invalid base64url character "${o}" in X25519 JWK key component`);t=t<<6|s,n+=6,n>=8&&(n-=8,i.push(t>>n&255))}return new Uint8Array(i)}async function Gn(e,t,n,r){let i=Pn.encode(`workflow/encp/aes256gcm/v1`),a=new Uint8Array(i.length+t.length+n.length);a.set(i,0),a.set(t,i.length),a.set(n,i.length+t.length);let o=await globalThis.crypto.subtle.importKey(`raw`,e,`HKDF`,!1,[`deriveBits`]),s=await globalThis.crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:new Uint8Array(32),info:a},o,256);return globalThis.crypto.subtle.importKey(`raw`,new Uint8Array(s),`AES-GCM`,!1,r)}async function Kn(e){In(e,`Recipient public key`);let t;try{t=await Bn(e)}catch(e){throw new r(`Invalid X25519 recipient public key: ${e instanceof Error?e.message:String(e)}`,{cause:e})}let n=await globalThis.crypto.subtle.generateKey({name:`X25519`},!0,[`deriveBits`]),i=new Uint8Array(await globalThis.crypto.subtle.exportKey(`raw`,n.publicKey)),a;try{a=await globalThis.crypto.subtle.deriveBits({name:`X25519`,public:t},n.privateKey,256)}catch(e){throw new r(`X25519 key agreement failed: the recipient public key is not a valid curve point (low-order point or corrupted key material)`,{cause:e})}return{ephemeralPublicKey:i,contentKey:await Gn(new Uint8Array(a),i,e,[`encrypt`])}}async function qn(e,t){if(t.byteLength!==32)throw new h(`Sealed payload has a malformed ephemeral public key: expected 32 bytes, got ${t.byteLength}`,{context:{operation:`decrypt`,byteLength:t.byteLength}});let n;try{let[r,i]=await Promise.all([zn(e.scalar,!1),Bn(t)]);n=await globalThis.crypto.subtle.deriveBits({name:`X25519`,public:i},r,256)}catch(e){throw new h(`X25519 key agreement failed while opening a sealed payload: ${e instanceof Error?e.message:String(e)}`,{cause:e,context:{operation:`decrypt`,byteLength:t.byteLength}})}return Gn(new Uint8Array(n),t,e.publicKey,[`decrypt`])}async function Jn(e,t,n){let{ephemeralPublicKey:r,contentKey:i}=await Kn(e),a=await Yt(i,t,n),o=new Uint8Array(r.byteLength+a.byteLength);return o.set(r,0),o.set(a,r.byteLength),o}async function Yn(e,t,n){if(t.byteLength<60)throw new h(`Sealed payload too short: expected at least 60 bytes, got ${t.byteLength}`,{context:{operation:`decrypt`,byteLength:t.byteLength}});let r=t.subarray(0,32),i=t.subarray(32);return Xt(await qn(e,r),i,n)}function Xn(e,t){let n;return{async seal(r){n??=Kn(e);let{ephemeralPublicKey:i,contentKey:a}=await n,o=await Yt(a,r,t),s=new Uint8Array(i.byteLength+o.byteLength);return s.set(i,0),s.set(o,i.byteLength),s}}}function Zn(e,t){let n,r;return{async open(i){if(i.byteLength<60)throw new h(`Sealed payload too short: expected at least 60 bytes, got ${i.byteLength}`,{context:{operation:`decrypt`,byteLength:i.byteLength}});let a=i.subarray(0,32),o=i.subarray(32),s=Qn(a);(s!==n||!r)&&(n=s,r=qn(e,a));let c;try{c=await r}catch(e){throw n=void 0,r=void 0,e}return Xt(c,o,t)}}}function Qn(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function $n(e){if(!e)return;let t=Un(e);if(!(!t||t.byteLength!==32))return t}let er=null,tr=null;function nr(e,t){let n=er,r=tr;er=e??null,tr=e?new WeakSet:null;try{return t()}finally{er=n,tr=r}}const rr=new WeakSet;function ir(e){return rr.add(e),e}function ar(e){return typeof e==`function`&&rr.has(e)}function or(e,t){if(!er)return;let n={kind:e};t!==void 0&&(n.detail=t),er.executions.push(n)}function I(e){!er||!tr||tr.has(e)||(tr.add(e),or(`proxy`))}const L=Function.prototype.bind.bind(Function.prototype.call);function R(e,t){let n=Object.getOwnPropertyDescriptor(e,t)?.get;if(!n)throw Error(`Missing intrinsic getter: ${String(t)}`);return L(n)}const sr=L(Date.prototype.getDate),cr=L(Date.prototype.getTime),lr=L(Date.prototype.toISOString),ur=R(RegExp.prototype,`source`),dr=R(RegExp.prototype,`flags`),fr=R(ArrayBuffer.prototype,`byteLength`),pr=L(Map.prototype.entries),mr=L(Set.prototype.values),hr=L(Number.prototype.valueOf),gr=L(String.prototype.valueOf),_r=L(Boolean.prototype.valueOf),vr=L(BigInt.prototype.valueOf),yr=Object.getPrototypeOf(Uint8Array.prototype),br=R(yr,Symbol.toStringTag),xr=R(yr,`buffer`),Sr=R(yr,`byteOffset`),Cr=R(yr,`byteLength`),wr=R(yr,`length`),Tr=R(DataView.prototype,`buffer`),Er=R(DataView.prototype,`byteOffset`),Dr=R(DataView.prototype,`byteLength`),Or=R(SharedArrayBuffer.prototype,`byteLength`),kr=L(Headers.prototype[Symbol.iterator]),Ar=R(URL.prototype,`href`),jr=L(URLSearchParams.prototype.toString),{isProxy:z}=C,Mr=L(Function.prototype.toString);function Nr(e){if(z(e))return!1;let t=Object.getOwnPropertyDescriptor(e,`name`)?.value;return typeof t==`string`&&t.startsWith(`bound `)?!1:Mr(e).endsWith(`{ [native code] }`)||Reflect.getPrototypeOf(e)===Function.prototype}function B(e,t){if(e===null||typeof e!=`object`&&typeof e!=`function`)return;if(z(e))return I(e),e[t];let n=e;for(;n!==null;){if(z(n))return I(n),e[t];let r=Object.getOwnPropertyDescriptor(n,t);if(r)return`value`in r?r.value:r.get?(Nr(r.get)||or(`getter`,String(t)),r.get.call(e)):void 0;n=Reflect.getPrototypeOf(n)}}function Pr(e,t){if(e===null||typeof e!=`object`&&typeof e!=`function`)return!1;if(z(e))return I(e),t in e;let n=e;for(;n!==null;){if(z(n))return I(n),t in e;if(Object.getOwnPropertyDescriptor(n,t))return!0;n=Reflect.getPrototypeOf(n)}return!1}function V(e,t){if(!t||typeof e!=`object`||!e)return!1;z(e)&&I(e);let n=Reflect.getPrototypeOf(e);for(;n!==null;){if(n===t)return!0;z(n)&&I(n),n=Reflect.getPrototypeOf(n)}return!1}function Fr(e){return z(e)?(I(e),e.href):Ar(e)}function Ir(e){return z(e)?(I(e),String(e)):jr(e)}function Lr(e){return z(e)?(I(e),Array.from(e)):[...kr(e)]}function Rr(e){return[...pr(e)]}function zr(e){return[...mr(e)]}function Br(e){return C.isDataView(e)?{buffer:Tr(e),byteOffset:Er(e),byteLength:Dr(e)}:{buffer:xr(e),byteOffset:Sr(e),byteLength:Cr(e)}}const Vr=new Set([`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Float16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]),Hr=new Set([`Date`,`RegExp`,`Map`,`Set`,`Array`,`DataView`,`ArrayBuffer`,`SharedArrayBuffer`,`Number`,`String`,`Boolean`,`BigInt`,`URL`,`URLSearchParams`,...Vr]);function Ur(e){if(C.isDate(e))return`Date`;if(C.isRegExp(e))return`RegExp`;if(C.isMap(e))return`Map`;if(C.isSet(e))return`Set`;if(Array.isArray(e))return`Array`;if(C.isTypedArray(e)){let t=br(e);return t!==void 0&&Vr.has(t)?t:void 0}if(C.isDataView(e))return`DataView`;if(C.isArrayBuffer(e))return`ArrayBuffer`;if(C.isSharedArrayBuffer(e))return`SharedArrayBuffer`;if(C.isNumberObject(e))return`Number`;if(C.isStringObject(e))return`String`;if(C.isBooleanObject(e))return`Boolean`;if(C.isBigIntObject(e))return`BigInt`;if(V(e,URL.prototype))return`URL`;if(V(e,URLSearchParams.prototype))return`URLSearchParams`}function Wr(e){let t=B(e,Symbol.toStringTag);return typeof t==`string`?t:void 0}const Gr={tagOf:e=>{if(z(e))return I(e),Vt.tagOf(e);let t=Ur(e);if(t!==void 0)return t;let n=Wr(e);return n===void 0||Hr.has(n)?`Object`:n},isThenable:e=>C.isPromise(e)?!0:typeof B(e,`then`)==`function`,unbox:e=>C.isNumberObject(e)?hr(e):C.isStringObject(e)?gr(e):C.isBooleanObject(e)?_r(e):vr(e),toISOString:e=>Number.isNaN(sr(e))?``:lr(e),toStringValue:e=>V(e,URL.prototype)?Fr(e):V(e,URLSearchParams.prototype)?Ir(e):(or(`method`,`toString (${Wr(e)??`unknown`})`),e.toString()),regExpInfo:e=>({source:ur(e),flags:dr(e)}),valuesOf:e=>zr(e),entriesOf:e=>Rr(e),viewInfo:e=>{let t=Br(e);return{...t,length:C.isDataView(e)?0:wr(e),bufferByteLength:C.isSharedArrayBuffer(t.buffer)?Or(t.buffer):fr(t.buffer)}},shapeOf:e=>(z(e)&&I(e),Vt.shapeOf(e)),get:(e,t)=>B(e,t)},Kr=Symbol.for(`workflow-serialize`),qr=Symbol.for(`workflow-deserialize`);function Jr(e=globalThis){let t=e,n=t[fn];return n||(n=new Map,t[fn]=n),n}const Yr=`class//workflow//Run`;function Xr(e,t,n=globalThis){Jr(n).set(e,t)}function Zr(e,t){return Jr(t).get(e)}function Qr(){return{Class:e=>{if(typeof e!=`function`)return!1;let t=B(e,`classId`);return typeof t==`string`&&{classId:t}},Instance:e=>{if(typeof e!=`object`||!e)return!1;let t=B(e,`constructor`);if(!t||typeof t!=`function`)return!1;let n=B(t,Kr);if(typeof n!=`function`)return!1;let r=B(t,`classId`);if(typeof r!=`string`)throw Error(`Class "${String(B(t,`name`))}" with ${String(Kr)} must have a static "classId" property.`);return or(`method`,`[WORKFLOW_SERIALIZE] (${r})`),{classId:r,data:n.call(t,e)}}}}function $r(e=globalThis){return{Class:t=>{let n=t.classId,r=Zr(n,e);if(!r)throw Error(`Class "${n}" not found. Make sure the class is registered with registerSerializationClass.`);return r},Instance:t=>{let n=t.classId,r=t.data,i=Zr(n,e);if(!i)throw Error(`Class "${n}" not found. Make sure the class is registered with registerSerializationClass.`);let a=i[qr];if(typeof a!=`function`)throw Error(`Class "${n}" does not have a static ${String(qr)} method.`);return a.call(i,r)}}}function ei(e,t,n){if(n===0)return`.`;let r=new Uint8Array(e,t,n);return Buffer.from(r).toString(`base64`)}function H(e){let t=Br(e);return ei(t.buffer,t.byteOffset,t.byteLength)}function U(e,t){let n=e===`.`?``:e,r=Buffer.from(n,`base64`),i=new t.ArrayBuffer(r.length);return new t.Uint8Array(i).set(r),i}function ti(e){return JSON.parse(e)}function ni(e){let t=Object.getOwnPropertyDescriptor(e,`stack`);return t&&`value`in t?t.value:(or(`getter`,`stack`),t?.get?t.get.call(e):B(e,`stack`))}function ri(e){if(!C.isNativeError(e))return!1;let t={message:B(e,`message`),stack:ni(e)};return Pr(e,`cause`)&&(t.cause=B(e,`cause`)),t}function ii(e,t){return!C.isNativeError(t)||B(t,`name`)!==e?!1:ri(t)}function ai(e){return t=>ii(e,t)||!1}function oi(e,t){return n=>{let r=n,i=`cause`in r?{cause:r.cause}:void 0,a=e[t],o=new a(r.message,i);return r.stack!==void 0&&(o.stack=r.stack),o}}function si(e=globalThis){return{ArrayBuffer:e=>C.isArrayBuffer(e)&&ei(e,0,fr(e)),BigInt:e=>typeof e==`bigint`&&String(e),BigInt64Array:e=>C.isBigInt64Array(e)&&H(e),BigUint64Array:e=>C.isBigUint64Array(e)&&H(e),Date:e=>C.isDate(e)?Number.isNaN(sr(e))?`.`:lr(e):!1,DOMException:e=>{if(typeof e!=`object`||!e)return!1;let t=B(e,`constructor`);if(!t||B(t,`name`)!==`DOMException`)return!1;let n={message:B(e,`message`),name:B(e,`name`),stack:ni(e)};return Pr(e,`cause`)&&(n.cause=B(e,`cause`)),n},EvalError:ai(`EvalError`),FatalError:ai(`FatalError`),HookConflictError:e=>{let t=ii(`HookConflictError`,e);if(!t)return!1;let n={...t,token:B(e,`token`)},r=B(e,`conflictingRunId`);return r!==void 0&&(n.conflictingRunId=r),n},RangeError:ai(`RangeError`),ReferenceError:ai(`ReferenceError`),RetryableError:e=>{let t=ii(`RetryableError`,e);if(!t)return!1;let n=B(e,`retryAfter`),r;if(C.isDate(n)){let e=cr(n);r=Number.isNaN(e)?Date.now()+1e3:e}else if(n&&typeof n==`object`){let e=B(n,`getTime`);if(typeof e==`function`){or(`method`,`getTime`);let t=e.call(n);r=Number.isNaN(t)?Date.now()+1e3:t}else r=Date.now()+1e3}else if(typeof n==`string`||typeof n==`number`){let e=new Date(n).getTime();r=Number.isNaN(e)?Date.now()+1e3:e}else r=Date.now()+1e3;return{...t,retryAfter:r}},RuntimeDecryptionError:e=>{let t=ii(`RuntimeDecryptionError`,e);if(!t)return!1;let n={...t},r=B(e,`context`);return r!==void 0&&(n.context=r),n},SyntaxError:ai(`SyntaxError`),TypeError:ai(`TypeError`),URIError:ai(`URIError`),AggregateError:e=>{let t=ii(`AggregateError`,e);return t?{...t,errors:B(e,`errors`)}:!1},Error:e=>{if(!C.isNativeError(e))return!1;let t={name:B(e,`name`),message:B(e,`message`),stack:ni(e)};return Pr(e,`cause`)&&(t.cause=B(e,`cause`)),t},Float32Array:e=>C.isFloat32Array(e)&&H(e),Float64Array:e=>C.isFloat64Array(e)&&H(e),Headers:e=>V(e,Headers.prototype)&&Lr(e),Int8Array:e=>C.isInt8Array(e)&&H(e),Int16Array:e=>C.isInt16Array(e)&&H(e),Int32Array:e=>C.isInt32Array(e)&&H(e),Map:e=>C.isMap(e)&&Rr(e),RegExp:e=>C.isRegExp(e)&&{source:ur(e),flags:dr(e)},Set:e=>C.isSet(e)&&zr(e),URL:e=>V(e,URL.prototype)&&Fr(e),WorkflowFunction:e=>{if(typeof e!=`function`)return!1;let t=B(e,`workflowId`);return typeof t==`string`&&{workflowId:t}},URLSearchParams:e=>{if(!V(e,URLSearchParams.prototype))return!1;let t=Ir(e);return t===``?`.`:t},Uint8Array:e=>C.isUint8Array(e)&&H(e),Uint8ClampedArray:e=>C.isUint8ClampedArray(e)&&H(e),Uint16Array:e=>C.isUint16Array(e)&&H(e),Uint32Array:e=>C.isUint32Array(e)&&H(e)}}function ci(e=globalThis){return{ArrayBuffer:t=>U(t,e),BigInt:t=>e.BigInt(t),BigInt64Array:t=>new e.BigInt64Array(U(t,e)),BigUint64Array:t=>new e.BigUint64Array(U(t,e)),Date:t=>new e.Date(t),DOMException:t=>{let n=new e.DOMException(t.message,t.name);return t.stack!==void 0&&(n.stack=t.stack),`cause`in t&&(n.cause=t.cause),n},EvalError:oi(e,`EvalError`),FatalError:t=>{let n=new(e[Symbol.for(`@workflow/errors//FatalError`)]??d)(t.message);return t.stack!==void 0&&(n.stack=t.stack),`cause`in t&&(n.cause=t.cause),n},HookConflictError:t=>{let n=new(e[Symbol.for(`@workflow/errors//HookConflictError`)]??o)(t.token,t.conflictingRunId);return t.stack!==void 0&&(n.stack=t.stack),`cause`in t&&(n.cause=t.cause),n},RangeError:oi(e,`RangeError`),ReferenceError:oi(e,`ReferenceError`),RetryableError:t=>{let n=new(e[Symbol.for(`@workflow/errors//RetryableError`)]??v)(t.message,{retryAfter:new e.Date(t.retryAfter)});return t.stack!==void 0&&(n.stack=t.stack),`cause`in t&&(n.cause=t.cause),n},RuntimeDecryptionError:t=>{let n=e[Symbol.for(`@workflow/errors//RuntimeDecryptionError`)]??h,r={};`cause`in t&&(r.cause=t.cause),t.context!==void 0&&(r.context=t.context);let i=new n(t.message,r);return t.stack!==void 0&&(i.stack=t.stack),i},SyntaxError:oi(e,`SyntaxError`),TypeError:oi(e,`TypeError`),URIError:oi(e,`URIError`),AggregateError:t=>{let n=`cause`in t?{cause:t.cause}:void 0,r=new e.AggregateError(t.errors,t.message,n);return t.stack!==void 0&&(r.stack=t.stack),r},Error:t=>{let n=`cause`in t?{cause:t.cause}:void 0,r=new e.Error(t.message,n);return r.name=t.name,t.stack!==void 0&&(r.stack=t.stack),r},Float32Array:t=>new e.Float32Array(U(t,e)),Float64Array:t=>new e.Float64Array(U(t,e)),Headers:t=>new e.Headers(t),Int8Array:t=>new e.Int8Array(U(t,e)),Int16Array:t=>new e.Int16Array(U(t,e)),Int32Array:t=>new e.Int32Array(U(t,e)),Map:t=>new e.Map(t),RegExp:t=>new e.RegExp(t.source,t.flags),Set:t=>new e.Set(t),URL:t=>new e.URL(t),WorkflowFunction:e=>Object.assign(()=>{throw Error(`Workflow functions cannot be called directly. Use start() to invoke them.`)},{workflowId:e.workflowId}),URLSearchParams:t=>new e.URLSearchParams(t===`.`?``:t),Uint8Array:t=>new e.Uint8Array(U(t,e)),Uint8ClampedArray:t=>new e.Uint8ClampedArray(U(t,e)),Uint16Array:t=>new e.Uint16Array(U(t,e)),Uint32Array:t=>new e.Uint32Array(U(t,e))}}function li(){return{StepFunction:e=>{if(typeof e!=`function`)return!1;let t=B(e,`stepId`);if(typeof t!=`string`)return!1;let n=B(e,`__closureVarsFn`),r;typeof n==`function`&&(ar(n)||or(`method`,`__closureVarsFn`),r=n());let i=Pr(e,`__boundThis`),a=i?B(e,`__boundThis`):void 0,o=B(e,`__boundArgs`),s={stepId:t};return r!==void 0&&(s.closureVars=r),i&&(s.boundThis=a),Array.isArray(o)&&o.length>0&&(s.boundArgs=o),s}}}function ui(e=globalThis){let t=e[Symbol.for(`WORKFLOW_USE_STEP`)];return{StepFunction:e=>{let n=e.stepId,r=e.closureVars;if(!t)throw Error(`WORKFLOW_USE_STEP not found on global object. Step functions cannot be deserialized outside workflow context.`);let i=r?t(n,()=>r):t(n);if(`boundThis`in e){let t=Array.isArray(e.boundArgs)?e.boundArgs:[];return i.bind(e.boundThis,...t)}return i}}}function di(e){return e.length===4&&/^[a-z0-9]{4}$/.test(e)}const W={DEVALUE_V1:`devl`,ENCRYPTED:`encr`,SEALED:`encp`,GZIP:`gzip`,ZSTD:`zstd`},fi=new TextEncoder,pi=new TextDecoder;function mi(e,t=globalThis,n){let r;switch(e){case`workflow`:r={...Qr(),...li(),...si(t)};break;case`step`:r={...Qr(),...si(t)};break;case`client`:r={...Qr(),...si(t)};break}return n?{...r,...n}:r}function hi(e,t=globalThis,n){let r;switch(e){case`workflow`:r={...$r(t),...ui(t),...ci(t)};break;case`step`:r={...$r(t),...ci(t)};break;case`client`:r={...$r(t),...ci(t),StepFunction:()=>{throw Error(`Step functions cannot be deserialized in client context.`)}};break}return n?{...r,...n}:r}const G={formatPrefix:W.DEVALUE_V1,serialize(e,t,n){let r=mi(t,n?.global,n?.extraReducers),i=nr(n?.guestCodeStats,()=>M(e,r,{operations:Gr}));return fi.encode(i)},deserialize(e,t,n){let r=hi(t,n?.global,n?.extraRevivers);return Ut(pi.decode(e),r)},deserializeLegacy(e,t,n){return Wt(e,hi(t,n?.global,n?.extraRevivers))}},gi=new TextEncoder,_i=new TextDecoder;function K(e,t){if(!(t instanceof Uint8Array))return t;let n=gi.encode(e),r=new Uint8Array(4+t.length);return r.set(n,0),r.set(t,4),r}function vi(e){if(!(e instanceof Uint8Array)||e.length<4)return null;let t=e.subarray(0,4),n=_i.decode(t);return di(n)?n:null}function q(e){if(!(e instanceof Uint8Array))return{format:W.DEVALUE_V1,payload:new TextEncoder().encode(JSON.stringify(e))};if(e.length<4)throw Error(`Data too short to contain format prefix: expected at least 4 bytes, got ${e.length}`);let t=e.subarray(0,4),n=_i.decode(t);if(!di(n))throw Error(`Invalid format prefix: "${n}". Must be 4 characters of [a-z0-9].`);return{format:n,payload:e.subarray(4)}}function yi(){try{return typeof process<`u`&&process.env?.WORKFLOW_DISABLE_COMPRESSION===`1`}catch{return!1}}function bi(){try{let e=process.env?.WORKFLOW_COMPRESSION_CODEC;return e===`gzip`||e===`zstd`?e:void 0}catch{return}}function xi(){try{return globalThis.process?.getBuiltinModule?.(`node:zlib`)}catch{return}}function Si(){let e=xi();return typeof e?.zstdCompressSync==`function`&&typeof e?.zstdDecompressSync==`function`}function Ci(){return typeof CompressionStream==`function`&&typeof DecompressionStream==`function`}async function wi(e,t){let n=t.writable.getWriter(),r=n.write(e).then(()=>n.close());r.catch(()=>{});let i=[],a=0,o=t.readable.getReader();for(;;){let{done:e,value:t}=await o.read();if(e)break;i.push(t),a+=t.length}await r;let s=new Uint8Array(a),c=0;for(let e of i)s.set(e,c),c+=e.length;return s}async function Ti(e){return wi(e,new CompressionStream(`gzip`))}async function Ei(e){return wi(e,new DecompressionStream(`gzip`))}function Di(e){let t=xi(),n=t?.constants?.ZSTD_c_compressionLevel,r=n===void 0?void 0:{params:{[n]:3}};return new Uint8Array(t.zstdCompressSync(e,r))}function Oi(e){let t=xi();if(!t?.zstdDecompressSync)throw Error(`Compressed (zstd) workflow data encountered but node:zlib zstd support is not available in this runtime (requires Node.js 22.15+). In the browser, register a zstd decoder via registerZstdDecoder (serialization-format.ts).`);return new Uint8Array(t.zstdDecompressSync(e))}function ki(e,t,n,r){e&&(e.recorded=!0,e.compressed=t!==`none`,e.codec=t,e.uncompressedBytes=n,e.storedBytes=r)}function Ai(){return bi()===`gzip`?Ci()?`gzip`:`none`:Si()?`zstd`:Ci()?`gzip`:`none`}async function ji(e,t,n){if(!(e instanceof Uint8Array))return e;if(!t||e.length<1024||yi())return ki(n,`none`,e.length,e.length),e;let r=Ai();if(r===`none`)return ki(n,`none`,e.length,e.length),e;let i=r===`zstd`?Di(e):await Ti(e),a=r===`zstd`?W.ZSTD:W.GZIP,o=4+i.length;return o>=e.length*.95?(ki(n,`none`,e.length,e.length),e):(ki(n,r,e.length,o),K(a,i))}async function Mi(e,t){if(!(e instanceof Uint8Array))return e;let n=vi(e);if(n===W.ZSTD){let{payload:n}=q(e),r=Oi(n);return ki(t,`zstd`,r.length,e.length),r}if(n===W.GZIP){if(!Ci())throw Error(`Compressed (gzip) workflow data encountered but DecompressionStream is not available in this runtime. Node.js 18+, browsers, and edge runtimes all support it.`);let{payload:n}=q(e),r=await Ei(n);return ki(t,`gzip`,r.length,e.length),r}return ki(t,`none`,e.length,e.length),e}const Ni=Symbol.for(`workflow.serialization.sealTarget`),Pi=Symbol.for(`workflow.serialization.runKeys`);function Fi(e,t){return{[Ni]:!0,recipientPublicKey:e,aad:t}}function Ii(e,t,n){return{[Pi]:!0,aes:e,keyPair:t,aad:n}}async function Li(e){let[t,n]=await Promise.all([Jt(e),Ln(e)]);return Ii(t,n)}function Ri(e){return typeof e==`object`&&!!e&&e[Ni]===!0}function zi(e){return typeof e==`object`&&!!e&&e[Pi]===!0}function Bi(e){if(e){if(zi(e))return e.aes;if(!Ri(e))return e}}async function Vi(e){return typeof e==`function`?e():e}async function Hi(e,t){if(!t||!(e instanceof Uint8Array))return e;if(Ri(t)){let n=await Jn(t.recipientPublicKey,e,t.aad);return K(W.SEALED,n)}let n=await Yt(zi(t)?t.aes:t,e);return K(W.ENCRYPTED,n)}async function Ui(e,t){if(!zi(t))throw new h(`Sealed data encountered but no run keypair is available. Opening a sealed payload requires the run's own encryption key material; a symmetric key or a seal-only target cannot decrypt it.`,{context:{operation:`decrypt`,byteLength:e.byteLength,formatPrefix:`encp`}});let{payload:n}=q(e);try{return await Yn(t.keyPair,n,t.aad)}catch(e){throw h.is(e)&&e.context&&(e.context.formatPrefix=W.SEALED),e}}async function Wi(e,t){if(!(e instanceof Uint8Array))return e;let n=vi(e);if(n===W.SEALED)return Ui(e,t);if(n!==W.ENCRYPTED)return e;let r=Bi(t);if(!r)throw new h(`Encrypted data encountered but no encryption key is available. Encryption is not configured or no key was provided for this run.`,{context:{operation:`decrypt`,byteLength:e.byteLength,formatPrefix:`encr`}});let{payload:i}=q(e);try{return await Xt(r,i)}catch(e){throw h.is(e)&&e.context&&(e.context.formatPrefix=n),e}}function Gi(e,t,n){let[r,...i]=t.split(`
6
+ `),a=i.join(`
7
+ `),o=Ki(r??``,n),s=qi(a),c=[`${e} ${r??``}`];return o&&c.push(o),s&&c.push(s),c.join(`
8
+ `)}function Ki(e,t){if(!t||Object.keys(t).length===0)return null;let n=new Set;n.add(`errorStack`),typeof t.errorMessage==`string`&&e.includes(t.errorMessage)&&n.add(`errorMessage`);let r=new Set([`workflowRunId`,`workflowName`,`stepId`,`stepName`,`errorAttribution`,`errorCode`,`errorName`,`errorMessage`,`errorStack`,`hint`,`attempt`,`retryCount`]),i=[],a=Yi(t,`errorName`),o=Yi(t,`errorAttribution`);if(a||o){let e=o?o===`sdk`?we(`sdk error`):Ce(`user error`):``,t=a?Se(a):``,n=e&&t?E(` · `):``;i.push(` ${e}${n}${t}`)}let s=Yi(t,`workflowRunId`),c=Yi(t,`workflowName`);s?i.push(Zi(`run`,s,c,fe)):c&&i.push(Zi(`run`,null,c,fe));let l=Yi(t,`stepId`),u=Yi(t,`stepName`);if((l||u)&&i.push(Zi(`step`,l,u,de)),t.attempt!==void 0||t.retryCount!==void 0){let e=t.attempt,n=t.retryCount;e!==void 0&&n!==void 0?i.push(` ${Xi(`retry`)} ${e} ${E(`attempts ·`)} ${n} ${E(`max retries`)}`):e!==void 0&&i.push(` ${Xi(`retry`)} ${e} ${E(`attempts`)}`)}let d=Yi(t,`errorCode`);d&&d!==a&&i.push(` ${Xi(`code`)} ${E(d)}`);let f=Yi(t,`hint`);f&&i.push(` ${ye(f)}`);let p=Object.entries(t).filter(([e,t])=>!r.has(e)&&!n.has(e)&&t!=null).sort(([e],[t])=>e.localeCompare(t));for(let[e,t]of p)i.push(` ${Xi(e)} ${Qi(t)}`);return i.length?i.join(`
9
+ `):null}function qi(e){if(!e)return null;let t=e.split(`
10
+ `),n=[],r=0,i=0,a=0,o=()=>{r>0&&(n.push(E(` … ${r} more ${r===1?`frame`:`frames`} in framework internals`)),r=0)};for(let e of t){let t=e.trimStart().startsWith(`at `);if(t&&Ji(e)){r++;continue}if(t&&i>=6){a++;continue}o(),n.push(e),t&&i++}return o(),a>0&&n.push(E(` … ${a} more ${a===1?`frame`:`frames`} (run \`pnpm wf inspect run <id>\` for the full stack)`)),n.join(`
11
+ `)}function Ji(e){let t=e.trimStart();return t.startsWith(`at `)?!!(t.includes(`node:internal/`)||t.includes(`node_modules/.pnpm/`)||t.includes(`node_modules__pnpm_`)||t.includes(`_next_dist_`)||t.includes(`node_modules/next/`)||t.includes(`node_modules/@opentelemetry/`)||t.includes(`node_modules/vitest/`)||t.includes(`node_modules/@vitest/`)):!1}function Yi(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:null}function Xi(e){return E(e.padEnd(6))}function Zi(e,t,n,r){let i=t||E(`—`),a=n&&(e===`run`?le(n):ue(n))?`${E(`·`)} ${r(n)}`:``;return` ${Xi(e)} ${i}${a?` `+a:``}`}function Qi(e){if(typeof e==`string`)return e.includes(`
12
+ `)?e.split(`
13
+ `).map((e,t)=>t===0?e:` ${e}`).join(`
14
+ `):e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var $i=class e extends Error{steps;globalThis;stepCount;hookCount;waitCount;attributeCount;hookDisposedCount;abortCount;constructor(e,t){let r=[...e.values()],i=0,a=0,o=0,s=0,c=0,l=0;for(let e of r)e.type===`step`?i++:e.type===`hook`?e.disposed?c++:e.abortRequested?l++:a++:e.type===`wait`?o++:e.type===`attribute`&&s++;let u=[];i>0&&u.push(`${i} ${n(`step`,`steps`,i)}`),a>0&&u.push(`${a} ${n(`hook`,`hooks`,a)}`),o>0&&u.push(`${o} ${n(`wait`,`waits`,o)}`),s>0&&u.push(`${s} ${n(`attribute write`,`attribute writes`,s)}`),c>0&&u.push(`${c} hook ${n(`disposal`,`disposals`,c)}`);let d=n(`has`,`have`,i+a+o+s+c),f=+(i>0)+ +(a>0)+ +(o>0)+ +(s>0)+ +(c>0),p;p=f>1?`processed`:i>0?`run`:a>0||o>0?`created`:s>0?`written`:c>0?`processed`:`received`;let m=u.length>0?`${u.join(` and `)} ${d} not been ${p} yet`:`0 steps have not been run yet`;super(m),this.name=`WorkflowSuspension`,this.steps=r,this.globalThis=t,this.stepCount=i,this.hookCount=a,this.waitCount=o,this.attributeCount=s,this.hookDisposedCount=c,this.abortCount=l}static is(t){return t instanceof e}};function ea(){throw new r(`This API is not available inside a workflow function. Workflow functions run in a deterministic VM; move the call to a step function for full Node.js access.`)}function J(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const ta=J(`workflow.name`),na=J(`workflow.operation`),ra=J(`workflow.run.id`),ia=J(`workflow.run.status`),aa=J(`workflow.started_at`),oa=J(`workflow.events.count`),sa=J(`workflow.execution.mode`),ca=J(`workflow.arguments.count`),la=J(`workflow.result.type`),ua=J(`workflow.trace.propagated`),da=J(`workflow.trace.mode`),fa=J(`workflow.turbo`),pa=J(`workflow.error.name`),ma=J(`workflow.error.message`),ha=J(`workflow.error.code`),ga=J(`workflow.steps.created`),_a=J(`workflow.hooks.created`),va=J(`workflow.waits.created`),ya=J(`workflow.inline_ownership.owned_recovery_steps`),ba=J(`workflow.inline_ownership.backstop_wakes_armed`),xa=J(`workflow.route.type`),Sa=J(`workflow.route.handler_cached`),Ca=J(`workflow.route.invocation_count`),wa=J(`workflow.route.entrypoint_age_ms`),Ta=J(`workflow.route.module_body_init_ms`),Ea=J(`faas.instance`),Da=J(`step.name`),Oa=J(`step.id`),ka=J(`step.attempt`),Aa=J(`step.status`),ja=J(`step.max_retries`),Ma=J(`step.ttfs_ms`),Na=J(`step.stso_ms`),Pa=J(`step.rsfs_ms`),Fa=J(`step.final_scheduling_replay_ms`),Ia=J(`step.latency_optimizations`),La=J(`step.skipped`),Ra=J(`step.skip_reason`),za=J(`step.arguments.count`),Ba=J(`step.result.type`),Va=J(`step.error.name`),Ha=J(`step.error.message`),Ua=J(`step.fatal_error`),Wa=J(`step.retry.exhausted`),Ga=J(`step.retry.timeout_seconds`),Ka=J(`step.retry.will_retry`),qa=J(`messaging.system`),Ja=J(`messaging.destination.name`),Ya=J(`messaging.message.id`),Xa=J(`messaging.operation.type`),Za=J(`workflow.queue.overhead_ms`),Qa=J(`deployment.id`),$a=J(`workflow.deployment.pinned_id`),eo=J(`workflow.deployment_mismatch.retry_count`),to=J(`workflow.deployment_mismatch.recovered`),no=J(`workflow.hook.token`),ro=J(`workflow.hook.id`),io=J(`workflow.hook.found`),ao=J(`workflow.hook.resilient_resume`),oo=J(`workflow.hook.resilient_resume_materialized`),so=J(`workflow.resume_setup_source`),co=J(`workflow.suspension.state`),lo=J(`workflow.suspension.hook_count`),uo=J(`workflow.suspension.step_count`),fo=J(`workflow.suspension.wait_count`),po=J(`http.request.method`),mo=J(`http.route`),ho=J(`http.response.status_code`),go=J(`error.type`),_o=J(`workflow.events.pages_loaded`),vo=J(`workflow.queue.deserialize_time_ms`),yo=J(`workflow.queue.execution_time_ms`),bo=J(`workflow.queue.serialize_time_ms`),xo=J(`workflow.serialization.operation`),So=J(`workflow.serialization.compressed`),Co=J(`workflow.serialization.codec`),wo=J(`workflow.serialization.uncompressed_bytes`),To=J(`workflow.serialization.stored_bytes`),Eo=J(`workflow.serialization.compression_ratio`),Do=J(`workflow.serialization.guest_code_executions`),Oo=J(`workflow.serialization.guest_code_details`),ko=J(`peer.service`),Ao=J(`rpc.system`),jo=J(`rpc.service`),Mo=J(`rpc.method`),No=J(`error.retryable`),Po=J(`error.category`),Fo=new Set;function Io(){let e=process.env.WORKFLOW_TRACE_MODE;return e===`continuous`?`continuous`:(e&&e!==`linked`&&!Fo.has(e)&&(Fo.add(e),X.warn(`Unrecognized WORKFLOW_TRACE_MODE value "${e}"; expected "linked" or "continuous". Falling back to "linked".`)),`linked`)}function Lo(e){return e!==void 0&&Object.keys(e).length>0}function Ro(e,t){return e===`linked`&&Lo(t)?Promise.resolve(t):Bo()}async function zo(e,t){if(e!==`linked`)return $o();let n=await es(Lo(t)?t:void 0);return n?[n]:void 0}async function Bo(){let e=await Y.value;if(!e)return{};let t={};return e.propagation.inject(e.context.active(),t),t}async function Vo(e){let t=await Y.value;if(t)return t.propagation.extract(t.context.active(),e)}async function Ho(e,t){if(!e)return t();let n=await Y.value;if(!n)return t();let r=await Vo(e);return r?n.context.with(r,async()=>await t()):t()}const Y=b(async()=>{try{return await import(`./src-Cj3P1ChQ.js`).then(t=>e(t.t(),1))}catch{return X.info(`OpenTelemetry not available, tracing will be disabled`),null}}),Uo=b(async()=>{let e=await Y.value;if(!e)return null;let t=e.trace.getTracer(`workflow`);return Go(e,t),t});let Wo=!1;function Go(e,t){let n=typeof process<`u`&&typeof process.env.DEBUG==`string`&&(process.env.DEBUG.includes(`workflow:`)||process.env.DEBUG===`*`);if(!(Wo||!n)){Wo=!0;try{let n=globalThis[Symbol.for(`opentelemetry.js.api.1`)],r=e.trace.getTracerProvider(),i=r.getDelegate?.()??r,a=t.startSpan(`workflow.otel.probe.core`);console.warn(`[workflow:otel-diag] core`,JSON.stringify({globalRegistrationVersion:n?.version??null,providerCtor:r?.constructor?.name??null,delegateCtor:i?.constructor?.name??null,tracerCtor:t?.constructor?.name??null,probeCtor:a?.constructor?.name??null,probeRecording:a.isRecording()})),a.end()}catch(e){console.warn(`[workflow:otel-diag] core failed:`,e instanceof Error?e.message:e)}}}async function Ko(e,...t){let[n,r]=await Promise.all([Uo.value,Y.value]),{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 $i.is(t)?(e.setStatus({code:r.SpanStatusCode.OK}),Jo(t,e)):e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function qo(e,t,n){let r=await Uo.value;r&&r.startSpan(e,{...n,startTime:t}).end()}function Jo(e,t){t.setAttributes({...co(`suspended`),...uo(e.stepCount),...lo(e.hookCount),...fo(e.waitCount)})}async function Yo(e){let[t,n]=await Promise.all([Vo(e),Y.value]);if(!(!t||!n))return n.trace.getSpanContext(t)}async function Xo(){return await Qo(e=>e.trace.getActiveSpan())}async function Zo(e){return Qo(t=>t.SpanKind[e])}async function Qo(e){let t=await Y.value;if(t)return await e(t)}function $o(){return Qo(e=>{let t=e.trace.getActiveSpan()?.spanContext();if(t)return[{context:t}]})}async function es(e){if(!e)return;let[t,n]=await Promise.all([Yo(e),Y.value]);if(!(!t||!n)&&n.trace.isSpanContextValid(t))return{context:t}}async function ts(e,t){let n=await Y.value;if(!n)return t();let r=n.propagation.createBaggage({"workflow.run_id":{value:e.workflowRunId},"workflow.name":{value:e.workflowName}}),i=n.propagation.setBaggage(n.context.active(),r);return n.context.with(i,()=>t())}function ns(e,t){if(!t)return!1;let n=!1;for(let r of t.split(`,`)){let t=r.trim();if(!t)continue;let i=t.startsWith(`-`),a=i?t.slice(1):t;RegExp(`^${a.replace(/[|\\{}()[\]^$+?.]/g,`\\$&`).replace(/\*/g,`.*`)}$`).test(e)&&(n=!i)}return n}function rs(e,t={}){let n=r=>{let i=n=>t.debugNamespace??`workflow:${e}:${n}`,a=t=>{let n=i(t);return(i,a)=>{let o=Object.keys(r).length>0,s=a&&Object.keys(a).length>0,c=o||s?{...r,...a??{}}:void 0;(t===`error`||t===`warn`)&&(t===`error`?console.error:console.warn)(Gi(`[workflow-sdk]`,i,c)),ns(n,process.env.DEBUG)&&(console.debug(`[${n}] ${i}`,c??``),Xo().then(n=>{n?.addEvent(`${t}.${e}`,{message:i,...c})}).catch(()=>{}))}};return{debug:a(`debug`),info:a(`info`),warn:a(`warn`),error:a(`error`),child:e=>n({...r,...e}),forRun:(e,t,i)=>n({...r,workflowRunId:e,...t===void 0?{}:{workflowName:t},...i??{}})}};return n({})}const is=rs(`step`),X=rs(`runtime`),as=rs(`webhook`),os=rs(`events`);rs(`adapter`),rs(`build`,{debugNamespace:`workflow:build`});function ss(e){if(h.is(e))throw e}function Z(e,t){let n=e.includes(`return value`)?`returning`:`passing`,r=`Failed to serialize ${e}`;t instanceof A&&t.path&&(r+=` at path "${t.path}"`);let i=`Ensure you're ${n} workflow serializable types. Check the serialization docs to see what's serializable: https://workflow-sdk.dev/docs/foundations/serialization`;return t instanceof A&&t.value!==void 0&&X.error(`Serialization failed`,{context:e,problematicValue:t.value}),{message:r,hint:i}}async function cs(e,t,n){try{let r=G.serialize(e,`client`,n);return Hi(await ji(K(W.DEVALUE_V1,r),n?.compression===!0,n?.compressionStats),t)}catch(e){ss(e);let{message:t,hint:n}=Z(`client value`,e);throw new m(t,{hint:n,cause:e})}}async function ls(e,t,n){let r=await Mi(await Wi(e,t),n?.compressionStats);if(!(r instanceof Uint8Array)){if(G.deserializeLegacy)return G.deserializeLegacy(r,`client`,n);throw Error(`Cannot deserialize non-binary data without legacy support`)}let{format:i,payload:a}=q(r);if(i===W.DEVALUE_V1)return G.deserialize(a,`client`,n);throw Error(`Unsupported serialization format: ${i}`)}async function us(e,t,n){try{let r=G.serialize(e,`step`,n);return Hi(await ji(K(W.DEVALUE_V1,r),n?.compression===!0,n?.compressionStats),t)}catch(e){ss(e);let{message:t,hint:n}=Z(`step value`,e);throw new m(t,{hint:n,cause:e})}}async function ds(e,t,n){let r=await Mi(await Wi(e,t),n?.compressionStats);if(!(r instanceof Uint8Array)){if(G.deserializeLegacy)return G.deserializeLegacy(r,`step`,n);throw Error(`Cannot deserialize non-binary data without legacy support`)}let{format:i,payload:a}=q(r);if(i===W.DEVALUE_V1)return G.deserialize(a,`step`,n);throw Error(`Unsupported serialization format: ${i}`)}function fs(e,t){if(!(e instanceof Uint8Array)){if(G.deserializeLegacy)return G.deserializeLegacy(e,`workflow`,t);throw Error(`Cannot deserialize non-binary data without legacy support`)}let{format:n,payload:r}=q(e);if(n===W.DEVALUE_V1)return G.deserialize(r,`workflow`,t);throw Error(`Unsupported serialization format: ${n}`)}const ps=Symbol.for(`WORKFLOW_STEP_CONTEXT_STORAGE`),ms=(()=>{let e=globalThis;return e[ps]??=new se,e[ps]})();function hs(e,t,r){if(e===0&&t===0&&r===0)return null;let i=[];e>0&&i.push(`${e} ${n(`step`,`steps`,e)}`),t>0&&i.push(`${t} ${n(`hook`,`hooks`,t)}`),r>0&&i.push(`${r} ${n(`timer`,`timers`,r)}`);let a=[];e>0&&a.push(`steps are completed`),t>0&&a.push(`hooks are received`),r>0&&a.push(`timers have elapsed`);let o=a.join(` and `);return`${i.join(` and `)} to be enqueued\n Workflow will suspend and resume when ${o}`}function gs(e,t){let n=`${e.replace(`wrun_`,`strm_`)}_user`;return t?`${n}_${Buffer.from(t,`utf-8`).toString(`base64url`)}`:n}function _s(e){return`strm_${e}_system_abort`}function vs(e){if(!e.startsWith(`abrt_`))throw Error(`Invalid abort hook token format: expected "abrt_" prefix, got "${e}"`);return _s(e.slice(5))}const ys=()=>S(`WORKFLOW_DEFERRED_CHECK_DELAY_MS`,100,{integer:!0,min:10});var Q;(function(e){e[e.Consumed=0]=`Consumed`,e[e.NotConsumed=1]=`NotConsumed`,e[e.Finished=2]=`Finished`})(Q||={});var bs=class{eventIndex;events;callbacks=[];onConsumedEvent;onUnconsumedEvent;getPromiseQueue;pendingUnconsumedCheck=null;pendingUnconsumedTimeout=null;unconsumedCheckVersion=0;constructor(e,t){this.events=[...e],this.eventIndex=0,this.onConsumedEvent=t.onConsumedEvent,this.onUnconsumedEvent=t.onUnconsumedEvent,this.getPromiseQueue=t.getPromiseQueue}append(e){for(let t of e)this.events.push(t);process.nextTick(this.consume)}subscribe(e){this.callbacks.push(e),this.pendingUnconsumedCheck!==null&&(this.unconsumedCheckVersion++,this.pendingUnconsumedCheck=null,this.pendingUnconsumedTimeout!==null&&(clearTimeout(this.pendingUnconsumedTimeout),this.pendingUnconsumedTimeout=null)),process.nextTick(this.consume)}notifyConsumedEvent(e){if(this.onConsumedEvent)try{this.onConsumedEvent(e)}catch(e){os.error(`onConsumedEvent callback threw an error`,{error:e})}}consume=()=>{for(;;){let e=this.events[this.eventIndex]??null;if(!this.consumeOne(e)){this.handleUnconsumed(e);return}}};consumeOne(e){for(let t=0;t<this.callbacks.length;t++){let n=this.callbacks[t],r=Q.NotConsumed;try{r=n(e)}catch(e){os.error(`EventConsumer callback threw an error`,{error:e})}if(!(r!==Q.Consumed&&r!==Q.Finished))return e!==null&&this.notifyConsumedEvent(e),this.eventIndex++,r===Q.Finished&&this.callbacks.splice(t,1),e!==null}return!1}handleUnconsumed(e){if(e!==null){let t=++this.unconsumedCheckVersion;this.pendingUnconsumedCheck=this.getPromiseQueue().then(()=>new Promise(e=>setTimeout(e,0))).then(()=>this.getPromiseQueue()).then(()=>{this.pendingUnconsumedTimeout=setTimeout(()=>{this.pendingUnconsumedTimeout=null,this.unconsumedCheckVersion===t&&(this.pendingUnconsumedCheck=null,this.onUnconsumedEvent(e))},ys())})}}},xs=class{aborted=!1;reason=void 0;[P];[F];#e=[];#t=null;get onabort(){return this.#t}set onabort(e){this.#t=e,e&&this.aborted&&e.call(this)}constructor(e,t){this[P]=e,this[F]=t}_setAborted(e){if(!this.aborted){this.aborted=!0,this.reason=e,this.#t&&this.#t.call(this);for(let e of this.#e)e();this.#e=[]}}addEventListener(e,t){if(e===`abort`){if(this.aborted){t();return}this.#e.push(t)}}removeEventListener(e,t){e===`abort`&&(this.#e=this.#e.filter(e=>e!==t))}throwIfAborted(){if(this.aborted)throw this.reason??new DOMException(`The operation was aborted.`,`AbortError`)}};function Ss(e){return class{signal;[P];[F];constructor(){let t=e.generateCorrelationId(`abort`),n=_s(t),r=`abrt_${t}`;this[P]=n,this[F]=r,this.signal=new xs(n,r);let i=`hook_${e.generateCorrelationId(`abortHook`)}`;e.invocationsQueue.set(i,{type:`hook`,correlationId:i,token:r,isWebhook:!1,isSystem:!0}),e.eventsConsumer.subscribe(t=>{if(!t||t.correlationId!==i)return Q.NotConsumed;let n=`eventData`in t&&t.eventData&&`token`in t.eventData?t.eventData.token:void 0;if(typeof n==`string`&&n!==this[F])return e.promiseQueue=e.promiseQueue.then(()=>{e.onWorkflowError(new p(`Replay divergence: abort hook event ${t.eventType} for ${i} belongs to token "${n}", but the current abort hook expects "${this[F]}"`,{eventId:t.eventId}))}),Q.Finished;if(t.eventType===`hook_created`){let t=e.invocationsQueue.get(i);return t&&t.type===`hook`&&(t.hasCreatedEvent=!0),Q.Consumed}if(t.eventType===`hook_received`){let n=t.eventData?.payload,r=e.eventsConsumer.eventIndex,a=ee(e,r,`hook`),o=ne(e,r,`hook`);return e.pendingDeliveries++,e.promiseQueue=e.promiseQueue.then(async()=>{let r;try{if(n!==void 0)try{let i=await e.replayPayloadCache.prepareEventPayload(t.eventId,`payload`,n),a=await Cc(n,e.runId,e.encryptionKey,e.globalThis,{},i);a&&typeof a==`object`&&`reason`in a&&(r=a.reason)}catch{}}finally{e.pendingDeliveries--}o.then(()=>{a.markDelivered(),this.signal._setAborted(r)})}),e.invocationsQueue.delete(i),Q.Consumed}return t.eventType===`hook_disposed`?(e.invocationsQueue.delete(i),Q.Finished):Q.NotConsumed})}abort(t){if(!this.signal.aborted){this.signal._setAborted(t);for(let[,n]of e.invocationsQueue)if(n.type===`hook`&&n.token===this[F]){n.abortRequested=!0,n.abortReason=t;break}}}}}function Cs(){return{abort(e){let t=new xs(``,``);return t._setAborted(e??new DOMException(`The operation was aborted.`,`AbortError`)),t},any(e){let t=new xs(``,``),n=Array.from(e);for(let e of n)if(e.aborted)return t._setAborted(e.reason),t;let r=[],i=()=>{for(let{signal:e,listener:t}of r)e.removeEventListener&&e.removeEventListener(`abort`,t);r.length=0};for(let e of n){if(!e.addEventListener)continue;let n=()=>{t.aborted||(t._setAborted(e.reason),i())};r.push({signal:e,listener:n}),e.addEventListener(`abort`,n)}return t},timeout(){throw Error(`AbortSignal.timeout() is not supported in workflow functions. Use sleep() with an AbortController instead. See: /docs/errors/abort-signal-timeout-in-workflow`)}}}const ws=re();function Ts(e){try{return e.getReader({mode:`byob`}).releaseLock(),`bytes`}catch{}}function Es(e){return ss(e),e instanceof m&&e.cause!==void 0||e instanceof r&&e.cause!==void 0?e.cause:e}async function $(e,t){if(e.recorded)try{let n=await Xo();if(!n)return;let r=e.uncompressedBytes??0,i=e.storedBytes??0;n.setAttributes({...xo(t),...So(e.compressed??!1),...Co(e.codec??`none`),...wo(r),...To(i),...e.compressed&&r>0?Eo(1-i/r):{}})}catch{}}async function Ds(e){if(e.executions.length!==0)try{let t=await Xo();if(!t)return;let n=[...new Set(e.executions.map(e=>e.detail?`${e.kind} (${e.detail})`:e.kind))];t.setAttributes({...Do(e.executions.length),...Oo(n)})}catch{}}function Os(e,t){let n=new TextEncoder,r={resolved:!1,key:void 0},i;return new TransformStream({async transform(a,o){try{r.resolved||(r.key=await Vi(t),r.resolved=!0,Ri(r.key)&&(i=Xn(r.key.recipientPublicKey,r.key.aad)));let s=M(a,e),c=n.encode(s),l=K(W.DEVALUE_V1,c);i?l=K(W.SEALED,await i.seal(l)):r.key&&(l=await Hi(l,r.key));let u=new Uint8Array(4+l.length);new DataView(u.buffer).setUint32(0,l.length,!1),u.set(l,4),o.enqueue(u)}catch(e){if(h.is(e)){o.error(e);return}let{message:t,hint:n}=Z(`stream chunk`,e);o.error(new m(t,{hint:n,cause:e}))}}})}function ks(e,t){let n=new TextDecoder,r=new Uint8Array,i={resolved:!1,key:void 0},a;function o(e){let t=new Uint8Array(r.length+e.length);t.set(r,0),t.set(e,r.length),r=t}async function s(o){for(i.resolved||(i.key=await Vi(t),i.resolved=!0,zi(i.key)&&(a=Zn(i.key.keyPair,i.key.aad)));r.length>=4;){let t=new DataView(r.buffer,r.byteOffset,r.byteLength).getUint32(0,!1);if(r.length<4+t)break;let s=r.slice(4,4+t);r=r.slice(4+t);let{format:c,payload:l}=q(s);if(c===W.ENCRYPTED||c===W.SEALED){let e=c===W.SEALED;if(!(e?zi(i.key):Bi(i.key)!==void 0)){o.error(new h(e?`Sealed stream data encountered but no run keypair is available. Opening a sealed frame requires the run's own encryption key material.`:`Encrypted stream data encountered but no encryption key is available. Encryption is not configured or no key was provided for this run.`,{context:{operation:`decrypt`,byteLength:l.byteLength,formatPrefix:e?`encp`:`encr`}}));return}let t;try{t=e?await a.open(q(s).payload):await Wi(s,i.key)}catch(e){throw h.is(e)&&e.context&&(e.context.formatPrefix=c),e}({format:c,payload:l}=q(t))}if(c===W.DEVALUE_V1){let t=n.decode(l);o.enqueue(Ut(t,e))}}}return new TransformStream({async transform(t,i){if(r.length===0&&t.length>=4){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(0,!1);if(e>0&&e<1e8){o(t),await s(i);return}}else if(r.length>0){o(t),await s(i);return}let a=n.decode(t).split(`
15
+ `);for(let t of a)t.length>0&&i.enqueue(Ut(t,e))},async flush(e){r.length>0&&await s(e)}})}const As=1e8;function js(){return new TransformStream({transform(e,t){if(e.length===0)return;if(e.length>As){t.error(new r(`Byte-stream chunk of ${e.length} bytes exceeds the maximum framed chunk size (${As}). Split the data into smaller chunks before writing.`,{slug:`serialization-failed`}));return}let n=new Uint8Array(4+e.length);new DataView(n.buffer).setUint32(0,e.length,!1),n.set(e,4),t.enqueue(n)}})}function Ms(){let e=new Uint8Array;function t(t){let n=new Uint8Array(e.length+t.length);n.set(e,0),n.set(t,e.length),e=n}return new TransformStream({transform(n,i){for(n.length>0&&t(n);e.length>=4;){let t=new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(0,!1);if(t>As){i.error(new r(`Byte-stream frame length ${t} exceeds maximum (${As}). This usually means a non-framed byte stream is being read as framed.`,{slug:`serialization-failed`}));return}let n=4+t;if(e.length<n)break;i.enqueue(e.slice(4,n)),e=e.slice(n)}},flush(t){e.length>0&&t.error(new r(`Byte-stream ended with ${e.length} bytes of incomplete frame data. The stream was truncated mid-frame.`,{slug:`serialization-failed`}))}})}function Ns(e,t,n,r,i){(async()=>{await qo(`workflow.stream.read`,e,{kind:await Zo(`CLIENT`),attributes:{"workflow.run.id":t,"workflow.stream.name":n,"workflow.stream.operation":`read`,"workflow.stream.read.ttfc_ms":Date.now()-e,...typeof i==`number`?{"workflow.stream.read.connect_ms":i}:{},...typeof r==`number`?{"workflow.stream.start_index":r}:{}}})})()}function Ps(e,t,n,r,i,a){(async()=>{await qo(`workflow.stream.read.complete`,e,{kind:await Zo(`CLIENT`),attributes:{"workflow.run.id":t,"workflow.stream.name":n,"workflow.stream.operation":`read_complete`,"workflow.stream.read.total_ms":Date.now()-e,"workflow.stream.read.chunks":r,"workflow.stream.read.bytes":i,...typeof a==`number`?{"workflow.stream.read.reconnects":a}:{}}})})()}var Fs=class extends ReadableStream{#e;constructor(e,t,n){if(typeof t!=`string`||t.length===0)throw new r(`"name" is required, got "${t}"`);let i,a=!1,o,s=0,c=0;super({type:`bytes`,pull:async r=>{let l=this.#e;if(!l){i===void 0&&(i=Date.now());let r=await Mn(),a=Date.now(),s=await r.streams.get(e,t,n);o=Date.now()-a,l=this.#e=s.getReader()}if(!l){r.error(Error(`Failed to get reader`));return}let u=await l.read();u.done?(this.#e=void 0,i!==void 0&&Ps(i,e,t,s,c),r.close()):(!a&&u.value.byteLength>0&&i!==void 0&&(a=!0,Ns(i,e,t,n,o)),s+=1,c+=u.value.byteLength,r.enqueue(u.value))},cancel:async e=>{this.#e&&=(await this.#e.cancel(e).catch(()=>{}),void 0)}})}};const Is=()=>S(`WORKFLOW_FRAMED_STREAM_MAX_RECONNECTS`,50,{integer:!0,min:1}),Ls=()=>S(`WORKFLOW_FRAMED_STREAM_MAX_TOTAL_RECONNECTS`,1e3,{integer:!0,min:1});function Rs(e,t,n){let r=n===void 0||n>=0,i=n??0,a=0,o=0,s=0,c,l=new Uint8Array,u,d,f=!1,p=0,m=0;async function h(){let o=await Mn(),s=r?i+a:n,l=Date.now(),u=await o.streams.get(e,t,s);d===void 0&&(d=Date.now()-l),c=u.getReader()}async function g(){c&&=(await c.cancel().catch(()=>{}),void 0),i+=a,a=0,l=new Uint8Array;let e=Is(),n=Ls();for(;;){if(o++,s++,o>e)throw Error(`Stream "${t}" exceeded maximum reconnection attempts (${e})`);if(s>n)throw Error(`Stream "${t}" exceeded maximum total reconnection attempts (${n})`);try{await h();return}catch{}}}return new ReadableStream({pull:async i=>{for(u===void 0&&(u=Date.now());;){if(!c)try{await h()}catch(e){i.error(e);return}let _;try{_=await c.read()}catch(e){if(!r){i.error(e);return}try{await g()}catch(e){i.error(e);return}continue}if(_.done||!_.value){c=void 0,u!==void 0&&Ps(u,e,t,p,m,s),i.close();return}let v=_.value;if(v.length>0){let e=new Uint8Array(l.length+v.length);e.set(l,0),e.set(v,l.length),l=e}let y=!1;for(;l.length>=4;){let r=4+new DataView(l.buffer,l.byteOffset,l.byteLength).getUint32(0,!1);if(l.length<r)break;i.enqueue(l.slice(0,r)),l=l.slice(r),a++,p++,m+=r,!f&&u!==void 0&&(f=!0,Ns(u,e,t,n,d)),y=!0}if(y){o=0;return}}},cancel:async()=>{c&&=(await c.cancel().catch(e=>{console.warn(`Error closing ReadableStream reader:`,e)}),void 0)}})}const zs=()=>{let e=S(`WORKFLOW_STREAM_FLUSH_INTERVAL_MS`,NaN,{integer:!0});return Number.isNaN(e)?void 0:e};function Bs(e,t,n,r,i,a,o){(async()=>{await qo(`workflow.stream.flush`,e,{kind:await Zo(`CLIENT`),attributes:{"workflow.run.id":n,"workflow.stream.name":r,"workflow.stream.operation":`flush`,"workflow.stream.flush.buffer_dwell_ms":t-e,"workflow.stream.flush.chunks":i,"workflow.stream.flush.bytes":a,"workflow.stream.write.chunk_rtt":o}})})()}function Vs(e,t,n){(async()=>{await qo(`workflow.stream.close`,e,{kind:await Zo(`CLIENT`),attributes:{"workflow.run.id":t,"workflow.stream.name":n,"workflow.stream.operation":`close`,"workflow.stream.close.rpc_ms":Date.now()-e}})})()}var Hs=class extends WritableStream{constructor(e,t,n){if(typeof e!=`string`)throw new r(`"runId" must be a string, got "${typeof e}"`);if(typeof t!=`string`||t.length===0)throw new r(`"name" is required, got "${t}"`);let i=Mn(),a=n,o=async()=>{if(a){try{await a}catch{}a=void 0}},s=[],c=0,l=0,u=0,d=null,f=null,p,m=zs(),h=null,g=gn(),_=_n(),v=hn(),y=vn(),b,ee=[],te=[],ne=e=>{let t=[...ee,...te];ee=[],te=[];for(let n of t)n.reject(e)},re=()=>{let e=0,t=0;for(let n of s){if(e>=g||e>0&&t+n.byteLength>_)break;e++,t+=n.byteLength}let n=s.slice(0,e);return s=s.slice(e),c-=t,{group:n,bytes:t}},ie=async(n,r,a)=>{await o();let s=await i,c=Date.now();if(typeof s.streams.writeMulti==`function`&&n.length>1)await s.streams.writeMulti(e,t,n);else for(let r of n)await s.streams.write(e,t,r);a!==void 0&&Bs(a,c,e,t,n.length,r,Date.now()-c)},ae=async()=>{for(;s.length>0;){d&&=(clearTimeout(d),null);let e=b,t=Date.now(),{group:n,bytes:r}=re();l=n.length,u=r,b=s.length>0?t:void 0;try{await ie(n,r,e),l=0,u=0}catch(t){throw s=n.concat(s),c+=r,l=0,u=0,b=e!==void 0&&b!==void 0?Math.min(e,b):e??b,t}let i=ee;ee=[];for(let e of i)e.resolve()}},x=()=>{f||p!==void 0||s.length===0||(f=ae().then(()=>{if(f=null,s.length>0){x();return}let e=te;te=[];for(let t of e)t.resolve()},e=>{f=null,p??=e,ne(p)}))},oe=()=>{if(!(d||f)){if(m===void 0){h??=Promise.resolve(i).then(e=>{m=e.streamFlushIntervalMs??0},()=>{m=0}).then(()=>{s.length>0&&oe()});return}if(m<=0){x();return}d=setTimeout(()=>{d=null,x()},m)}},S=async()=>{for(;;){if(p!==void 0)throw p;if(s.length===0&&!f)return;x(),await new Promise((e,t)=>{te.push({resolve:e,reject:t})})}};super({async write(e){if(p!==void 0)throw p;for(b===void 0&&(b=Date.now()),s.push(e),c+=e.byteLength,s.length>=g||c>=_?x():oe();p===void 0&&(s.length+l>=v||c+u>=y);)x(),await new Promise((e,t)=>{ee.push({resolve:e,reject:t})});if(p!==void 0)throw p},async close(){await S(),await o();let n=await i,r=Date.now();await n.streams.close(e,t),Vs(r,e,t)},async abort(e){try{await S()}catch{}d&&=(clearTimeout(d),null),s=[],c=0,p??=e??Error(`Stream aborted`),ne(p)}}),Object.defineProperty(this,ln,{value:S,enumerable:!1,writable:!1})}};function Us(e=globalThis){let t=b(()=>Js(e,`Request`)),n=b(()=>Js(e,`Response`));return{...Qr(),...li(),...si(e),Request:e=>{if(!V(e,t.value))return!1;let n={method:B(e,`method`),url:B(e,`url`),headers:B(e,`headers`),body:B(e,`body`),duplex:B(e,`duplex`)},r=B(e,dn);r&&(n.responseWritable=r);let i=B(e,`signal`);return i&&(B(i,`aborted`)||B(i,P))&&(n.signal=i),n},Response:e=>V(e,n.value)?{type:B(e,`type`),url:B(e,`url`),status:B(e,`status`),statusText:B(e,`statusText`),headers:B(e,`headers`),body:B(e,`body`),redirected:B(e,`redirected`)}:!1}}function Ws(e,t,n,r,i,a){let o=t[P],s=t[F];if(!o){let e=(n[nn]||ws)();o=_s(e),s=`abrt_${e}`,t[P]=o,t[F]=s,t.signal&&(t.signal[P]=o,t.signal[F]=s)}return Ks(e,o,i,a,r),{streamName:o,hookToken:s,aborted:e.aborted,reason:e.aborted?e.reason:void 0}}function Gs(e,t){let n=t[P]??t.signal?.[P],r=t[F]??t.signal?.[F];if(!n)throw Error(`AbortController/AbortSignal stream name is not set`);return{streamName:n,hookToken:r,aborted:e.aborted,reason:e.aborted?e.reason:void 0}}function Ks(e,t,n,r,i){e.aborted||e[pn]||(e[pn]=!0,e.addEventListener(`abort`,()=>{i.push((async()=>{try{let i=await Vi(r),a=await gc({aborted:!0,reason:e.reason},n,i),o=new Hs(n,t).getWriter();await o.write(a),await o.close()}catch{}})())},{once:!0}))}function qs(e=globalThis,t,n,r,i=!1,a){return{...Us(e),ReadableStream:o=>{if(!(o instanceof e.ReadableStream))return!1;if(o.locked)throw new m(`ReadableStream is locked and cannot be passed across a workflow boundary.`,{hint:`Pass the stream before calling .getReader() / .pipeThrough() / .pipeTo(), or tee it with .tee() and pass one of the branches.`});let s=`strm_${(e[nn]||ws)()}`,c=Ts(o),l=new Hs(n,s,a);c===`bytes`?i?t.push(o.pipeThrough(js()).pipeTo(l)):t.push(o.pipeTo(l)):t.push(o.pipeThrough(Os(qs(e,t,n,r,i,a),r)).pipeTo(l));let u={name:s};return c&&(u.type=c),c===`bytes`&&i&&(u.framing=`framed-v1`),u},WritableStream:r=>{if(!(r instanceof e.WritableStream))return!1;let i=r[N],a=r[on];if(typeof i==`string`&&typeof a==`string`){let e={name:i,runId:a},t=r[cn];typeof t==`string`&&(e.encryptionPublicKey=t);let n=r[sn];return typeof n==`string`&&(e.deploymentId=n),e}let o=`strm_${(e[nn]||ws)()}`,s=new Fs(n,o);return t.push(s.pipeTo(r)),{name:o}},AbortController:i=>!e.AbortController||typeof e.AbortController!=`function`||!(i instanceof e.AbortController)?!1:Ws(i.signal,i,e,t,n,r),AbortSignal:i=>!e.AbortSignal||typeof e.AbortSignal!=`function`||!(i instanceof e.AbortSignal)?!1:Ws(i,i,e,t,n,r)}}function Js(e,t){let n=B(e,t)??B(globalThis,t);if(typeof n==`function`)return B(n,`prototype`)}function Ys(e=globalThis){let t=b(()=>Js(e,`ReadableStream`)),n=b(()=>Js(e,`WritableStream`)),i=b(()=>Js(e,`AbortController`)),a=b(()=>Js(e,`AbortSignal`));return{...Us(e),ReadableStream:e=>{if(!V(e,t.value))return!1;let n=B(e,un);if(n!==void 0)return{bodyInit:n};let i=B(e,N);if(!i)throw new r("ReadableStream `name` is not set");let a={name:i},o=B(e,rn);o&&(a.type=o);let s=B(e,an);return s&&(a.framing=s),a},WritableStream:e=>{if(!V(e,n.value))return!1;let t=B(e,N);if(!t)throw new r("WritableStream `name` is not set");let i={name:t},a=B(e,on);typeof a==`string`&&(i.runId=a);let o=B(e,sn);typeof o==`string`&&(i.deploymentId=o);let s=B(e,cn);return typeof s==`string`&&(i.encryptionPublicKey=s),i},AbortController:e=>{if(typeof e!=`object`||!e)return!1;let t=e,n=B(e,P),r=V(e,i.value);if(n===void 0&&!r){let t=B(e,`signal`);if(typeof t!=`object`||!t||B(t,P)===void 0)return!1}let a=B(e,`signal`);return a?Gs(a,t):!1},AbortSignal:e=>{if(typeof e!=`object`||!e)return!1;let t=B(e,P)!==void 0,n=V(e,a.value);return!t&&!n?!1:Gs(e,e)}}}function Xs(e=globalThis,t,n,r,i=!1,a){return{...Us(e),ReadableStream:o=>{if(!(o instanceof e.ReadableStream))return!1;if(o.locked)throw new m(`ReadableStream is locked and cannot be passed across a workflow boundary.`,{hint:`Pass the stream before calling .getReader() / .pipeThrough() / .pipeTo(), or tee it with .tee() and pass one of the branches.`});let s=o[N],c=o[rn],l=o[an];if(!s){s=`strm_${(e[nn]||ws)()}`,c=Ts(o),l=c===`bytes`&&i?`framed-v1`:l;let u=new Hs(n,s,a);c===`bytes`?l===`framed-v1`?t.push(o.pipeThrough(js()).pipeTo(u)):t.push(o.pipeTo(u)):t.push(o.pipeThrough(Os(Xs(e,t,n,r,i,a),r)).pipeTo(u))}let u={name:s};return c&&(u.type=c),l&&(u.framing=l),u},WritableStream:i=>{if(!(i instanceof e.WritableStream))return!1;let a=i[N],o=i[on];a||(a=`strm_${(e[nn]||ws)()}`,t.push(new Fs(n,a).pipeThrough(ks(sc(e,t,n,r),r)).pipeTo(i)));let s={name:a};typeof o==`string`&&(s.runId=o);let c=i[cn];typeof c==`string`&&(s.encryptionPublicKey=c);let l=i[sn];return typeof l==`string`&&(s.deploymentId=l),s},AbortController:i=>!e.AbortController||typeof e.AbortController!=`function`||!(i instanceof e.AbortController)?!1:Ws(i.signal,i,e,t,n,r),AbortSignal:i=>!e.AbortSignal||typeof e.AbortSignal!=`function`||!(i instanceof e.AbortSignal)?!1:Ws(i,i,e,t,n,r)}}function Zs(...e){let t=new WeakSet;function n(e){let t=e[mn];t&&!t.signal.aborted&&t.abort()}function r(e){if(!(typeof e!=`object`||!e)&&!t.has(e)){if(t.add(e),e instanceof AbortController){n(e),n(e.signal);return}if(e instanceof AbortSignal){n(e);return}if(Array.isArray(e)){for(let t of e)r(t);return}if(e instanceof Map){for(let t of e.values())r(t);return}if(e instanceof Set){for(let t of e)r(t);return}if(typeof Request<`u`&&e instanceof Request){r(e.signal);return}for(let t of Object.values(e))r(t)}}for(let t of e)r(t)}function Qs(e,t,n,r){let i=new AbortController;return r.push((async()=>{try{let r=new Fs(t,n).getReader(),a=await Promise.race([r.read(),new Promise(e=>{if(i.signal.aborted){e({value:void 0,done:!0});return}i.signal.addEventListener(`abort`,()=>e({value:void 0,done:!0}),{once:!0})})]);if(a.value&&!a.done){try{r.releaseLock()}catch{}try{let n=ms.getStore(),r=await _c(a.value,t,n?.encryptionKey);e.abort(r?.reason)}catch{e.abort()}}else r.cancel().catch(()=>{})}catch{}})()),i}function $s(e,t,n){let r=e,i=e.signal;r[P]=t.streamName,r[F]=t.hookToken,i[P]=t.streamName,i[F]=t.hookToken,n&&(r[mn]=n,i[mn]=n)}function ec(e,t){let n=e,r=t;n[P]!==void 0&&(r[P]=n[P]),n[F]!==void 0&&(r[F]=n[F]),n[mn]!==void 0&&(r[mn]=n[mn])}function tc(e,t,n){let r=new AbortController;e.aborted?($s(r,e),r.abort(e.reason)):e.streamName?$s(r,e,Qs(r,n,e.streamName,t)):$s(r,e);let i=r.abort.bind(r);return r.abort=t=>{if(r.signal.aborted)return;i(t);let n=ms.getStore();if(n&&(n.ops.push((async()=>{try{let r=await gc({aborted:!0,reason:t},n.workflowMetadata.workflowRunId,n.encryptionKey),i=new Hs(n.workflowMetadata.workflowRunId,e.streamName).getWriter();await i.write(r),await i.close()}catch{}})()),e.hookToken)){let r=(async()=>{try{let{resumeHook:n}=await import(`./resume-hook-CT0keOww.js`).then(e=>e.i);await n(e.hookToken,{aborted:!0,reason:t})}catch{}})();n.preCompletionOps.push(r)}},r}function nc(e,t,n){let r=new AbortController;return e.aborted?($s(r,e),r.abort(e.reason)):e.streamName?$s(r,e,Qs(r,n,e.streamName,t)):$s(r,e),r.signal}function rc(e=globalThis){return{...$r(e),...ci(e)}}async function ic(e,t,n){let r=$n(n);if(r)return Fi(r);let i=await Mn();if(!i.getEncryptionKeyForRun)return;let a=t?await i.getEncryptionKeyForRun(e,{deploymentId:t}):await i.getEncryptionKeyForRun(await i.runs.get(e));return a?await Jt(a,[`encrypt`]):void 0}function ac(e=globalThis,t,n,r){return{...rc(e),StepFunction:()=>{throw new m(`Step functions cannot be deserialized in client context. Step functions should not be returned from workflows.`,{hint:`A step function reference reached the client. Return a serializable value (e.g. the step result) instead of the step itself.`})},WorkflowFunction:e=>Object.assign(()=>{throw new m(`Workflow functions cannot be called directly. Use start() to invoke them.`,{hint:"Wrap the workflow with `start(workflowFn, { ... })` from `workflow` to begin a run instead of invoking it like a normal function."})},{workflowId:e.workflowId}),Request:t=>{let n={method:t.method,headers:new e.Headers(t.headers),body:t.body,duplex:t.duplex};t.signal&&(n.signal=t.signal);let r=new e.Request(t.url,n);return t.signal&&ec(t.signal,r.signal),r},Response:t=>new e.Response(t.body,{status:t.status,statusText:t.statusText,headers:new e.Headers(t.headers)}),ReadableStream:i=>{if(`bodyInit`in i){let t=i.bodyInit;return new e.Response(t).body}if(i.type===`bytes`){let r=new Fs(n,i.name,i.startIndex),a=bn();t.push(a.promise);let{readable:o,writable:s}=i.framing===`framed-v1`?Ms():new e.TransformStream;return En(r,s,a).catch(()=>{}),Tn(o,a),o}else{let a=Rs(n,i.name,i.startIndex),o=ks(ac(e,t,n,r),r),s=bn();return t.push(s.promise),En(a,o.writable,s).catch(()=>{}),Tn(o.readable,s),o.readable}},WritableStream:i=>{let a=typeof i.runId==`string`?i.runId:n,o=a===n?r:ic(a,i.deploymentId,i.encryptionPublicKey),s=Os(qs(e,t,a,o),o),c=new Hs(a,i.name),l=bn();return t.push(l.promise),En(s.readable,c,l).catch(()=>{}),wn(s.writable,l),Object.defineProperty(s.writable,N,{value:i.name,writable:!1}),Object.defineProperty(s.writable,on,{value:a,writable:!1}),typeof i.deploymentId==`string`&&Object.defineProperty(s.writable,sn,{value:i.deploymentId,writable:!1}),typeof i.encryptionPublicKey==`string`&&Object.defineProperty(s.writable,cn,{value:i.encryptionPublicKey,writable:!1}),s.writable},AbortController:e=>tc(e,t,n),AbortSignal:e=>nc(e,t,n)}}function oc(e=globalThis){return{...rc(e),...ui(e),Request:t=>{Object.setPrototypeOf(t,e.Request.prototype);let n=t.responseWritable;return n&&(t[dn]=n,delete t.responseWritable,t.respondWith=()=>{throw new m("`respondWith()` must be called from within a step function.",{hint:'Move the `respondWith(...)` call inside a `"use step"` function — it cannot be invoked from a workflow context.'})}),t},WorkflowFunction:e=>Object.assign(()=>{throw new m(`Workflow functions cannot be called directly. Use start() to invoke them.`,{hint:"Wrap the workflow with `start(workflowFn, { ... })` from `workflow` to begin a run instead of invoking it like a normal function."})},{workflowId:e.workflowId}),Response:t=>(Object.setPrototypeOf(t,e.Response.prototype),t),ReadableStream:t=>`bodyInit`in t?Object.create(e.ReadableStream.prototype,{[un]:{value:t.bodyInit,writable:!1}}):Object.create(e.ReadableStream.prototype,{[N]:{value:t.name,writable:!1},[rn]:{value:t.type,writable:!1},[an]:{value:t.framing,writable:!1}}),WritableStream:t=>{let n={[N]:{value:t.name,writable:!1}};return typeof t.runId==`string`&&(n[on]={value:t.runId,writable:!1}),typeof t.deploymentId==`string`&&(n[sn]={value:t.deploymentId,writable:!1}),typeof t.encryptionPublicKey==`string`&&(n[cn]={value:t.encryptionPublicKey,writable:!1}),Object.create(e.WritableStream.prototype,n)},AbortController:e=>{let t=new xs(e.streamName,e.hookToken);return e.aborted&&t._setAborted(e.reason),{[P]:e.streamName,[F]:e.hookToken,signal:t,abort:()=>{}}},AbortSignal:e=>{let t=new xs(e.streamName,e.hookToken);return e.aborted&&t._setAborted(e.reason),t}}}function sc(e=globalThis,t,n,i,a){return{...rc(e),StepFunction:e=>{let t=e.stepId,n=e.closureVars,i=`boundThis`in e,a=i?e.boundThis:void 0,o=Array.isArray(e.boundArgs)?e.boundArgs:[],s=y(t);if(!s)throw new m(`Step function "${t}" not found. Make sure the step function is registered.`,{hint:`Make sure the step file is included in your build (i.e. it is listed in the workflow manifest), and that the SWC plugin is configured for the file.`});if(!n&&!i&&o.length===0)return s;let c=function(...e){let t=i?a:this,c=o.length>0?[...o,...e]:e;if(n){let e=ms.getStore();if(!e)throw new r(`Cannot call step function with closure variables outside step context`);let i={...e,closureVars:n};return ms.run(i,()=>s.apply(t,c))}return s.apply(t,c)};return Object.defineProperty(c,"name",{value:s.name}),Object.defineProperty(c,"stepId",{value:t,writable:!1,enumerable:!1,configurable:!1}),s.maxRetries!==void 0&&(c.maxRetries=s.maxRetries),c},WorkflowFunction:e=>Object.assign(()=>{throw new m(`Workflow functions cannot be called directly. Use start() to invoke them.`,{hint:"Wrap the workflow with `start(workflowFn, { ... })` from `workflow` to begin a run instead of invoking it like a normal function."})},{workflowId:e.workflowId}),Request:t=>{let n=t.responseWritable,r={method:t.method,headers:new e.Headers(t.headers),body:t.body,duplex:t.duplex};t.signal&&(r.signal=t.signal);let i=new e.Request(t.url,r);return t.signal&&ec(t.signal,i.signal),n&&(i.respondWith=async e=>{let t=n.getWriter();await t.write(e),await t.close()}),i},Response:t=>new e.Response(t.body,{status:t.status,statusText:t.statusText,headers:new e.Headers(t.headers)}),ReadableStream:r=>{if(`bodyInit`in r){let t=r.bodyInit;return new e.Response(t).body}let o=new Fs(n,r.name);if(r.type===`bytes`){let n=bn();t.push(n.promise);let{readable:i,writable:a}=r.framing===`framed-v1`?Ms():new e.TransformStream;return En(o,a,n).catch(()=>{}),Tn(i,n),i}else{let r=ks(sc(e,t,n,i,a),i),s=bn();return t.push(s.promise),En(o,r.writable,s).catch(()=>{}),Tn(r.readable,s),r.readable}},WritableStream:r=>{let o=typeof r.runId==`string`?r.runId:n,s=typeof r.deploymentId==`string`?r.deploymentId:o===n?a:void 0,c=o===n?i:ic(o,s,r.encryptionPublicKey),l=Os(Xs(e,t,o,c),c),u=new Hs(o,r.name),d=bn();return t.push(d.promise),En(l.readable,u,d).catch(()=>{}),wn(l.writable,d),Object.defineProperty(l.writable,N,{value:r.name,writable:!1}),Object.defineProperty(l.writable,on,{value:o,writable:!1}),s&&Object.defineProperty(l.writable,sn,{value:s,writable:!1}),typeof r.encryptionPublicKey!=`string`&&o===n&&zi(i)&&Object.defineProperty(l.writable,cn,{value:Hn(i.keyPair.publicKey),writable:!1}),typeof r.encryptionPublicKey==`string`&&Object.defineProperty(l.writable,cn,{value:r.encryptionPublicKey,writable:!1}),l.writable},AbortController:e=>tc(e,t,n),AbortSignal:e=>nc(e,t,n)}}async function cc(e,t){return await Hi(e,t)}const lc=async(e,t)=>{let n={},r=await Mi(await Wi(e,t),n);return await $(n,`deserialize`),{data:r}};function uc(e,t=globalThis,n={}){return fs(e.data,{global:t,extraRevivers:{...Ec(oc(t)),...n}})}function dc(e,t=globalThis,n={}){let{data:r}=e;if(!(r instanceof Uint8Array))return Wt(r,{...oc(t),...n});let{format:i,payload:a}=q(r);if(i===W.DEVALUE_V1)return Ut(new TextDecoder().decode(a),{...oc(t),...n});throw Error(`Unsupported serialization format: ${i}`)}async function fc(e,t,n,r=[],i=globalThis,a=!1,o=!1,s=!1){if(a)return ti(M(e,qs(i,r,t,n,o)));try{let a={},c=await cs(e,n,{global:i,extraReducers:Tc(qs(i,r,t,n,o)),compression:s,compressionStats:a});return await $(a,`serialize`),c}catch(e){let t=Es(e),{message:n,hint:r}=Z(`workflow arguments`,t);throw new m(n,{hint:r,cause:t})}}async function pc(e,t,n,r=globalThis,i={},a){return uc(a??await lc(e,n),r,i)}async function mc(e,t,n,r=globalThis,i=!1,a=!1,o){if(i)return ti(M(e,Ys(r)));try{let t={},i=o??{executions:[]},s=await us(e,n,{global:r,extraReducers:Tc(Ys(r)),compression:a,compressionStats:t,guestCodeStats:i});return await $(t,`serialize`),await Ds(i),s}catch(e){let t=Es(e),{message:n,hint:r}=Z(`workflow return value`,t);throw new m(n,{hint:r,cause:t})}}async function hc(e,t,n,r=[],i=globalThis,a={}){let o={},s=await ls(e,n,{global:i,extraRevivers:{...Ec(ac(i,r,t,n)),...a},compressionStats:o});return await $(o,`deserialize`),s}async function gc(e,t,n,r=globalThis,i=!1,a=!1,o){if(i)return ti(M(e,Ys(r)));try{let t={},i=o??{executions:[]},s=await us(e,n,{global:r,extraReducers:Tc(Ys(r)),compression:a,compressionStats:t,guestCodeStats:i});return await $(t,`serialize`),await Ds(i),s}catch(e){let t=Es(e),{message:n,hint:r}=Z(`step arguments`,t);throw new m(n,{hint:r,cause:t})}}async function _c(e,t,n,r=[],i=globalThis,a={},o){let s={},c=await ds(e,n,{global:i,extraRevivers:{...Ec(sc(i,r,t,n,o)),...a},compressionStats:s});return await $(s,`deserialize`),c}async function vc(e,t,n,r=[],i=globalThis,a=!1,o=!1,s=!1,c){if(a)return ti(M(e,Xs(i,r,t,n,o,c)));try{let a={},l=await us(e,n,{global:i,extraReducers:Tc(Xs(i,r,t,n,o,c)),compression:s,compressionStats:a});return await $(a,`serialize`),l}catch(e){let t=Es(e),{message:n,hint:r}=Z(`step return value`,t);throw new m(n,{hint:r,cause:t})}}async function yc(e,t,n,r=[],i=globalThis,a=!1){try{let o=M(e,Xs(i,r,t,n)),s=new TextEncoder().encode(o),c=K(W.DEVALUE_V1,s),l={},u=await cc(await ji(c,a,l),n);return await $(l,`serialize`),u}catch(e){let t=Es(e),{message:n,hint:r}=Z(`step error`,t);throw new m(n,{hint:r,cause:t})}}async function bc(e,t,n,r=globalThis,i={},a){return dc(a??await lc(e,n),r,i)}async function xc(e,t,n,r=globalThis,i=!1){try{let t=M(e,Ys(r)),a=new TextEncoder().encode(t),o=K(W.DEVALUE_V1,a),s={},c=await cc(await ji(o,i,s),n);return await $(s,`serialize`),c}catch(e){let t=Es(e),{message:n,hint:r}=Z(`run error`,t);throw new m(n,{hint:r,cause:t})}}async function Sc(e,t,n,r=[],i=globalThis,a={}){let o={},s=await Mi(await Wi(e,n),o);if(await $(o,`deserialize`),!(s instanceof Uint8Array))return Wt(s,{...ac(i,r,t,n),...a});let{format:c,payload:l}=q(s);if(c===W.DEVALUE_V1)return Ut(new TextDecoder().decode(l),{...ac(i,r,t,n),...a});throw Error(`Unsupported serialization format: ${c}`)}async function Cc(e,t,n,r=globalThis,i={},a){return uc(a??await lc(e,n),r,i)}const wc=[`ReadableStream`,`WritableStream`,`Request`,`Response`,`StepFunction`,`AbortController`,`AbortSignal`];function Tc(e){let t={};for(let n of wc)n in e&&(t[n]=e[n]);return t}function Ec(e){let t={};for(let n of wc)n in e&&(t[n]=e[n]);return t}const Dc=[{format:W.ENCRYPTED,minVersion:`4.2.0-beta.64`},{format:W.GZIP,minVersion:`5.0.0-beta.18`},{format:W.ZSTD,minVersion:`5.0.0-beta.18`},{format:W.SEALED,minVersion:`5.0.0-beta.37`}],Oc=[{capability:`framedByteStreams`,minVersion:`5.0.0-beta.15`}],kc=new Set([W.DEVALUE_V1]);function Ac(e){if(!e||!qt.default.valid(e))return{supportedFormats:kc,framedByteStreams:!1};let t=new Set(kc);for(let{format:n,minVersion:r}of Dc)qt.default.gte(e,r)&&t.add(n);let n={supportedFormats:t,framedByteStreams:!1};for(let{capability:t,minVersion:r}of Oc)qt.default.gte(e,r)&&(n[t]=!0);return n}const jc=new Set([`PARSE_ERROR`,`SCHEMA_VALIDATION`,f.WORLD_CONTRACT_ERROR]),Mc=new Set([`TRANSPORT`,`TIMEOUT`]),Nc=[r.is,u.is,a.is,h.is];function Pc(e){if(!i.is(e)||e.status!==void 0)return!1;let t=`cause`in e?e.cause:void 0;return e.code!==void 0&&jc.has(e.code)||e.message.startsWith(`Failed to parse response body for `)||e.message.startsWith(`Schema validation failed for `)||typeof t==`object`&&!!t&&`name`in t&&t.name===`ZodError`}function Fc(e){return l.is(e)?!0:i.is(e)?e.status!==void 0&&e.status>=500||e.code!==void 0&&Mc.has(e.code):!1}function Ic(e){if(p.is(e))return f.REPLAY_DIVERGENCE;if(_.is(e))return f.CORRUPTED_EVENT_LOG;if(g.is(e))return f.MAX_EVENTS_EXCEEDED;if(s.is(e))return f.DEPLOYMENT_MISMATCH;if(Pc(e)||Fc(e))return f.WORLD_CONTRACT_ERROR;for(let t of Nc)if(t(e))return f.RUNTIME_ERROR;return f.USER_ERROR}const Lc=`5.0.0-beta.40`,Rc=/^[a-zA-Z0-9_\-./@]+$/;function zc(e,t){if(!Rc.test(e))throw Error(`Invalid workflow name "${e}": must only contain alphanumeric characters, underscores, hyphens, dots, forward slashes, or at signs`);return`${oe(`workflow`,x(t))}${e}`}const Bc=re();function Vc(e){return`__health_check__${e}`}function Hc(e){let t=ie.safeParse(e);if(t.success)return t.data}function Uc(e){return`wrun_hc_${e}`}async function Wc(e,t){let n=await Mn(),r=Vc(e.correlationId),i;if(e.runId)try{let t=await n.getEncryptionKeyForRun?.(e.runId);t&&(i=Hn((await Ln(t)).publicKey))}catch(t){X.warn(`Health check could not derive a run public key; the caller will fall back to a key lookup`,{correlationId:e.correlationId,error:t instanceof Error?t.message:String(t)})}let a=JSON.stringify({healthy:!0,correlationId:e.correlationId,specVersion:t??5,workflowCoreVersion:Lc,hookResumeInputVersion:1,...i?{encryptionPublicKey:i}:{},timestamp:Date.now()}),o=Uc(e.correlationId);await n.streams.write(o,r,a),await n.streams.close(o,r)}function Gc(e,t){let n;return Promise.race([e,new Promise((e,r)=>{n=setTimeout(()=>r(Error(`Operation timed out after ${t}ms`)),t)})]).finally(()=>clearTimeout(n))}async function Kc(e,t){let n=[],r=!1,i=!1;for(;!r&&!i;){let a=e.read(),o=new Promise(e=>setTimeout(()=>{i=!0,e({done:!0,value:void 0})},t)),s=await Promise.race([a,o]);r=s.done,s.value&&n.push(s.value)}return{chunks:n,timedOut:i}}function qc(e){if(e.length===0)return null;let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;let i=new TextDecoder().decode(n),a;try{a=JSON.parse(i)}catch{return i.length>0?{healthy:!0}:null}if(typeof a!=`object`||!a||!(`healthy`in a)||typeof a.healthy!=`boolean`)return null;let o=a,s={healthy:o.healthy};return typeof o.specVersion==`number`&&(s.specVersion=o.specVersion),typeof o.workflowCoreVersion==`string`&&(s.workflowCoreVersion=o.workflowCoreVersion),typeof o.encryptionPublicKey==`string`&&(s.encryptionPublicKey=o.encryptionPublicKey),typeof o.hookResumeInputVersion==`number`&&(s.hookResumeInputVersion=o.hookResumeInputVersion),s}async function Jc(e,t){let n=t?.timeout??3e4,r=e.createRunId?.()??Bc(),i=Vc(r),a=`${oe(`workflow`,x(t?.namespace))}health_check`,o=Date.now();try{for(await e.queue(a,{__healthCheck:!0,correlationId:r,...t?.runId?{runId:t.runId}:{}},{specVersion:1,deploymentId:t?.deploymentId});Date.now()-o<n;)try{let t=n-(Date.now()-o),a=(await Gc(e.streams.get(Uc(r),i),t)).getReader(),{chunks:s,timedOut:c}=await Kc(a,500);if(c){try{a.cancel()}catch{}await new Promise(e=>setTimeout(e,100));continue}let l=qc(s);if(l)return{...l,latencyMs:Date.now()-o};await new Promise(e=>setTimeout(e,100))}catch{await new Promise(e=>setTimeout(e,100))}return{healthy:!1,error:`Health check timed out after ${n}ms`}}catch(e){return{healthy:!1,error:e instanceof Error?e.message:String(e)}}}function Yc(e,t){return new i(`Event pagination ${t} for workflow run "${e}".`,{code:f.WORLD_CONTRACT_ERROR})}function Xc(e,t,n){if(t){if(n.has(t))throw Yc(e,`did not advance`);n.add(t)}}function Zc(e,t,n){if(t.length===0)return;let r=n??new Set(e.map(e=>e.eventId));for(let n of t)r.has(n.eventId)||(r.add(n.eventId),e.push(n))}function Qc(e,t){let n=e.length;for(;n>0;){let r=e[n-1];if(r.eventId===t.eventId)return;if(r.eventId<t.eventId)break;n--}e.splice(n,0,t)}function $c(e,t,n,r){if(t){if(n===null)throw Yc(e,`returned more pages without a cursor`);if(r.has(n))throw Yc(e,`repeated a cursor`)}}function el(e,t,n){return t!==null&&!n&&i.is(e)&&e.status===400}async function tl(e,t){let n=t!==void 0;return Ko(n?`workflow.loadNewEvents`:`workflow.loadEvents`,async r=>{r?.setAttributes({...ra(e)});let i=[],a=new Set,o=new Set,s=t??null,c=!0,l=0,u=!1,d=await Mn(),f=Date.now();for(;c;){let t=Date.now(),r=s;Xc(e,r,o);let f;try{f=await d.events.list({runId:e,pagination:{sortOrder:`asc`,cursor:r??void 0}})}catch(t){if(el(t,r,u)){X.warn(`Event cursor was rejected; retrying with a full event reload.`,{workflowRunId:e}),i.length=0,a.clear(),o.clear(),s=null,u=!0;continue}throw t}Zc(i,f.data,a),c=f.hasMore,$c(e,c,f.cursor,o),s=f.cursor??s,l++,X.debug(`Loaded event page`,{workflowRunId:e,incremental:n,page:l,pageEvents:f.data.length,totalEvents:i.length,hasMore:c,pageMs:Date.now()-t})}return X.debug(`Event load complete`,{workflowRunId:e,incremental:n,totalEvents:i.length,pagesLoaded:l,totalMs:Date.now()-f}),r?.setAttributes({...oa(i.length),..._o(l)}),{events:i,cursor:s}})}function nl(){return process.env.WORKFLOW_PRECONDITION_GUARD!==`0`}function rl(e){let t;for(let n of e)(t===void 0||n.eventId>t)&&(t=n.eventId);if(t===void 0)return;let n=t,r=n.lastIndexOf(`_`),i=ae(r===-1?n:n.slice(r+1))?.getTime();if(i===void 0){X.debug(`Precondition guard: latest event id is not a decodable ULID; sending no snapshot`,{eventId:n});return}return i}function il(e,t){if(!nl())return{};let n=rl(e);return n===void 0?{}:{stateUpdatedAt:n,stateEventCount:e.length,...t?{stateCursor:t}:{}}}function al(e,t){if(!c.is(e))return null;let n=e.details;if(typeof n!=`object`||!n)return null;let{events:r,cursor:i}=n;if(!Array.isArray(r)||r.length===0)return null;for(let e of r)if(typeof e!=`object`||!e||typeof e.eventId!=`string`||e.runId!==t)return null;return{events:r,cursor:typeof i==`string`?i:null}}const ol={"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`POST, OPTIONS, GET, HEAD`,"Access-Control-Allow-Headers":`Content-Type`};function sl(e,t){return async n=>{let r=new URL(n.url);return r.searchParams.has(`__health`)?n.method===`OPTIONS`?new Response(null,{status:204,headers:ol}):new Response(JSON.stringify({healthy:!0,endpoint:r.pathname,specVersion:t??5,workflowCoreVersion:Lc}),{status:200,headers:{"Content-Type":`application/json`,...ol}}):await e(n)}}async function cl(e,...t){let n=t[0];await Ko(`queue.publish`,{attributes:{...qa(`vercel-queue`),...Ja(n),...Xa(`publish`),...ko(`vercel-queue`),...Ao(`vercel-queue`),...jo(`vqs`),...Mo(`publish`)},kind:await Zo(`PRODUCER`)},async n=>{let{messageId:r}=await e.queue(...t);r&&n?.setAttributes(Ya(r))})}function ll(e){if(e.requestedAt)try{return Za(Date.now()-e.requestedAt.getTime())}catch{return}}function ul(e,t){let n;return()=>(n||=(async()=>{let n=await e.getEncryptionKeyForRun?.(t);return n?await Li(n):void 0})(),n)}function dl(t){import(`./functions-ClJbpZhR.js`).then(t=>e(t.default,1)).then(({waitUntil:e})=>{e(t)})}function fl(e,t){dl(e.catch(e=>{if(!(e?.name===`AbortError`||e?.name===`ResponseAborted`))try{t(e)}catch{}}))}async function pl(e){let t=e();return dl(t.catch(()=>{})),t}export{Ro as $,en as $n,ha as $t,qs as A,Xr as An,ka as At,Cs as B,bn as Bn,Wa as Bt,Zs as C,ea as Cn,Ya as Ct,vc as D,Fi as Dn,yo as Dt,yc as E,zi as En,vo as Et,bc as F,Hn as Fn,Oa as Ft,vs as G,N as Gn,La as Gt,Q as H,wn as Hn,Ka as Ht,Cc as I,$n as In,Ia as It,X as J,on as Jn,Ma as Jt,gs as K,sn as Kn,Aa as Kt,pc as L,Ln,ja as Lt,Os as M,qr as Mn,Va as Mt,Sc as N,Kr as Nn,Ua as Nt,fc as O,W as On,bo as Ot,_c as P,ir as Pn,Fa as Pt,zo as Q,Qt as Qn,eo as Qt,hc as R,Mn as Rn,Da as Rt,Hs as S,va as Sn,Ja as St,gc as T,Li as Tn,qa as Tt,bs as U,un as Un,Pa as Ut,Ss as V,En as Vn,Ga as Vt,hs as W,nn as Wn,Ra as Wt,as as X,$t as Xn,ba as Xt,is as Y,dn as Yn,ca as Yt,Jo as Z,tn as Zn,to as Zt,Lc as _,aa as _n,so as _t,zc as a,ta as an,Te as ar,Ko as at,Pc as b,ua as bn,ho as bt,Qc as c,la as cn,pe as cr,Qa as ct,ul as d,Ca as dn,go as dt,ma as en,Zt as er,Zo as et,Hc as f,Ta as fn,Ea as ft,sl as g,ia as gn,oo as gt,cl as h,$a as hn,ao as ht,ll as i,_a as in,be as ir,Bo as it,ac as j,Zr as jn,Ha as jt,mc as k,Yr as kn,za as kt,nl as l,wa as ln,Po as lt,il as m,ra as mn,ro as mt,pl as n,oa as nn,xe as nr,Lo as nt,Wc as o,na as on,le as or,Ho as ot,al as p,xa as pn,io as pt,ms as q,cn as qn,Na as qt,Zc as r,sa as rn,E as rr,es as rt,Jc as s,ya as sn,me as sr,ts as st,fl as t,pa as tn,Jt as tr,Io as tt,tl as u,Sa as un,No as ut,Ic as v,ga as vn,no as vt,xc as w,$i as wn,Xa as wt,Ac as x,fa as xn,mo as xt,Fc as y,da as yn,po as yt,lc as z,On as zn,Ba as zt};
@@ -11,8 +11,8 @@ declare const EXTENSION_CAPABILITY_CONTRACTS: {
11
11
  readonly dropped: {};
12
12
  };
13
13
  readonly tool: {
14
- readonly current: 7;
15
- readonly supported: readonly [1, 2, 3, 4, 5, 6, 7];
14
+ readonly current: 8;
15
+ readonly supported: readonly [1, 2, 3, 4, 5, 6, 7, 8];
16
16
  readonly dropped: {};
17
17
  };
18
18
  readonly dynamicTool: {
@@ -1 +1 @@
1
- import{readFile,writeFile}from"node:fs/promises";import{z}from"#compiled/zod/index.js";import{join}from"node:path";import{formatValidationError}from"#runtime/validation.js";const EXTENSION_COMPATIBILITY_MANIFEST_KIND=`eve-extension`,EXTENSION_COMPATIBILITY_MANIFEST_FORMAT_VERSION=1,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME=`_manifest.json`,EXTENSION_CAPABILITY_CONTRACTS={extension:{current:1,supported:[1],dropped:{}},tool:{current:7,supported:[1,2,3,4,5,6,7],dropped:{}},dynamicTool:{current:10,supported:[1,2,3,4,5,6,7,8,9,10],dropped:{}},connection:{current:2,supported:[1,2],dropped:{}},hook:{current:8,supported:[1,2,3,4,5,6,7,8],dropped:{}},skill:{current:1,supported:[1],dropped:{}},dynamicSkill:{current:7,supported:[1,2,3,4,5,6,7],dropped:{}},instructions:{current:1,supported:[1],dropped:{}},dynamicInstructions:{current:7,supported:[1,2,3,4,5,6,7],dropped:{}},config:{current:1,supported:[1],dropped:{}},state:{current:2,supported:[1,2],dropped:{}}},EXTENSION_CAPABILITY_VERSIONS=Object.fromEntries(Object.entries(EXTENSION_CAPABILITY_CONTRACTS).map(([e,t])=>[e,t.current])),EXTENSION_CAPABILITY_SUPPORT=Object.keys(EXTENSION_CAPABILITY_CONTRACTS).reduce((e,t)=>(e[t]=EXTENSION_CAPABILITY_CONTRACTS[t].supported,e),{}),extensionCompatibilityManifestSchema=z.object({kind:z.literal(EXTENSION_COMPATIBILITY_MANIFEST_KIND),formatVersion:z.literal(1),builtWithEve:z.string().min(1),requires:z.record(z.string(),z.number().int().positive())}).strict();function serializeExtensionCompatibilityManifest(e){return`${JSON.stringify(e,null,2)}\n`}function parseExtensionCompatibilityManifest(e,t){let n;try{n=JSON.parse(e)}catch(e){throw Error(`Extension compatibility manifest "${t}" is not valid JSON: ${e instanceof Error?e.message:String(e)}`)}let r=extensionCompatibilityManifestSchema.safeParse(n);if(!r.success)throw Error(`Extension compatibility manifest "${t}" is invalid. ${formatValidationError(r.error)}`);return r.data}async function readExtensionCompatibilityManifest(t){return parseExtensionCompatibilityManifest(await readFile(t,`utf8`),t)}async function writeExtensionCompatibilityManifest(e,n){await writeFile(join(e,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME),serializeExtensionCompatibilityManifest(n),`utf8`)}function findUnsupportedExtensionCapabilities(e,t=EXTENSION_CAPABILITY_SUPPORT){return Object.entries(e.requires).flatMap(([e,n])=>{let r=Object.hasOwn(t,e)?t[e]??[]:[];return r.includes(n)?[]:[{capability:e,requiredVersion:n,supportedVersions:r}]}).sort((e,t)=>e.capability.localeCompare(t.capability))}export{EXTENSION_CAPABILITY_SUPPORT,EXTENSION_CAPABILITY_VERSIONS,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME,EXTENSION_COMPATIBILITY_MANIFEST_FORMAT_VERSION,EXTENSION_COMPATIBILITY_MANIFEST_KIND,findUnsupportedExtensionCapabilities,parseExtensionCompatibilityManifest,readExtensionCompatibilityManifest,serializeExtensionCompatibilityManifest,writeExtensionCompatibilityManifest};
1
+ import{readFile,writeFile}from"node:fs/promises";import{z}from"#compiled/zod/index.js";import{join}from"node:path";import{formatValidationError}from"#runtime/validation.js";const EXTENSION_COMPATIBILITY_MANIFEST_KIND=`eve-extension`,EXTENSION_COMPATIBILITY_MANIFEST_FORMAT_VERSION=1,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME=`_manifest.json`,EXTENSION_CAPABILITY_CONTRACTS={extension:{current:1,supported:[1],dropped:{}},tool:{current:8,supported:[1,2,3,4,5,6,7,8],dropped:{}},dynamicTool:{current:10,supported:[1,2,3,4,5,6,7,8,9,10],dropped:{}},connection:{current:2,supported:[1,2],dropped:{}},hook:{current:8,supported:[1,2,3,4,5,6,7,8],dropped:{}},skill:{current:1,supported:[1],dropped:{}},dynamicSkill:{current:7,supported:[1,2,3,4,5,6,7],dropped:{}},instructions:{current:1,supported:[1],dropped:{}},dynamicInstructions:{current:7,supported:[1,2,3,4,5,6,7],dropped:{}},config:{current:1,supported:[1],dropped:{}},state:{current:2,supported:[1,2],dropped:{}}},EXTENSION_CAPABILITY_VERSIONS=Object.fromEntries(Object.entries(EXTENSION_CAPABILITY_CONTRACTS).map(([e,t])=>[e,t.current])),EXTENSION_CAPABILITY_SUPPORT=Object.keys(EXTENSION_CAPABILITY_CONTRACTS).reduce((e,t)=>(e[t]=EXTENSION_CAPABILITY_CONTRACTS[t].supported,e),{}),extensionCompatibilityManifestSchema=z.object({kind:z.literal(EXTENSION_COMPATIBILITY_MANIFEST_KIND),formatVersion:z.literal(1),builtWithEve:z.string().min(1),requires:z.record(z.string(),z.number().int().positive())}).strict();function serializeExtensionCompatibilityManifest(e){return`${JSON.stringify(e,null,2)}\n`}function parseExtensionCompatibilityManifest(e,t){let n;try{n=JSON.parse(e)}catch(e){throw Error(`Extension compatibility manifest "${t}" is not valid JSON: ${e instanceof Error?e.message:String(e)}`)}let r=extensionCompatibilityManifestSchema.safeParse(n);if(!r.success)throw Error(`Extension compatibility manifest "${t}" is invalid. ${formatValidationError(r.error)}`);return r.data}async function readExtensionCompatibilityManifest(t){return parseExtensionCompatibilityManifest(await readFile(t,`utf8`),t)}async function writeExtensionCompatibilityManifest(e,n){await writeFile(join(e,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME),serializeExtensionCompatibilityManifest(n),`utf8`)}function findUnsupportedExtensionCapabilities(e,t=EXTENSION_CAPABILITY_SUPPORT){return Object.entries(e.requires).flatMap(([e,n])=>{let r=Object.hasOwn(t,e)?t[e]??[]:[];return r.includes(n)?[]:[{capability:e,requiredVersion:n,supportedVersions:r}]}).sort((e,t)=>e.capability.localeCompare(t.capability))}export{EXTENSION_CAPABILITY_SUPPORT,EXTENSION_CAPABILITY_VERSIONS,EXTENSION_COMPATIBILITY_MANIFEST_FILENAME,EXTENSION_COMPATIBILITY_MANIFEST_FORMAT_VERSION,EXTENSION_COMPATIBILITY_MANIFEST_KIND,findUnsupportedExtensionCapabilities,parseExtensionCompatibilityManifest,readExtensionCompatibilityManifest,serializeExtensionCompatibilityManifest,writeExtensionCompatibilityManifest};
@@ -11,6 +11,8 @@ import { type ContextAccessor, type ContextKey } from "#context/key.js";
11
11
  * the serialization layer.
12
12
  */
13
13
  export interface AlsContext extends ContextAccessor {
14
+ /** Removes a durable or step-local value from the context. */
15
+ delete<T>(key: ContextKey<T>): boolean;
14
16
  /**
15
17
  * Iterates all durable key/value pairs currently stored in the context.
16
18
  * Used by the serialization layer to persist context at step boundaries.
@@ -30,6 +32,7 @@ export declare class ContextContainer implements AlsContext {
30
32
  has<T>(key: ContextKey<T>): boolean;
31
33
  set<T>(key: ContextKey<T>, valueOrUpdater: T | ((current: T | undefined) => T)): T;
32
34
  ensure<T>(key: ContextKey<T>, create: () => T): T;
35
+ delete<T>(key: ContextKey<T>): boolean;
33
36
  /**
34
37
  * Clears all step-local provider values from the context.
35
38
  *
@@ -1 +1 @@
1
- import{AsyncLocalStorage}from"node:async_hooks";import{resolveKey}from"#context/key.js";const EVE_CONTEXT_STORAGE_KEY=Symbol.for(`eve.context-storage`);var ContextContainer=class{_durableValues=new Map;_virtualValues=new Map;get(e){return this._virtualValues.has(e.name)?this._virtualValues.get(e.name):this._durableValues.get(e.name)}require(e){if(!this.has(e))throw Error(`Context key "${e.name}" is not set.`);return this.get(e)}has(e){return this._virtualValues.has(e.name)||this._durableValues.has(e.name)}set(e,t){let n=typeof t==`function`?t(this.get(e)):t;return this._durableValues.set(e.name,n),n}ensure(e,t){return this.has(e)?this.require(e):this.set(e,t())}clearVirtualContext(){this._virtualValues.clear()}setVirtualContext(e,t){this._virtualValues.set(e.name,t)}*entries(){for(let[e,n]of this._durableValues){let r=resolveKey(e);r!==void 0&&(yield[r,n])}}};const globalContextStorage=globalThis;globalContextStorage[EVE_CONTEXT_STORAGE_KEY]===void 0&&(globalContextStorage[EVE_CONTEXT_STORAGE_KEY]=new AsyncLocalStorage);const contextStorage=globalContextStorage[EVE_CONTEXT_STORAGE_KEY];function loadContext(){let e=contextStorage.getStore();if(e===void 0)throw Error(`No active eve context. Call this function only from authored runtime code such as tools, steps, and model callbacks.`);return e}export{ContextContainer,contextStorage,loadContext};
1
+ import{AsyncLocalStorage}from"node:async_hooks";import{resolveKey}from"#context/key.js";const EVE_CONTEXT_STORAGE_KEY=Symbol.for(`eve.context-storage`);var ContextContainer=class{_durableValues=new Map;_virtualValues=new Map;get(e){return this._virtualValues.has(e.name)?this._virtualValues.get(e.name):this._durableValues.get(e.name)}require(e){if(!this.has(e))throw Error(`Context key "${e.name}" is not set.`);return this.get(e)}has(e){return this._virtualValues.has(e.name)||this._durableValues.has(e.name)}set(e,t){let n=typeof t==`function`?t(this.get(e)):t;return this._durableValues.set(e.name,n),n}ensure(e,t){return this.has(e)?this.require(e):this.set(e,t())}delete(e){let t=this._durableValues.delete(e.name),n=this._virtualValues.delete(e.name);return t||n}clearVirtualContext(){this._virtualValues.clear()}setVirtualContext(e,t){this._virtualValues.set(e.name,t)}*entries(){for(let[e,n]of this._durableValues){let r=resolveKey(e);r!==void 0&&(yield[r,n])}}};const globalContextStorage=globalThis;globalContextStorage[EVE_CONTEXT_STORAGE_KEY]===void 0&&(globalContextStorage[EVE_CONTEXT_STORAGE_KEY]=new AsyncLocalStorage);const contextStorage=globalContextStorage[EVE_CONTEXT_STORAGE_KEY];function loadContext(){let e=contextStorage.getStore();if(e===void 0)throw Error(`No active eve context. Call this function only from authored runtime code such as tools, steps, and model callbacks.`);return e}export{ContextContainer,contextStorage,loadContext};
@@ -1 +1 @@
1
- import{sep}from"node:path";const SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS=[`.cts`,`.mts`,`.cjs`,`.mjs`,`.ts`,`.js`],PROJECT_MARKER_FILE_NAMES=[`package.json`,`vercel.json`],PROJECT_MARKER_FILE_NAME_SET=new Set(PROJECT_MARKER_FILE_NAMES),GENERATED_AGENT_DIRECTORY_NAMES=new Set([`.eve`,`.next`,`.output`,`.vercel`,`node_modules`]);function getDirectoryEntryType(e){return e.isDirectory()?`directory`:e.isFile()?`file`:`other`}function isProjectMarkerEntry(e,t){return t===`file`&&PROJECT_MARKER_FILE_NAME_SET.has(e)}function classifyAgentRootEntry(e,t){if(t===`file`)return matchesSupportedModuleBaseName(e,`agent`)?`agent-config-module`:e.toLowerCase()===`instructions.md`?`instructions-markdown`:matchesSupportedModuleBaseName(e,`instructions`)?`instructions-module`:e.toLowerCase()===`system.md`?`system-markdown`:matchesSupportedModuleBaseName(e,`system`)?`system-module`:`unknown`;if(t===`directory`){if(GENERATED_AGENT_DIRECTORY_NAMES.has(e))return`ignored-directory`;if(e===`channels`)return`channels-directory`;if(e===`connections`)return`connections-directory`;if(e===`extensions`)return`extensions-directory`;if(e===`hooks`)return`hooks-directory`;if(e===`instructions`)return`instructions-directory`;if(e===`lib`)return`lib-directory`;if(e===`skills`)return`skills-directory`;if(e===`sandbox`)return`sandbox-directory`;if(e===`tools`)return`tools-directory`;if(e===`schedules`)return`schedules-directory`;if(e===`subagents`)return`subagents-directory`}return`unknown`}function classifyLocalSubagentEntry(e,t){if(t===`file`)return matchesSupportedModuleBaseName(e,`agent`)?`agent-config-module`:e.toLowerCase()===`instructions.md`?`instructions-markdown`:matchesSupportedModuleBaseName(e,`instructions`)?`instructions-module`:e.toLowerCase()===`system.md`?`system-markdown`:matchesSupportedModuleBaseName(e,`system`)?`system-module`:`unknown`;if(t===`directory`){if(GENERATED_AGENT_DIRECTORY_NAMES.has(e))return`ignored-directory`;if(e===`connections`)return`connections-directory`;if(e===`extensions`)return`extensions-directory`;if(e===`hooks`)return`hooks-directory`;if(e===`instructions`)return`instructions-directory`;if(e===`lib`)return`lib-directory`;if(e===`sandbox`)return`sandbox-directory`;if(e===`skills`)return`skills-directory`;if(e===`tools`)return`tools-directory`;if(e===`subagents`)return`subagents-directory`;if(e===`schedules`)return`invalid-schedules-directory`}return`unknown`}function classifySkillPackageEntry(e,t){if(t===`file`)return e.toLowerCase()===`skill.md`?`skill-markdown`:`skill-resource`;if(t===`directory`){if(e===`scripts`)return`skill-scripts-directory`;if(e===`references`)return`skill-references-directory`;if(e===`assets`)return`skill-assets-directory`}return`skill-resource`}function classifySkillsDirectoryEntry(e,t){if(t===`directory`)return`skill-package-directory`;if(t===`file`){if(isTypeScriptDeclarationFileName(e))return`ignored-declaration`;if(e.toLowerCase().endsWith(`.md`))return`flat-skill-markdown`;if(getSupportedModuleBaseName(e)!==null)return`flat-skill-module`}return`unknown`}function normalizeLogicalPath(t){return t.replaceAll(sep,`/`).replace(/^\.\//,``).replace(/^\/+/,``)}function getSupportedModuleBaseName(e){if(isTypeScriptDeclarationFileName(e))return null;for(let n of SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS)if(e.endsWith(n)&&e.length>n.length)return e.slice(0,-n.length);return null}function isTypeScriptDeclarationFileName(e){return/\.d\.(?:cts|mts|ts)$/.test(e)}function matchesSupportedModuleBaseName(e,t){return getSupportedModuleBaseName(e)===t}function stripLogicalPathExtension(e){let t=normalizeLogicalPath(e),n=t.lastIndexOf(`/`),r=t.lastIndexOf(`.`);return r===-1||r<n?t:t.slice(0,r)}export{PROJECT_MARKER_FILE_NAMES,SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS,classifyAgentRootEntry,classifyLocalSubagentEntry,classifySkillPackageEntry,classifySkillsDirectoryEntry,getDirectoryEntryType,getSupportedModuleBaseName,isProjectMarkerEntry,isTypeScriptDeclarationFileName,matchesSupportedModuleBaseName,normalizeLogicalPath,stripLogicalPathExtension};
1
+ import{sep}from"node:path";const SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS=[`.cts`,`.mts`,`.cjs`,`.mjs`,`.ts`,`.js`],PROJECT_MARKER_FILE_NAMES=[`package.json`,`vercel.json`],PROJECT_MARKER_FILE_NAME_SET=new Set(PROJECT_MARKER_FILE_NAMES),GENERATED_AGENT_DIRECTORY_NAMES=new Set([`.devtools`,`.eve`,`.next`,`.output`,`.vercel`,`node_modules`]);function getDirectoryEntryType(e){return e.isDirectory()?`directory`:e.isFile()?`file`:`other`}function isProjectMarkerEntry(e,t){return t===`file`&&PROJECT_MARKER_FILE_NAME_SET.has(e)}function classifyAgentRootEntry(e,t){if(t===`file`)return matchesSupportedModuleBaseName(e,`agent`)?`agent-config-module`:e.toLowerCase()===`instructions.md`?`instructions-markdown`:matchesSupportedModuleBaseName(e,`instructions`)?`instructions-module`:e.toLowerCase()===`system.md`?`system-markdown`:matchesSupportedModuleBaseName(e,`system`)?`system-module`:`unknown`;if(t===`directory`){if(GENERATED_AGENT_DIRECTORY_NAMES.has(e))return`ignored-directory`;if(e===`channels`)return`channels-directory`;if(e===`connections`)return`connections-directory`;if(e===`extensions`)return`extensions-directory`;if(e===`hooks`)return`hooks-directory`;if(e===`instructions`)return`instructions-directory`;if(e===`lib`)return`lib-directory`;if(e===`skills`)return`skills-directory`;if(e===`sandbox`)return`sandbox-directory`;if(e===`tools`)return`tools-directory`;if(e===`schedules`)return`schedules-directory`;if(e===`subagents`)return`subagents-directory`}return`unknown`}function classifyLocalSubagentEntry(e,t){if(t===`file`)return matchesSupportedModuleBaseName(e,`agent`)?`agent-config-module`:e.toLowerCase()===`instructions.md`?`instructions-markdown`:matchesSupportedModuleBaseName(e,`instructions`)?`instructions-module`:e.toLowerCase()===`system.md`?`system-markdown`:matchesSupportedModuleBaseName(e,`system`)?`system-module`:`unknown`;if(t===`directory`){if(GENERATED_AGENT_DIRECTORY_NAMES.has(e))return`ignored-directory`;if(e===`connections`)return`connections-directory`;if(e===`extensions`)return`extensions-directory`;if(e===`hooks`)return`hooks-directory`;if(e===`instructions`)return`instructions-directory`;if(e===`lib`)return`lib-directory`;if(e===`sandbox`)return`sandbox-directory`;if(e===`skills`)return`skills-directory`;if(e===`tools`)return`tools-directory`;if(e===`subagents`)return`subagents-directory`;if(e===`schedules`)return`invalid-schedules-directory`}return`unknown`}function classifySkillPackageEntry(e,t){if(t===`file`)return e.toLowerCase()===`skill.md`?`skill-markdown`:`skill-resource`;if(t===`directory`){if(e===`scripts`)return`skill-scripts-directory`;if(e===`references`)return`skill-references-directory`;if(e===`assets`)return`skill-assets-directory`}return`skill-resource`}function classifySkillsDirectoryEntry(e,t){if(t===`directory`)return`skill-package-directory`;if(t===`file`){if(isTypeScriptDeclarationFileName(e))return`ignored-declaration`;if(e.toLowerCase().endsWith(`.md`))return`flat-skill-markdown`;if(getSupportedModuleBaseName(e)!==null)return`flat-skill-module`}return`unknown`}function normalizeLogicalPath(t){return t.replaceAll(sep,`/`).replace(/^\.\//,``).replace(/^\/+/,``)}function getSupportedModuleBaseName(e){if(isTypeScriptDeclarationFileName(e))return null;for(let n of SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS)if(e.endsWith(n)&&e.length>n.length)return e.slice(0,-n.length);return null}function isTypeScriptDeclarationFileName(e){return/\.d\.(?:cts|mts|ts)$/.test(e)}function matchesSupportedModuleBaseName(e,t){return getSupportedModuleBaseName(e)===t}function stripLogicalPathExtension(e){let t=normalizeLogicalPath(e),n=t.lastIndexOf(`/`),r=t.lastIndexOf(`.`);return r===-1||r<n?t:t.slice(0,r)}export{PROJECT_MARKER_FILE_NAMES,SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS,classifyAgentRootEntry,classifyLocalSubagentEntry,classifySkillPackageEntry,classifySkillsDirectoryEntry,getDirectoryEntryType,getSupportedModuleBaseName,isProjectMarkerEntry,isTypeScriptDeclarationFileName,matchesSupportedModuleBaseName,normalizeLogicalPath,stripLogicalPathExtension};
@@ -1 +1 @@
1
- import{coalesceDeliveries}from"#harness/messages.js";import{routeDeliverToChildren}from"#execution/route-child-delivery.js";async function nextTurnDelivery(e){for(;;){let n=await waitForNextSessionAction({bufferedDeliveries:e.bufferedDeliveries,bufferedSessionControls:e.bufferedSessionControls,commandInbox:e.commandInbox});if(n.kind!==`delivery`)return{kind:n.kind};let r=n.delivery;if(r===null)return{kind:`closed`};let i=await routeDeliverToChildren({auth:r.auth,parentWritable:e.driverWritable,payloads:r.payloads,sessionState:e.sessionState});if(i.kind===`cancel-turn`)return{kind:`cancel-turn`};if(i.remainder!==void 0)return{deliver:r,kind:`turn`,remainder:i.remainder}}}async function waitForNextSessionAction(e){let t=e.bufferedSessionControls.shift();if(t!==void 0)return{kind:t};if(e.bufferedDeliveries.length>0)return{delivery:takeBufferedTurnDelivery(e.bufferedDeliveries),kind:`delivery`};for(;;){let t=await e.commandInbox.next();if(e.commandInbox.consumeNext(),t.done)return{delivery:null,kind:`delivery`};if(t.value.kind===`session-timeout`)return{kind:`expired`};if(t.value.kind===`clear`||t.value.kind===`compact`||t.value.kind===`reset`)return{kind:t.value.kind};if(t.value.kind!==`cancel`)return{delivery:commandToDelivery(t.value),kind:`delivery`}}}function commandToDelivery(e){return{auth:e.auth,caller:e.caller,kind:`deliver`,payloads:[e.payload],requestId:e.requestId}}function takeBufferedTurnDelivery(t){let n=t.shift();if(n===void 0)throw Error(`Cannot take a turn delivery from an empty buffer.`);let r=[n],i=n.caller;for(;t.length>0;){let e=t[0];if(e===void 0||i!==void 0&&e.caller!==void 0)break;let n=t.shift();if(n===void 0)throw Error(`Buffered turn delivery disappeared while partitioning.`);r.push(n),i??=n.caller}return coalesceDeliveries(r)}export{nextTurnDelivery};
1
+ import{coalesceDeliveries}from"#harness/messages.js";import{routeDeliverToChildren}from"#execution/route-child-delivery.js";import{sendCommandToDelivery}from"#execution/session-command-wire.js";async function nextTurnDelivery(e){for(;;){let n=await waitForNextSessionAction({bufferedDeliveries:e.bufferedDeliveries,bufferedSessionControls:e.bufferedSessionControls,commandInbox:e.commandInbox});if(n.kind!==`delivery`)return{kind:n.kind};let r=n.delivery;if(r===null)return{kind:`closed`};let i=await routeDeliverToChildren({auth:r.auth,parentWritable:e.driverWritable,payloads:r.payloads,sessionState:e.sessionState});if(i.kind===`cancel-turn`)return{kind:`cancel-turn`};if(i.remainder!==void 0)return{deliver:r,kind:`turn`,remainder:i.remainder}}}async function waitForNextSessionAction(e){let t=e.bufferedSessionControls.shift();if(t!==void 0)return{kind:t};if(e.bufferedDeliveries.length>0)return{delivery:takeBufferedTurnDelivery(e.bufferedDeliveries),kind:`delivery`};for(;;){let t=await e.commandInbox.next();if(e.commandInbox.consumeNext(),t.done)return{delivery:null,kind:`delivery`};if(t.value.kind===`session-timeout`)return{kind:`expired`};if(t.value.kind===`clear`||t.value.kind===`compact`||t.value.kind===`reset`)return{kind:t.value.kind};if(t.value.kind!==`cancel`)return t.value.kind===`deliver`?{delivery:t.value,kind:`delivery`}:{delivery:sendCommandToDelivery(t.value),kind:`delivery`}}}function takeBufferedTurnDelivery(t){let n=t.shift();if(n===void 0)throw Error(`Cannot take a turn delivery from an empty buffer.`);let r=[n],i=n.caller;for(;t.length>0;){let e=t[0];if(e===void 0||i!==void 0&&e.caller!==void 0)break;let n=t.shift();if(n===void 0)throw Error(`Buffered turn delivery disappeared while partitioning.`);r.push(n),i??=n.caller}return coalesceDeliveries(r)}export{nextTurnDelivery};
@@ -1,6 +1,14 @@
1
- import type { SessionCommand, SessionTimeoutHookPayload } from "#channel/types.js";
2
- /** Payloads accepted by a session driver's stable and channel command aliases. */
3
- export type SessionInboxPayload = SessionCommand | SessionTimeoutHookPayload;
1
+ import type { DeliverHookPayload, SessionCommand, SessionTimeoutHookPayload } from "#channel/types.js";
2
+ /**
3
+ * Payloads accepted by a session driver's stable and channel aliases.
4
+ *
5
+ * `DeliverHookPayload` is the only delivery format producers persist. The
6
+ * `send` member of `SessionCommand` stays accepted solely for payloads
7
+ * persisted by eve 0.30.3–0.30.8, which wrote the command shape directly;
8
+ * sessions are bounded by the 30-day default timeout, so the decode can be
9
+ * dropped once runs created on those versions have aged out.
10
+ */
11
+ export type SessionInboxPayload = DeliverHookPayload | SessionCommand | SessionTimeoutHookPayload;
4
12
  /** Multiplexes one stable session hook and one rekeyable channel alias. */
5
13
  export interface SessionCommandInbox {
6
14
  claimStable(token: string): Promise<void>;
@@ -0,0 +1,24 @@
1
+ import type { DeliverHookPayload, DeliverPayload, SessionCommand } from "#channel/types.js";
2
+ /**
3
+ * The durable delivery envelope plus a transitional single-payload mirror.
4
+ *
5
+ * Consumers pinned to eve 0.30.3–0.30.8 cast any non-control inbox payload to
6
+ * a `send` command and read its `payload` field, so the mirror is what keeps
7
+ * their parked sessions receiving messages. Sessions are bounded by the
8
+ * 30-day default timeout; once runs created on those versions have aged out,
9
+ * drop the mirror and return plain `DeliverHookPayload`.
10
+ */
11
+ export interface WireDeliverHookPayload extends DeliverHookPayload {
12
+ readonly payload: DeliverPayload;
13
+ }
14
+ /**
15
+ * Encodes a caller-side `send` command as the durable delivery envelope.
16
+ *
17
+ * `DeliverHookPayload` is the only wire format persisted to session hooks.
18
+ * Hooks outlive deployments, so every producer must emit this envelope and
19
+ * every consumer must keep accepting it; `send` never crosses the durable
20
+ * boundary itself.
21
+ */
22
+ export declare function sendCommandToDelivery(command: Extract<SessionCommand, {
23
+ readonly kind: "send";
24
+ }>): WireDeliverHookPayload;
@@ -0,0 +1 @@
1
+ function sendCommandToDelivery(e){return{auth:e.auth,caller:e.caller,kind:`deliver`,payload:e.payload,payloads:[e.payload],requestId:e.requestId}}export{sendCommandToDelivery};
@@ -1 +1 @@
1
- import{createHook}from"#compiled/@workflow/core/index.js";import{closeHookIterator,disposeHook}from"#execution/hook-ownership.js";import{turnCancellationHookToken}from"#execution/turn-cancellation-token.js";import{forwardTurnCancellationStep}from"#execution/forward-turn-cancellation-step.js";import{forwardTurnDeliveryStep}from"#execution/forward-turn-delivery-step.js";import{rebuildSerializableError}from"#execution/workflow-errors.js";var TurnControlReceiver=class{bufferedDeliveries;bufferedSessionControls;commandInbox;control;controlIterator;pendingControl=null;constructor(t){this.bufferedDeliveries=t.bufferedDeliveries,this.bufferedSessionControls=t.bufferedSessionControls,this.commandInbox=t.commandInbox,this.control=createHook({token:t.token}),this.controlIterator=this.control[Symbol.asyncIterator]()}get token(){return this.control.token}async dispose(){await closeHookIterator(this.controlIterator),await disposeHook(this.control)}async waitForAction(){for(;;){let e=await this.nextControlOrCommand();if(e.kind===`command`){let t=await this.handleSessionCommand(e.command);if(t!==void 0)return t;continue}let t=e.payload,n=this.readTerminalControl(t);if(n!==void 0)return n;if(t.kind===`turn-delivery-request`){let e=await this.serviceDeliveryRequest(t);if(e!==void 0)return e}}}async handleSessionCommand(e){if(e.kind===`send`){this.bufferedDeliveries.push(commandToDelivery(e));return}if(e.kind===`clear`||e.kind===`compact`){this.bufferedSessionControls.push(e.kind);return}if(e.kind===`session-timeout`){this.bufferedSessionControls.push(`expired`);return}if(e.kind===`cancel`){await forwardTurnCancellationStep({payload:e.turnId===void 0?{}:{turnId:e.turnId},token:turnCancellationHookToken(this.control.token)});return}if(e.kind===`reset`){await forwardTurnCancellationStep({payload:{},token:turnCancellationHookToken(this.control.token)}),this.bufferedSessionControls.push(`reset`);return}return unsupportedSessionCommand(e)}bufferTurnDeliveries(e){e.bufferedDeliveries!==void 0&&this.bufferedDeliveries.unshift(...e.bufferedDeliveries)}consumeControl(){this.pendingControl=null}getControlPromise(){return this.pendingControl??=this.controlIterator.next(),this.pendingControl}async nextControlOrCommand(){let e=await Promise.race([this.getControlPromise().then(e=>({kind:`control`,value:e})),this.commandInbox.next().then(e=>({kind:`command`,value:e}))]);if(e.kind===`command`){if(e.value.done)throw Error(`Session command inbox closed before the active turn settled.`);return this.commandInbox.consumeNext(),{command:e.value.value,kind:`command`}}if(this.consumeControl(),e.value.done)throw Error(`Turn control hook closed before delivering a result.`);let t=e.value.value;if(t.kind===`turn-error`)throw rebuildSerializableError(t.error);return t.kind===`turn-continuation-token`?(await this.commandInbox.rekeyContinuation(t.continuationToken),await this.nextControlOrCommand()):{kind:`control`,payload:t}}readTerminalControl(e){if(e.kind===`turn-error`)throw rebuildSerializableError(e.error);if(e.kind===`turn-result`)return this.bufferTurnDeliveries(e),e.action}async serviceDeliveryRequest(e){await this.commandInbox.rekeyContinuation(e.continuationToken);let t=this.bufferedDeliveries.shift();for(;t===void 0;){let n=await Promise.race([this.getControlPromise().then(e=>({kind:`control`,value:e})),this.commandInbox.next().then(e=>({kind:`command`,value:e}))]);if(n.kind===`control`){if(this.consumeControl(),n.value.done)throw Error(`Turn control hook closed during a delivery request.`);if(n.value.value.kind===`turn-continuation-token`){await this.commandInbox.rekeyContinuation(n.value.value.continuationToken);continue}let t=this.readTerminalControl(n.value.value);if(t!==void 0)return t;if(n.value.value.kind===`turn-delivery-cancelled`&&n.value.value.requestId===e.requestId)return;continue}if(n.value.done)throw Error(`Session command inbox closed during a turn delivery request.`);if(this.commandInbox.consumeNext(),n.value.value.kind===`send`){t=commandToDelivery(n.value.value);continue}let r=await this.handleSessionCommand(n.value.value);if(r!==void 0)return r}try{await forwardTurnDeliveryStep({inboxToken:e.inboxToken,payload:{delivery:t,kind:`driver-delivery`,requestId:e.requestId}})}catch(e){if(!(e instanceof Error&&e.name===`HookNotFoundError`))throw e}return await this.awaitForwardedDelivery(e.requestId,t)}async awaitForwardedDelivery(e,t){for(;;){let n=await this.nextControlOrCommand();if(n.kind===`command`){let e=await this.handleSessionCommand(n.command);if(e!==void 0)return this.bufferedDeliveries.unshift(t),e;continue}let r=n.payload;if(r.kind===`turn-delivery-accepted`){if(r.requestId===e)return;continue}if(r.kind===`turn-delivery-cancelled`&&r.requestId===e){this.bufferedDeliveries.unshift(t);return}r.kind===`turn-result`&&this.bufferedDeliveries.unshift(t);let i=this.readTerminalControl(r);if(i!==void 0)return i}}};function unsupportedSessionCommand(e){throw Error(`Unsupported session command: ${JSON.stringify(e)}`)}function commandToDelivery(e){return{auth:e.auth,caller:e.caller,kind:`deliver`,payloads:[e.payload],requestId:e.requestId}}export{TurnControlReceiver};
1
+ import{sendCommandToDelivery}from"#execution/session-command-wire.js";import{createHook}from"#compiled/@workflow/core/index.js";import{closeHookIterator,disposeHook}from"#execution/hook-ownership.js";import{turnCancellationHookToken}from"#execution/turn-cancellation-token.js";import{forwardTurnCancellationStep}from"#execution/forward-turn-cancellation-step.js";import{forwardTurnDeliveryStep}from"#execution/forward-turn-delivery-step.js";import{rebuildSerializableError}from"#execution/workflow-errors.js";var TurnControlReceiver=class{bufferedDeliveries;bufferedSessionControls;commandInbox;control;controlIterator;pendingControl=null;constructor(e){this.bufferedDeliveries=e.bufferedDeliveries,this.bufferedSessionControls=e.bufferedSessionControls,this.commandInbox=e.commandInbox,this.control=createHook({token:e.token}),this.controlIterator=this.control[Symbol.asyncIterator]()}get token(){return this.control.token}async dispose(){await closeHookIterator(this.controlIterator),await disposeHook(this.control)}async waitForAction(){for(;;){let e=await this.nextControlOrCommand();if(e.kind===`command`){let t=await this.handleSessionCommand(e.command);if(t!==void 0)return t;continue}let t=e.payload,n=this.readTerminalControl(t);if(n!==void 0)return n;if(t.kind===`turn-delivery-request`){let e=await this.serviceDeliveryRequest(t);if(e!==void 0)return e}}}async handleSessionCommand(t){if(t.kind===`deliver`){this.bufferedDeliveries.push(t);return}if(t.kind===`send`){this.bufferedDeliveries.push(sendCommandToDelivery(t));return}if(t.kind===`clear`||t.kind===`compact`){this.bufferedSessionControls.push(t.kind);return}if(t.kind===`session-timeout`){this.bufferedSessionControls.push(`expired`);return}if(t.kind===`cancel`){await forwardTurnCancellationStep({payload:t.turnId===void 0?{}:{turnId:t.turnId},token:turnCancellationHookToken(this.control.token)});return}if(t.kind===`reset`){await forwardTurnCancellationStep({payload:{},token:turnCancellationHookToken(this.control.token)}),this.bufferedSessionControls.push(`reset`);return}return unsupportedSessionCommand(t)}bufferTurnDeliveries(e){e.bufferedDeliveries!==void 0&&this.bufferedDeliveries.unshift(...e.bufferedDeliveries)}consumeControl(){this.pendingControl=null}getControlPromise(){return this.pendingControl??=this.controlIterator.next(),this.pendingControl}async nextControlOrCommand(){let e=await Promise.race([this.getControlPromise().then(e=>({kind:`control`,value:e})),this.commandInbox.next().then(e=>({kind:`command`,value:e}))]);if(e.kind===`command`){if(e.value.done)throw Error(`Session command inbox closed before the active turn settled.`);return this.commandInbox.consumeNext(),{command:e.value.value,kind:`command`}}if(this.consumeControl(),e.value.done)throw Error(`Turn control hook closed before delivering a result.`);let t=e.value.value;if(t.kind===`turn-error`)throw rebuildSerializableError(t.error);return t.kind===`turn-continuation-token`?(await this.commandInbox.rekeyContinuation(t.continuationToken),await this.nextControlOrCommand()):{kind:`control`,payload:t}}readTerminalControl(e){if(e.kind===`turn-error`)throw rebuildSerializableError(e.error);if(e.kind===`turn-result`)return this.bufferTurnDeliveries(e),e.action}async serviceDeliveryRequest(t){await this.commandInbox.rekeyContinuation(t.continuationToken);let n=this.bufferedDeliveries.shift();for(;n===void 0;){let r=await Promise.race([this.getControlPromise().then(e=>({kind:`control`,value:e})),this.commandInbox.next().then(e=>({kind:`command`,value:e}))]);if(r.kind===`control`){if(this.consumeControl(),r.value.done)throw Error(`Turn control hook closed during a delivery request.`);if(r.value.value.kind===`turn-continuation-token`){await this.commandInbox.rekeyContinuation(r.value.value.continuationToken);continue}let e=this.readTerminalControl(r.value.value);if(e!==void 0)return e;if(r.value.value.kind===`turn-delivery-cancelled`&&r.value.value.requestId===t.requestId)return;continue}if(r.value.done)throw Error(`Session command inbox closed during a turn delivery request.`);if(this.commandInbox.consumeNext(),r.value.value.kind===`deliver`){n=r.value.value;continue}if(r.value.value.kind===`send`){n=sendCommandToDelivery(r.value.value);continue}let i=await this.handleSessionCommand(r.value.value);if(i!==void 0)return i}try{await forwardTurnDeliveryStep({inboxToken:t.inboxToken,payload:{delivery:n,kind:`driver-delivery`,requestId:t.requestId}})}catch(e){if(!(e instanceof Error&&e.name===`HookNotFoundError`))throw e}return await this.awaitForwardedDelivery(t.requestId,n)}async awaitForwardedDelivery(e,t){for(;;){let n=await this.nextControlOrCommand();if(n.kind===`command`){let e=await this.handleSessionCommand(n.command);if(e!==void 0)return this.bufferedDeliveries.unshift(t),e;continue}let r=n.payload;if(r.kind===`turn-delivery-accepted`){if(r.requestId===e)return;continue}if(r.kind===`turn-delivery-cancelled`&&r.requestId===e){this.bufferedDeliveries.unshift(t);return}r.kind===`turn-result`&&this.bufferedDeliveries.unshift(t);let i=this.readTerminalControl(r);if(i!==void 0)return i}}};function unsupportedSessionCommand(e){throw Error(`Unsupported session command: ${JSON.stringify(e)}`)}export{TurnControlReceiver};
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{RuntimeSessionOwnershipConflictError}from"#execution/runtime-errors.js";import{sessionCommandHookToken}from"#execution/session-command-token.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{serializeContext}from"#context/serialize.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{getHookByToken,getRun,resumeHook,start}from"#internal/workflow/runtime.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{isEveDevEnvironment}from"#internal/application/dev-environment.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{parseNdjsonStream}from"#execution/ndjson-stream.js";const WORKFLOW_ENTRY_NAME=`workflowEntry`,TURN_WORKFLOW_NAME=`turnWorkflow`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),COMMAND_HOOK_READY_TIMEOUT_MS=3e4,LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE=`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME]),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},turnWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TURN_WORKFLOW_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`};function createWorkflowRuntime(e){return{async createSession(i){let a=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId}),o=buildRunContext({bundle:a,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:i}),s=resolveEffectiveAgentRuntime(a,o),c=serializeContext(o),l=readParentLineage(c),u=s.limits?.sessionTimeoutMs,d={input:i.input,limits:i.limits,serializedContext:c};u!==void 0&&(d.sessionTimeoutMs=u);let f=l.sessionId===void 0?buildSessionAttributes({inputMessage:i.title??i.input.message,serializedContext:c}):buildSubagentRootAttributes({identity:{nodeId:a.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:l.callId,parentSessionId:l.sessionId,parentTurnId:l.turnId,rootSessionId:l.rootSessionId??l.sessionId,serializedContext:c}),p;try{p=await startWorkflowPreferLatest(workflowEntryReference,[d],{allowReservedAttributes:!0,attributes:normalizeEveAttributes(f)})}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:i.continuationToken}),e}if(await waitForOwnedCommandHook(sessionCommandHookToken(p.runId),p.runId),i.continuationToken){let e=await waitForCommandHookOwner(i.continuationToken);if(e.runId!==p.runId)throw new RuntimeSessionOwnershipConflictError({continuationToken:i.continuationToken,ownerSessionId:e.runId,sessionId:p.runId})}let m,getEvents=()=>(m??=parseNdjsonStream(()=>getRun(p.runId).getReadable()),m);return{get events(){return getEvents()},sessionId:p.runId}},async dispatchContinuation(e){return await dispatchWorkflowCommand(e.continuationToken,e.command)},async dispatchSession(e){return await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),e.command)},async getEventStream(e,t){return parseNdjsonStream(()=>getRun(e).getReadable({startIndex:t?.startIndex}))},async getStreamTailIndex(e){let t=getRun(e).getReadable();try{return await t.getTailIndex()}finally{await t.cancel().catch(()=>{})}},async resolveContinuation(e){try{return{sessionId:(await getHookByToken(e)).runId}}catch(n){if(HookNotFoundError.is(n))return;throw logError(log,`failed to resolve session by continuation token`,n,{continuationToken:e}),n}}}}async function dispatchWorkflowCommand(e,n){let i;try{i=normalizeWorkflowHook(await resumeHook(e,n))}catch(r){if(isInactiveCommandTarget(r))return inactiveCommandResult(n);throw logError(log,`failed to dispatch session command`,r,{command:n.kind,token:e}),r}return n.kind===`reset`&&await waitForCommandHookRelease(sessionCommandHookToken(i.runId),i.runId),activeCommandResult(n,i.runId)}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:(e.kind,{sessionId:t,status:`accepted`})}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function requestWorkflowTurnCancellation(e){return await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),{kind:`cancel`,turnId:e.turnId})}function isInactiveCommandTarget(e){if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function waitForOwnedCommandHook(e,t){let r=await waitForCommandHookOwner(e);if(r.runId!==t)throw new RuntimeSessionOwnershipConflictError({continuationToken:e,ownerSessionId:r.runId,sessionId:t})}async function waitForCommandHookOwner(e){let t=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;)try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e)||Date.now()>=t)throw e;await new Promise(e=>setTimeout(e,20))}}async function waitForCommandHookRelease(e,t){let n=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;){try{if(normalizeWorkflowHook(await getHookByToken(e)).runId!==t)return}catch(e){if(HookNotFoundError.is(e))return;throw e}if(Date.now()>=n)throw Error(`Timed out waiting for session "${t}" to release its command inbox.`);await new Promise(e=>setTimeout(e,20))}}async function startWorkflowPreferLatest(e,t,n){if(!shouldRouteToLatestDeployment())return n===void 0?await start(e,t):await start(e,t,n);try{return await start(e,t,{...n,deploymentId:`latest`})}catch(r){if(!isLatestDeploymentUnsupportedError(r))throw r;return n===void 0?await start(e,t):await start(e,t,n)}}function shouldRouteToLatestDeployment(){return process.env.VERCEL_ENV===`production`||isEveDevEnvironment()}function isLatestDeploymentUnsupportedError(e){return e instanceof Error&&e.message.includes(`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE,STABLE_WORKFLOW_NAMES,createWorkflowRuntime,requestWorkflowTurnCancellation,sessionTimeoutWorkflowReference,startWorkflowPreferLatest,turnWorkflowReference,workflowEntryReference};
1
+ import{createLogger,logError}from"#internal/logging.js";import{RuntimeSessionOwnershipConflictError}from"#execution/runtime-errors.js";import{sessionCommandHookToken}from"#execution/session-command-token.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{serializeContext}from"#context/serialize.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{getHookByToken,getRun,resumeHook,start}from"#internal/workflow/runtime.js";import{sendCommandToDelivery}from"#execution/session-command-wire.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{isEveDevEnvironment}from"#internal/application/dev-environment.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{parseNdjsonStream}from"#execution/ndjson-stream.js";const WORKFLOW_ENTRY_NAME=`workflowEntry`,TURN_WORKFLOW_NAME=`turnWorkflow`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),COMMAND_HOOK_READY_TIMEOUT_MS=3e4,LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE=`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME]),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},turnWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TURN_WORKFLOW_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`};function createWorkflowRuntime(e){return{async createSession(i){let a=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId}),o=buildRunContext({bundle:a,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:i}),s=resolveEffectiveAgentRuntime(a,o),c=serializeContext(o),l=readParentLineage(c),u=s.limits?.sessionTimeoutMs,d={input:i.input,limits:i.limits,serializedContext:c};u!==void 0&&(d.sessionTimeoutMs=u);let f=l.sessionId===void 0?buildSessionAttributes({inputMessage:i.title??i.input.message,serializedContext:c}):buildSubagentRootAttributes({identity:{nodeId:a.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:l.callId,parentSessionId:l.sessionId,parentTurnId:l.turnId,rootSessionId:l.rootSessionId??l.sessionId,serializedContext:c}),p;try{p=await startWorkflowPreferLatest(workflowEntryReference,[d],{allowReservedAttributes:!0,attributes:normalizeEveAttributes(f)})}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:i.continuationToken}),e}if(await waitForOwnedCommandHook(sessionCommandHookToken(p.runId),p.runId),i.continuationToken){let e=await waitForCommandHookOwner(i.continuationToken);if(e.runId!==p.runId)throw new RuntimeSessionOwnershipConflictError({continuationToken:i.continuationToken,ownerSessionId:e.runId,sessionId:p.runId})}let m,getEvents=()=>(m??=parseNdjsonStream(()=>getRun(p.runId).getReadable()),m);return{get events(){return getEvents()},sessionId:p.runId}},async dispatchContinuation(e){return await dispatchWorkflowCommand(e.continuationToken,e.command)},async dispatchSession(e){return await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),e.command)},async getEventStream(e,t){return parseNdjsonStream(()=>getRun(e).getReadable({startIndex:t?.startIndex}))},async getStreamTailIndex(e){let t=getRun(e).getReadable();try{return await t.getTailIndex()}finally{await t.cancel().catch(()=>{})}},async resolveContinuation(e){try{return{sessionId:(await getHookByToken(e)).runId}}catch(n){if(HookNotFoundError.is(n))return;throw logError(log,`failed to resolve session by continuation token`,n,{continuationToken:e}),n}}}}async function dispatchWorkflowCommand(e,n){let i;try{i=normalizeWorkflowHook(await resumeHook(e,sessionHookPayload(n)))}catch(r){if(isInactiveCommandTarget(r))return inactiveCommandResult(n);throw logError(log,`failed to dispatch session command`,r,{command:n.kind,token:e}),r}return n.kind===`reset`&&await waitForCommandHookRelease(sessionCommandHookToken(i.runId),i.runId),activeCommandResult(n,i.runId)}function sessionHookPayload(e){return e.kind===`send`?sendCommandToDelivery(e):e}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:(e.kind,{sessionId:t,status:`accepted`})}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function requestWorkflowTurnCancellation(e){return await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),{kind:`cancel`,turnId:e.turnId})}function isInactiveCommandTarget(e){if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function waitForOwnedCommandHook(e,t){let r=await waitForCommandHookOwner(e);if(r.runId!==t)throw new RuntimeSessionOwnershipConflictError({continuationToken:e,ownerSessionId:r.runId,sessionId:t})}async function waitForCommandHookOwner(e){let t=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;)try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e)||Date.now()>=t)throw e;await new Promise(e=>setTimeout(e,20))}}async function waitForCommandHookRelease(e,t){let n=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;){try{if(normalizeWorkflowHook(await getHookByToken(e)).runId!==t)return}catch(e){if(HookNotFoundError.is(e))return;throw e}if(Date.now()>=n)throw Error(`Timed out waiting for session "${t}" to release its command inbox.`);await new Promise(e=>setTimeout(e,20))}}async function startWorkflowPreferLatest(e,t,n){if(!shouldRouteToLatestDeployment())return n===void 0?await start(e,t):await start(e,t,n);try{return await start(e,t,{...n,deploymentId:`latest`})}catch(r){if(!isLatestDeploymentUnsupportedError(r))throw r;return n===void 0?await start(e,t):await start(e,t,n)}}function shouldRouteToLatestDeployment(){return process.env.VERCEL_ENV===`production`||isEveDevEnvironment()}function isLatestDeploymentUnsupportedError(e){return e instanceof Error&&e.message.includes(`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE,STABLE_WORKFLOW_NAMES,createWorkflowRuntime,requestWorkflowTurnCancellation,sessionTimeoutWorkflowReference,startWorkflowPreferLatest,turnWorkflowReference,workflowEntryReference};
@@ -1 +1 @@
1
- import{callAdapterEventHandler,defaultDeliverResult}from"#channel/adapter.js";import{AuthKey,CapabilitiesKey,ModeKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicToolRuntimeRevisionKey}from"#context/keys.js";import{createAuthorizationCompletedEvent,createSessionStartedEvent,encodeMessageStreamEvent,stampMessageStreamEvent}from"#protocol/message.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{getHarnessEmissionState}from"#harness/emission.js";import{createWorkflowRuntime,startWorkflowPreferLatest,turnWorkflowReference}from"#execution/workflow-runtime.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{dispatchDynamicSubagentEvent,refreshDynamicSessionSubagentsForRuntimeRevision}from"#context/dynamic-subagent-lifecycle.js";import{hydrateDurableSession,refreshSessionFromTurnAgent}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{resumeHook}from"#internal/workflow/runtime.js";import{coalesceTurnInputs}from"#harness/messages.js";import{buildAdapterContext}from"#channel/adapter-context.js";import{getPendingRuntimeActionBatch}from"#harness/runtime-actions.js";import{preserveSerializedAgentTraceState}from"#tracing/agent-trace-context-store.js";import{getPendingWorkflowInterrupt}from"#harness/workflow-interrupt-state.js";import{getRuntimeActionKeysFromWorkflowInterrupt,isWorkflowRuntimeActionInterrupt}from"#harness/workflow-runtime-action-state.js";import{dispatchDynamicModelEvent}from"#context/dynamic-model-lifecycle.js";import{setChannelContext}from"#execution/channel-context.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{runStep}from"#context/run-step.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";import{hasPendingInputBatch}from"#harness/input-requests.js";import{routeDeliverPayload}from"#execution/subagent-hitl-proxy.js";import{CallbackBaseUrlKey,PendingAuthorizationResultKey,clearPendingAuthorization,getPendingAuthorization}from"#harness/authorization.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{createTurnWorkflowInput}from"#execution/durable-session-migrations/turn-workflow.js";import{buildTurnAttributes,readRootSessionId}from"#execution/eve-workflow-attributes.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{dispatchDynamicInstructionEvent}from"#context/dynamic-instruction-lifecycle.js";import{dispatchDynamicSkillEvent}from"#context/dynamic-skill-lifecycle.js";import{dispatchDynamicToolEvent,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{readTurnSleepDurationMs}from"#harness/turn-sleep.js";import{getTurnUsageState,takeSessionUsageDelta,toUsage}from"#harness/turn-tag-state.js";import{getRuntimeActionRequestKey}from"#runtime/actions/keys.js";import{buildRuntimeIdentity,createExecutionNodeStep}from"#execution/node-step.js";import{recordSubagentUsageSpans}from"#execution/subagent-usage-span.js";import{resolveRuntimeCompiledArtifactsVersionedCacheKey}from"#runtime/cache-key.js";async function turnStep(a){"use step";let o=a,s=await readDurableSession(o.sessionState),c=await deserializeContext(o.serializedContext),l=c.require(ChannelKey),u=c.require(BundleKey),d=resolveEffectiveAgentRuntime(u,c);try{let{getWorkflowMetadata:e}=await import(`#compiled/@workflow/core/index.js`),t=e();typeof t.url==`string`&&c.set(CallbackBaseUrlKey,resolveWorkflowCallbackBaseUrl(t.url))}catch{}let f=getPendingAuthorization(s.state),p;if(f&&o.input?.kind===`deliver`){let e=[],t=[],n=[];for(let r of o.input.payloads){let i=r.authorizationCallback;if(i){let n=f.challenges.find(e=>e.name===i.connectionName);n&&(e.push({name:n.name,resume:n.resume,callback:i.callback,hookUrl:n.hookUrl}),t.push({name:n.name,authorization:n.challenge}))}else n.push(r)}e.length>0&&(c.set(PendingAuthorizationResultKey,e),s={...s,state:clearPendingAuthorization(s.state,e.map(e=>e.name))},p=t,o=n.length>0?{...o,input:{...o.input,payloads:n}}:{...o,input:void 0})}o.input?.kind===`deliver`&&o.input.auth!==void 0&&c.set(AuthKey,o.input.auth??null);let m=hydrateDurableSession({compactionOverrides:{thresholdPercent:d.thresholdPercent},durable:s,turnAgent:d.turnAgent}),h=buildAdapterContext(l,c),g;if(o.input?.kind===`deliver`){let e=[];for(let n of o.input.payloads){let r=l.deliver?await l.deliver(n,h):defaultDeliverResult(n);r!=null&&e.push(r)}g=e.length===0?void 0:e.reduce(coalesceTurnInputs)}else o.input?.kind===`runtime-action-result`&&(recordSubagentUsageSpans(o.input.results),g={runtimeActionResults:o.input.results});if(o.input?.kind===`deliver`&&setChannelContext(c,{...l,state:{...h.state}}),o.input?.kind===`deliver`&&g===void 0){let e=reconcileSessionContinuationToken(c,m),t=serializeContext(c),n=e===m?o.sessionState:createDurableSessionState({session:e});return{action:`park`,...derivePendingState(e),serializedContext:t,sessionState:n}}let _=u.hookRegistry,v=u.resolvedAgent.dynamicInstructionsResolvers??[],y=u.resolvedAgent.dynamicSkillResolvers??[],b=u.subagentRegistry.dynamicResolvers??[],x=u.resolvedAgent.config.experimental?.subagentPersistentSessions===!0,S=u.resolvedAgent.dynamicToolResolvers??[],C={...u.graph.root,turnAgent:d.turnAgent},w=buildRuntimeIdentity(C),T=process.env.VERCEL_DEPLOYMENT_ID?.trim(),E=T?`deployment:${T}`:await resolveRuntimeCompiledArtifactsVersionedCacheKey(u.compiledArtifactsSource);if(!getHarnessEmissionState(m.state).sessionStarted)c.set(SessionDynamicSubagentRuntimeRevisionKey,E),c.set(SessionDynamicToolRuntimeRevisionKey,E);else{let e=createSessionStartedEvent({runtime:w});await Promise.all([refreshDynamicSessionSubagentsForRuntimeRevision({ctx:c,resolvers:b,event:e,messages:m.history,persistentSessions:x,runtimeRevision:E}),refreshDynamicSessionToolsForRuntimeRevision({ctx:c,resolvers:S,event:e,messages:m.history,runtimeRevision:E})])}let D=o.parentWritable.getWriter(),emit=async t=>{let n=await callAdapterEventHandler(l,t,h);setChannelContext(c,{...l,state:{...h.state}});let r=stampMessageStreamEvent(n);return await D.write(encodeMessageStreamEvent(r)),r},handleEvent=async(e,t)=>{let n=await emit(e);await dispatchStreamEventHooks({ctx:c,registry:_,event:n}),n.type!==`step.started`&&await dispatchDynamicModelEvent({ctx:c,dynamicModel:d.turnAgent.dynamicModel,event:n,fallback:d.turnAgent.model,messages:t??[],scope:{moduleMap:u.moduleMap,nodeId:u.nodeId}}),await dispatchDynamicSubagentEvent({ctx:c,resolvers:b,event:n,messages:t??[],persistentSessions:x}),await dispatchDynamicToolEvent({ctx:c,resolvers:S,event:n,messages:t??[]}),await dispatchDynamicSkillEvent({ctx:c,resolvers:y,event:n,messages:t??[]}),await dispatchDynamicInstructionEvent({ctx:c,resolvers:v,event:n,messages:t??[]})},O=c.require(ModeKey),k;try{throwIfTurnAborted(o.abortSignal),k=await runStep(c,m,async e=>{let t=resolveEffectiveOutputSchema({agentOutputSchema:d.turnAgent.outputSchema,input:g,mode:O,session:e});if(p){let e=getHarnessEmissionState(t.state);for(let{name:t,authorization:n}of p)await handleEvent(createAuthorizationCompletedEvent({authorization:n,name:t,outcome:`authorized`,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId}))}let n=c.get(CapabilitiesKey);return(async(e,t)=>{let r=refreshSessionFromTurnAgent({compactionOverrides:{thresholdPercent:d.thresholdPercent},session:e,turnAgent:d.turnAgent});return createExecutionNodeStep({abortSignal:o.abortSignal,capabilities:n,clearOnly:o.input?.kind===`clear`,compactOnly:o.input?.kind===`compact`,createRuntime:createWorkflowRuntime,handleEvent,mode:O,modelResolutionScope:{moduleMap:u.moduleMap,nodeId:u.nodeId},node:C,workflowMaxSubagents:r.workflowMaxSubagents})(r,t)})(t,g)})}catch(e){if(!isTurnCancellation(e))throw e;return D.releaseLock(),{action:`cancelled`,serializedContext:preserveSerializedAgentTraceState(o.serializedContext,serializeContext(c)),sessionState:o.sessionState}}let A=reconcileSessionContinuationToken(c,k.session),j=serializeContext(c);k={...k,session:A};let M=createDurableSessionState({session:k.session}),N=readTurnSleepDurationMs(c),P=N===void 0?{}:{sleepDurationMs:N};if(k.next!==null&&typeof k.next==`object`&&`done`in k.next){await D.close();let e=getTurnUsageState(k.session.state)?.session;return{action:`done`,output:k.next.output,isError:k.next.isError,...P,serializedContext:j,sessionState:M,usage:e===void 0?void 0:toUsage(e),usageDelta:takeSessionUsageDelta(k.session).delta}}if(k.next===null){D.releaseLock();let e=getPendingWorkflowInterrupt(k.session.state);if(e!==void 0&&isWorkflowRuntimeActionInterrupt(e.interrupt))return{action:`dispatch-workflow-runtime-actions`,pendingRuntimeActionKeys:getRuntimeActionKeysFromWorkflowInterrupt(e.interrupt),...P,serializedContext:j,sessionState:M};let t=derivePendingState(k.session);if(!t.hasPendingAuthorization&&!t.hasPendingInputBatch&&(t.pendingRuntimeActionKeys?.length??0)===0&&k.settledTurn!==void 0){let{delta:e,session:n}=takeSessionUsageDelta(k.session);return{action:`park`,...t,...P,serializedContext:j,sessionState:createDurableSessionState({session:n}),settled:{output:k.settledTurn.output,isError:k.settledTurn.isError,usage:e}}}return{action:`park`,...t,...P,serializedContext:j,sessionState:M}}return D.releaseLock(),{action:`continue`,...P,serializedContext:j,sessionState:M}}function derivePendingState(e){let t=getPendingRuntimeActionBatch(e.state),n=getPendingAuthorization(e.state),r={authorizationNames:n?.challenges.map(e=>e.name),hasPendingAuthorization:n!==void 0,hasPendingInputBatch:hasPendingInputBatch(e.state)};return t===void 0?r:{...r,pendingRuntimeActionKeys:t.actions.map(e=>getRuntimeActionRequestKey(e))}}function resolveEffectiveOutputSchema(e){let{agentOutputSchema:t,input:n,mode:r,session:i}=e;return n?.outputSchema===void 0?r===`task`&&i.outputSchema===void 0&&t!==void 0?{...i,outputSchema:t}:i:{...i,outputSchema:n.outputSchema}}async function routeProxiedDeliverStep(e){"use step";let t=await readDurableSession(e.sessionState),n=routeDeliverPayload({payload:e.payload,state:t.state});for(let t of n.forChildren){let n={auth:e.auth,kind:`send`,payload:t.payload};await resumeHook(t.childContinuationToken,n)}return n.parentAction??{kind:`continue`,remainder:n.forSelf}}async function dispatchTurnStep(e){"use step";return{runId:(await startWorkflowPreferLatest(turnWorkflowReference,[createTurnWorkflowInput(e)],{allowReservedAttributes:!0,attributes:normalizeEveAttributes(buildTurnAttributes({parentSessionId:e.sessionState.sessionId,requestId:e.delivery.kind===`deliver`?e.delivery.requestId:void 0,rootSessionId:readRootSessionId(e.serializedContext)??e.sessionState.sessionId}))})).runId}}export{dispatchTurnStep,resolveEffectiveOutputSchema,routeProxiedDeliverStep,turnStep};
1
+ import{callAdapterEventHandler,defaultDeliverResult}from"#channel/adapter.js";import{AuthKey,CapabilitiesKey,ModeKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicToolRuntimeRevisionKey}from"#context/keys.js";import{createAuthorizationCompletedEvent,createSessionStartedEvent,encodeMessageStreamEvent,stampMessageStreamEvent}from"#protocol/message.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{getHarnessEmissionState}from"#harness/emission.js";import{createWorkflowRuntime,startWorkflowPreferLatest,turnWorkflowReference}from"#execution/workflow-runtime.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{dispatchDynamicSubagentEvent,refreshDynamicSessionSubagentsForRuntimeRevision}from"#context/dynamic-subagent-lifecycle.js";import{hydrateDurableSession,refreshSessionFromTurnAgent}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{resumeHook}from"#internal/workflow/runtime.js";import{coalesceTurnInputs}from"#harness/messages.js";import{buildAdapterContext}from"#channel/adapter-context.js";import{getPendingRuntimeActionBatch}from"#harness/runtime-actions.js";import{preserveSerializedAgentTraceState}from"#tracing/agent-trace-context-store.js";import{getPendingWorkflowInterrupt}from"#harness/workflow-interrupt-state.js";import{getRuntimeActionKeysFromWorkflowInterrupt,isWorkflowRuntimeActionInterrupt}from"#harness/workflow-runtime-action-state.js";import{dispatchDynamicModelEvent}from"#context/dynamic-model-lifecycle.js";import{sendCommandToDelivery}from"#execution/session-command-wire.js";import{setChannelContext}from"#execution/channel-context.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{runStep}from"#context/run-step.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";import{hasPendingInputBatch}from"#harness/input-requests.js";import{routeDeliverPayload}from"#execution/subagent-hitl-proxy.js";import{CallbackBaseUrlKey,PendingAuthorizationResultKey,clearPendingAuthorization,getPendingAuthorization}from"#harness/authorization.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{createTurnWorkflowInput}from"#execution/durable-session-migrations/turn-workflow.js";import{buildTurnAttributes,readRootSessionId}from"#execution/eve-workflow-attributes.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{dispatchDynamicInstructionEvent}from"#context/dynamic-instruction-lifecycle.js";import{dispatchDynamicSkillEvent}from"#context/dynamic-skill-lifecycle.js";import{dispatchDynamicToolEvent,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{readTurnSleepDurationMs}from"#harness/turn-sleep.js";import{getTurnUsageState,takeSessionUsageDelta,toUsage}from"#harness/turn-tag-state.js";import{getRuntimeActionRequestKey}from"#runtime/actions/keys.js";import{buildRuntimeIdentity,createExecutionNodeStep}from"#execution/node-step.js";import{recordSubagentUsageSpans}from"#execution/subagent-usage-span.js";import{resolveRuntimeCompiledArtifactsVersionedCacheKey}from"#runtime/cache-key.js";async function turnStep(a){"use step";let o=a,s=await readDurableSession(o.sessionState),c=await deserializeContext(o.serializedContext),l=c.require(ChannelKey),u=c.require(BundleKey),d=resolveEffectiveAgentRuntime(u,c);try{let{getWorkflowMetadata:e}=await import(`#compiled/@workflow/core/index.js`),t=e();typeof t.url==`string`&&c.set(CallbackBaseUrlKey,resolveWorkflowCallbackBaseUrl(t.url))}catch{}let f=getPendingAuthorization(s.state),p;if(f&&o.input?.kind===`deliver`){let e=[],t=[],n=[];for(let r of o.input.payloads){let i=r.authorizationCallback;if(i){let n=f.challenges.find(e=>e.name===i.connectionName);n&&(e.push({name:n.name,resume:n.resume,callback:i.callback,hookUrl:n.hookUrl}),t.push({name:n.name,authorization:n.challenge}))}else n.push(r)}e.length>0&&(c.set(PendingAuthorizationResultKey,e),s={...s,state:clearPendingAuthorization(s.state,e.map(e=>e.name))},p=t,o=n.length>0?{...o,input:{...o.input,payloads:n}}:{...o,input:void 0})}o.input?.kind===`deliver`&&o.input.auth!==void 0&&c.set(AuthKey,o.input.auth??null);let m=hydrateDurableSession({compactionOverrides:{thresholdPercent:d.thresholdPercent},durable:s,turnAgent:d.turnAgent}),h=buildAdapterContext(l,c),g;if(o.input?.kind===`deliver`){let e=[];for(let n of o.input.payloads){let r=l.deliver?await l.deliver(n,h):defaultDeliverResult(n);r!=null&&e.push(r)}g=e.length===0?void 0:e.reduce(coalesceTurnInputs)}else o.input?.kind===`runtime-action-result`&&(recordSubagentUsageSpans(o.input.results),g={runtimeActionResults:o.input.results});if(o.input?.kind===`deliver`&&setChannelContext(c,{...l,state:{...h.state}}),o.input?.kind===`deliver`&&g===void 0){let e=reconcileSessionContinuationToken(c,m),t=serializeContext(c),n=e===m?o.sessionState:createDurableSessionState({session:e});return{action:`park`,...derivePendingState(e),serializedContext:t,sessionState:n}}let _=u.hookRegistry,v=u.resolvedAgent.dynamicInstructionsResolvers??[],y=u.resolvedAgent.dynamicSkillResolvers??[],b=u.subagentRegistry.dynamicResolvers??[],x=u.resolvedAgent.config.experimental?.subagentPersistentSessions===!0,S=u.resolvedAgent.dynamicToolResolvers??[],C={...u.graph.root,turnAgent:d.turnAgent},w=buildRuntimeIdentity(C),T=process.env.VERCEL_DEPLOYMENT_ID?.trim(),E=T?`deployment:${T}`:await resolveRuntimeCompiledArtifactsVersionedCacheKey(u.compiledArtifactsSource);if(!getHarnessEmissionState(m.state).sessionStarted)c.set(SessionDynamicSubagentRuntimeRevisionKey,E),c.set(SessionDynamicToolRuntimeRevisionKey,E);else{let e=createSessionStartedEvent({runtime:w});await Promise.all([refreshDynamicSessionSubagentsForRuntimeRevision({ctx:c,resolvers:b,event:e,messages:m.history,persistentSessions:x,runtimeRevision:E}),refreshDynamicSessionToolsForRuntimeRevision({ctx:c,resolvers:S,event:e,messages:m.history,runtimeRevision:E})])}let D=o.parentWritable.getWriter(),emit=async t=>{let n=await callAdapterEventHandler(l,t,h);setChannelContext(c,{...l,state:{...h.state}});let r=stampMessageStreamEvent(n);return await D.write(encodeMessageStreamEvent(r)),r},handleEvent=async(e,t)=>{let n=await emit(e);await dispatchStreamEventHooks({ctx:c,registry:_,event:n}),n.type!==`step.started`&&await dispatchDynamicModelEvent({ctx:c,dynamicModel:d.turnAgent.dynamicModel,event:n,fallback:d.turnAgent.model,messages:t??[],scope:{moduleMap:u.moduleMap,nodeId:u.nodeId}}),await dispatchDynamicSubagentEvent({ctx:c,resolvers:b,event:n,messages:t??[],persistentSessions:x}),await dispatchDynamicToolEvent({ctx:c,resolvers:S,event:n,messages:t??[]}),await dispatchDynamicSkillEvent({ctx:c,resolvers:y,event:n,messages:t??[]}),await dispatchDynamicInstructionEvent({ctx:c,resolvers:v,event:n,messages:t??[]})},O=c.require(ModeKey),k;try{throwIfTurnAborted(o.abortSignal),k=await runStep(c,m,async e=>{let t=resolveEffectiveOutputSchema({agentOutputSchema:d.turnAgent.outputSchema,input:g,mode:O,session:e});if(p){let e=getHarnessEmissionState(t.state);for(let{name:t,authorization:n}of p)await handleEvent(createAuthorizationCompletedEvent({authorization:n,name:t,outcome:`authorized`,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId}))}let n=c.get(CapabilitiesKey);return(async(e,t)=>{let r=refreshSessionFromTurnAgent({compactionOverrides:{thresholdPercent:d.thresholdPercent},session:e,turnAgent:d.turnAgent});return createExecutionNodeStep({abortSignal:o.abortSignal,capabilities:n,clearOnly:o.input?.kind===`clear`,compactOnly:o.input?.kind===`compact`,createRuntime:createWorkflowRuntime,handleEvent,mode:O,modelResolutionScope:{moduleMap:u.moduleMap,nodeId:u.nodeId},node:C,workflowMaxSubagents:r.workflowMaxSubagents})(r,t)})(t,g)})}catch(e){if(!isTurnCancellation(e))throw e;return D.releaseLock(),{action:`cancelled`,serializedContext:preserveSerializedAgentTraceState(o.serializedContext,serializeContext(c)),sessionState:o.sessionState}}let A=reconcileSessionContinuationToken(c,k.session),j=serializeContext(c);k={...k,session:A};let M=createDurableSessionState({session:k.session}),N=readTurnSleepDurationMs(c),P=N===void 0?{}:{sleepDurationMs:N};if(k.next!==null&&typeof k.next==`object`&&`done`in k.next){await D.close();let e=getTurnUsageState(k.session.state)?.session;return{action:`done`,output:k.next.output,isError:k.next.isError,...P,serializedContext:j,sessionState:M,usage:e===void 0?void 0:toUsage(e),usageDelta:takeSessionUsageDelta(k.session).delta}}if(k.next===null){D.releaseLock();let e=getPendingWorkflowInterrupt(k.session.state);if(e!==void 0&&isWorkflowRuntimeActionInterrupt(e.interrupt))return{action:`dispatch-workflow-runtime-actions`,pendingRuntimeActionKeys:getRuntimeActionKeysFromWorkflowInterrupt(e.interrupt),...P,serializedContext:j,sessionState:M};let t=derivePendingState(k.session);if(!t.hasPendingAuthorization&&!t.hasPendingInputBatch&&(t.pendingRuntimeActionKeys?.length??0)===0&&k.settledTurn!==void 0){let{delta:e,session:n}=takeSessionUsageDelta(k.session);return{action:`park`,...t,...P,serializedContext:j,sessionState:createDurableSessionState({session:n}),settled:{output:k.settledTurn.output,isError:k.settledTurn.isError,usage:e}}}return{action:`park`,...t,...P,serializedContext:j,sessionState:M}}return D.releaseLock(),{action:`continue`,...P,serializedContext:j,sessionState:M}}function derivePendingState(e){let t=getPendingRuntimeActionBatch(e.state),n=getPendingAuthorization(e.state),r={authorizationNames:n?.challenges.map(e=>e.name),hasPendingAuthorization:n!==void 0,hasPendingInputBatch:hasPendingInputBatch(e.state)};return t===void 0?r:{...r,pendingRuntimeActionKeys:t.actions.map(e=>getRuntimeActionRequestKey(e))}}function resolveEffectiveOutputSchema(e){let{agentOutputSchema:t,input:n,mode:r,session:i}=e;return n?.outputSchema===void 0?r===`task`&&i.outputSchema===void 0&&t!==void 0?{...i,outputSchema:t}:i:{...i,outputSchema:n.outputSchema}}async function routeProxiedDeliverStep(e){"use step";let t=await readDurableSession(e.sessionState),n=routeDeliverPayload({payload:e.payload,state:t.state});for(let t of n.forChildren)await resumeHook(t.childContinuationToken,sendCommandToDelivery({auth:e.auth,kind:`send`,payload:t.payload}));return n.parentAction??{kind:`continue`,remainder:n.forSelf}}async function dispatchTurnStep(e){"use step";return{runId:(await startWorkflowPreferLatest(turnWorkflowReference,[createTurnWorkflowInput(e)],{allowReservedAttributes:!0,attributes:normalizeEveAttributes(buildTurnAttributes({parentSessionId:e.sessionState.sessionId,requestId:e.delivery.kind===`deliver`?e.delivery.requestId:void 0,rootSessionId:readRootSessionId(e.serializedContext)??e.sessionState.sessionId}))})).runId}}export{dispatchTurnStep,resolveEffectiveOutputSchema,routeProxiedDeliverStep,turnStep};
@@ -87,6 +87,14 @@ export declare function redactSignalResume(signal: AuthorizationSignal): Authori
87
87
  * single-challenge tools).
88
88
  */
89
89
  export declare function getAuthorizationResult(name?: string): AuthorizationResult | undefined;
90
+ /**
91
+ * Removes and returns one authorization callback result.
92
+ *
93
+ * Callback results are one-shot inputs to `completeAuthorization`. Consuming
94
+ * before completion prevents a failed or replayed callback from poisoning
95
+ * every later tool call in the same step.
96
+ */
97
+ export declare function consumeAuthorizationResult(name: string): AuthorizationResult | undefined;
90
98
  /**
91
99
  * Builds a callback URL for external systems. `name` identifies the
92
100
  * callback in the URL path (e.g. a connection name or custom label).