eve 0.31.1 → 0.31.3

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 (90) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/src/compiled/.vendor-stamp.json +6 -6
  3. package/dist/src/compiled/@workflow/core/_quickjs-wasi.d.ts +8 -0
  4. package/dist/src/compiled/@workflow/core/correlation-id.d.ts +109 -0
  5. package/dist/src/compiled/@workflow/core/events-consumer.d.ts +1 -0
  6. package/dist/src/compiled/@workflow/core/index.js +2 -2
  7. package/dist/src/compiled/@workflow/core/private.d.ts +17 -1
  8. package/dist/src/compiled/@workflow/core/private.js +1 -1
  9. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +19 -0
  10. package/dist/src/compiled/@workflow/core/runtime/deployment-guard.d.ts +99 -0
  11. package/dist/src/compiled/@workflow/core/runtime/quickjs-assets.generated.d.ts +14 -0
  12. package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +124 -0
  13. package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +193 -0
  14. package/dist/src/compiled/@workflow/core/runtime/run.d.ts +2 -0
  15. package/dist/src/compiled/@workflow/core/runtime/runs.d.ts +18 -1
  16. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +7 -0
  17. package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +44 -0
  18. package/dist/src/compiled/@workflow/core/runtime/vm-serde-bundle.generated.d.ts +14 -0
  19. package/dist/src/compiled/@workflow/core/runtime.d.ts +1 -1
  20. package/dist/src/compiled/@workflow/core/runtime.js +3 -3
  21. package/dist/src/compiled/@workflow/core/serialization/codec-devalue-vm.d.ts +9 -0
  22. package/dist/src/compiled/@workflow/core/serialization/reducers/class-vm.d.ts +20 -0
  23. package/dist/src/compiled/@workflow/core/serialization/reducers/common-vm.d.ts +15 -0
  24. package/dist/src/compiled/@workflow/core/serialization/reducers/step-function-vm.d.ts +44 -0
  25. package/dist/src/compiled/@workflow/core/serialization/vm-bundle-entry.d.ts +12 -0
  26. package/dist/src/compiled/@workflow/core/serialization/workflow-vm.d.ts +24 -0
  27. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -1
  28. package/dist/src/compiled/@workflow/core/source-map.d.ts +20 -0
  29. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +78 -0
  30. package/dist/src/compiled/@workflow/core/telemetry.d.ts +5 -0
  31. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  32. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  33. package/dist/src/compiled/@workflow/errors/error-codes.d.ts +2 -0
  34. package/dist/src/compiled/@workflow/errors/index.d.ts +24 -0
  35. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  36. package/dist/src/compiled/@workflow/world/analytics.d.ts +2 -0
  37. package/dist/src/compiled/@workflow/world/events.d.ts +51 -1
  38. package/dist/src/compiled/@workflow/world/hooks.d.ts +1 -0
  39. package/dist/src/compiled/@workflow/world/index.d.ts +1 -1
  40. package/dist/src/compiled/@workflow/world/interfaces.d.ts +28 -1
  41. package/dist/src/compiled/@workflow/world/queue.d.ts +8 -0
  42. package/dist/src/compiled/@workflow/world/runs.d.ts +83 -0
  43. package/dist/src/compiled/@workflow/world-local/index.js +5 -4
  44. package/dist/src/compiled/@workflow/world-vercel/index.js +15 -15
  45. package/dist/src/compiled/_chunks/workflow/_eve-core-quickjs-entrypoint-stub-qIV0OaFz.js +1 -0
  46. package/dist/src/compiled/_chunks/workflow/{attribute-changes-DROfGk6l.js → attribute-changes-Du5ztewf.js} +2 -2
  47. package/dist/src/compiled/_chunks/workflow/{dist-D5bR13zs.js → dist-CNXUKQCp.js} +1 -1
  48. package/dist/src/compiled/_chunks/workflow/dist-CRTn4Sg8.js +3 -0
  49. package/dist/src/compiled/_chunks/workflow/dist-tJoQXAF6.js +1 -0
  50. package/dist/src/compiled/_chunks/workflow/functions-ClJbpZhR.js +1 -0
  51. package/dist/src/compiled/_chunks/workflow/{private-BcwCGTV5.js → private-CiWVdS5v.js} +1 -1
  52. package/dist/src/compiled/_chunks/workflow/resume-hook-CT0keOww.js +1 -0
  53. package/dist/src/compiled/_chunks/workflow/run-DBheaFhH.js +1 -0
  54. package/dist/src/compiled/_chunks/workflow/signal-exit-C8vsI6zj.js +1 -0
  55. package/dist/src/compiled/_chunks/workflow/sleep-BeH4B0Cd.js +1 -0
  56. package/dist/src/compiled/_chunks/workflow/{token-hiUWkDKe.js → token-DtCUEpJs.js} +1 -1
  57. package/dist/src/compiled/_chunks/workflow/{token-util-DURSL1l8.js → token-util-DNwIAn_u.js} +9 -9
  58. package/dist/src/compiled/_chunks/workflow/undici-CUIybhQ2.js +95 -0
  59. package/dist/src/compiled/_chunks/workflow/wait-until-CMX5LUWJ.js +15 -0
  60. package/dist/src/compiler/extension-compatibility.d.ts +4 -4
  61. package/dist/src/compiler/extension-compatibility.js +1 -1
  62. package/dist/src/internal/application/package.js +1 -1
  63. package/dist/src/internal/authored-definition/connection.js +1 -1
  64. package/dist/src/public/channels/linear/linearChannel.d.ts +2 -0
  65. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  66. package/dist/src/public/channels/linear/verify.js +1 -1
  67. package/dist/src/public/connections/index.d.ts +1 -0
  68. package/dist/src/public/definitions/connections/mcp.d.ts +9 -0
  69. package/dist/src/public/definitions/connections/openapi.d.ts +9 -0
  70. package/dist/src/public/definitions/connections/tool-call.d.ts +21 -0
  71. package/dist/src/public/definitions/connections/tool-call.js +1 -0
  72. package/dist/src/runtime/connections/mcp-client.js +1 -1
  73. package/dist/src/runtime/connections/openapi-client.js +1 -1
  74. package/dist/src/runtime/connections/provided-arguments.d.ts +9 -0
  75. package/dist/src/runtime/connections/provided-arguments.js +1 -0
  76. package/dist/src/runtime/resolve-connection.js +1 -1
  77. package/dist/src/runtime/types.d.ts +2 -0
  78. package/dist/src/setup/scaffold/create/project.js +1 -1
  79. package/docs/channels/linear.mdx +3 -1
  80. package/docs/connections/mcp.mdx +29 -1
  81. package/docs/connections/openapi.mdx +24 -0
  82. package/package.json +6 -6
  83. package/dist/src/compiled/_chunks/workflow/dist-B-vbuNqP.js +0 -1
  84. package/dist/src/compiled/_chunks/workflow/dist-dNxTT6nO.js +0 -3
  85. package/dist/src/compiled/_chunks/workflow/functions-CiVUVDNB.js +0 -1
  86. package/dist/src/compiled/_chunks/workflow/resume-hook-bc-OQVI0.js +0 -1
  87. package/dist/src/compiled/_chunks/workflow/run-DM3ouA3U.js +0 -1
  88. package/dist/src/compiled/_chunks/workflow/sleep-D5iWly6-.js +0 -1
  89. package/dist/src/compiled/_chunks/workflow/undici-DWL_MYmT.js +0 -95
  90. 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: 8;
15
- readonly supported: readonly [1, 2, 3, 4, 5, 6, 7, 8];
14
+ readonly current: 9;
15
+ readonly supported: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9];
16
16
  readonly dropped: {};
17
17
  };
18
18
  readonly dynamicTool: {
@@ -21,8 +21,8 @@ declare const EXTENSION_CAPABILITY_CONTRACTS: {
21
21
  readonly dropped: {};
22
22
  };
23
23
  readonly connection: {
24
- readonly current: 2;
25
- readonly supported: readonly [1, 2];
24
+ readonly current: 3;
25
+ readonly supported: readonly [1, 2, 3];
26
26
  readonly dropped: {};
27
27
  };
28
28
  readonly hook: {
@@ -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: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};
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:9,supported:[1,2,3,4,5,6,7,8,9],dropped:{}},dynamicTool:{current:10,supported:[1,2,3,4,5,6,7,8,9,10],dropped:{}},connection:{current:3,supported:[1,2,3],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 +1 @@
1
- import{createRequire}from"node:module";import{existsSync,readFileSync,realpathSync}from"node:fs";import{basename,dirname,join}from"node:path";import{fileURLToPath}from"node:url";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";let cachedPackageInfo,cachedPackageLocation;const BUNDLED_FALLBACK_PACKAGE_VERSION=`0.31.1`,WORKFLOW_MODULE_ALIASES={"workflow/errors":`src/compiled/@workflow/errors/index.js`,"workflow/internal/private":`src/compiled/@workflow/core/private.js`};function resolveFallbackPackageVersion(){return BUNDLED_FALLBACK_PACKAGE_VERSION.startsWith(`__`)?`0.0.0`:BUNDLED_FALLBACK_PACKAGE_VERSION}const FALLBACK_PACKAGE_INFO={name:EVE_PACKAGE_NAME,version:resolveFallbackPackageVersion()};function resolveCurrentModulePath(){return typeof __filename==`string`?__filename:resolveCurrentModulePathFromStack()}function resolveCurrentModulePathFromStack(){let e=Error.prepareStackTrace;try{Error.prepareStackTrace=(e,t)=>t;let e=Error().stack?.[0]?.getFileName();if(typeof e!=`string`||e.length===0)throw Error(`Failed to resolve the current module path from the stack trace.`);return e.startsWith(`file:`)?fileURLToPath(e):e}finally{Error.prepareStackTrace=e}}const require=createRequire(resolveCurrentModulePath());function tryResolveVerifiedPackageRoot(e){try{let t=realpathSync.native(e);return tryReadInstalledPackageInfo(t,EVE_PACKAGE_NAME)===void 0?void 0:dirname(t)}catch{return}}function findNearestVerifiedPackageRoot(e){let t=e;for(;;){let e=tryResolveVerifiedPackageRoot(join(t,`package.json`));if(e!==void 0)return e;let n=dirname(t);if(n===t)return;t=n}}function tryResolveDirectBuildLocation(e){let t=dirname(e);for(;;){if(basename(t)===`dist`){let e=tryResolveVerifiedPackageRoot(join(dirname(t),`package.json`));if(e!==void 0)return{packageBuildRoot:t,packageRoot:e}}let e=dirname(t);if(e===t)return;t=e}}function isSourceCheckout(e){return existsSync(join(e,`src`,`internal`,`application`,`package.ts`))}function tryCreatePackageLocation(e){if(isSourceCheckout(e))return{packageBuildRoot:null,packageRoot:e};let n=join(e,`dist`);if(existsSync(n))return{packageBuildRoot:n,packageRoot:e}}function resolveSelfPackageJsonPath(t){return createRequire(t).resolve(`${EVE_PACKAGE_NAME}/package.json`)}function resolvePackageLocationFromModulePath(e,t=resolveSelfPackageJsonPath){let n=realpathSync.native(e),i=tryResolveDirectBuildLocation(n);if(i!==void 0)return i;let a=findNearestVerifiedPackageRoot(dirname(n));if(a!==void 0&&isSourceCheckout(a))return{packageBuildRoot:null,packageRoot:a};try{let e=tryResolveVerifiedPackageRoot(t(n)),r=e===void 0?void 0:tryCreatePackageLocation(e);if(r!==void 0)return r}catch{}let o=a===void 0?void 0:tryCreatePackageLocation(a);if(o!==void 0)return o;throw Error(`Failed to resolve the eve package root from "${e}".`)}function resolvePackageLocation(){return cachedPackageLocation??=resolvePackageLocationFromModulePath(resolveCurrentModulePath()),cachedPackageLocation}function resolvePackageBuildRoot(){return resolvePackageLocation().packageBuildRoot}function resolvePackageRoot(){return resolvePackageLocation().packageRoot}function tryResolvePackageRoot(){try{return resolvePackageRoot()}catch{return}}function rewriteSourceFilePathForBuild(e){return e.replace(/\.[cm]?tsx?$/,`.js`)}function resolvePackageSourceFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),e):join(t,rewriteSourceFilePathForBuild(e))}function resolvePackageSourceDirectoryPath(e){let t=resolvePackageBuildRoot();return join(t===null?resolvePackageRoot():t,e)}function resolvePackageDependencyPath(e){return require.resolve(e)}function resolvePackageCompiledFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),`.generated`,`compiled`,e.replace(/^src\/compiled\//,``)):join(t,e)}function normalizeInstalledPackageInfo(e){let t=e;if(!(typeof t.name!=`string`||typeof t.version!=`string`))return{name:t.name,version:t.version}}function tryReadInstalledPackageInfo(e,t){let r=normalizeInstalledPackageInfo(JSON.parse(readFileSync(e,`utf8`)));if(r?.name===t)return r}function resolveInstalledPackageInfo(){if(cachedPackageInfo)return cachedPackageInfo;let e=tryResolvePackageRoot(),t=e===void 0?void 0:tryReadInstalledPackageInfo(join(e,`package.json`),EVE_PACKAGE_NAME);if(t)return cachedPackageInfo=t,cachedPackageInfo;try{let e=tryReadInstalledPackageInfo(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),EVE_PACKAGE_NAME);if(e)return cachedPackageInfo=e,cachedPackageInfo}catch{}return cachedPackageInfo={...FALLBACK_PACKAGE_INFO},cachedPackageInfo}function readWorkflowVersionFromManifest(e){let t=e;for(let e of[t.devDependencies,t.dependencies,t.peerDependencies]){let t=e?.[`@workflow/core`];if(typeof t==`string`&&t.trim().length>0)return t}}function resolveExpectedWorkflowVersion(){let e=tryResolvePackageRoot();if(e!==void 0)try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(join(e,`package.json`),`utf8`)))}catch{}try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),`utf8`)))}catch{return}}function resolveWorkflowModulePath(e){if(e===`workflow`)return resolvePackageSourceFilePath(`src/internal/workflow/index.ts`);if(e===`workflow/api`||e===`workflow/runtime`)return resolvePackageSourceFilePath(`src/internal/workflow/runtime.ts`);if(e===`workflow/internal/builtins`)return resolvePackageSourceFilePath(`src/internal/workflow/builtins.ts`);let t=WORKFLOW_MODULE_ALIASES[e];return t===void 0?require.resolve(e):resolvePackageCompiledFilePath(t)}export{resolveExpectedWorkflowVersion,resolveInstalledPackageInfo,resolvePackageCompiledFilePath,resolvePackageDependencyPath,resolvePackageLocationFromModulePath,resolvePackageRoot,resolvePackageSourceDirectoryPath,resolvePackageSourceFilePath,resolveWorkflowModulePath};
1
+ import{createRequire}from"node:module";import{existsSync,readFileSync,realpathSync}from"node:fs";import{basename,dirname,join}from"node:path";import{fileURLToPath}from"node:url";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";let cachedPackageInfo,cachedPackageLocation;const BUNDLED_FALLBACK_PACKAGE_VERSION=`0.31.3`,WORKFLOW_MODULE_ALIASES={"workflow/errors":`src/compiled/@workflow/errors/index.js`,"workflow/internal/private":`src/compiled/@workflow/core/private.js`};function resolveFallbackPackageVersion(){return BUNDLED_FALLBACK_PACKAGE_VERSION.startsWith(`__`)?`0.0.0`:BUNDLED_FALLBACK_PACKAGE_VERSION}const FALLBACK_PACKAGE_INFO={name:EVE_PACKAGE_NAME,version:resolveFallbackPackageVersion()};function resolveCurrentModulePath(){return typeof __filename==`string`?__filename:resolveCurrentModulePathFromStack()}function resolveCurrentModulePathFromStack(){let e=Error.prepareStackTrace;try{Error.prepareStackTrace=(e,t)=>t;let e=Error().stack?.[0]?.getFileName();if(typeof e!=`string`||e.length===0)throw Error(`Failed to resolve the current module path from the stack trace.`);return e.startsWith(`file:`)?fileURLToPath(e):e}finally{Error.prepareStackTrace=e}}const require=createRequire(resolveCurrentModulePath());function tryResolveVerifiedPackageRoot(e){try{let t=realpathSync.native(e);return tryReadInstalledPackageInfo(t,EVE_PACKAGE_NAME)===void 0?void 0:dirname(t)}catch{return}}function findNearestVerifiedPackageRoot(e){let t=e;for(;;){let e=tryResolveVerifiedPackageRoot(join(t,`package.json`));if(e!==void 0)return e;let n=dirname(t);if(n===t)return;t=n}}function tryResolveDirectBuildLocation(e){let t=dirname(e);for(;;){if(basename(t)===`dist`){let e=tryResolveVerifiedPackageRoot(join(dirname(t),`package.json`));if(e!==void 0)return{packageBuildRoot:t,packageRoot:e}}let e=dirname(t);if(e===t)return;t=e}}function isSourceCheckout(e){return existsSync(join(e,`src`,`internal`,`application`,`package.ts`))}function tryCreatePackageLocation(e){if(isSourceCheckout(e))return{packageBuildRoot:null,packageRoot:e};let n=join(e,`dist`);if(existsSync(n))return{packageBuildRoot:n,packageRoot:e}}function resolveSelfPackageJsonPath(t){return createRequire(t).resolve(`${EVE_PACKAGE_NAME}/package.json`)}function resolvePackageLocationFromModulePath(e,t=resolveSelfPackageJsonPath){let n=realpathSync.native(e),i=tryResolveDirectBuildLocation(n);if(i!==void 0)return i;let a=findNearestVerifiedPackageRoot(dirname(n));if(a!==void 0&&isSourceCheckout(a))return{packageBuildRoot:null,packageRoot:a};try{let e=tryResolveVerifiedPackageRoot(t(n)),r=e===void 0?void 0:tryCreatePackageLocation(e);if(r!==void 0)return r}catch{}let o=a===void 0?void 0:tryCreatePackageLocation(a);if(o!==void 0)return o;throw Error(`Failed to resolve the eve package root from "${e}".`)}function resolvePackageLocation(){return cachedPackageLocation??=resolvePackageLocationFromModulePath(resolveCurrentModulePath()),cachedPackageLocation}function resolvePackageBuildRoot(){return resolvePackageLocation().packageBuildRoot}function resolvePackageRoot(){return resolvePackageLocation().packageRoot}function tryResolvePackageRoot(){try{return resolvePackageRoot()}catch{return}}function rewriteSourceFilePathForBuild(e){return e.replace(/\.[cm]?tsx?$/,`.js`)}function resolvePackageSourceFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),e):join(t,rewriteSourceFilePathForBuild(e))}function resolvePackageSourceDirectoryPath(e){let t=resolvePackageBuildRoot();return join(t===null?resolvePackageRoot():t,e)}function resolvePackageDependencyPath(e){return require.resolve(e)}function resolvePackageCompiledFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),`.generated`,`compiled`,e.replace(/^src\/compiled\//,``)):join(t,e)}function normalizeInstalledPackageInfo(e){let t=e;if(!(typeof t.name!=`string`||typeof t.version!=`string`))return{name:t.name,version:t.version}}function tryReadInstalledPackageInfo(e,t){let r=normalizeInstalledPackageInfo(JSON.parse(readFileSync(e,`utf8`)));if(r?.name===t)return r}function resolveInstalledPackageInfo(){if(cachedPackageInfo)return cachedPackageInfo;let e=tryResolvePackageRoot(),t=e===void 0?void 0:tryReadInstalledPackageInfo(join(e,`package.json`),EVE_PACKAGE_NAME);if(t)return cachedPackageInfo=t,cachedPackageInfo;try{let e=tryReadInstalledPackageInfo(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),EVE_PACKAGE_NAME);if(e)return cachedPackageInfo=e,cachedPackageInfo}catch{}return cachedPackageInfo={...FALLBACK_PACKAGE_INFO},cachedPackageInfo}function readWorkflowVersionFromManifest(e){let t=e;for(let e of[t.devDependencies,t.dependencies,t.peerDependencies]){let t=e?.[`@workflow/core`];if(typeof t==`string`&&t.trim().length>0)return t}}function resolveExpectedWorkflowVersion(){let e=tryResolvePackageRoot();if(e!==void 0)try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(join(e,`package.json`),`utf8`)))}catch{}try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),`utf8`)))}catch{return}}function resolveWorkflowModulePath(e){if(e===`workflow`)return resolvePackageSourceFilePath(`src/internal/workflow/index.ts`);if(e===`workflow/api`||e===`workflow/runtime`)return resolvePackageSourceFilePath(`src/internal/workflow/runtime.ts`);if(e===`workflow/internal/builtins`)return resolvePackageSourceFilePath(`src/internal/workflow/builtins.ts`);let t=WORKFLOW_MODULE_ALIASES[e];return t===void 0?require.resolve(e):resolvePackageCompiledFilePath(t)}export{resolveExpectedWorkflowVersion,resolveInstalledPackageInfo,resolvePackageCompiledFilePath,resolvePackageDependencyPath,resolvePackageLocationFromModulePath,resolvePackageRoot,resolvePackageSourceDirectoryPath,resolvePackageSourceFilePath,resolveWorkflowModulePath};
@@ -1 +1 @@
1
- import{expectObjectRecord,expectOnlyKnownKeys}from"#internal/authored-module.js";import{normalizeAuthorizationSpec}from"#runtime/connections/validate-authorization.js";const KNOWN_TOP_LEVEL_KEYS=[`approval`,`auth`,`description`,`headers`,`tools`,`url`],KNOWN_OPENAPI_TOP_LEVEL_KEYS=[`approval`,`auth`,`baseUrl`,`description`,`headers`,`operations`,`spec`],KNOWN_AUTHORIZATION_KEYS=[`completeAuthorization`,`evict`,`getToken`,`principalType`,`startAuthorization`,`vercelConnect`];function normalizeMcpClientConnectionDefinition(n,i){let a=expectObjectRecord(n,i);expectOnlyKnownKeys(a,KNOWN_TOP_LEVEL_KEYS,i),validateUrl(a,i),validateDescription(a,i);let o=normalizeAuthorization(a,i),s=normalizeHeaders(a,i),c=normalizeToolFilter(a,i);if(o!==void 0&&s!==void 0&&typeof s!=`function`&&Object.keys(s).some(e=>e.toLowerCase()===`authorization`))throw Error(`${i} "headers" must not include an "Authorization" key when "auth" is also provided.`);let l={description:a.description,url:a.url};if(o!==void 0&&(l.auth=o),s!==void 0&&(l.headers=s),c!==void 0&&(l.tools=c),a.approval!==void 0){if(typeof a.approval!=`function`)throw Error(`${i} The "approval" field must be a function when provided.`);l.approval=a.approval}return l}function normalizeOpenApiConnectionDefinition(n,r){let a=expectObjectRecord(n,r);expectOnlyKnownKeys(a,KNOWN_OPENAPI_TOP_LEVEL_KEYS,r),validateSpec(a,r),validateBaseUrl(a,r),validateDescription(a,r);let o=normalizeAuthorization(a,r),s=normalizeHeaders(a,r),c=normalizeFilterField(a,`operations`,r);if(o!==void 0&&s!==void 0&&typeof s!=`function`&&Object.keys(s).some(e=>e.toLowerCase()===`authorization`))throw Error(`${r} "headers" must not include an "Authorization" key when "auth" is also provided.`);let l={description:a.description,spec:a.spec};if(a.baseUrl!==void 0&&(l.baseUrl=a.baseUrl),o!==void 0&&(l.auth=o),s!==void 0&&(l.headers=s),c!==void 0&&(l.operations=c),a.approval!==void 0){if(typeof a.approval!=`function`)throw Error(`${r} The "approval" field must be a function when provided.`);l.approval=a.approval}return l}function validateSpec(e,t){let n=e.spec;if(typeof n==`string`){if(!URL.canParse(n))throw Error(`${t} The "spec" field must be a valid URL when provided as a string.`);let e=new URL(n);if(e.protocol!==`https:`&&e.protocol!==`http:`)throw Error(`${t} The "spec" URL must use the http or https protocol, got "${e.protocol}".`);return}if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`${t} The "spec" field must be a URL string or an inline OpenAPI document object.`)}function validateBaseUrl(e,t){if(e.baseUrl===void 0)return;if(typeof e.baseUrl!=`string`||!URL.canParse(e.baseUrl))throw Error(`${t} The "baseUrl" field must be a valid URL when provided.`);let n=new URL(e.baseUrl);if(n.protocol!==`https:`&&n.protocol!==`http:`)throw Error(`${t} The "baseUrl" field must use the http or https protocol, got "${n.protocol}".`)}function validateUrl(e,t){if(typeof e.url!=`string`||!URL.canParse(e.url))throw Error(`${t} The "url" field must be a valid URL.`);let n=new URL(e.url);if(n.protocol!==`https:`&&n.protocol!==`http:`)throw Error(`${t} The "url" field must use the http or https protocol, got "${n.protocol}".`)}function validateDescription(e,t){if(typeof e.description!=`string`||e.description.length===0)throw Error(`${t} The "description" field must be a non-empty string.`)}function normalizeAuthorization(r,i){if(r.auth===void 0)return;if(typeof r.auth==`function`)return r.auth;let o=expectObjectRecord(r.auth,`${i} The "auth" field must be an object with a "getToken" method or a function.`);return expectOnlyKnownKeys(o,KNOWN_AUTHORIZATION_KEYS,`${i} The "auth" field`),normalizeAuthorizationSpec(o,i)}function normalizeHeaders(e,t){if(e.headers===void 0)return;if(typeof e.headers==`function`)return e.headers;if(typeof e.headers!=`object`||e.headers===null||Array.isArray(e.headers))throw Error(`${t} The "headers" field must be a plain object or a function.`);let n=e.headers;for(let[e,r]of Object.entries(n)){let n=typeof r;if(n!==`string`&&n!==`function`&&n!==`object`||n===`object`&&(r===null||typeof r.then!=`function`))throw Error(`${t} The "headers.${e}" value must be a string, Promise, or function.`)}return n}function normalizeToolFilter(e,t){return normalizeFilterField(e,`tools`,t)}function normalizeFilterField(e,t,n){let r=e[t];if(r===void 0)return;if(typeof r!=`object`||!r||Array.isArray(r))throw Error(`${n} The "${t}" field must specify either "allow" or "block".`);let i=r,a=`allow`in i,o=`block`in i;if(a&&o)throw Error(`${n} The "${t}" field must specify either "allow" or "block", not both.`);if(!a&&!o)throw Error(`${n} The "${t}" field must specify either "allow" or "block".`);return a?(validateStringArray(i.allow,`${n} The "${t}.allow"`),{allow:i.allow}):(validateStringArray(i.block,`${n} The "${t}.block"`),{block:i.block})}function validateStringArray(e,t){if(!Array.isArray(e))throw Error(`${t} field must be an array of strings.`);for(let n=0;n<e.length;n++)if(typeof e[n]!=`string`)throw Error(`${t}[${n}] must be a string.`)}export{normalizeMcpClientConnectionDefinition,normalizeOpenApiConnectionDefinition};
1
+ import{expectObjectRecord,expectOnlyKnownKeys}from"#internal/authored-module.js";import{parseJsonValue}from"#shared/json.js";import{normalizeAuthorizationSpec}from"#runtime/connections/validate-authorization.js";const KNOWN_TOP_LEVEL_KEYS=[`approval`,`auth`,`description`,`headers`,`toolCall`,`tools`,`url`],KNOWN_OPENAPI_TOP_LEVEL_KEYS=[`approval`,`auth`,`baseUrl`,`description`,`headers`,`operations`,`spec`,`toolCall`],KNOWN_AUTHORIZATION_KEYS=[`completeAuthorization`,`evict`,`getToken`,`principalType`,`startAuthorization`,`vercelConnect`],KNOWN_TOOL_CALL_KEYS=[`providedArguments`];function normalizeMcpClientConnectionDefinition(n,r){let a=expectObjectRecord(n,r);expectOnlyKnownKeys(a,KNOWN_TOP_LEVEL_KEYS,r),validateUrl(a,r),validateDescription(a,r);let o=normalizeAuthorization(a,r),s=normalizeHeaders(a,r),c=normalizeConnectionToolCall(a,r),l=normalizeToolFilter(a,r);if(o!==void 0&&s!==void 0&&typeof s!=`function`&&Object.keys(s).some(e=>e.toLowerCase()===`authorization`))throw Error(`${r} "headers" must not include an "Authorization" key when "auth" is also provided.`);let u={description:a.description,url:a.url};if(o!==void 0&&(u.auth=o),s!==void 0&&(u.headers=s),c!==void 0&&(u.toolCall=c),l!==void 0&&(u.tools=l),a.approval!==void 0){if(typeof a.approval!=`function`)throw Error(`${r} The "approval" field must be a function when provided.`);u.approval=a.approval}return u}function normalizeConnectionToolCall(r,i){if(r.toolCall===void 0)return;let a=expectObjectRecord(r.toolCall,`${i} The "toolCall" field must be a plain object.`);if(expectOnlyKnownKeys(a,KNOWN_TOOL_CALL_KEYS,`${i} The "toolCall" field`),a.providedArguments===void 0)return{};let o=expectObjectRecord(a.providedArguments,`${i} The "toolCall.providedArguments" field must be a plain object.`);for(let[e,t]of Object.entries(o))if(typeof t!=`function`&&!(typeof t==`object`&&t&&typeof t.then==`function`))try{parseJsonValue(t)}catch{throw Error(`${i} The "toolCall.providedArguments.${e}" value must be JSON-serializable, a Promise, or a function.`)}return{providedArguments:o}}function normalizeOpenApiConnectionDefinition(n,r){let i=expectObjectRecord(n,r);expectOnlyKnownKeys(i,KNOWN_OPENAPI_TOP_LEVEL_KEYS,r),validateSpec(i,r),validateBaseUrl(i,r),validateDescription(i,r);let o=normalizeAuthorization(i,r),s=normalizeHeaders(i,r),c=normalizeFilterField(i,`operations`,r),l=normalizeConnectionToolCall(i,r);if(o!==void 0&&s!==void 0&&typeof s!=`function`&&Object.keys(s).some(e=>e.toLowerCase()===`authorization`))throw Error(`${r} "headers" must not include an "Authorization" key when "auth" is also provided.`);let u={description:i.description,spec:i.spec};if(i.baseUrl!==void 0&&(u.baseUrl=i.baseUrl),o!==void 0&&(u.auth=o),s!==void 0&&(u.headers=s),l!==void 0&&(u.toolCall=l),c!==void 0&&(u.operations=c),i.approval!==void 0){if(typeof i.approval!=`function`)throw Error(`${r} The "approval" field must be a function when provided.`);u.approval=i.approval}return u}function validateSpec(e,t){let n=e.spec;if(typeof n==`string`){if(!URL.canParse(n))throw Error(`${t} The "spec" field must be a valid URL when provided as a string.`);let e=new URL(n);if(e.protocol!==`https:`&&e.protocol!==`http:`)throw Error(`${t} The "spec" URL must use the http or https protocol, got "${e.protocol}".`);return}if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`${t} The "spec" field must be a URL string or an inline OpenAPI document object.`)}function validateBaseUrl(e,t){if(e.baseUrl===void 0)return;if(typeof e.baseUrl!=`string`||!URL.canParse(e.baseUrl))throw Error(`${t} The "baseUrl" field must be a valid URL when provided.`);let n=new URL(e.baseUrl);if(n.protocol!==`https:`&&n.protocol!==`http:`)throw Error(`${t} The "baseUrl" field must use the http or https protocol, got "${n.protocol}".`)}function validateUrl(e,t){if(typeof e.url!=`string`||!URL.canParse(e.url))throw Error(`${t} The "url" field must be a valid URL.`);let n=new URL(e.url);if(n.protocol!==`https:`&&n.protocol!==`http:`)throw Error(`${t} The "url" field must use the http or https protocol, got "${n.protocol}".`)}function validateDescription(e,t){if(typeof e.description!=`string`||e.description.length===0)throw Error(`${t} The "description" field must be a non-empty string.`)}function normalizeAuthorization(n,i){if(n.auth===void 0)return;if(typeof n.auth==`function`)return n.auth;let a=expectObjectRecord(n.auth,`${i} The "auth" field must be an object with a "getToken" method or a function.`);return expectOnlyKnownKeys(a,KNOWN_AUTHORIZATION_KEYS,`${i} The "auth" field`),normalizeAuthorizationSpec(a,i)}function normalizeHeaders(e,t){if(e.headers===void 0)return;if(typeof e.headers==`function`)return e.headers;if(typeof e.headers!=`object`||e.headers===null||Array.isArray(e.headers))throw Error(`${t} The "headers" field must be a plain object or a function.`);let n=e.headers;for(let[e,r]of Object.entries(n)){let n=typeof r;if(n!==`string`&&n!==`function`&&n!==`object`||n===`object`&&(r===null||typeof r.then!=`function`))throw Error(`${t} The "headers.${e}" value must be a string, Promise, or function.`)}return n}function normalizeToolFilter(e,t){return normalizeFilterField(e,`tools`,t)}function normalizeFilterField(e,t,n){let r=e[t];if(r===void 0)return;if(typeof r!=`object`||!r||Array.isArray(r))throw Error(`${n} The "${t}" field must specify either "allow" or "block".`);let i=r,a=`allow`in i,o=`block`in i;if(a&&o)throw Error(`${n} The "${t}" field must specify either "allow" or "block", not both.`);if(!a&&!o)throw Error(`${n} The "${t}" field must specify either "allow" or "block".`);return a?(validateStringArray(i.allow,`${n} The "${t}.allow"`),{allow:i.allow}):(validateStringArray(i.block,`${n} The "${t}.block"`),{block:i.block})}function validateStringArray(e,t){if(!Array.isArray(e))throw Error(`${t} field must be an array of strings.`);for(let n=0;n<e.length;n++)if(typeof e[n]!=`string`)throw Error(`${t}[${n}] must be a string.`)}export{normalizeMcpClientConnectionDefinition,normalizeOpenApiConnectionDefinition};
@@ -126,6 +126,8 @@ export interface LinearChannelConfig {
126
126
  readonly api?: LinearApiOptions;
127
127
  readonly credentials?: LinearChannelCredentials;
128
128
  readonly events?: LinearChannelEvents;
129
+ /** Max allowed webhook timestamp skew in milliseconds. Defaults to 60 seconds. */
130
+ readonly maxSkewMs?: number;
129
131
  readonly route?: string;
130
132
  /** Inbound Agent Session hook. Defaults to dispatching `created` and `prompted` events. */
131
133
  onAgentSession?(ctx: LinearSessionContext, event: LinearAgentSessionEvent): LinearInboundResultOrPromise;
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{isObject,readNonEmptyString}from"#shared/guards.js";import{POST,defineChannel}from"#public/definitions/channel.js";import{createLinearAgentActivity,createLinearAgentSessionOnComment,createLinearAgentSessionOnIssue,listLinearAgentSessionActivities,updateLinearAgentSession}from"#public/channels/linear/api.js";import{LINEAR_CHANNEL_DEFAULT_ROUTE}from"#public/channels/linear/constants.js";import{createDefaultEvents,defaultOnAgentSession}from"#public/channels/linear/defaults.js";import{formatLinearContextBlock,linearContinuationToken,messageFromLinearAgentSessionEvent,parseLinearWebhookEvent}from"#public/channels/linear/inbound.js";import{verifyLinearRequest}from"#public/channels/linear/verify.js";import{attachLinearInboundImages}from"#public/channels/linear/inbound-images.js";const log=createLogger(`linear.channel`);function linearChannel(e={}){let t=e.onAgentSession??defaultOnAgentSession,o={...createDefaultEvents({api:e.api,credentials:e.credentials}),...e.events};return defineChannel({kindHint:`linear`,state:initialLinearState(),metadata(e){return{agentSessionId:e.agentSessionId,commentId:e.commentId??null,issueId:e.issueId??null,issueIdentifier:e.issueIdentifier??null,organizationId:e.organizationId??null}},context(t,n){return rebuildLinearContext(t,n,e)},routes:[POST(e.route??LINEAR_CHANNEL_DEFAULT_ROUTE,async(n,{from:r,waitUntil:i})=>{let a=await verifyInbound(n,e.credentials);if(a===null)return new Response(`unauthorized`,{status:401});let o;try{o=parseLinearWebhookEvent({body:a,headers:n.headers})}catch(e){return log.warn(`inbound Linear body is not valid JSON`,{error:e}),jsonOk({ignored:!0,ok:!0})}return o===null?jsonOk({ignored:!0,ok:!0}):o.kind===`agent_session`?(i(dispatchAgentSession({config:e,event:o,from:r,onAgentSession:t})),jsonOk({ok:!0})):e.onDataWebhook===void 0?jsonOk({ignored:!0,ok:!0}):(i(Promise.resolve(e.onDataWebhook(o))),jsonOk({ok:!0}))})],async receive(t,{from:r}){let i=t.target,o=await resolveReceiveSession(i,e),s=readNonEmptyString(i.initialActivity);return s!==void 0&&await createLinearAgentActivity({api:e.api,credentials:e.credentials,activity:{agentSessionId:o.id,content:{body:s,type:`thought`}}}),r(linearContinuationToken(o.id)).send(t.message,{auth:t.auth,state:stateFromAgentSession(o)})},events:o})}function rebuildLinearContext(e,t,n){return{linear:buildLinearHandle({agentSessionId:e.agentSessionId??``,config:n}),state:e}}function buildLinearHandle(e){return{agentSessionId:e.agentSessionId,createActivity(t,n){return createLinearAgentActivity({api:e.config.api,credentials:e.config.credentials,activity:{agentSessionId:e.agentSessionId,content:t,ephemeral:n?.ephemeral,signal:n?.signal,signalMetadata:n?.signalMetadata}})},listActivities(t){return listLinearAgentSessionActivities({api:e.config.api,credentials:e.config.credentials,agentSessionId:e.agentSessionId,last:t?.last})},updateSession(t){return updateLinearAgentSession({api:e.config.api,credentials:e.config.credentials,id:e.agentSessionId,update:t})}}}async function dispatchAgentSession(e){let{event:t}=e,n={delivery:t.delivery,linear:buildLinearHandle({agentSessionId:t.agentSession.id,config:e.config}),session:t.agentSession},r=await e.onAgentSession(n,t);if(r===null)return;let i=await attachLinearInboundImages({content:messageFromLinearAgentSessionEvent(t),credentials:e.config.credentials,fetch:e.config.api?.fetch});await e.from(linearContinuationToken(t.agentSession.id)).send(i,{auth:r.auth,context:[formatLinearContextBlock(t),...t.previousComments,...r.context??[]],state:stateFromAgentSession(t.agentSession)})}async function resolveReceiveSession(e,t){if(hasString(e,`agentSessionId`))return{id:e.agentSessionId};if(hasString(e,`issueId`))return createLinearAgentSessionOnIssue({api:t.api,credentials:t.credentials,externalLink:readNonEmptyString(e.externalLink),externalUrls:readExternalUrls(e.externalUrls),issueId:e.issueId});if(hasString(e,`commentId`))return createLinearAgentSessionOnComment({api:t.api,credentials:t.credentials,commentId:e.commentId,externalLink:readNonEmptyString(e.externalLink),externalUrls:readExternalUrls(e.externalUrls)});throw Error(`linearChannel().receive requires target.agentSessionId, issueId, or commentId.`)}function stateFromAgentSession(e){return{agentSessionId:e.id,agentSessionUrl:e.url??null,commentId:e.commentId??null,issueId:e.issueId??e.issue?.id??null,issueIdentifier:e.issue?.identifier??null,issueTitle:e.issue?.title??null,issueUrl:e.issue?.url??null,organizationId:`organizationId`in e?e.organizationId??null:null,pendingToolCallMessage:null,sourceCommentId:e.sourceCommentId??null}}function initialLinearState(){return{agentSessionId:null,agentSessionUrl:null,commentId:null,issueId:null,issueIdentifier:null,issueTitle:null,issueUrl:null,organizationId:null,pendingToolCallMessage:null,sourceCommentId:null}}async function verifyInbound(e,t){try{return await verifyLinearRequest(e,{webhookSecret:t?.webhookSecret,webhookVerifier:t?.webhookVerifier})}catch(e){return log.warn(`linear inbound verification failed`,{error:e}),null}}function hasString(e,t){return typeof e[t]==`string`&&e[t].length>0}function readExternalUrls(e){if(!Array.isArray(e))return;let n=e.filter(e=>isObject(e)&&typeof e.label==`string`&&typeof e.url==`string`);return n.length>0?n:void 0}function jsonOk(e){return new Response(JSON.stringify(e),{headers:{"content-type":`application/json; charset=utf-8`},status:200})}export{linearChannel};
1
+ import{createLogger}from"#internal/logging.js";import{isObject,readNonEmptyString}from"#shared/guards.js";import{POST,defineChannel}from"#public/definitions/channel.js";import{createLinearAgentActivity,createLinearAgentSessionOnComment,createLinearAgentSessionOnIssue,listLinearAgentSessionActivities,updateLinearAgentSession}from"#public/channels/linear/api.js";import{LINEAR_CHANNEL_DEFAULT_ROUTE}from"#public/channels/linear/constants.js";import{createDefaultEvents,defaultOnAgentSession}from"#public/channels/linear/defaults.js";import{formatLinearContextBlock,linearContinuationToken,messageFromLinearAgentSessionEvent,parseLinearWebhookEvent}from"#public/channels/linear/inbound.js";import{verifyLinearRequest}from"#public/channels/linear/verify.js";import{attachLinearInboundImages}from"#public/channels/linear/inbound-images.js";const log=createLogger(`linear.channel`);function linearChannel(e={}){let t=e.onAgentSession??defaultOnAgentSession,o={...createDefaultEvents({api:e.api,credentials:e.credentials}),...e.events};return defineChannel({kindHint:`linear`,state:initialLinearState(),metadata(e){return{agentSessionId:e.agentSessionId,commentId:e.commentId??null,issueId:e.issueId??null,issueIdentifier:e.issueIdentifier??null,organizationId:e.organizationId??null}},context(t,n){return rebuildLinearContext(t,n,e)},routes:[POST(e.route??LINEAR_CHANNEL_DEFAULT_ROUTE,async(n,{from:r,waitUntil:i})=>{let a=await verifyInbound(n,e.credentials,e.maxSkewMs);if(a===null)return new Response(`unauthorized`,{status:401});let o;try{o=parseLinearWebhookEvent({body:a,headers:n.headers})}catch(e){return log.warn(`inbound Linear body is not valid JSON`,{error:e}),jsonOk({ignored:!0,ok:!0})}return o===null?jsonOk({ignored:!0,ok:!0}):o.kind===`agent_session`?(i(dispatchAgentSession({config:e,event:o,from:r,onAgentSession:t})),jsonOk({ok:!0})):e.onDataWebhook===void 0?jsonOk({ignored:!0,ok:!0}):(i(Promise.resolve(e.onDataWebhook(o))),jsonOk({ok:!0}))})],async receive(t,{from:r}){let i=t.target,o=await resolveReceiveSession(i,e),s=readNonEmptyString(i.initialActivity);return s!==void 0&&await createLinearAgentActivity({api:e.api,credentials:e.credentials,activity:{agentSessionId:o.id,content:{body:s,type:`thought`}}}),r(linearContinuationToken(o.id)).send(t.message,{auth:t.auth,state:stateFromAgentSession(o)})},events:o})}function rebuildLinearContext(e,t,n){return{linear:buildLinearHandle({agentSessionId:e.agentSessionId??``,config:n}),state:e}}function buildLinearHandle(e){return{agentSessionId:e.agentSessionId,createActivity(t,n){return createLinearAgentActivity({api:e.config.api,credentials:e.config.credentials,activity:{agentSessionId:e.agentSessionId,content:t,ephemeral:n?.ephemeral,signal:n?.signal,signalMetadata:n?.signalMetadata}})},listActivities(t){return listLinearAgentSessionActivities({api:e.config.api,credentials:e.config.credentials,agentSessionId:e.agentSessionId,last:t?.last})},updateSession(t){return updateLinearAgentSession({api:e.config.api,credentials:e.config.credentials,id:e.agentSessionId,update:t})}}}async function dispatchAgentSession(e){let{event:t}=e,n={delivery:t.delivery,linear:buildLinearHandle({agentSessionId:t.agentSession.id,config:e.config}),session:t.agentSession},r=await e.onAgentSession(n,t);if(r===null)return;let i=await attachLinearInboundImages({content:messageFromLinearAgentSessionEvent(t),credentials:e.config.credentials,fetch:e.config.api?.fetch});await e.from(linearContinuationToken(t.agentSession.id)).send(i,{auth:r.auth,context:[formatLinearContextBlock(t),...t.previousComments,...r.context??[]],state:stateFromAgentSession(t.agentSession)})}async function resolveReceiveSession(e,t){if(hasString(e,`agentSessionId`))return{id:e.agentSessionId};if(hasString(e,`issueId`))return createLinearAgentSessionOnIssue({api:t.api,credentials:t.credentials,externalLink:readNonEmptyString(e.externalLink),externalUrls:readExternalUrls(e.externalUrls),issueId:e.issueId});if(hasString(e,`commentId`))return createLinearAgentSessionOnComment({api:t.api,credentials:t.credentials,commentId:e.commentId,externalLink:readNonEmptyString(e.externalLink),externalUrls:readExternalUrls(e.externalUrls)});throw Error(`linearChannel().receive requires target.agentSessionId, issueId, or commentId.`)}function stateFromAgentSession(e){return{agentSessionId:e.id,agentSessionUrl:e.url??null,commentId:e.commentId??null,issueId:e.issueId??e.issue?.id??null,issueIdentifier:e.issue?.identifier??null,issueTitle:e.issue?.title??null,issueUrl:e.issue?.url??null,organizationId:`organizationId`in e?e.organizationId??null:null,pendingToolCallMessage:null,sourceCommentId:e.sourceCommentId??null}}function initialLinearState(){return{agentSessionId:null,agentSessionUrl:null,commentId:null,issueId:null,issueIdentifier:null,issueTitle:null,issueUrl:null,organizationId:null,pendingToolCallMessage:null,sourceCommentId:null}}async function verifyInbound(e,t,n){try{return await verifyLinearRequest(e,{maxSkewMs:n,webhookSecret:t?.webhookSecret,webhookVerifier:t?.webhookVerifier})}catch(e){return log.warn(`linear inbound verification failed`,{error:e}),null}}function hasString(e,t){return typeof e[t]==`string`&&e[t].length>0}function readExternalUrls(e){if(!Array.isArray(e))return;let n=e.filter(e=>isObject(e)&&typeof e.label==`string`&&typeof e.url==`string`);return n.length>0?n:void 0}function jsonOk(e){return new Response(JSON.stringify(e),{headers:{"content-type":`application/json; charset=utf-8`},status:200})}export{linearChannel};
@@ -1 +1 @@
1
- import{createHmac,timingSafeEqual}from"node:crypto";import{createLogger}from"#internal/logging.js";import{isObject}from"#shared/guards.js";import{resolveLinearWebhookSecret}from"#public/channels/linear/auth.js";const log=createLogger(`linear.verify`);async function verifyLinearRequest(e,t){let n=await e.text();if(t.webhookVerifier!==void 0){let r=await t.webhookVerifier(e,n);if(!r)throw Error(`linearChannel: inbound webhook verifier rejected the request.`);return typeof r==`string`?r:n}let r=await resolveLinearWebhookSecret(t.webhookSecret),a=e.headers.get(`linear-signature`)??``;if(!a)throw Error(`linearChannel: inbound request missing Linear-Signature.`);if(!constantTimeCompare(signLinearWebhookBody(n,r),a))throw Error(`linearChannel: inbound request signature mismatch.`);return verifyWebhookTimestamp(n,t.maxSkewMs??6e4),n}function signLinearWebhookBody(t,n){return createHmac(`sha256`,n).update(t).digest(`hex`)}function verifyWebhookTimestamp(e,t){let n;try{n=JSON.parse(e)}catch{throw Error(`linearChannel: inbound request body is not valid JSON.`)}let i=isObject(n)?n.webhookTimestamp:void 0;if(typeof i!=`number`||!Number.isFinite(i))throw Error(`linearChannel: inbound request missing webhookTimestamp.`);if(Math.abs(Date.now()-i)>t)throw Error(`linearChannel: inbound request timestamp outside allowed skew.`)}function constantTimeCompare(e,n){if(e.length!==n.length)return!1;try{return timingSafeEqual(Buffer.from(e),Buffer.from(n))}catch(e){return log.debug(`timingSafeEqual threw`,{error:e}),!1}}export{signLinearWebhookBody,verifyLinearRequest};
1
+ import{createHmac,timingSafeEqual}from"node:crypto";import{createLogger}from"#internal/logging.js";import{isObject}from"#shared/guards.js";import{resolveLinearWebhookSecret}from"#public/channels/linear/auth.js";const log=createLogger(`linear.verify`);async function verifyLinearRequest(e,t){let n=await e.text();if(t.webhookVerifier!==void 0){let r=await t.webhookVerifier(e,n);if(!r)throw Error(`linearChannel: inbound webhook verifier rejected the request.`);return typeof r==`string`?r:n}let r=await resolveLinearWebhookSecret(t.webhookSecret),a=e.headers.get(`linear-signature`)??``;if(!a)throw Error(`linearChannel: inbound request missing Linear-Signature.`);if(!constantTimeCompare(signLinearWebhookBody(n,r),a))throw Error(`linearChannel: inbound request signature mismatch.`);return verifyWebhookTimestamp(n,t.maxSkewMs??6e4),n}function signLinearWebhookBody(t,n){return createHmac(`sha256`,n).update(t).digest(`hex`)}function verifyWebhookTimestamp(e,t){if(!Number.isFinite(t)||t<0)throw Error(`linearChannel: maxSkewMs must be a non-negative finite number.`);let n;try{n=JSON.parse(e)}catch{throw Error(`linearChannel: inbound request body is not valid JSON.`)}let i=isObject(n)?n.webhookTimestamp:void 0;if(typeof i!=`number`||!Number.isFinite(i))throw Error(`linearChannel: inbound request missing webhookTimestamp.`);if(Math.abs(Date.now()-i)>t)throw Error(`linearChannel: inbound request timestamp outside allowed skew.`)}function constantTimeCompare(e,n){if(e.length!==n.length)return!1;try{return timingSafeEqual(Buffer.from(e),Buffer.from(n))}catch(e){return log.debug(`timingSafeEqual threw`,{error:e}),!1}}export{signLinearWebhookBody,verifyLinearRequest};
@@ -5,5 +5,6 @@ export type { AuthorizationCallback, AuthorizationDefinition, ConnectionAuthDefi
5
5
  export { defineInteractiveAuthorization } from "#runtime/connections/types.js";
6
6
  export type { JsonValue } from "#public/types/json.js";
7
7
  export { defineMcpClientConnection, type McpClientConnectionDefinition, } from "#public/definitions/connections/mcp.js";
8
+ export type { ConnectionToolCallDefinition, ProvidedArgumentContext, ProvidedArgumentsDefinition, ProvidedArgumentValue, } from "#public/definitions/connections/tool-call.js";
8
9
  export { defineOpenAPIConnection, type OpenAPIConnectionDefinition, type OpenAPISpecSource, } from "#public/definitions/connections/openapi.js";
9
10
  export { type ConnectionAuthorizationChallenge, ConnectionAuthorizationFailedError, type ConnectionAuthorizationFailedErrorOptions, ConnectionAuthorizationRequiredError, type ConnectionAuthorizationRequiredErrorOptions, isConnectionAuthorizationFailedError, isConnectionAuthorizationRequiredError, } from "#public/connections/errors.js";
@@ -1,4 +1,5 @@
1
1
  import type { ConnectionAuthDefinition, HeadersDefinition, ToolFilterDefinition } from "#runtime/connections/types.js";
2
+ import type { ConnectionToolCallDefinition } from "#public/definitions/connections/tool-call.js";
2
3
  import type { Approval } from "#public/definitions/approval.js";
3
4
  /**
4
5
  * Public definition for an MCP client connection authored in
@@ -64,6 +65,14 @@ export interface McpClientConnectionDefinition {
64
65
  * session context.
65
66
  */
66
67
  headers?: HeadersDefinition;
68
+ /**
69
+ * Per-call behavior for tools exposed by this MCP connection.
70
+ *
71
+ * Use `providedArguments` for application-owned values that should not be
72
+ * controlled by the model. eve removes configured keys from the model-facing
73
+ * input schema and adds their resolved values immediately before execution.
74
+ */
75
+ toolCall?: ConnectionToolCallDefinition;
67
76
  /**
68
77
  * Client-side tool filter. When set, the model sees only tools
69
78
  * whose names pass the filter; `connection_search` drops all
@@ -1,5 +1,6 @@
1
1
  import type { ConnectionAuthDefinition, HeadersDefinition, ToolFilterDefinition } from "#runtime/connections/types.js";
2
2
  import type { Approval } from "#public/definitions/approval.js";
3
+ import type { ConnectionToolCallDefinition } from "#public/definitions/connections/tool-call.js";
3
4
  /**
4
5
  * The OpenAPI document backing the connection: either an HTTPS URL the
5
6
  * runtime fetches on first use, or an already-parsed OpenAPI 3.x /
@@ -82,6 +83,14 @@ export interface OpenAPIConnectionDefinition {
82
83
  * values may be callbacks that receive the active session context.
83
84
  */
84
85
  headers?: HeadersDefinition;
86
+ /**
87
+ * Per-call behavior for operations exposed by this OpenAPI connection.
88
+ *
89
+ * Use `providedArguments` for application-owned operation parameters. eve
90
+ * removes configured keys from the model-facing input schema and adds their
91
+ * resolved values immediately before building the HTTP request.
92
+ */
93
+ toolCall?: ConnectionToolCallDefinition;
85
94
  /**
86
95
  * Operation filter keyed on `operationId`. When set, the model sees
87
96
  * only operations whose id passes the filter; `connection_search`
@@ -0,0 +1,21 @@
1
+ import type { SessionContext } from "#public/definitions/callback-context.js";
2
+ import type { JsonValue } from "#public/types/json.js";
3
+ /** Context available while resolving an application-provided connection tool argument. */
4
+ export type ProvidedArgumentContext = SessionContext & {
5
+ /** Bare tool or operation name published by the remote connection. */
6
+ readonly toolName: string;
7
+ };
8
+ /** A static or per-call value for one application-provided connection tool argument. */
9
+ export type ProvidedArgumentValue = JsonValue | Promise<JsonValue> | ((ctx: ProvidedArgumentContext) => JsonValue | Promise<JsonValue>);
10
+ /**
11
+ * Connection tool argument values supplied by the application instead of the model.
12
+ *
13
+ * Configured keys are removed from remote input schemas before the schemas are
14
+ * exposed to the model, then resolved and added to every outgoing tool call.
15
+ */
16
+ export type ProvidedArgumentsDefinition = Readonly<Record<string, ProvidedArgumentValue>>;
17
+ /** Per-call behavior shared by tools exposed through a connection. */
18
+ export interface ConnectionToolCallDefinition {
19
+ /** Application-owned arguments hidden from the model and added at execution time. */
20
+ readonly providedArguments?: ProvidedArgumentsDefinition;
21
+ }
@@ -1 +1 @@
1
- import{isObject}from"#shared/guards.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{ConnectionAuthorizationRequiredError}from"#public/connections/errors.js";import{evictScopedToken,resolveScopedToken}from"#runtime/connections/scoped-authorization.js";import{createMCPClient}from"#compiled/@ai-sdk/mcp/index.js";import{resolveConnectionAuthorization}from"#runtime/connections/resolve-authorization.js";var McpConnectionClient=class{#e;#t;#n;#r;#i;constructor(e){this.#i=e}async connect(){if(this.#t!==void 0)return this.#t;if(this.#e!==void 0)return this.#e;this.#e=this.#a();try{return this.#t=await this.#e,this.#t}catch(e){throw this.#e=void 0,e}}async#a(){let e=await resolveHeaders(this.#i),t=this.#i.url;try{return await createMCPClient({transport:{type:`http`,url:t,headers:e}})}catch(n){if(!isMcpHttpFallbackRetryableError(n))throw n;return await createMCPClient({transport:{type:`sse`,url:t,headers:e}})}}async getToolMetadata(){return(await this.#o()).metadata}async getTools(){return(await this.#o()).tools}async executeTool(e,t,n){try{let{tools:r}=await this.#o(),i=r[e];if(i?.execute===void 0)throw Error(`Tool "${e}" not found in connection "${this.#i.connectionName}".`);return await i.execute(t,{abortSignal:n?.abortSignal})}catch(e){return await this.#l(e)}}async#o(){if(this.#r!==void 0)return this.#r;if(this.#n!==void 0)return this.#n;this.#n=this.#s();try{return this.#r=await this.#n,this.#r}catch(e){throw this.#n=void 0,e}}async#s(){try{return await this.#c()}catch(e){return await this.#l(e)}}async#c(){let e=await this.connect(),t=await e.listTools(),n=this.#i.tools,r=n===void 0?t.tools:t.tools.filter(e=>passesToolFilter(e.name,n)),i=e.toolsFromDefinitions({tools:r});return{metadata:r.map(e=>({annotations:e.annotations,description:e.description??``,inputSchema:e.inputSchema??{},name:e.name,outputSchema:`outputSchema`in e&&e.outputSchema!==void 0?e.outputSchema:void 0})),tools:i}}async close(){this.#t!==void 0&&(await this.#t.close(),this.#t=void 0),this.#e=void 0,this.#n=void 0,this.#r=void 0}async#l(e){throw isMcpAuthRequiredError(e)?(await this.#u(),await this.close(),new ConnectionAuthorizationRequiredError(this.#i.connectionName,{message:`Connection "${this.#i.connectionName}" requires authorization (the server rejected the token).`})):e}async#u(){let e=await resolveConnectionAuthorization(this.#i);e!==void 0&&await evictScopedToken({authorization:e,connection:{url:this.#i.url},scope:this.#i.connectionName})}};function isMcpAuthRequiredError(e){return readHttpStatus(e)===401}function isMcpHttpFallbackRetryableError(e){let t=readHttpStatus(e);return t===400||t===404||t===405}function readHttpStatus(t){for(let n of walkErrorChain(t)){if(!isObject(n))continue;let t=readStatusField(n);if(t!==void 0)return t;let r=n.response;if(isObject(r)){let e=readStatusField(r);if(e!==void 0)return e}if(typeof n.message==`string`){let e=/\bHTTP\s+(\d{3})\b/u.exec(n.message);if(e?.[1]!==void 0)return Number(e[1])}}}function readStatusField(e){if(typeof e.status==`number`)return e.status;if(typeof e.statusCode==`number`)return e.statusCode}function*walkErrorChain(t){let n=t,r=new Set;for(;n!=null&&!r.has(n);){if(r.add(n),yield n,!isObject(n)||!(`cause`in n))return;n=n.cause}}function passesToolFilter(e,t){return t===void 0?!0:`allow`in t?t.allow.includes(e):!t.block.includes(e)}async function resolveHeaders(e){let n={},r,getCallbackContext=()=>r??=buildCallbackContext(),i=await resolveConnectionAuthorization(e,typeof e.authorization==`function`?getCallbackContext():void 0);if(i!==void 0&&(n.Authorization=`Bearer ${(await resolveToken(e,i)).token}`),e.headers!==void 0){let t=await resolveHeadersDefinition(e.headers,getCallbackContext);for(let[r,a]of Object.entries(t)){if(i!==void 0&&r.toLowerCase()===`authorization`)throw Error(`Connection "${e.connectionName}" headers must not include an "Authorization" key when "authorization" is also provided.`);n[r]=a}}return n}async function resolveToken(e,t){return await resolveScopedToken({authorization:t,connection:{url:e.url},scope:e.connectionName})}async function resolveHeadersDefinition(e,t){if(typeof e==`function`)return{...await e(t())};let n={},r=Object.entries(e);for(let[e,i]of r)n[e]=await resolveHeaderValue(i,t);return n}async function resolveHeaderValue(e,t){return typeof e==`function`?await e(t()):await e}export{McpConnectionClient,isMcpAuthRequiredError,passesToolFilter,resolveHeaders};
1
+ import{isObject}from"#shared/guards.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{ConnectionAuthorizationRequiredError}from"#public/connections/errors.js";import{evictScopedToken,resolveScopedToken}from"#runtime/connections/scoped-authorization.js";import{createMCPClient}from"#compiled/@ai-sdk/mcp/index.js";import{resolveConnectionAuthorization}from"#runtime/connections/resolve-authorization.js";import{omitProvidedArgumentsFromSchema,resolveProvidedArguments}from"#runtime/connections/provided-arguments.js";var McpConnectionClient=class{#e;#t;#n;#r;#i;constructor(e){this.#i=e}async connect(){if(this.#t!==void 0)return this.#t;if(this.#e!==void 0)return this.#e;this.#e=this.#a();try{return this.#t=await this.#e,this.#t}catch(e){throw this.#e=void 0,e}}async#a(){let e=await resolveHeaders(this.#i),t=this.#i.url;try{return await createMCPClient({transport:{type:`http`,url:t,headers:e}})}catch(n){if(!isMcpHttpFallbackRetryableError(n))throw n;return await createMCPClient({transport:{type:`sse`,url:t,headers:e}})}}async getToolMetadata(){return(await this.#o()).metadata}async getTools(){return(await this.#o()).tools}async executeTool(e,t,n){try{let{tools:r}=await this.#o(),i=r[e];if(i?.execute===void 0)throw Error(`Tool "${e}" not found in connection "${this.#i.connectionName}".`);let a=await resolveProvidedArguments({args:t,connection:this.#i,toolName:e});return await i.execute(a,{abortSignal:n?.abortSignal})}catch(e){return await this.#l(e)}}async#o(){if(this.#r!==void 0)return this.#r;if(this.#n!==void 0)return this.#n;this.#n=this.#s();try{return this.#r=await this.#n,this.#r}catch(e){throw this.#n=void 0,e}}async#s(){try{return await this.#c()}catch(e){return await this.#l(e)}}async#c(){let e=await this.connect(),t=await e.listTools(),n=this.#i.tools,r=n===void 0?t.tools:t.tools.filter(e=>passesToolFilter(e.name,n)),i=Object.keys(this.#i.toolCall?.providedArguments??{}),a=r.map(e=>({...e,inputSchema:omitProvidedArgumentsFromSchema(e.inputSchema,i)})),o=e.toolsFromDefinitions({tools:a});return{metadata:a.map(e=>({annotations:e.annotations,description:e.description??``,inputSchema:e.inputSchema??{},name:e.name,outputSchema:`outputSchema`in e&&e.outputSchema!==void 0?e.outputSchema:void 0})),tools:o}}async close(){this.#t!==void 0&&(await this.#t.close(),this.#t=void 0),this.#e=void 0,this.#n=void 0,this.#r=void 0}async#l(e){throw isMcpAuthRequiredError(e)?(await this.#u(),await this.close(),new ConnectionAuthorizationRequiredError(this.#i.connectionName,{message:`Connection "${this.#i.connectionName}" requires authorization (the server rejected the token).`})):e}async#u(){let e=await resolveConnectionAuthorization(this.#i);e!==void 0&&await evictScopedToken({authorization:e,connection:{url:this.#i.url},scope:this.#i.connectionName})}};function isMcpAuthRequiredError(e){return readHttpStatus(e)===401}function isMcpHttpFallbackRetryableError(e){let t=readHttpStatus(e);return t===400||t===404||t===405}function readHttpStatus(t){for(let n of walkErrorChain(t)){if(!isObject(n))continue;let t=readStatusField(n);if(t!==void 0)return t;let r=n.response;if(isObject(r)){let e=readStatusField(r);if(e!==void 0)return e}if(typeof n.message==`string`){let e=/\bHTTP\s+(\d{3})\b/u.exec(n.message);if(e?.[1]!==void 0)return Number(e[1])}}}function readStatusField(e){if(typeof e.status==`number`)return e.status;if(typeof e.statusCode==`number`)return e.statusCode}function*walkErrorChain(t){let n=t,r=new Set;for(;n!=null&&!r.has(n);){if(r.add(n),yield n,!isObject(n)||!(`cause`in n))return;n=n.cause}}function passesToolFilter(e,t){return t===void 0?!0:`allow`in t?t.allow.includes(e):!t.block.includes(e)}async function resolveHeaders(e){let n={},r,getCallbackContext=()=>r??=buildCallbackContext(),i=await resolveConnectionAuthorization(e,typeof e.authorization==`function`?getCallbackContext():void 0);if(i!==void 0&&(n.Authorization=`Bearer ${(await resolveToken(e,i)).token}`),e.headers!==void 0){let t=await resolveHeadersDefinition(e.headers,getCallbackContext);for(let[r,a]of Object.entries(t)){if(i!==void 0&&r.toLowerCase()===`authorization`)throw Error(`Connection "${e.connectionName}" headers must not include an "Authorization" key when "authorization" is also provided.`);n[r]=a}}return n}async function resolveToken(e,t){return await resolveScopedToken({authorization:t,connection:{url:e.url},scope:e.connectionName})}async function resolveHeadersDefinition(e,t){if(typeof e==`function`)return{...await e(t())};let n={},r=Object.entries(e);for(let[e,i]of r)n[e]=await resolveHeaderValue(i,t);return n}async function resolveHeaderValue(e,t){return typeof e==`function`?await e(t()):await e}export{McpConnectionClient,isMcpAuthRequiredError,passesToolFilter,resolveHeaders};