eve 0.38.0 → 0.38.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/src/cli/commands/registry.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +5 -5
- package/dist/src/compiled/@workflow/core/events-consumer.d.ts +97 -0
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +35 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +127 -93
- package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +8 -9
- package/dist/src/compiled/@workflow/core/runtime/replay-budget.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/runtime/resume-latency.d.ts +143 -0
- package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +27 -12
- package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +39 -8
- package/dist/src/compiled/@workflow/core/runtime/world-compatibility.d.ts +6 -5
- package/dist/src/compiled/@workflow/core/runtime.js +3 -3
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +81 -0
- package/dist/src/compiled/@workflow/core/test-support/orchestrator-context.d.ts +25 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/errors/index.d.ts +18 -2
- package/dist/src/compiled/@workflow/errors/index.js +1 -1
- package/dist/src/compiled/@workflow/world/analytics.d.ts +9 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +76 -87
- package/dist/src/compiled/@workflow/world/index.d.ts +3 -3
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +45 -45
- package/dist/src/compiled/@workflow/world/queue.d.ts +86 -0
- package/dist/src/compiled/@workflow/world/slot-identity.d.ts +15 -0
- package/dist/src/compiled/@workflow/world/spec-version.d.ts +30 -18
- package/dist/src/compiled/@workflow/world/test-support/duplicate-event-fixtures.d.ts +41 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +12 -12
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-DZtQkszH.js → attribute-changes-B8K0pwpH.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{dist-CPlyFOVo.js → dist-BRGbNjhD.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{dist-xQXN70ED.js → dist-CqvWKNQv.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/frames-DoexhtxJ.js +3 -0
- package/dist/src/compiled/_chunks/workflow/private-z_2Kcwee.js +1 -0
- package/dist/src/compiled/_chunks/workflow/resume-hook-DO_MuJlY.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-lq7-eG0l.js +1 -0
- package/dist/src/compiled/_chunks/workflow/sleep-7TgF3i-e.js +1 -0
- package/dist/src/compiled/_chunks/workflow/wait-until-BPSgt1Wg.js +15 -0
- package/dist/src/compiled/_chunks/workflow/ws-transport-TYZ9zwoZ.js +1 -0
- package/dist/src/compiler/extension-compatibility.d.ts +5 -0
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/model-catalog.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-extension.d.ts +10 -1
- package/dist/src/compiler/normalize-extension.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +1 -0
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/discover/discover-agent.js +1 -1
- package/dist/src/discover/discover-subagent.js +1 -1
- package/dist/src/execution/create-session-step.d.ts +1 -0
- package/dist/src/execution/create-session-step.js +1 -1
- package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +1 -1
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/session-callback-step.d.ts +8 -0
- package/dist/src/execution/session-callback-step.js +1 -1
- package/dist/src/execution/session.d.ts +2 -0
- package/dist/src/execution/session.js +1 -1
- package/dist/src/execution/task-event-callback.d.ts +5 -6
- package/dist/src/execution/task-event-callback.js +1 -1
- package/dist/src/execution/tasks/child/instructions.d.ts +3 -0
- package/dist/src/execution/tasks/child/instructions.js +1 -0
- package/dist/src/execution/tasks/child/steps.d.ts +7 -1
- package/dist/src/execution/tasks/child/steps.js +1 -1
- package/dist/src/execution/tasks/child/update.d.ts +10 -0
- package/dist/src/execution/tasks/child/update.js +1 -0
- package/dist/src/execution/tasks/child/workflow.d.ts +3 -3
- package/dist/src/execution/tasks/child/workflow.js +1 -1
- package/dist/src/execution/tasks/parent/agent-views.js +1 -1
- package/dist/src/execution/tasks/parent/control-shared.d.ts +1 -1
- package/dist/src/execution/tasks/parent/dispatch-task-step.d.ts +1 -1
- package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
- package/dist/src/execution/tasks/parent/dispatch.d.ts +5 -3
- package/dist/src/execution/tasks/parent/dispatch.js +1 -1
- package/dist/src/execution/workflow-entry.js +1 -1
- package/dist/src/execution/workflow-steps.js +1 -1
- package/dist/src/harness/advertised-tools.d.ts +3 -0
- package/dist/src/harness/advertised-tools.js +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-module-map-loader.js +1 -1
- package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/public/channels/mcp.d.ts +2 -2
- package/dist/src/public/channels/mcp.js +1 -1
- package/dist/src/runtime/framework-tools/index.js +1 -1
- package/dist/src/runtime/framework-tools/tasks.d.ts +6 -7
- package/dist/src/runtime/framework-tools/tasks.js +1 -1
- package/dist/src/runtime/prompt/compose.js +1 -1
- package/dist/src/runtime/session-callback-route.js +1 -1
- package/dist/src/setup/scaffold/create/extension.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/tasks/task-id.d.ts +1 -2
- package/dist/src/tasks/task-id.js +1 -1
- package/dist/src/tasks/task-inbox-token.d.ts +2 -0
- package/dist/src/tasks/task-inbox-token.js +1 -0
- package/dist/src/tasks/types.d.ts +9 -1
- package/dist/src/tasks/wire.d.ts +2 -3
- package/docs/channels/custom.mdx +1 -0
- package/docs/channels/mcp.mdx +185 -0
- package/docs/channels/meta.json +1 -0
- package/docs/channels/overview.mdx +6 -1
- package/docs/extensions.md +14 -6
- package/docs/guides/auth-and-route-protection.md +1 -0
- package/docs/guides/dev-tui.md +1 -0
- package/docs/instructions.mdx +1 -0
- package/docs/subagents/index.mdx +3 -1
- package/package.json +6 -6
- package/dist/src/compiled/_chunks/workflow/frames-BBs-9k1d.js +0 -3
- package/dist/src/compiled/_chunks/workflow/private-UQtz8ZcW.js +0 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-CYtSorp6.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-Cjo0A3NO.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-C1P0OWBm.js +0 -1
- package/dist/src/compiled/_chunks/workflow/wait-until-CT1ve8qB.js +0 -15
- package/dist/src/compiled/_chunks/workflow/ws-transport-beXxD0s_.js +0 -1
- package/dist/src/execution/tasks/parent/send.d.ts +0 -25
- package/dist/src/execution/tasks/parent/send.js +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import{a as e,t}from"./rolldown-runtime-8V8biNmG.js";import{A as n,C as r,O as i,_ as a,a as o,c as s,g as c,h as l,i as u,j as d,k as f,l as p,m,p as h,s as g,t as _,u as v,x as y}from"./dist-CqvWKNQv.js";import{a as b,c as x,l as ee,n as te,t as ne}from"./private-z_2Kcwee.js";import"./dist-DpYyXbJv.js";import{B as re,C as ie,g as ae,o as oe,u as se,x as ce}from"./dist-BRGbNjhD.js";import{t as S}from"./env-config-DxamfI7T.js";import{types as C}from"node:util";import{AsyncLocalStorage as le}from"node:async_hooks";function ue(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 de(e){return ue(`workflow`,e)}function fe(e){return ue(`step`,e)}function pe(e){return ve(fe(e),e)}function me(e){return ve(de(e),e)}function he(e){return de(e)?.shortName??_e(`workflow`,e)??e}function ge(e){return fe(e)?.shortName??_e(`step`,e)??e}function _e(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 ve(e,t){return e?`${e.shortName} (${e.moduleSpecifier})`:t}const ye=(()=>{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=>ye?`\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)},be={info:T.blue,help:T.cyan,warn:T.yellow,error:T.red};function xe(e){let t=Array.isArray(e)?e.join(`
|
|
2
|
+
`):e;return be.info(`${T.bold(`hint:`)} ${t}`)}function Se(e){return be.info(`${T.bold(`docs:`)} ${e}`)}function Ce(e){return T.italic(`${T.dim("`")}${e}${T.dim("`")}`)}function E(e){return T.dim(e)}function we(e){return T.bold(e)}function Te(e){return T.red(e)}function Ee(e){return T.magenta(e)}function De(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 Oe=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}})),ke=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):()=>{}})),Ae=t(((e,t)=>{let{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=Oe(),a=ke();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*$`)})),je=t(((e,t)=>{let n=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?typeof e==`object`?e:n:r})),Me=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=ke(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=Oe(),{safeRe:a,t:o}=Ae(),s=je(),{compareIdentifiers:c}=Me();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}}})),Ne=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}}})),Pe=t(((e,t)=>{let n=Ne();t.exports=(e,t)=>{let r=n(e,t);return r?r.version:null}})),Fe=t(((e,t)=>{let n=Ne();t.exports=(e,t)=>{let r=n(e.trim().replace(/^[=v]+/,``),t);return r?r.version:null}})),Ie=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}}})),Le=t(((e,t)=>{let n=Ne();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`}})),Re=t(((e,t)=>{let n=D();t.exports=(e,t)=>new n(e,t).major})),ze=t(((e,t)=>{let n=D();t.exports=(e,t)=>new n(e,t).minor})),Be=t(((e,t)=>{let n=D();t.exports=(e,t)=>new n(e,t).patch})),Ve=t(((e,t)=>{let n=Ne();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))})),He=t(((e,t)=>{let n=O();t.exports=(e,t,r)=>n(t,e,r)})),Ue=t(((e,t)=>{let n=O();t.exports=(e,t)=>n(e,t,!0)})),We=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)}})),Ge=t(((e,t)=>{let n=We();t.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))})),Ke=t(((e,t)=>{let n=We();t.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))})),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=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})),$e=t(((e,t)=>{let n=Ye(),r=Xe(),i=qe(),a=Ze(),o=Je(),s=Qe();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}`)}}})),et=t(((e,t)=>{let n=D(),r=Ne(),{safeRe:i,t:a}=Ae();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)}})),tt=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=>ae(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(se(this.set[t],e,this.options))return!0;return!1}};let r=new(tt()),i=je(),a=nt(),o=ke(),s=D(),{safeRe:c,t:l,comparatorTrimReplace:u,tildeTrimReplace:d,caretTrimReplace:f}=Ae(),{FLAG_INCLUDE_PRERELEASE:p,FLAG_LOOSE:m}=Oe(),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=ee(e,t),o(`caret`,e),e=b(e,t),o(`tildes`,e),e=ne(e,t),o(`xrange`,e),e=ie(e,t),o(`stars`,e),e),y=e=>!e||e.toLowerCase()===`x`||e===`*`,b=(e,t)=>e.trim().split(/\s+/).map(e=>x(e,t)).join(` `),x=(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})},ee=(e,t)=>e.trim().split(/\s+/).map(e=>te(e,t)).join(` `),te=(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})},ne=(e,t)=>(o(`replaceXRanges`,e,t),e.split(/\s+/).map(e=>re(e,t)).join(` `)),re=(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})},ie=(e,t)=>(o(`replaceStars`,e,t),e.trim().replace(c[l.STAR],``)),ae=(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()),se=(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}})),nt=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=je(),{safeRe:i,t:a}=Ae(),o=$e(),s=ke(),c=D(),l=k()})),rt=t(((e,t)=>{let n=k();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch{return!1}return t.test(e)}})),it=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(` `))})),at=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}})),ot=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}})),st=t(((e,t)=>{let n=D(),r=k(),i=qe();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}})),ct=t(((e,t)=>{let n=k();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),lt=t(((e,t)=>{let n=D(),r=nt(),{ANY:i}=r,a=k(),o=rt(),s=qe(),c=Je(),l=Qe(),u=Ze();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}})),ut=t(((e,t)=>{let n=lt();t.exports=(e,t,r)=>n(e,t,`>`,r)})),dt=t(((e,t)=>{let n=lt();t.exports=(e,t,r)=>n(e,t,`<`,r)})),ft=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))})),pt=t(((e,t)=>{let n=rt(),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}})),mt=t(((e,t)=>{let n=k(),r=nt(),{ANY:i}=r,a=rt(),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})),ht=t(((e,t)=>{let n=Ae(),r=Oe(),i=D(),a=Me();t.exports={parse:Ne(),valid:Pe(),clean:Fe(),inc:Ie(),diff:Le(),major:Re(),minor:ze(),patch:Be(),prerelease:Ve(),compare:O(),rcompare:He(),compareLoose:Ue(),compareBuild:We(),sort:Ge(),rsort:Ke(),gt:qe(),lt:Je(),eq:Ye(),neq:Xe(),gte:Ze(),lte:Qe(),cmp:$e(),coerce:et(),Comparator:nt(),Range:k(),satisfies:rt(),toComparators:it(),maxSatisfying:at(),minSatisfying:ot(),minVersion:st(),validRange:ct(),outside:lt(),gtr:ut(),ltr:dt(),intersects:ft(),simplifyRange:pt(),subset:mt(),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 gt=2**32-1,_t=gt-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 vt=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function yt(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===vt}function bt(e){return Object.prototype.toString.call(e).slice(8,-1)}function xt(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=xt(r);a&&(t+=e.slice(n,i)+a,n=i+1)}return`"${n===0?e:t+e.slice(n)}"`}function St(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}const Ct=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function wt(e){return Ct.test(e)?`.`+e:`[`+JSON.stringify(e)+`]`}function Tt(e){return!(!Number.isInteger(e)||e<0||e>_t)}function Et(e){return!(!Number.isInteger(e)||e<0||e>gt)}function Dt(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 Tt(+e)}function Ot(e){for(var t=e.length-1;t>=0&&!Dt(e[t]);t--);return t+1}function kt(e){let t=Object.keys(e);return t.length=Ot(t),t}function At(e){return new Uint8Array(e).toBase64()}function jt(e){return Uint8Array.fromBase64(e).buffer}function Mt(e){return Buffer.from(e).toString(`base64`)}function Nt(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function Pt(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 Ft(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 It=typeof Uint8Array.fromBase64==`function`,Lt=typeof process==`object`&&process.versions?.node!==void 0,Rt=It?At:Lt?Mt:Pt,zt=It?jt:Lt?Nt:Ft;function Bt(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))n[r]=t[r]??e[r];return n}const Vt=Object.freeze({kind:`not-plain`}),Ht=Object.freeze({kind:`symbol-keys`}),Ut=Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>bt(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=>kt(e),shapeOf:e=>yt(e)?St(e).length>0?Ht:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:Vt,get:(e,t)=>e[t]}),Wt=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[_t]=void 0,delete t[_t],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 Gt(e,t,n){return Kt(JSON.parse(e),t,n)}function Kt(e,t,n){let r=Bt(Wt,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(zt(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(!Et(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(!Tt(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=qt(!1,e,t,n);return typeof r==`string`?r:`[${r.join(`,`)}]`}function qt(e,t,n,r){let i=Bt(Ut,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=Jt(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?Jt(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","${Rt(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(wt(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(wt(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 Jt(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 Yt=e(ht(),1);async function Xt(e,t=[`encrypt`,`decrypt`]){if(e.byteLength!==32)throw new i(`Encryption key must be exactly 32 bytes, got ${e.byteLength}`);return globalThis.crypto.subtle.importKey(`raw`,e,`AES-GCM`,!1,t)}async function Zt(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 Qt(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 $t=Symbol.for(`WORKFLOW_USE_STEP`),en=Symbol.for(`WORKFLOW_SET_ATTRIBUTES`),tn=Symbol.for(`WORKFLOW_CREATE_HOOK`),nn=Symbol.for(`WORKFLOW_SLEEP`),rn=Symbol.for(`WORKFLOW_GET_STREAM_ID`),an=Symbol.for(`WORKFLOW_STABLE_ULID`),N=Symbol.for(`WORKFLOW_STREAM_NAME`),on=Symbol.for(`WORKFLOW_STREAM_TYPE`),sn=Symbol.for(`WORKFLOW_STREAM_FRAMING`),cn=Symbol.for(`WORKFLOW_STREAM_SERVER_RUN_ID`),ln=Symbol.for(`WORKFLOW_STREAM_SERVER_DEPLOYMENT_ID`),un=Symbol.for(`WORKFLOW_STREAM_SERVER_PUBLIC_KEY`),dn=Symbol.for(`WORKFLOW_STREAM_DRAIN`),fn=Symbol.for(`BODY_INIT`),pn=Symbol.for(`WEBHOOK_RESPONSE_WRITABLE`),mn=Symbol.for(`workflow-class-registry`),P=Symbol.for(`WORKFLOW_ABORT_STREAM_NAME`),F=Symbol.for(`WORKFLOW_ABORT_HOOK_TOKEN`),hn=Symbol.for(`WORKFLOW_ABORT_LISTENER_ATTACHED`),gn=Symbol.for(`WORKFLOW_ABORT_READER_CANCEL`),_n=()=>S(`WORKFLOW_STREAM_MAX_INFLIGHT_CHUNKS`,1e3,{integer:!0,min:1}),vn=()=>S(`WORKFLOW_STREAM_MAX_CHUNKS_PER_BATCH`,1e3,{integer:!0,min:1}),yn=()=>S(`WORKFLOW_STREAM_MAX_BYTES_PER_BATCH`,1048576,{integer:!0,min:1}),bn=()=>S(`WORKFLOW_STREAM_MAX_BUFFERED_BYTES`,8388608,{integer:!0,min:1}),xn=()=>S(`WORKFLOW_LOCK_POLL_INTERVAL_MS`,10,{integer:!0,min:1});function Sn(){let e={...ee(),pendingOps:0,doneResolved:!1,streamEnded:!1};return e.promise.catch(()=>{}),e}function Cn(e){if(e.locked)return!1;let t;try{t=e.getWriter()}catch{return!1}try{t.releaseLock()}catch{return!1}return!0}function wn(e){if(e.locked)return!1;let t;try{t=e.getReader()}catch{return!1}try{t.releaseLock()}catch{return!1}return!0}function Tn(e){let t=e.drainBarrier;if(!t){e.resolve();return}t().then(()=>e.resolve(),t=>e.reject(t))}function En(e,t){if(t.writablePollingInterval!==void 0)return;let n=setInterval(()=>{if(t.doneResolved||t.streamEnded){clearInterval(n),t.writablePollingInterval=void 0;return}Cn(e)&&t.pendingOps===0&&(t.doneResolved=!0,clearInterval(n),t.writablePollingInterval=void 0,Tn(t))},xn());t.writablePollingInterval=n}function Dn(e,t){if(t.readablePollingInterval!==void 0)return;let n=setInterval(()=>{if(t.doneResolved||t.streamEnded){clearInterval(n),t.readablePollingInterval=void 0;return}wn(e)&&t.pendingOps===0&&(t.doneResolved=!0,clearInterval(n),t.readablePollingInterval=void 0,Tn(t))},xn());t.readablePollingInterval=n}function On(e,t,n){let r=t[dn];return typeof r==`function`&&(n.drainBarrier=r),kn(e,t,n)}async function kn(e,t,n){let r=e.getReader(),a=t.getWriter(),o;try{for(;;){if(n.streamEnded)return;let e=await Promise.race([r.read(),a.closed.then(()=>{throw new i(`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{r.cancel(o).catch(()=>{}),r.releaseLock(),a.releaseLock()}}function An(e){let t=e.specVersion;if(!(t!=null&&t>=6&&t<=6))throw new i(`This Workflow runtime supports Worlds with spec version 6 through 6, but the configured World declares spec version ${t??`none`}. Install a World package version compatible with the current Workflow runtime.`)}const jn=Symbol.for(`@workflow/world//cache`),Mn=Symbol.for(`@workflow/world//cachePromise`),Nn=Symbol.for(`@workflow/world//getWorldFn`);async function Pn(){let e=globalThis;if(e[jn])return An(e[jn]),e[jn];if(e[Mn])return e[jn]=await e[Mn],An(e[jn]),e[jn];let t=e[Nn];if(t){let e=await t();return An(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 Fn=new Uint8Array([48,46,2,1,0,48,5,6,3,43,101,110,4,34,4,32]),In=new TextEncoder;function Ln(e){if(e.byteLength!==32)throw new i(`Run key material must be exactly 32 bytes, got ${e.byteLength}`)}function Rn(e,t){if(e.byteLength!==32)throw new i(`${t} must be exactly 32 bytes, got ${e.byteLength}`)}async function zn(e){Ln(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:In.encode(`workflow/encp/x25519/v1`)},t,256),r=new Uint8Array(n);return{scalar:r,publicKey:await Bn(r)}}async function Bn(e){let t=await Vn(e,!0),n=await globalThis.crypto.subtle.exportKey(`jwk`,t);if(!n.x)throw new i(`X25519 JWK export did not include a public key component ("x")`);let r=Kn(n.x);if(r.byteLength!==32)throw new i(`X25519 JWK export produced a ${r.byteLength}-byte public key, expected 32`);return r}async function Vn(e,t){let n=new Uint8Array(Fn.length+e.byteLength);return n.set(Fn,0),n.set(e,Fn.length),globalThis.crypto.subtle.importKey(`pkcs8`,n,{name:`X25519`},t,[`deriveBits`])}function Hn(e){return globalThis.crypto.subtle.importKey(`raw`,e,{name:`X25519`},!0,[])}const Un=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;function Wn(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+=Un[r>>2&63],t+=Un[(r&3)<<4|i>>4&15],t+=n+1<e.length?Un[(i&15)<<2|a>>6&3]:`=`,t+=n+2<e.length?Un[a&63]:`=`}return t}function Gn(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=Un.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 Kn(e){let t=0,n=0,r=[];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 i(`Invalid base64url character "${o}" in X25519 JWK key component`);t=t<<6|s,n+=6,n>=8&&(n-=8,r.push(t>>n&255))}return new Uint8Array(r)}async function qn(e,t,n,r){let i=In.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 Jn(e){Rn(e,`Recipient public key`);let t;try{t=await Hn(e)}catch(e){throw new i(`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`]),r=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 i(`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:r,contentKey:await qn(new Uint8Array(a),r,e,[`encrypt`])}}async function Yn(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([Vn(e.scalar,!1),Hn(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 qn(new Uint8Array(n),t,e.publicKey,[`decrypt`])}async function Xn(e,t,n){let{ephemeralPublicKey:r,contentKey:i}=await Jn(e),a=await Zt(i,t,n),o=new Uint8Array(r.byteLength+a.byteLength);return o.set(r,0),o.set(a,r.byteLength),o}async function Zn(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 Qt(await Yn(e,r),i,n)}function Qn(e,t){let n;return{async seal(r){n??=Jn(e);let{ephemeralPublicKey:i,contentKey:a}=await n,o=await Zt(a,r,t),s=new Uint8Array(i.byteLength+o.byteLength);return s.set(i,0),s.set(o,i.byteLength),s}}}function $n(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=er(a);(s!==n||!r)&&(n=s,r=Yn(e,a));let c;try{c=await r}catch(e){throw n=void 0,r=void 0,e}return Qt(c,o,t)}}}function er(e){let t=``;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return t}function tr(e){if(!e)return;let t=Gn(e);if(!(!t||t.byteLength!==32))return t}let nr=null,rr=null;function ir(e,t){let n=nr,r=rr;nr=e??null,rr=e?new WeakSet:null;try{return t()}finally{nr=n,rr=r}}const ar=new WeakSet;function or(e){return ar.add(e),e}function sr(e){return typeof e==`function`&&ar.has(e)}function cr(e,t){if(!nr)return;let n={kind:e};t!==void 0&&(n.detail=t),nr.executions.push(n)}function I(e){!nr||!rr||rr.has(e)||(rr.add(e),cr(`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 lr=L(Date.prototype.getDate),ur=L(Date.prototype.getTime),dr=L(Date.prototype.toISOString),fr=R(RegExp.prototype,`source`),pr=R(RegExp.prototype,`flags`),mr=R(ArrayBuffer.prototype,`byteLength`),hr=L(Map.prototype.entries),gr=L(Set.prototype.values),_r=L(Number.prototype.valueOf),vr=L(String.prototype.valueOf),yr=L(Boolean.prototype.valueOf),br=L(BigInt.prototype.valueOf),xr=Object.getPrototypeOf(Uint8Array.prototype),Sr=R(xr,Symbol.toStringTag),Cr=R(xr,`buffer`),wr=R(xr,`byteOffset`),Tr=R(xr,`byteLength`),Er=R(xr,`length`),Dr=R(DataView.prototype,`buffer`),Or=R(DataView.prototype,`byteOffset`),kr=R(DataView.prototype,`byteLength`),Ar=R(SharedArrayBuffer.prototype,`byteLength`),jr=L(Headers.prototype[Symbol.iterator]),Mr=R(URL.prototype,`href`),Nr=L(URLSearchParams.prototype.toString),{isProxy:z}=C,Pr=L(Function.prototype.toString);function Fr(e){if(z(e))return!1;let t=Object.getOwnPropertyDescriptor(e,`name`)?.value;return typeof t==`string`&&t.startsWith(`bound `)?!1:Pr(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?(Fr(r.get)||cr(`getter`,String(t)),r.get.call(e)):void 0;n=Reflect.getPrototypeOf(n)}}function Ir(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 Lr(e){return z(e)?(I(e),e.href):Mr(e)}function Rr(e){return z(e)?(I(e),String(e)):Nr(e)}function zr(e){return z(e)?(I(e),Array.from(e)):[...jr(e)]}function Br(e){return[...hr(e)]}function Vr(e){return[...gr(e)]}function Hr(e){return C.isDataView(e)?{buffer:Dr(e),byteOffset:Or(e),byteLength:kr(e)}:{buffer:Cr(e),byteOffset:wr(e),byteLength:Tr(e)}}const Ur=new Set([`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Float16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]),Wr=new Set([`Date`,`RegExp`,`Map`,`Set`,`Array`,`DataView`,`ArrayBuffer`,`SharedArrayBuffer`,`Number`,`String`,`Boolean`,`BigInt`,`URL`,`URLSearchParams`,...Ur]);function Gr(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=Sr(e);return t!==void 0&&Ur.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 Kr(e){let t=B(e,Symbol.toStringTag);return typeof t==`string`?t:void 0}const qr={tagOf:e=>{if(z(e))return I(e),Ut.tagOf(e);let t=Gr(e);if(t!==void 0)return t;let n=Kr(e);return n===void 0||Wr.has(n)?`Object`:n},isThenable:e=>C.isPromise(e)?!0:typeof B(e,`then`)==`function`,unbox:e=>C.isNumberObject(e)?_r(e):C.isStringObject(e)?vr(e):C.isBooleanObject(e)?yr(e):br(e),toISOString:e=>Number.isNaN(lr(e))?``:dr(e),toStringValue:e=>V(e,URL.prototype)?Lr(e):V(e,URLSearchParams.prototype)?Rr(e):(cr(`method`,`toString (${Kr(e)??`unknown`})`),e.toString()),regExpInfo:e=>({source:fr(e),flags:pr(e)}),valuesOf:e=>Vr(e),entriesOf:e=>Br(e),viewInfo:e=>{let t=Hr(e);return{...t,length:C.isDataView(e)?0:Er(e),bufferByteLength:C.isSharedArrayBuffer(t.buffer)?Ar(t.buffer):mr(t.buffer)}},shapeOf:e=>(z(e)&&I(e),Ut.shapeOf(e)),get:(e,t)=>B(e,t)},Jr=Symbol.for(`workflow-serialize`),Yr=Symbol.for(`workflow-deserialize`);function Xr(e=globalThis){let t=e,n=t[mn];return n||(n=new Map,t[mn]=n),n}const Zr=`class//workflow//Run`;function Qr(e,t,n=globalThis){Xr(n).set(e,t)}function $r(e,t){return Xr(t).get(e)}function ei(){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,Jr);if(typeof n!=`function`)return!1;let r=B(t,`classId`);if(typeof r!=`string`)throw Error(`Class "${String(B(t,`name`))}" with ${String(Jr)} must have a static "classId" property.`);return cr(`method`,`[WORKFLOW_SERIALIZE] (${r})`),{classId:r,data:n.call(t,e)}}}}function ti(e=globalThis){return{Class:t=>{let n=t.classId,r=$r(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=$r(n,e);if(!i)throw Error(`Class "${n}" not found. Make sure the class is registered with registerSerializationClass.`);let a=i[Yr];if(typeof a!=`function`)throw Error(`Class "${n}" does not have a static ${String(Yr)} method.`);return a.call(i,r)}}}function ni(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=Hr(e);return ni(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 ri(e){return JSON.parse(e)}function ii(e){let t=Object.getOwnPropertyDescriptor(e,`stack`);return t&&`value`in t?t.value:(cr(`getter`,`stack`),t?.get?t.get.call(e):B(e,`stack`))}function ai(e){if(!C.isNativeError(e))return!1;let t={message:B(e,`message`),stack:ii(e)};return Ir(e,`cause`)&&(t.cause=B(e,`cause`)),t}function oi(e,t){return!C.isNativeError(t)||B(t,`name`)!==e?!1:ai(t)}function si(e){return t=>oi(e,t)||!1}function ci(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 li(e=globalThis){return{ArrayBuffer:e=>C.isArrayBuffer(e)&&ni(e,0,mr(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(lr(e))?`.`:dr(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:ii(e)};return Ir(e,`cause`)&&(n.cause=B(e,`cause`)),n},EvalError:si(`EvalError`),FatalError:si(`FatalError`),HookConflictError:e=>{let t=oi(`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:si(`RangeError`),ReferenceError:si(`ReferenceError`),RetryableError:e=>{let t=oi(`RetryableError`,e);if(!t)return!1;let n=B(e,`retryAfter`),r;if(C.isDate(n)){let e=ur(n);r=Number.isNaN(e)?Date.now()+1e3:e}else if(n&&typeof n==`object`){let e=B(n,`getTime`);if(typeof e==`function`){cr(`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=oi(`RuntimeDecryptionError`,e);if(!t)return!1;let n={...t},r=B(e,`context`);return r!==void 0&&(n.context=r),n},SyntaxError:si(`SyntaxError`),TypeError:si(`TypeError`),URIError:si(`URIError`),AggregateError:e=>{let t=oi(`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:ii(e)};return Ir(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)&&zr(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)&&Br(e),RegExp:e=>C.isRegExp(e)&&{source:fr(e),flags:pr(e)},Set:e=>C.isSet(e)&&Vr(e),URL:e=>V(e,URL.prototype)&&Lr(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=Rr(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 ui(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:ci(e,`EvalError`),FatalError:t=>{let n=new(e[Symbol.for(`@workflow/errors//FatalError`)]??u)(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:ci(e,`RangeError`),ReferenceError:ci(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:ci(e,`SyntaxError`),TypeError:ci(e,`TypeError`),URIError:ci(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 di(){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`&&(sr(n)||cr(`method`,`__closureVarsFn`),r=n());let i=Ir(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 fi(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 pi(e){return e.length===4&&/^[a-z0-9]{4}$/.test(e)}const W={DEVALUE_V1:`devl`,ENCRYPTED:`encr`,SEALED:`encp`,GZIP:`gzip`,ZSTD:`zstd`},mi=new TextEncoder,hi=new TextDecoder,gi=1e5,_i={operations:{createSparseArray(e){if(e>gi)throw RangeError(`Sparse array length ${e} exceeds the maximum of ${gi}`);return Wt.createSparseArray(e)}}};function vi(e,t=globalThis,n){let r;switch(e){case`workflow`:r={...ei(),...di(),...li(t)};break;case`step`:r={...ei(),...li(t)};break;case`client`:r={...ei(),...li(t)};break}return n?{...r,...n}:r}function yi(e,t=globalThis,n){let r;switch(e){case`workflow`:r={...ti(t),...fi(t),...ui(t)};break;case`step`:r={...ti(t),...ui(t)};break;case`client`:r={...ti(t),...ui(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=vi(t,n?.global,n?.extraReducers),i=ir(n?.guestCodeStats,()=>M(e,r,{operations:qr}));return mi.encode(i)},deserialize(e,t,n){let r=yi(t,n?.global,n?.extraRevivers);return Gt(hi.decode(e),r,_i)},deserializeLegacy(e,t,n){return Kt(e,yi(t,n?.global,n?.extraRevivers),_i)}},bi=new TextEncoder,xi=new TextDecoder;function K(e,t){if(!(t instanceof Uint8Array))return t;let n=bi.encode(e),r=new Uint8Array(4+t.length);return r.set(n,0),r.set(t,4),r}function Si(e){if(!(e instanceof Uint8Array)||e.length<4)return null;let t=e.subarray(0,4),n=xi.decode(t);return pi(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=xi.decode(t);if(!pi(n))throw Error(`Invalid format prefix: "${n}". Must be 4 characters of [a-z0-9].`);return{format:n,payload:e.subarray(4)}}function Ci(){try{return typeof process<`u`&&process.env?.WORKFLOW_DISABLE_COMPRESSION===`1`}catch{return!1}}function wi(){try{let e=process.env?.WORKFLOW_COMPRESSION_CODEC;return e===`gzip`||e===`zstd`?e:void 0}catch{return}}function Ti(){try{return globalThis.process?.getBuiltinModule?.(`node:zlib`)}catch{return}}function Ei(){let e=Ti();return typeof e?.zstdCompressSync==`function`&&typeof e?.zstdDecompressSync==`function`}function Di(){return typeof CompressionStream==`function`&&typeof DecompressionStream==`function`}async function Oi(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 ki(e){return Oi(e,new CompressionStream(`gzip`))}async function Ai(e){return Oi(e,new DecompressionStream(`gzip`))}function ji(e){let t=Ti(),n=t?.constants?.ZSTD_c_compressionLevel,r=n===void 0?void 0:{params:{[n]:3}};return new Uint8Array(t.zstdCompressSync(e,r))}function Mi(e){let t=Ti();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 Ni(e,t,n,r){e&&(e.recorded=!0,e.compressed=t!==`none`,e.codec=t,e.uncompressedBytes=n,e.storedBytes=r)}function Pi(){return wi()===`gzip`?Di()?`gzip`:`none`:Ei()?`zstd`:Di()?`gzip`:`none`}async function Fi(e,t,n){if(!(e instanceof Uint8Array))return e;if(!t||e.length<1024||Ci())return Ni(n,`none`,e.length,e.length),e;let r=Pi();if(r===`none`)return Ni(n,`none`,e.length,e.length),e;let i=r===`zstd`?ji(e):await ki(e),a=r===`zstd`?W.ZSTD:W.GZIP,o=4+i.length;return o>=e.length*.95?(Ni(n,`none`,e.length,e.length),e):(Ni(n,r,e.length,o),K(a,i))}async function Ii(e,t){if(!(e instanceof Uint8Array))return e;let n=Si(e);if(n===W.ZSTD){let{payload:n}=q(e),r=Mi(n);return Ni(t,`zstd`,r.length,e.length),r}if(n===W.GZIP){if(!Di())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 Ai(n);return Ni(t,`gzip`,r.length,e.length),r}return Ni(t,`none`,e.length,e.length),e}const Li=Symbol.for(`workflow.serialization.sealTarget`),Ri=Symbol.for(`workflow.serialization.runKeys`);function zi(e,t){return{[Li]:!0,recipientPublicKey:e,aad:t}}function Bi(e,t,n){return{[Ri]:!0,aes:e,keyPair:t,aad:n}}async function Vi(e){let[t,n]=await Promise.all([Xt(e),zn(e)]);return Bi(t,n)}function Hi(e){return typeof e==`object`&&!!e&&e[Li]===!0}function Ui(e){return typeof e==`object`&&!!e&&e[Ri]===!0}function Wi(e){if(e){if(Ui(e))return e.aes;if(!Hi(e))return e}}async function Gi(e){return typeof e==`function`?e():e}async function Ki(e,t){if(!t||!(e instanceof Uint8Array))return e;if(Hi(t)){let n=await Xn(t.recipientPublicKey,e,t.aad);return K(W.SEALED,n)}let n=await Zt(Ui(t)?t.aes:t,e);return K(W.ENCRYPTED,n)}async function qi(e,t){if(!Ui(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 Zn(t.keyPair,n,t.aad)}catch(e){throw h.is(e)&&e.context&&(e.context.formatPrefix=W.SEALED),e}}async function Ji(e,t){if(!(e instanceof Uint8Array))return e;let n=Si(e);if(n===W.SEALED)return qi(e,t);if(n!==W.ENCRYPTED)return e;let r=Wi(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 Qt(r,i)}catch(e){throw h.is(e)&&e.context&&(e.context.formatPrefix=n),e}}function Yi(e,t,n){let[r,...i]=t.split(`
|
|
6
|
+
`),a=i.join(`
|
|
7
|
+
`),o=Xi(r??``,n),s=Zi(a),c=[`${e} ${r??``}`];return o&&c.push(o),s&&c.push(s),c.join(`
|
|
8
|
+
`)}function Xi(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=J(t,`errorName`),o=J(t,`errorAttribution`);if(a||o){let e=o?o===`sdk`?Ee(`sdk error`):Te(`user error`):``,t=a?we(a):``,n=e&&t?E(` · `):``;i.push(` ${e}${n}${t}`)}let s=J(t,`workflowRunId`),c=J(t,`workflowName`);s?i.push(ea(`run`,s,c,me)):c&&i.push(ea(`run`,null,c,me));let l=J(t,`stepId`),u=J(t,`stepName`);if((l||u)&&i.push(ea(`step`,l,u,pe)),t.attempt!==void 0||t.retryCount!==void 0){let e=t.attempt,n=t.retryCount;e!==void 0&&n!==void 0?i.push(` ${$i(`retry`)} ${e} ${E(`attempts ·`)} ${n} ${E(`max retries`)}`):e!==void 0&&i.push(` ${$i(`retry`)} ${e} ${E(`attempts`)}`)}let d=J(t,`errorCode`);d&&d!==a&&i.push(` ${$i(`code`)} ${E(d)}`);let f=J(t,`hint`);f&&i.push(` ${xe(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(` ${$i(e)} ${ta(t)}`);return i.length?i.join(`
|
|
9
|
+
`):null}function Zi(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&&Qi(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 Qi(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 J(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:null}function $i(e){return E(e.padEnd(6))}function ea(e,t,n,r){let i=t||E(`—`),a=n&&(e===`run`?de(n):fe(n))?`${E(`·`)} ${r(n)}`:``;return` ${$i(e)} ${i}${a?` `+a:``}`}function ta(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 na=class e extends Error{steps;globalThis;stepCount;hookCount;waitCount;attributeCount;hookDisposedCount;abortCount;constructor(e,t){let n=[...e.values()],r=0,i=0,a=0,o=0,s=0,c=0;for(let e of n)e.type===`step`?r++:e.type===`hook`?e.disposed?s++:e.abortRequested?c++:i++:e.type===`wait`?a++:e.type===`attribute`&&o++;let l=[];r>0&&l.push(`${r} ${d(`step`,`steps`,r)}`),i>0&&l.push(`${i} ${d(`hook`,`hooks`,i)}`),a>0&&l.push(`${a} ${d(`wait`,`waits`,a)}`),o>0&&l.push(`${o} ${d(`attribute write`,`attribute writes`,o)}`),s>0&&l.push(`${s} hook ${d(`disposal`,`disposals`,s)}`);let u=d(`has`,`have`,r+i+a+o+s),f=+(r>0)+ +(i>0)+ +(a>0)+ +(o>0)+ +(s>0),p;p=f>1?`processed`:r>0?`run`:i>0||a>0?`created`:o>0?`written`:s>0?`processed`:`received`;let m=l.length>0?`${l.join(` and `)} ${u} not been ${p} yet`:`0 steps have not been run yet`;super(m),this.name=`WorkflowSuspension`,this.steps=n,this.globalThis=t,this.stepCount=r,this.hookCount=i,this.waitCount=a,this.attributeCount=o,this.hookDisposedCount=s,this.abortCount=c}static is(t){return t instanceof e}};function ra(){throw new i(`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 Y(...e){return t=>Object.fromEntries(e.map(e=>[e,t]))}const ia=Y(`workflow.name`),aa=Y(`workflow.operation`),oa=Y(`workflow.run.id`),sa=Y(`workflow.run.status`),ca=Y(`workflow.started_at`),la=Y(`workflow.events.count`),ua=Y(`workflow.execution.mode`),da=Y(`workflow.events.parked.count`),fa=Y(`workflow.events.parked.event_id`),pa=Y(`workflow.events.parked.event_type`),ma=Y(`workflow.arguments.count`),ha=Y(`workflow.result.type`),ga=Y(`workflow.trace.propagated`),_a=Y(`workflow.trace.mode`),va=Y(`workflow.turbo`),ya=Y(`workflow.error.name`),ba=Y(`workflow.error.message`),xa=Y(`workflow.error.code`),Sa=Y(`workflow.steps.created`),Ca=Y(`workflow.hooks.created`),wa=Y(`workflow.waits.created`),Ta=Y(`workflow.inline_ownership.owned_recovery_steps`),Ea=Y(`workflow.inline_ownership.backstop_wakes_armed`),Da=Y(`workflow.route.type`),Oa=Y(`workflow.route.handler_cached`),ka=Y(`workflow.route.invocation_count`),Aa=Y(`workflow.route.entrypoint_age_ms`),ja=Y(`workflow.route.module_body_init_ms`),Ma=Y(`faas.instance`),Na=Y(`step.name`),Pa=Y(`step.id`),Fa=Y(`step.attempt`),Ia=Y(`step.status`),La=Y(`step.max_retries`),Ra=Y(`step.ttfs_ms`),za=Y(`step.stso_ms`),Ba=Y(`step.rsfs_ms`),Va=Y(`step.final_scheduling_replay_ms`),Ha=Y(`step.latency_optimizations`),Ua=Y(`step.skipped`),Wa=Y(`step.skip_reason`),Ga=Y(`step.arguments.count`),Ka=Y(`step.result.type`),qa=Y(`step.error.name`),Ja=Y(`step.error.message`),Ya=Y(`step.fatal_error`),Xa=Y(`step.retry.exhausted`),Za=Y(`step.retry.timeout_seconds`),Qa=Y(`step.retry.will_retry`),$a=Y(`messaging.system`),eo=Y(`messaging.destination.name`),to=Y(`messaging.message.id`),no=Y(`messaging.operation.type`),ro=Y(`workflow.queue.overhead_ms`),io=Y(`deployment.id`),ao=Y(`workflow.deployment.pinned_id`),oo=Y(`workflow.deployment_mismatch.retry_count`),so=Y(`workflow.deployment_mismatch.recovered`),co=Y(`workflow.hook.token`),lo=Y(`workflow.hook.id`),uo=Y(`workflow.hook.found`),fo=Y(`workflow.hook.resilient_resume`),po=Y(`workflow.hook.resilient_resume_materialized`),mo=Y(`workflow.resume_setup_source`),ho=Y(`workflow.step.resilient_dispatch_recovered`),go=Y(`workflow.step.resilient_dispatch_materialized`),_o=Y(`workflow.resume.total_ms`),vo=Y(`workflow.resume.phase.producer_prep_ms`),yo=Y(`workflow.resume.phase.queue_delivery_ms`),bo=Y(`workflow.resume.phase.resume_setup_ms`),xo=Y(`workflow.resume.phase.replay_ms`),So=Y(`workflow.resume.phase.step_dispatch_ms`),Co=Y(`workflow.resume.phase.step_claim_ms`),wo=Y(`workflow.resume.phase.step_prepare_ms`),To=Y(`workflow.resume.trigger`),Eo=Y(`workflow.resume.strategy`),Do=Y(`workflow.resume.setup_source`),Oo=Y(`workflow.resume.step_execution`),ko=Y(`workflow.suspension.state`),Ao=Y(`workflow.suspension.hook_count`),jo=Y(`workflow.suspension.step_count`),Mo=Y(`workflow.suspension.wait_count`),No=Y(`http.request.method`),Po=Y(`http.route`),Fo=Y(`http.response.status_code`),Io=Y(`error.type`),Lo=Y(`workflow.events.pages_loaded`),Ro=Y(`workflow.queue.deserialize_time_ms`),zo=Y(`workflow.queue.execution_time_ms`),Bo=Y(`workflow.queue.serialize_time_ms`),Vo=Y(`workflow.serialization.operation`),Ho=Y(`workflow.serialization.compressed`),Uo=Y(`workflow.serialization.codec`),Wo=Y(`workflow.serialization.uncompressed_bytes`),Go=Y(`workflow.serialization.stored_bytes`),Ko=Y(`workflow.serialization.compression_ratio`),qo=Y(`workflow.serialization.guest_code_executions`),Jo=Y(`workflow.serialization.guest_code_details`),Yo=Y(`peer.service`),Xo=Y(`rpc.system`),Zo=Y(`rpc.service`),Qo=Y(`rpc.method`),$o=Y(`error.retryable`),es=Y(`error.category`),ts=new Set;function ns(){let e=process.env.WORKFLOW_TRACE_MODE;return e===`continuous`?`continuous`:(e&&e!==`linked`&&!ts.has(e)&&(ts.add(e),Ts.warn(`Unrecognized WORKFLOW_TRACE_MODE value "${e}"; expected "linked" or "continuous". Falling back to "linked".`)),`linked`)}function rs(e){return e!==void 0&&Object.keys(e).length>0}function is(e,t){return e===`linked`&&rs(t)?Promise.resolve(t):os()}async function as(e,t){if(e!==`linked`)return ys();let n=await bs(rs(t)?t:void 0);return n?[n]:void 0}async function os(){let e=await X.value;if(!e)return{};let t={};return e.propagation.inject(e.context.active(),t),t}async function ss(e){let t=await X.value;if(t)return t.propagation.extract(t.context.active(),e)}async function cs(e,t){if(!e)return t();let n=await X.value;if(!n)return t();let r=await ss(e);return r?n.context.with(r,async()=>await t()):t()}const X=x(async()=>{try{return await import(`../../@opentelemetry/api/index.js`)}catch{return Ts.info(`OpenTelemetry not available, tracing will be disabled`),null}}),ls=x(async()=>{let e=await X.value;if(!e)return null;let t=e.trace.getTracer(`workflow`);return ds(e,t),t});let us=!1;function ds(e,t){let n=typeof process<`u`&&typeof process.env.DEBUG==`string`&&(process.env.DEBUG.includes(`workflow:`)||process.env.DEBUG===`*`);if(!(us||!n)){us=!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 fs(e,...t){let[n,r]=await Promise.all([ls.value,X.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 na.is(t)?(e.setStatus({code:r.SpanStatusCode.OK}),ms(t,e)):e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),t}finally{e.end()}})}async function ps(e,t,n){let r=await ls.value;r&&r.startSpan(e,{...n,startTime:t}).end()}function ms(e,t){t.setAttributes({...ko(`suspended`),...jo(e.stepCount),...Ao(e.hookCount),...Mo(e.waitCount)})}async function hs(e){let[t,n]=await Promise.all([ss(e),X.value]);if(!(!t||!n))return n.trace.getSpanContext(t)}async function gs(){return await vs(e=>e.trace.getActiveSpan())}async function _s(e){return vs(t=>t.SpanKind[e])}async function vs(e){let t=await X.value;if(t)return await e(t)}function ys(){return vs(e=>{let t=e.trace.getActiveSpan()?.spanContext();if(t)return[{context:t}]})}async function bs(e){if(!e)return;let[t,n]=await Promise.all([hs(e),X.value]);if(!(!t||!n)&&n.trace.isSpanContextValid(t))return{context:t}}async function xs(e,t){let n=await X.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 Ss(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 Cs(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)(Yi(`[workflow-sdk]`,i,c)),Ss(n,process.env.DEBUG)&&(console.debug(`[${n}] ${i}`,c??``),gs().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 ws=Cs(`step`),Ts=Cs(`runtime`),Es=Cs(`webhook`),Ds=Cs(`events`);Cs(`adapter`),Cs(`build`,{debugNamespace:`workflow:build`});function Os(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&&Ts.error(`Serialization failed`,{context:e,problematicValue:t.value}),{message:r,hint:i}}async function ks(e,t,n){try{let r=G.serialize(e,`client`,n);return Ki(await Fi(K(W.DEVALUE_V1,r),n?.compression===!0,n?.compressionStats),t)}catch(e){Os(e);let{message:t,hint:n}=Z(`client value`,e);throw new m(t,{hint:n,cause:e})}}async function As(e,t,n){let r=await Ii(await Ji(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 js(e,t,n){try{let r=G.serialize(e,`step`,n);return Ki(await Fi(K(W.DEVALUE_V1,r),n?.compression===!0,n?.compressionStats),t)}catch(e){Os(e);let{message:t,hint:n}=Z(`step value`,e);throw new m(t,{hint:n,cause:e})}}async function Ms(e,t,n){let r=await Ii(await Ji(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 Ns(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`),Fs=(()=>{let e=globalThis;return e[Ps]??=new le,e[Ps]})();function Is(e,t,n){if(e===0&&t===0&&n===0)return null;let r=[];e>0&&r.push(`${e} ${d(`step`,`steps`,e)}`),t>0&&r.push(`${t} ${d(`hook`,`hooks`,t)}`),n>0&&r.push(`${n} ${d(`timer`,`timers`,n)}`);let i=[];e>0&&i.push(`steps are completed`),t>0&&i.push(`hooks are received`),n>0&&i.push(`timers have elapsed`);let a=i.join(` and `);return`${r.join(` and `)} to be enqueued\n Workflow will suspend and resume when ${a}`}function Ls(e,t){let n=`${e.replace(`wrun_`,`strm_`)}_user`;return t?`${n}_${Buffer.from(t,`utf-8`).toString(`base64url`)}`:n}function Rs(e){return`strm_${e}_system_abort`}function zs(e){if(!e.startsWith(`abrt_`))throw Error(`Invalid abort hook token format: expected "abrt_" prefix, got "${e}"`);return Rs(e.slice(5))}const Bs=()=>S(`WORKFLOW_DEFERRED_CHECK_DELAY_MS`,100,{integer:!0,min:10}),Vs=new Set([`hook_received`,`hook_conflict`,`wait_completed`,`attr_set`,`run_cancelled`]),Hs=new Set([`wait_completed`]);function Us(e,t){return`${e}:${t}`}const Ws=new Set([`run_completed`,`run_failed`,`run_cancelled`]);var Q;(function(e){e[e.Consumed=0]=`Consumed`,e[e.NotConsumed=1]=`NotConsumed`,e[e.Finished=2]=`Finished`})(Q||={});var Gs=class{eventIndex;events;callbacks=[];parked=[];resolved=new Set;seenEventClasses=new Map;onConsumedEvent;onUnconsumedEvent;onDuplicateEvent;getPromiseQueue;isDeliveryIdle;pendingUnconsumedCheck=null;pendingUnconsumedTimeout=null;unconsumedCheckVersion=0;constructor(e,t){this.events=[...e],this.eventIndex=0,this.onConsumedEvent=t.onConsumedEvent,this.onUnconsumedEvent=t.onUnconsumedEvent,this.onDuplicateEvent=t.onDuplicateEvent,this.getPromiseQueue=t.getPromiseQueue,this.isDeliveryIdle=t.isDeliveryIdle}get strandedEvent(){return this.parked[0]?.event}get parkedSummary(){let e=this.parked[0]?.event;if(e)return{count:this.parked.length,eventId:e.eventId,eventType:e.eventType}}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){Ds.error(`onConsumedEvent callback threw an error`,{error:e})}}consume=()=>{for(;;){this.drainParked();let e=this.events[this.eventIndex]??null,t=this.offer(e);if(t&&this.eventIndex++,e===null){t||this.handleEndOfLog();return}if(!t){let t=this.firstEventTypeOfClass(e);if(t!==void 0){this.skipDuplicateEvent(e,t);continue}this.scheduleUnconsumedCheck(e,!0);return}}};offer(e){for(let t=0;t<this.callbacks.length;t++){let n=this.callbacks[t],r=Q.NotConsumed;try{r=n(e)}catch(e){Ds.error(`EventConsumer callback threw an error`,{error:e})}if(!(r!==Q.Consumed&&r!==Q.Finished))return e!==null&&(e.correlationId&&Hs.has(e.eventType)&&this.resolved.add(Us(e.eventType,e.correlationId)),this.recordEventClass(e),this.notifyConsumedEvent(e)),r===Q.Finished&&this.callbacks.splice(t,1),!0}return!1}drainParked(){let e=this.parked.length>0;for(;e;){e=!1;for(let t=0;t<this.parked.length;t++){let n=this.parked[t],r=this.eventIndex;this.eventIndex=n.index;let i;try{i=this.offer(n.event)}finally{this.eventIndex=r}if(i){this.parked.splice(t,1),e=this.parked.length>0;break}}}}park(e){return!Vs.has(e.eventType)||e.correlationId&&this.resolved.has(Us(e.eventType,e.correlationId))?!1:(this.parked.push({event:e,index:this.eventIndex}),this.eventIndex++,Ds.debug(`Parked an unclaimed event for later delivery`,{eventId:e.eventId,eventType:e.eventType,correlationId:e.correlationId,parked:this.parked.length}),!0)}eventClassKey(e){let t=re(e.eventType);return t===void 0?void 0:`${t}:${e.correlationId}`}recordEventClass(e){let t=this.eventClassKey(e);t!==void 0&&!this.seenEventClasses.has(t)&&this.seenEventClasses.set(t,e.eventType)}firstEventTypeOfClass(e){let t=this.eventClassKey(e);return t===void 0?void 0:this.seenEventClasses.get(t)}skipDuplicateEvent(e,t){this.eventIndex++,Ds.debug(`Skipping event that repeats a class already in the log`,{eventId:e.eventId,eventType:e.eventType,firstEventType:t,correlationId:e.correlationId});try{this.onDuplicateEvent?.(e,t)}catch(e){Ds.error(`onDuplicateEvent callback threw an error`,{error:e})}}handleEndOfLog(){if(this.parked.length===0)return;let e=this.events.at(-1);if(!e||!Ws.has(e.eventType)){Ds.debug(`Reached the end of the log still holding events`,{eventId:this.parked[0].event.eventId,eventType:this.parked[0].event.eventType,correlationId:this.parked[0].event.correlationId,parked:this.parked.length});return}this.scheduleUnconsumedCheck(this.parked[0].event,!1)}scheduleUnconsumedCheck(e,t){let n=++this.unconsumedCheckVersion;this.pendingUnconsumedCheck=this.getPromiseQueue().then(()=>new Promise(e=>setTimeout(e,0))).then(()=>this.getPromiseQueue()).then(()=>{this.whenDeliveryIdle(n,()=>{this.pendingUnconsumedTimeout=setTimeout(()=>{this.pendingUnconsumedTimeout=null,this.unconsumedCheckVersion===n&&(this.pendingUnconsumedCheck=null,this.resolveUnconsumedEvent(e,t))},Bs())})})}resolveUnconsumedEvent(e,t){if(t){if(this.events[this.eventIndex]!==e)return;if(this.park(e)){this.consume();return}}this.onUnconsumedEvent(e)}whenDeliveryIdle(e,t){let n=()=>{if(this.pendingUnconsumedTimeout=null,this.unconsumedCheckVersion===e){if(this.isDeliveryIdle()){t();return}this.getPromiseQueue().then(()=>{this.unconsumedCheckVersion===e&&(this.pendingUnconsumedTimeout=setTimeout(n,0))})}};n()}},Ks=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 qs(e){return class{signal;[P];[F];constructor(){let t=e.generateUlid(),n=Rs(t),r=`abrt_${t}`;this[P]=n,this[F]=r,this.signal=new Ks(n,r);let i=`hook_${e.generateUlid()}`;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=b(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 Jc(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 Js(){return{abort(e){let t=new Ks(``,``);return t._setAborted(e??new DOMException(`The operation was aborted.`,`AbortError`)),t},any(e){let t=new Ks(``,``),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 Ys=oe();function Xs(e){try{return e.getReader({mode:`byob`}).releaseLock(),`bytes`}catch{}}function Zs(e){return Os(e),e instanceof m&&e.cause!==void 0||e instanceof i&&e.cause!==void 0?e.cause:e}async function $(e,t){if(e.recorded)try{let n=await gs();if(!n)return;let r=e.uncompressedBytes??0,i=e.storedBytes??0;n.setAttributes({...Vo(t),...Ho(e.compressed??!1),...Uo(e.codec??`none`),...Wo(r),...Go(i),...e.compressed&&r>0?Ko(1-i/r):{}})}catch{}}async function Qs(e){if(e.executions.length!==0)try{let t=await gs();if(!t)return;let n=[...new Set(e.executions.map(e=>e.detail?`${e.kind} (${e.detail})`:e.kind))];t.setAttributes({...qo(e.executions.length),...Jo(n)})}catch{}}function $s(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 Gi(t),r.resolved=!0,Hi(r.key)&&(i=Qn(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 Ki(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 ec(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 Gi(t),i.resolved=!0,Ui(i.key)&&(a=$n(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?Ui(i.key):Wi(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 Ji(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(Gt(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(Gt(t,e))},async flush(e){r.length>0&&await s(e)}})}const tc=1e8;function nc(){return new TransformStream({transform(e,t){if(e.length===0)return;if(e.length>tc){t.error(new i(`Byte-stream chunk of ${e.length} bytes exceeds the maximum framed chunk size (${tc}). 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 rc(){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,r){for(n.length>0&&t(n);e.length>=4;){let t=new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(0,!1);if(t>tc){r.error(new i(`Byte-stream frame length ${t} exceeds maximum (${tc}). 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;r.enqueue(e.slice(4,n)),e=e.slice(n)}},flush(t){e.length>0&&t.error(new i(`Byte-stream ended with ${e.length} bytes of incomplete frame data. The stream was truncated mid-frame.`,{slug:`serialization-failed`}))}})}function ic(e,t,n,r,i){(async()=>{await ps(`workflow.stream.read`,e,{kind:await _s(`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 ac(e,t,n,r,i,a){(async()=>{await ps(`workflow.stream.read.complete`,e,{kind:await _s(`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 oc=class extends ReadableStream{#e;constructor(e,t,n){if(typeof t!=`string`||t.length===0)throw new i(`"name" is required, got "${t}"`);let r,a=!1,o,s=0,c=0;super({type:`bytes`,pull:async i=>{let l=this.#e;if(!l){r===void 0&&(r=Date.now());let i=await Pn(),a=Date.now(),s=await i.streams.get(e,t,n);o=Date.now()-a,l=this.#e=s.getReader()}if(!l){i.error(Error(`Failed to get reader`));return}let u=await l.read();u.done?(this.#e=void 0,r!==void 0&&ac(r,e,t,s,c),i.close()):(!a&&u.value.byteLength>0&&r!==void 0&&(a=!0,ic(r,e,t,n,o)),s+=1,c+=u.value.byteLength,i.enqueue(u.value))},cancel:async e=>{this.#e&&=(await this.#e.cancel(e).catch(()=>{}),void 0)}})}};const sc=()=>S(`WORKFLOW_FRAMED_STREAM_MAX_RECONNECTS`,50,{integer:!0,min:1}),cc=()=>S(`WORKFLOW_FRAMED_STREAM_MAX_TOTAL_RECONNECTS`,1e3,{integer:!0,min:1});function lc(e,t,n){let r=n===void 0||n>=0,i=n??0,a=0,o=0,s=0,l,u=new Uint8Array,d,f,p=!1,m=0,h=0;async function g(){let o=await Pn(),s=r?i+a:n,c=Date.now(),u=await o.streams.get(e,t,s);f===void 0&&(f=Date.now()-c),l=u.getReader()}async function _(){l&&=(await l.cancel().catch(()=>{}),void 0),i+=a,a=0,u=new Uint8Array;let e=sc(),n=cc();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 g();return}catch(e){if(c.is(e))throw e}}}return new ReadableStream({pull:async i=>{for(d===void 0&&(d=Date.now());;){if(!l)try{await g()}catch(e){i.error(e);return}let c;try{c=await l.read()}catch(e){if(!r){i.error(e);return}try{await _()}catch(e){i.error(e);return}continue}if(c.done||!c.value){l=void 0,d!==void 0&&ac(d,e,t,m,h,s),i.close();return}let v=c.value;if(v.length>0){let e=new Uint8Array(u.length+v.length);e.set(u,0),e.set(v,u.length),u=e}let y=!1;for(;u.length>=4;){let r=4+new DataView(u.buffer,u.byteOffset,u.byteLength).getUint32(0,!1);if(u.length<r)break;i.enqueue(u.slice(0,r)),u=u.slice(r),a++,m++,h+=r,!p&&d!==void 0&&(p=!0,ic(d,e,t,n,f)),y=!0}if(y){o=0;return}}},cancel:async()=>{l&&=(await l.cancel().catch(e=>{console.warn(`Error closing ReadableStream reader:`,e)}),void 0)}})}const uc=()=>{let e=S(`WORKFLOW_STREAM_FLUSH_INTERVAL_MS`,NaN,{integer:!0});return Number.isNaN(e)?void 0:e};function dc(e,t,n,r,i,a,o){(async()=>{await ps(`workflow.stream.flush`,e,{kind:await _s(`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 fc(e,t,n){(async()=>{await ps(`workflow.stream.close`,e,{kind:await _s(`CLIENT`),attributes:{"workflow.run.id":t,"workflow.stream.name":n,"workflow.stream.operation":`close`,"workflow.stream.close.rpc_ms":Date.now()-e}})})()}var pc=class extends WritableStream{constructor(e,t,n){if(typeof e!=`string`)throw new i(`"runId" must be a string, got "${typeof e}"`);if(typeof t!=`string`||t.length===0)throw new i(`"name" is required, got "${t}"`);let r=Pn(),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=uc(),h=null,g=vn(),_=yn(),v=_n(),y=bn(),b,x=[],ee=[],te=e=>{let t=[...x,...ee];x=[],ee=[];for(let n of t)n.reject(e)},ne=()=>{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}},re=async(n,i,a)=>{await o();let s=await r,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&&dc(a,c,e,t,n.length,i,Date.now()-c)},ie=async()=>{for(;s.length>0;){d&&=(clearTimeout(d),null);let e=b,t=Date.now(),{group:n,bytes:r}=ne();l=n.length,u=r,b=s.length>0?t:void 0;try{await re(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=x;x=[];for(let e of i)e.resolve()}},ae=()=>{f||p!==void 0||s.length===0||(f=ie().then(()=>{if(f=null,s.length>0){ae();return}let e=ee;ee=[];for(let t of e)t.resolve()},e=>{f=null,p??=e,te(p)}))},oe=()=>{if(!(d||f)){if(m===void 0){h??=Promise.resolve(r).then(e=>{m=e.streamFlushIntervalMs??0},()=>{m=0}).then(()=>{s.length>0&&oe()});return}if(m<=0){ae();return}d=setTimeout(()=>{d=null,ae()},m)}},se=async()=>{for(;;){if(p!==void 0)throw p;if(s.length===0&&!f)return;ae(),await new Promise((e,t)=>{ee.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>=_?ae():oe();p===void 0&&(s.length+l>=v||c+u>=y);)ae(),await new Promise((e,t)=>{x.push({resolve:e,reject:t})});if(p!==void 0)throw p},async close(){await se(),await o();let n=await r,i=Date.now();await n.streams.close(e,t),fc(i,e,t)},async abort(e){try{await se()}catch{}d&&=(clearTimeout(d),null),s=[],c=0,p??=e??Error(`Stream aborted`),te(p)}}),Object.defineProperty(this,dn,{value:se,enumerable:!1,writable:!1})}};function mc(e=globalThis){let t=x(()=>yc(e,`Request`)),n=x(()=>yc(e,`Response`));return{...ei(),...di(),...li(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,pn);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 hc(e,t,n,r,i,a){let o=t[P],s=t[F];if(!o){let e=(n[an]||Ys)();o=Rs(e),s=`abrt_${e}`,t[P]=o,t[F]=s,t.signal&&(t.signal[P]=o,t.signal[F]=s)}return _c(e,o,i,a,r),{streamName:o,hookToken:s,aborted:e.aborted,reason:e.aborted?e.reason:void 0}}function gc(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 _c(e,t,n,r,i){e.aborted||e[hn]||(e[hn]=!0,e.addEventListener(`abort`,()=>{i.push((async()=>{try{let i=await Gi(r),a=await Vc({aborted:!0,reason:e.reason},n,i),o=new pc(n,t).getWriter();await o.write(a),await o.close()}catch{}})())},{once:!0}))}function vc(e=globalThis,t,n,r,i=!1,a){return{...mc(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[an]||Ys)()}`,c=Xs(o),l=new pc(n,s,a);c===`bytes`?i?t.push(o.pipeThrough(nc()).pipeTo(l)):t.push(o.pipeTo(l)):t.push(o.pipeThrough($s(vc(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[cn];if(typeof i==`string`&&typeof a==`string`){let e={name:i,runId:a},t=r[un];typeof t==`string`&&(e.encryptionPublicKey=t);let n=r[ln];return typeof n==`string`&&(e.deploymentId=n),e}let o=`strm_${(e[an]||Ys)()}`,s=new oc(n,o);return t.push(s.pipeTo(r)),{name:o}},AbortController:i=>!e.AbortController||typeof e.AbortController!=`function`||!(i instanceof e.AbortController)?!1:hc(i.signal,i,e,t,n,r),AbortSignal:i=>!e.AbortSignal||typeof e.AbortSignal!=`function`||!(i instanceof e.AbortSignal)?!1:hc(i,i,e,t,n,r)}}function yc(e,t){let n=B(e,t)??B(globalThis,t);if(typeof n==`function`)return B(n,`prototype`)}function bc(e=globalThis){let t=x(()=>yc(e,`ReadableStream`)),n=x(()=>yc(e,`WritableStream`)),r=x(()=>yc(e,`AbortController`)),a=x(()=>yc(e,`AbortSignal`));return{...mc(e),ReadableStream:e=>{if(!V(e,t.value))return!1;let n=B(e,fn);if(n!==void 0)return{bodyInit:n};let r=B(e,N);if(!r)throw new i("ReadableStream `name` is not set");let a={name:r},o=B(e,on);o&&(a.type=o);let s=B(e,sn);return s&&(a.framing=s),a},WritableStream:e=>{if(!V(e,n.value))return!1;let t=B(e,N);if(!t)throw new i("WritableStream `name` is not set");let r={name:t},a=B(e,cn);typeof a==`string`&&(r.runId=a);let o=B(e,ln);typeof o==`string`&&(r.deploymentId=o);let s=B(e,un);return typeof s==`string`&&(r.encryptionPublicKey=s),r},AbortController:e=>{if(typeof e!=`object`||!e)return!1;let t=e,n=B(e,P),i=V(e,r.value);if(n===void 0&&!i){let t=B(e,`signal`);if(typeof t!=`object`||!t||B(t,P)===void 0)return!1}let a=B(e,`signal`);return a?gc(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:gc(e,e)}}}function xc(e=globalThis,t,n,r,i=!1,a){return{...mc(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[on],l=o[sn];if(!s){s=`strm_${(e[an]||Ys)()}`,c=Xs(o),l=c===`bytes`&&i?`framed-v1`:l;let u=new pc(n,s,a);c===`bytes`?l===`framed-v1`?t.push(o.pipeThrough(nc()).pipeTo(u)):t.push(o.pipeTo(u)):t.push(o.pipeThrough($s(xc(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[cn];a||(a=`strm_${(e[an]||Ys)()}`,t.push(new oc(n,a).pipeThrough(ec(Mc(e,t,n,r),r)).pipeTo(i)));let s={name:a};typeof o==`string`&&(s.runId=o);let c=i[un];typeof c==`string`&&(s.encryptionPublicKey=c);let l=i[ln];return typeof l==`string`&&(s.deploymentId=l),s},AbortController:i=>!e.AbortController||typeof e.AbortController!=`function`||!(i instanceof e.AbortController)?!1:hc(i.signal,i,e,t,n,r),AbortSignal:i=>!e.AbortSignal||typeof e.AbortSignal!=`function`||!(i instanceof e.AbortSignal)?!1:hc(i,i,e,t,n,r)}}function Sc(...e){let t=new WeakSet;function n(e){let t=e[gn];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 Cc(e,t,n,r){let i=new AbortController;return r.push((async()=>{try{let r=new oc(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=Fs.getStore(),r=await Hc(a.value,t,n?.encryptionKey);e.abort(r?.reason)}catch{e.abort()}}else r.cancel().catch(()=>{})}catch{}})()),i}function wc(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[gn]=n,i[gn]=n)}function Tc(e,t){let n=e,r=t;n[P]!==void 0&&(r[P]=n[P]),n[F]!==void 0&&(r[F]=n[F]),n[gn]!==void 0&&(r[gn]=n[gn])}function Ec(e,t,n){let r=new AbortController;e.aborted?(wc(r,e),r.abort(e.reason)):e.streamName?wc(r,e,Cc(r,n,e.streamName,t)):wc(r,e);let i=r.abort.bind(r);return r.abort=t=>{if(r.signal.aborted)return;i(t);let n=Fs.getStore();if(n&&(n.ops.push((async()=>{try{let r=await Vc({aborted:!0,reason:t},n.workflowMetadata.workflowRunId,n.encryptionKey),i=new pc(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-DO_MuJlY.js`).then(e=>e.i);await n(e.hookToken,{aborted:!0,reason:t})}catch{}})();n.preCompletionOps.push(r)}},r}function Dc(e,t,n){let r=new AbortController;return e.aborted?(wc(r,e),r.abort(e.reason)):e.streamName?wc(r,e,Cc(r,n,e.streamName,t)):wc(r,e),r.signal}function Oc(e=globalThis){return{...ti(e),...ui(e)}}async function kc(e,t,n){let r=tr(n);if(r)return zi(r);let i=await Pn();if(!i.getEncryptionKeyForRun)return;let a=t?await i.getEncryptionKeyForRun(e,{deploymentId:t}):await i.getEncryptionKeyForRun(await i.runs.get(e));return a?await Xt(a,[`encrypt`]):void 0}function Ac(e=globalThis,t,n,r){return{...Oc(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&&Tc(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 oc(n,i.name,i.startIndex),a=Sn();t.push(a.promise);let{readable:o,writable:s}=i.framing===`framed-v1`?rc():new e.TransformStream;return On(r,s,a).catch(()=>{}),Dn(o,a),o}else{let a=lc(n,i.name,i.startIndex),o=ec(Ac(e,t,n,r),r),s=Sn();return t.push(s.promise),On(a,o.writable,s).catch(()=>{}),Dn(o.readable,s),o.readable}},WritableStream:i=>{let a=typeof i.runId==`string`?i.runId:n,o=a===n?r:kc(a,i.deploymentId,i.encryptionPublicKey),s=$s(vc(e,t,a,o),o),c=new pc(a,i.name),l=Sn();return t.push(l.promise),On(s.readable,c,l).catch(()=>{}),En(s.writable,l),Object.defineProperty(s.writable,N,{value:i.name,writable:!1}),Object.defineProperty(s.writable,cn,{value:a,writable:!1}),typeof i.deploymentId==`string`&&Object.defineProperty(s.writable,ln,{value:i.deploymentId,writable:!1}),typeof i.encryptionPublicKey==`string`&&Object.defineProperty(s.writable,un,{value:i.encryptionPublicKey,writable:!1}),s.writable},AbortController:e=>Ec(e,t,n),AbortSignal:e=>Dc(e,t,n)}}function jc(e=globalThis){return{...Oc(e),...fi(e),Request:t=>{Object.setPrototypeOf(t,e.Request.prototype);let n=t.responseWritable;return n&&(t[pn]=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,{[fn]:{value:t.bodyInit,writable:!1}}):Object.create(e.ReadableStream.prototype,{[N]:{value:t.name,writable:!1},[on]:{value:t.type,writable:!1},[sn]:{value:t.framing,writable:!1}}),WritableStream:t=>{let n={[N]:{value:t.name,writable:!1}};return typeof t.runId==`string`&&(n[cn]={value:t.runId,writable:!1}),typeof t.deploymentId==`string`&&(n[ln]={value:t.deploymentId,writable:!1}),typeof t.encryptionPublicKey==`string`&&(n[un]={value:t.encryptionPublicKey,writable:!1}),Object.create(e.WritableStream.prototype,n)},AbortController:e=>{let t=new Ks(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 Ks(e.streamName,e.hookToken);return e.aborted&&t._setAborted(e.reason),t}}}function Mc(e=globalThis,t,n,r,a){return{...Oc(e),StepFunction:e=>{let t=e.stepId,n=e.closureVars,r=`boundThis`in e,a=r?e.boundThis:void 0,o=Array.isArray(e.boundArgs)?e.boundArgs:[],s=te(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&&!r&&o.length===0)return s;let c=function(...e){let t=r?a:this,c=o.length>0?[...o,...e]:e;if(n){let e=Fs.getStore();if(!e)throw new i(`Cannot call step function with closure variables outside step context`);let r={...e,closureVars:n};return Fs.run(r,()=>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&&Tc(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:i=>{if(`bodyInit`in i){let t=i.bodyInit;return new e.Response(t).body}let o=new oc(n,i.name);if(i.type===`bytes`){let n=Sn();t.push(n.promise);let{readable:r,writable:a}=i.framing===`framed-v1`?rc():new e.TransformStream;return On(o,a,n).catch(()=>{}),Dn(r,n),r}else{let i=ec(Mc(e,t,n,r,a),r),s=Sn();return t.push(s.promise),On(o,i.writable,s).catch(()=>{}),Dn(i.readable,s),i.readable}},WritableStream:i=>{let o=typeof i.runId==`string`?i.runId:n,s=typeof i.deploymentId==`string`?i.deploymentId:o===n?a:void 0,c=o===n?r:kc(o,s,i.encryptionPublicKey),l=$s(xc(e,t,o,c),c),u=new pc(o,i.name),d=Sn();return t.push(d.promise),On(l.readable,u,d).catch(()=>{}),En(l.writable,d),Object.defineProperty(l.writable,N,{value:i.name,writable:!1}),Object.defineProperty(l.writable,cn,{value:o,writable:!1}),s&&Object.defineProperty(l.writable,ln,{value:s,writable:!1}),typeof i.encryptionPublicKey!=`string`&&o===n&&Ui(r)&&Object.defineProperty(l.writable,un,{value:Wn(r.keyPair.publicKey),writable:!1}),typeof i.encryptionPublicKey==`string`&&Object.defineProperty(l.writable,un,{value:i.encryptionPublicKey,writable:!1}),l.writable},AbortController:e=>Ec(e,t,n),AbortSignal:e=>Dc(e,t,n)}}async function Nc(e,t){return await Ki(e,t)}const Pc=async(e,t)=>{let n={},r=await Ii(await Ji(e,t),n);return await $(n,`deserialize`),{data:r}};function Fc(e,t=globalThis,n={}){return Ns(e.data,{global:t,extraRevivers:{...Zc(jc(t)),...n}})}function Ic(e,t=globalThis,n={}){let{data:r}=e;if(!(r instanceof Uint8Array))return Kt(r,{...jc(t),...n});let{format:i,payload:a}=q(r);if(i===W.DEVALUE_V1)return Gt(new TextDecoder().decode(a),{...jc(t),...n});throw Error(`Unsupported serialization format: ${i}`)}async function Lc(e,t,n,r=[],i=globalThis,a=!1,o=!1,s=!1){if(a)return ri(M(e,vc(i,r,t,n,o)));try{let a={},c=await ks(e,n,{global:i,extraReducers:Xc(vc(i,r,t,n,o)),compression:s,compressionStats:a});return await $(a,`serialize`),c}catch(e){let t=Zs(e),{message:n,hint:r}=Z(`workflow arguments`,t);throw new m(n,{hint:r,cause:t})}}async function Rc(e,t,n,r=globalThis,i={},a){return Fc(a??await Pc(e,n),r,i)}async function zc(e,t,n,r=globalThis,i=!1,a=!1,o){if(i)return ri(M(e,bc(r)));try{let t={},i=o??{executions:[]},s=await js(e,n,{global:r,extraReducers:Xc(bc(r)),compression:a,compressionStats:t,guestCodeStats:i});return await $(t,`serialize`),await Qs(i),s}catch(e){let t=Zs(e),{message:n,hint:r}=Z(`workflow return value`,t);throw new m(n,{hint:r,cause:t})}}async function Bc(e,t,n,r=[],i=globalThis,a={}){let o={},s=await As(e,n,{global:i,extraRevivers:{...Zc(Ac(i,r,t,n)),...a},compressionStats:o});return await $(o,`deserialize`),s}async function Vc(e,t,n,r=globalThis,i=!1,a=!1,o){if(i)return ri(M(e,bc(r)));try{let t={},i=o??{executions:[]},s=await js(e,n,{global:r,extraReducers:Xc(bc(r)),compression:a,compressionStats:t,guestCodeStats:i});return await $(t,`serialize`),await Qs(i),s}catch(e){let t=Zs(e),{message:n,hint:r}=Z(`step arguments`,t);throw new m(n,{hint:r,cause:t})}}async function Hc(e,t,n,r=[],i=globalThis,a={},o){let s={},c=await Ms(e,n,{global:i,extraRevivers:{...Zc(Mc(i,r,t,n,o)),...a},compressionStats:s});return await $(s,`deserialize`),c}async function Uc(e,t,n,r=[],i=globalThis,a=!1,o=!1,s=!1,c){if(a)return ri(M(e,xc(i,r,t,n,o,c)));try{let a={},l=await js(e,n,{global:i,extraReducers:Xc(xc(i,r,t,n,o,c)),compression:s,compressionStats:a});return await $(a,`serialize`),l}catch(e){let t=Zs(e),{message:n,hint:r}=Z(`step return value`,t);throw new m(n,{hint:r,cause:t})}}async function Wc(e,t,n,r=[],i=globalThis,a=!1){try{let o=M(e,xc(i,r,t,n)),s=new TextEncoder().encode(o),c=K(W.DEVALUE_V1,s),l={},u=await Nc(await Fi(c,a,l),n);return await $(l,`serialize`),u}catch(e){let t=Zs(e),{message:n,hint:r}=Z(`step error`,t);throw new m(n,{hint:r,cause:t})}}async function Gc(e,t,n,r=globalThis,i={},a){return Ic(a??await Pc(e,n),r,i)}async function Kc(e,t,n,r=globalThis,i=!1){try{let t=M(e,bc(r)),a=new TextEncoder().encode(t),o=K(W.DEVALUE_V1,a),s={},c=await Nc(await Fi(o,i,s),n);return await $(s,`serialize`),c}catch(e){let t=Zs(e),{message:n,hint:r}=Z(`run error`,t);throw new m(n,{hint:r,cause:t})}}async function qc(e,t,n,r=[],i=globalThis,a={}){let o={},s=await Ii(await Ji(e,n),o);if(await $(o,`deserialize`),!(s instanceof Uint8Array))return Kt(s,{...Ac(i,r,t,n),...a});let{format:c,payload:l}=q(s);if(c===W.DEVALUE_V1)return Gt(new TextDecoder().decode(l),{...Ac(i,r,t,n),...a});throw Error(`Unsupported serialization format: ${c}`)}async function Jc(e,t,n,r=globalThis,i={},a){return Fc(a??await Pc(e,n),r,i)}const Yc=[`ReadableStream`,`WritableStream`,`Request`,`Response`,`StepFunction`,`AbortController`,`AbortSignal`];function Xc(e){let t={};for(let n of Yc)n in e&&(t[n]=e[n]);return t}function Zc(e){let t={};for(let n of Yc)n in e&&(t[n]=e[n]);return t}const Qc=[{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`}],$c=[{capability:`framedByteStreams`,minVersion:`5.0.0-beta.15`}],el=new Set([W.DEVALUE_V1]);function tl(e){if(!e||!Yt.default.valid(e))return{supportedFormats:el,framedByteStreams:!1};let t=new Set(el);for(let{format:n,minVersion:r}of Qc)Yt.default.gte(e,r)&&t.add(n);let n={supportedFormats:t,framedByteStreams:!1};for(let{capability:t,minVersion:r}of $c)Yt.default.gte(e,r)&&(n[t]=!0);return n}const nl=new Set([`PARSE_ERROR`,`SCHEMA_VALIDATION`,n.WORLD_CONTRACT_ERROR]),rl=new Set([`TRANSPORT`,`TIMEOUT`]),il=[i.is,l.is,r.is,h.is];function al(e){if(!f.is(e)||e.status!==void 0)return!1;let t=`cause`in e?e.cause:void 0;return e.code!==void 0&&nl.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 ol(e){return a.is(e)?!0:f.is(e)?e.status!==void 0&&e.status>=500||e.code!==void 0&&rl.has(e.code):!1}function sl(e){if(p.is(e))return n.REPLAY_DIVERGENCE;if(_.is(e))return n.CORRUPTED_EVENT_LOG;if(g.is(e))return n.MAX_EVENTS_EXCEEDED;if(y.is(e))return n.DEPLOYMENT_MISMATCH;if(al(e)||ol(e))return n.WORLD_CONTRACT_ERROR;for(let t of il)if(t(e))return n.RUNTIME_ERROR;return n.USER_ERROR}const cl=`5.0.0-beta.42`,ll=/^[a-zA-Z0-9_\-./@]+$/;function ul(e,t){if(!ll.test(e))throw Error(`Invalid workflow name "${e}": must only contain alphanumeric characters, underscores, hyphens, dots, forward slashes, or at signs`);return`${ce(`workflow`,ie(t))}${e}`}const dl=oe();function fl(e){return`__health_check__${e}`}function pl(e){let t=ae.safeParse(e);if(t.success)return t.data}function ml(e){return`wrun_hc_${e}`}async function hl(e,t){let n=await Pn(),r=fl(e.correlationId),i;if(e.runId)try{let t=await n.getEncryptionKeyForRun?.(e.runId);t&&(i=Wn((await zn(t)).publicKey))}catch(t){Ts.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??6,workflowCoreVersion:cl,hookResumeInputVersion:1,...i?{encryptionPublicKey:i}:{},timestamp:Date.now()}),o=ml(e.correlationId);await n.streams.write(o,r,a),await n.streams.close(o,r)}function gl(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 _l(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 vl(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 yl(e,t){let n=t?.timeout??3e4,r=e.createRunId?.()??dl(),i=fl(r),a=`${ce(`workflow`,ie(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 gl(e.streams.get(ml(r),i),t)).getReader(),{chunks:s,timedOut:c}=await _l(a,500);if(c){try{a.cancel()}catch{}await new Promise(e=>setTimeout(e,100));continue}let l=vl(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 bl(e,t){return new f(`Event pagination ${t} for workflow run "${e}".`,{code:n.WORLD_CONTRACT_ERROR})}function xl(e,t,n){if(t){if(n.has(t))throw bl(e,`did not advance`);n.add(t)}}function Sl(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 Cl(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 wl(e,t,n,r){if(t){if(n===null)throw bl(e,`returned more pages without a cursor`);if(r.has(n))throw bl(e,`repeated a cursor`)}}function Tl(e,t,n){return t!==null&&!n&&f.is(e)&&e.status===400}async function El(e,t){let n=t!==void 0;return fs(n?`workflow.loadNewEvents`:`workflow.loadEvents`,async r=>{r?.setAttributes({...oa(e)});let i=[],a=new Set,o=new Set,s=t??null,c=!0,l=0,u=!1,d=await Pn(),f=Date.now();for(;c;){let t=Date.now(),r=s;xl(e,r,o);let f;try{f=await d.events.list({runId:e,pagination:{sortOrder:`asc`,cursor:r??void 0}})}catch(t){if(Tl(t,r,u)){Ts.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}Sl(i,f.data,a),c=f.hasMore,wl(e,c,f.cursor,o),s=f.cursor??s,l++,Ts.debug(`Loaded event page`,{workflowRunId:e,incremental:n,page:l,pageEvents:f.data.length,totalEvents:i.length,hasMore:c,pageMs:Date.now()-t})}return Ts.debug(`Event load complete`,{workflowRunId:e,incremental:n,totalEvents:i.length,pagesLoaded:l,totalMs:Date.now()-f}),r?.setAttributes({...la(i.length),...Lo(l)}),{events:i,cursor:s}})}function Dl(){return process.env.WORKFLOW_SLOT_GAP_CHECK!==`0`}function Ol(e,t){let n=e.length;Sl(e,t);let r=e.length-n;return r>0&&e.sort((e,t)=>e.eventId<t.eventId?-1:+(e.eventId>t.eventId)),r}function kl(e,t){let n=t.events?.length??0;return n===0?{added:0,offered:0,truncated:!1}:t.hasMore===!0?{added:0,offered:n,truncated:!0}:{added:Ol(e,t.events??[]),offered:n,truncated:!1}}function Al(e){let t;for(let n of e){let e=se(n.eventId);(t===void 0||e>t)&&(t=e)}return t}function jl(e){let t=new Set,n=0;for(let r of e){let e=se(r.eventId);t.add(e),e>n&&(n=e)}if(n===0)return;let r=t.has(1)?1:2;if(t.size===n-r+1)return;let i,a=0;for(let e=r;e<=n;e++)t.has(e)||(i??=e,a++);if(i!==void 0)return{firstMissingSlot:i,missingCount:a,maxSlot:n}}async function Ml(e,t){let n=t,r=jl(n.events);for(let t=0;r!==void 0&&t<3;t++)await new Promise(e=>setTimeout(e,25*2**t)),n=await El(e),r=jl(n.events);return{log:n,gap:r}}function Nl(e){let t=Al(e);return t===void 0?{}:{eventCount:t}}function Pl(e,t){if(!s.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 Fl={"Access-Control-Allow-Origin":`*`,"Access-Control-Allow-Methods":`POST, OPTIONS, GET, HEAD`,"Access-Control-Allow-Headers":`Content-Type`};function Il(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:Fl}):new Response(JSON.stringify({healthy:!0,endpoint:r.pathname,specVersion:t??6,workflowCoreVersion:cl}),{status:200,headers:{"Content-Type":`application/json`,...Fl}}):await e(n)}}function Ll(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,`0`)}function Rl(e,t){return`${e}:${Ll(t)}`}async function zl(e,...t){let n=t[0];await fs(`queue.publish`,{attributes:{...$a(`vercel-queue`),...eo(n),...no(`publish`),...Yo(`vercel-queue`),...Xo(`vercel-queue`),...Zo(`vqs`),...Qo(`publish`)},kind:await _s(`PRODUCER`)},async n=>{let{messageId:r}=await e.queue(...t);r&&n?.setAttributes(to(r))})}function Bl(e){if(e.requestedAt)try{return ro(Date.now()-e.requestedAt.getTime())}catch{return}}function Vl(e,t){let n;return()=>(n||=(async()=>{let n=await e.getEncryptionKeyForRun?.(t);return n?await Vi(n):void 0})(),n)}function Hl(t){import(`./functions-DAYiHNti.js`).then(t=>e(t.default,1)).then(({waitUntil:e})=>{e(t)})}function Ul(e,t){Hl(e.catch(e=>{if(!(e?.name===`AbortError`||e?.name===`ResponseAborted`))try{t(e)}catch{}}))}async function Wl(e){let t=e();return Hl(t.catch(()=>{})),t}export{ws as $,Yr as $n,La as $t,Wc as A,Aa as An,Ro as At,Jc as B,_a as Bn,Oo as Bt,ol as C,ia as Cn,Ce as Cr,No as Ct,Sc as D,pa as Dn,de as Dr,to as Dt,pc as E,fa as En,De as Er,eo as Et,Ac as F,oa as Fn,xo as Ft,qs as G,na as Gn,Ga as Gt,Bc as H,va as Hn,Eo as Ht,$s as I,ao as In,bo as It,Is as J,zi as Jn,qa as Jt,Q as K,Vi as Kn,Fa as Kt,qc as L,sa as Ln,Do as Lt,Lc as M,ka as Mn,Bo as Mt,zc as N,ja as Nn,vo as Nt,Kc as O,da as On,ge as Or,no as Ot,vc as P,Da as Pn,yo as Pt,Ts as Q,$r as Qn,Ha as Qt,Hc as R,ca as Rn,Co as Rt,sl as S,Ca as Sn,Xt as Sr,co as St,tl as T,Ta as Tn,Se as Tr,Po as Tt,Pc as U,wa as Un,_o as Ut,Rc as V,ga as Vn,wo as Vt,Js as W,ra as Wn,To as Wt,Ls as X,Zr as Xn,Va as Xt,zs as Y,W as Yn,Ya as Yt,Fs as Z,Qr as Zn,Pa as Zt,Ml as _,xa as _n,tn as _r,uo as _t,Bl as a,Za as an,Pn as ar,ns as at,Il as b,la as bn,nn as br,po as bt,yl as c,Wa as cn,On as cr,os as ct,El as d,za as dn,an as dr,xs as dt,Na as en,Jr as er,Es as et,Al as f,Ra as fn,N as fr,io as ft,zl as g,oo as gn,pn as gr,Ma as gt,Pl as h,so as hn,cn as hr,Io as ht,Sl as i,Xa as in,zn as ir,_s as it,Uc as j,Oa as jn,zo as jt,Vc as k,ha as kn,he as kr,$a as kt,Cl as l,Ua as ln,En as lr,fs as lt,pl as m,Ea as mn,un as mr,$o as mt,Wl as n,ho as nn,Wn as nr,as as nt,ul as o,Qa as on,An as or,rs as ot,Vl as p,ma as pn,ln as pr,es as pt,Gs as q,Ui as qn,Ja as qt,kl as r,Ka as rn,tr as rr,is as rt,hl as s,Ba as sn,Sn as sr,bs as st,Ul as t,go as tn,or as tr,ms as tt,Dl as u,Ia as un,fn as ur,cs as ut,Nl as v,ba as vn,rn as vr,lo as vt,al as w,aa as wn,E as wr,Fo as wt,cl as x,ua as xn,$t as xr,mo as xt,Rl as y,ya as yn,en as yr,fo as yt,Gc as z,Sa as zn,So as zt};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,H as t,N as n,R as r,S as i,Z as a,c as o,h as s,i as c,n as l,p as u,s as d,x as f}from"./frames-DoexhtxJ.js";import{n as p,t as m}from"./wrapper-CQNxP9mU.js";var h=a();p();var g=class extends Error{constructor(e,t){super(e,{cause:t?.cause}),this.name=`WsTransportError`}};function _(e){for(let[t,n]of Object.entries(e))if(t.toLowerCase()===`authorization`)return n;return null}async function v(e){let t=(async function*(){yield e})();for await(let e of l(t))return e;throw Error(`ws-transport: received an empty/unframed message`)}function y(e){if(e.byteLength===0)return`(no message)`;let t=new TextDecoder().decode(e);try{let e=JSON.parse(t);return typeof e.message==`string`?e.message:t}catch{return t}}function b(e){return e instanceof Error?e.message:String(e)}var x=class{wsUrl;getHeaders;connection=null;connecting=null;reconnectAttempts=0;reconnectTimer=null;openCount=0;closed=!1;lastDrainReason=null;needsFreshToken=!1;lastAuthorization=null;constructor(e,t){this.wsUrl=e,this.getHeaders=t}async request(e){if(this.closed)throw new g(`workflow-server events WS channel for ${this.wsUrl} is closed`);let t=await this.ensureConnected(),n=t.nextReqId++,r=e(n),i=u(),a;try{return await new Promise((e,o)=>{t.pending.set(n,{resolve:e,reject:o}),a=setTimeout(()=>{t.pending.delete(n)&&(o(new g(`workflow-server events WS request ${n} to ${this.wsUrl} timed out after ${i}ms with no reply`)),this.failConnection(t,`workflow-server events WS connection to ${this.wsUrl} abandoned after request ${n} timed out`))},i),a.unref?.(),t.ws.send(r,e=>{e&&t.pending.delete(n)&&o(new g(`workflow-server events WS send failed: ${b(e)}`,{cause:e}))})})}finally{a!==void 0&&clearTimeout(a)}}open(){this.closed||(this.openCount++,!(this.connection!==null||this.connecting!==null)&&this.ensureConnected().catch(()=>{this.close(`connect failed`)}))}release(e){this.openCount!==0&&(this.openCount--,this.openCount===0&&this.close(e))}close(e){if(this.closed)return;this.closed=!0,this.openCount=0,this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),S.get(this.wsUrl)===this&&S.delete(this.wsUrl);let t=this.connection;this.connection=null,t?.ws.close(1e3,e)}ensureConnected(){let e=this.connection;return e&&e.ws.readyState===m.default.OPEN?Promise.resolve(e):(this.connecting??=this.connectWithSpan().finally(()=>{this.connecting=null}),this.connecting)}async resolveUpgradeHeaders(){let e=this.needsFreshToken,n=await this.getHeaders({forceRefresh:e}),r=_(n);if(e&&r===this.lastAuthorization)throw new g(`workflow-server events WS connection to ${this.wsUrl} drained for auth expiry, but re-resolving the bearer produced the same token. Not reconnecting with a token the server has already rejected; the next event write will retry.`);this.lastAuthorization=r,this.needsFreshToken=!1;let i=new Headers;return await t(i),i.forEach((e,t)=>{n[t]=e}),n}consumeDrainReason(){let e=this.lastDrainReason;this.lastDrainReason=null,e===`auth_expiry`&&(this.needsFreshToken=!0)}connectWithSpan(){return f({method:`GET`,url:this.wsUrl,spanName:`workflow.events.ws.connect`,attributes:{...n(`ws`),...e(`websocket`),...r(this.reconnectAttempts)}},async e=>{try{return await this.connect()}catch(t){throw e?.setAttributes({...i(`TRANSPORT`)}),t instanceof Error&&e?.recordException?.(t),t}})}connect(){return new Promise((e,t)=>{(async()=>{let n;try{let e=await this.resolveUpgradeHeaders(),t=new m.default(this.wsUrl,{headers:e});t.binaryType=`nodebuffer`,n={ws:t,nextReqId:1,pending:new Map}}catch(e){console.error(`world-vercel: ws events transport could not open a connection to ${this.wsUrl}: ${b(e)}`),t(e instanceof g?e:new g(`workflow-server events WS connection to ${this.wsUrl} could not be opened: ${b(e)}`,{cause:e}));return}let{ws:r}=n,i=!1;r.on(`open`,()=>{if(i=!0,this.closed){r.close(1e3,`released while connecting`),t(new g(`workflow-server events WS connection to ${this.wsUrl} was released while connecting`));return}this.connection=n,this.reconnectAttempts=0,e(n)}),r.on(`message`,e=>{this.handleMessage(n,new Uint8Array(e))}),r.on(`error`,e=>{if(console.error(`world-vercel: ws events transport socket error (${this.wsUrl}): ${b(e)}`),!i){t(e);return}r.close()}),r.on(`close`,e=>{this.connection===n&&(this.connection=null),this.consumeDrainReason(),i||t(new g(`workflow-server events WS connection to ${this.wsUrl} closed before opening (code ${e})`)),this.failAllPending(n,new g(`workflow-server events WS connection closed (code ${e})`)),(i||this.reconnectAttempts>0)&&this.scheduleReconnect(e)})})()})}scheduleReconnect(e){if(this.closed||this.connection!==null||this.reconnectTimer!==null)return;if(this.reconnectAttempts>=5){console.error(`world-vercel: ws events transport giving up eager reconnect to ${this.wsUrl} after 5 attempts (last close code ${e}); the next event write will retry.`);return}let t=Math.min(100*2**this.reconnectAttempts,5e3);this.reconnectAttempts++;let n=setTimeout(()=>{this.reconnectTimer=null,this.ensureConnected().catch(()=>{})},t);n.unref?.(),this.reconnectTimer=n}async handleMessage(e,t){let n;try{n=await v(t)}catch(n){let r=`could not decode a ${t.byteLength}-byte reply frame from ${this.wsUrl}: ${b(n)}`;console.error(`world-vercel: ws events transport ${r}`),this.failConnection(e,`workflow-server events WS transport ${r}`);return}if(n.meta.type===`drain`){let e=n.meta.reason===`auth_expiry`?`auth_expiry`:`max_duration`;this.lastDrainReason=e,console.log(`world-vercel: ws events transport received a drain notice (reason: ${e}, graceMs: ${n.meta.graceMs??`unspecified`}); connection will close soon.`);return}let r=n.meta.reqId;if(r===-1){let t=`received a malformed-frame error from ${this.wsUrl} (reserved reqId -1, status ${String(n.meta.status??`unknown`)}): ${y(n.body)}. The server could not parse a frame this client sent, so the originating write cannot be identified`;console.error(`world-vercel: ws events transport ${t}.`),this.failConnection(e,`workflow-server events WS transport ${t}`);return}if(typeof r!=`number`){let t=`received a reply frame with no numeric reqId from ${this.wsUrl} (type: ${String(n.meta.type??`absent`)})`;console.error(`world-vercel: ws events transport ${t}.`),this.failConnection(e,`workflow-server events WS transport ${t}`);return}let i=e.pending.get(r);if(!i){console.error(`world-vercel: ws events transport received a reply for unknown reqId ${r} from ${this.wsUrl} (already settled, or the request was failed by a send error or its deadline); dropping it.`);return}e.pending.delete(r),i.resolve({meta:n.meta,body:n.body})}failAllPending(e,t){for(let n of e.pending.values())n.reject(t);e.pending.clear()}failConnection(e,t){this.failAllPending(e,new g(t)),this.connection===e&&(this.connection=null),e.ws.close()}};const S=new Map;function C(e,t){let n=S.get(e);return n||(n=new x(e,t),S.set(e,n)),n}function w(e,t){let n=new URL(e);return n.protocol=n.protocol===`https:`?`wss:`:`ws:`,n.pathname=`${n.pathname.replace(/\/$/,``)}/websockets/v1/runs/${encodeURIComponent(t)}`,n.toString()}function T(e,t){if(!c())return;let n=k(e,t);if(!n)return;O||(O=!0,console.log(`world-vercel: using ws events transport (${n}).`));let r=C(n,async({forceRefresh:e})=>{e&&await E();let{headers:n}=await d(t);return s(n)});r.open();let i=!1;return()=>{i||(i=!0,r.release(`invocation complete`))}}async function E(){try{await(0,h.getVercelOidcToken)({expirationBufferMs:864e5})}catch{}}let D=!1,O=!1;function k(e,t){let{baseUrl:n,usingProxy:r}=o(t);return r?(D||(D=!0,console.warn(`world-vercel: ws events transport requested but a World with projectConfig (api-workflow proxy, resolved baseUrl: ${n}) is active — falling back.`)),null):w(n,e)}function A(e,t){let n=k(e,t);if(!n)return null;let r=S.get(n);return r?{transport:r,wsUrl:n}:null}export{T as openWsChannel,A as resolveWsTransport};
|
|
@@ -30,6 +30,11 @@ declare const EXTENSION_CAPABILITY_CONTRACTS: {
|
|
|
30
30
|
readonly supported: readonly [1];
|
|
31
31
|
readonly dropped: {};
|
|
32
32
|
};
|
|
33
|
+
readonly subagent: {
|
|
34
|
+
readonly current: 1;
|
|
35
|
+
readonly supported: readonly [1];
|
|
36
|
+
readonly dropped: {};
|
|
37
|
+
};
|
|
33
38
|
readonly connection: {
|
|
34
39
|
readonly current: 5;
|
|
35
40
|
readonly supported: readonly [1, 2, 3, 4, 5];
|
|
@@ -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:13,supported:[1,2,3,4,5,6,7,8,9,10,11,12,13],dropped:{}},dynamicTool:{current:17,supported:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],dropped:{}},channel:{current:1,supported:[1],dropped:{}},schedule:{current:1,supported:[1],dropped:{}},connection:{current:5,supported:[1,2,3,4,5],dropped:{}},hook:{current:13,supported:[10,11,12,13],dropped:{1:`Model identity moved from session.started runtime metadata to step.started call attribution.`,2:`Model identity moved from session.started runtime metadata to step.started call attribution.`,3:`Model identity moved from session.started runtime metadata to step.started call attribution.`,4:`Model identity moved from session.started runtime metadata to step.started call attribution.`,5:`Model identity moved from session.started runtime metadata to step.started call attribution.`,6:`Model identity moved from session.started runtime metadata to step.started call attribution.`,7:`Model identity moved from session.started runtime metadata to step.started call attribution.`,8:`Model identity moved from session.started runtime metadata to step.started call attribution.`,9:`Model identity moved from session.started runtime metadata to step.started call attribution.`}},skill:{current:1,supported:[1],dropped:{}},dynamicSkill:{current:11,supported:[1,2,3,4,5,6,7,8,9,10,11],dropped:{}},instructions:{current:2,supported:[1,2],dropped:{}},dynamicInstructions:{current:12,supported:[1,2,3,4,5,6,7,8,9,10,11,12],dropped:{}},config:{current:1,supported:[1],dropped:{}},state:{current:3,supported:[1,2,3],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:13,supported:[1,2,3,4,5,6,7,8,9,10,11,12,13],dropped:{}},dynamicTool:{current:17,supported:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],dropped:{}},channel:{current:1,supported:[1],dropped:{}},schedule:{current:1,supported:[1],dropped:{}},subagent:{current:1,supported:[1],dropped:{}},connection:{current:5,supported:[1,2,3,4,5],dropped:{}},hook:{current:13,supported:[10,11,12,13],dropped:{1:`Model identity moved from session.started runtime metadata to step.started call attribution.`,2:`Model identity moved from session.started runtime metadata to step.started call attribution.`,3:`Model identity moved from session.started runtime metadata to step.started call attribution.`,4:`Model identity moved from session.started runtime metadata to step.started call attribution.`,5:`Model identity moved from session.started runtime metadata to step.started call attribution.`,6:`Model identity moved from session.started runtime metadata to step.started call attribution.`,7:`Model identity moved from session.started runtime metadata to step.started call attribution.`,8:`Model identity moved from session.started runtime metadata to step.started call attribution.`,9:`Model identity moved from session.started runtime metadata to step.started call attribution.`}},skill:{current:1,supported:[1],dropped:{}},dynamicSkill:{current:11,supported:[1,2,3,4,5,6,7,8,9,10,11],dropped:{}},instructions:{current:2,supported:[1,2],dropped:{}},dynamicInstructions:{current:12,supported:[1,2,3,4,5,6,7,8,9,10,11,12],dropped:{}},config:{current:1,supported:[1],dropped:{}},state:{current:3,supported:[1,2,3],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{mkdir,readFile,writeFile}from"node:fs/promises";import{z}from"#compiled/zod/index.js";import{join}from"node:path";import{AI_GATEWAY_MODELS_CATALOG_URL,vercelGatewayFetch}from"#internal/gateway.js";import{catalogModelProviderSchema,catalogModelSchema,catalogModelSchema as catalogModelSchema$1,findCatalogModelByProviderModelId,findCatalogModelBySlug,modelCatalogLimitsFromProvider,modelCatalogResponseSchema,modelCatalogResponseSchema as modelCatalogResponseSchema$1,normalizeCatalogModelId}from"#internal/model-catalog.js";const COMPILED_RUNTIME_MODEL_CATALOG_CACHE_KIND=`eve-model-catalog-cache`;z.object({contextWindowTokens:z.number().int().positive(),maxOutputTokens:z.number().int().positive().optional()}).strict();const compiledRuntimeModelCatalogCacheSchema=z.object({fetchedAt:z.string(),kind:z.literal(COMPILED_RUNTIME_MODEL_CATALOG_CACHE_KIND),models:z.array(catalogModelSchema$1),providerAliases:z.record(z.string(),z.string()),version:z.literal(2)}).strict(),builtInCompiledRuntimeModelLimitsById=new Map([[`anthropic/claude-opus-4.7`,{contextWindowTokens:2e5,maxOutputTokens:32e3}],[`openai/gpt-5.4`,{contextWindowTokens:4e5,maxOutputTokens:128e3}],[`openai/gpt-5.4-mini`,{contextWindowTokens:4e5,maxOutputTokens:128e3}]]);function resolveCompiledRuntimeModelCatalogCachePath(e){return join(e,`.eve`,`cache`,`model-catalog.json`)}function createCompiledRuntimeModelCatalogLoader(e){let t=null,n=null,r=null,getCachedCatalog=async()=>(t??=readModelCatalogCache(e),await t),getFetchedCatalog=async()=>{if(n!==null)throw n;if(r!==null)return await r;r=fetchAndPersistModelCatalog(e).then(e=>(t=Promise.resolve(e),e));try{return await r}catch(e){throw n=e,e}},resolveModelsFromCacheOrFetch=async()=>{let e=await getCachedCatalog();if(e!==null&&isCacheFresh(e))return e;try{return await getFetchedCatalog()}catch{return e
|
|
1
|
+
import{mkdir,readFile,writeFile}from"node:fs/promises";import{z}from"#compiled/zod/index.js";import{join}from"node:path";import{AI_GATEWAY_MODELS_CATALOG_URL,vercelGatewayFetch}from"#internal/gateway.js";import{catalogModelProviderSchema,catalogModelSchema,catalogModelSchema as catalogModelSchema$1,findCatalogModelByProviderModelId,findCatalogModelBySlug,modelCatalogLimitsFromProvider,modelCatalogResponseSchema,modelCatalogResponseSchema as modelCatalogResponseSchema$1,normalizeCatalogModelId}from"#internal/model-catalog.js";const COMPILED_RUNTIME_MODEL_CATALOG_CACHE_KIND=`eve-model-catalog-cache`;z.object({contextWindowTokens:z.number().int().positive(),maxOutputTokens:z.number().int().positive().optional()}).strict();const compiledRuntimeModelCatalogCacheSchema=z.object({fetchedAt:z.string(),kind:z.literal(COMPILED_RUNTIME_MODEL_CATALOG_CACHE_KIND),models:z.array(catalogModelSchema$1),providerAliases:z.record(z.string(),z.string()),version:z.literal(2)}).strict(),builtInCompiledRuntimeModelLimitsById=new Map([[`anthropic/claude-opus-4.7`,{contextWindowTokens:2e5,maxOutputTokens:32e3}],[`openai/gpt-5.4`,{contextWindowTokens:4e5,maxOutputTokens:128e3}],[`openai/gpt-5.4-mini`,{contextWindowTokens:4e5,maxOutputTokens:128e3}]]);function resolveCompiledRuntimeModelCatalogCachePath(e){return join(e,`.eve`,`cache`,`model-catalog.json`)}function createCompiledRuntimeModelCatalogLoader(e){let t=null,n=null,r=null,getCachedCatalog=async()=>(t??=readModelCatalogCache(e),await t),getFetchedCatalog=async()=>{if(n!==null)throw n;if(r!==null)return await r;r=fetchAndPersistModelCatalog(e).then(e=>(t=Promise.resolve(e),e));try{return await r}catch(e){throw n=e,e}},resolveModelsFromCacheOrFetch=async()=>{let e=await getCachedCatalog();if(e!==null&&isCacheFresh(e))return e;try{return await getFetchedCatalog()}catch(t){if(e!==null)return e;throw t}};return{async getModelLimits(e){let t=normalizeCatalogModelId(e),n=builtInCompiledRuntimeModelLimitsById.get(t);if(n!==void 0)return n;let r=await resolveModelsFromCacheOrFetch();if(r!==null){let e=findCatalogModelBySlug(r.models,t);if(e)for(let t of e.providers){let e=modelCatalogLimitsFromProvider(t);if(e!==null)return e}}return null},async getByProviderModelId(e,t){let n=await resolveModelsFromCacheOrFetch();if(n===null)return null;let r=findCatalogModelByProviderModelId({models:n.models,provider:e,providerAliases:n.providerAliases,providerModelId:t});if(r!==null){let e=modelCatalogLimitsFromProvider(r.provider);if(e!==null)return{slug:r.model.slug,limits:e}}return null}}}async function fetchAndPersistModelCatalog(t){let r=await vercelGatewayFetch(AI_GATEWAY_MODELS_CATALOG_URL);if(!r.ok)throw Error(`AI Gateway model catalog request failed with HTTP ${r.status} ${r.statusText}.`);let i=modelCatalogResponseSchema$1.safeParse(await r.json());if(!i.success)throw Error(`AI Gateway model catalog response did not match the expected schema.`);let a={fetchedAt:new Date().toISOString(),kind:COMPILED_RUNTIME_MODEL_CATALOG_CACHE_KIND,models:i.data.models,providerAliases:i.data.providerAliases,version:2};try{let r=resolveCompiledRuntimeModelCatalogCachePath(t);await mkdir(join(t,`.eve`,`cache`),{recursive:!0}),await writeFile(r,`${JSON.stringify(a,null,2)}\n`,`utf8`)}catch{}return a}async function readModelCatalogCache(e){try{let n=await readFile(resolveCompiledRuntimeModelCatalogCachePath(e),`utf8`),r=compiledRuntimeModelCatalogCacheSchema.safeParse(JSON.parse(n));return r.success?r.data:null}catch(e){return e instanceof Error&&`code`in e&&typeof e.code==`string`&&e.code,null}}function isCacheFresh(e){let t=Date.parse(e.fetchedAt);return Number.isFinite(t)?Date.now()-t<=864e5:!1}export{catalogModelProviderSchema,catalogModelSchema,createCompiledRuntimeModelCatalogLoader,modelCatalogResponseSchema,resolveCompiledRuntimeModelCatalogCachePath};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isAbsolute,join,relative,resolve}from"node:path";import{DEFAULT_AGENT_MODEL_ID}from"#shared/default-agent-model.js";import{toErrorMessage}from"#shared/errors.js";import{serializeOutputSchema}from"#shared/tool-schema.js";import{normalizeLogicalPath}from"#discover/filesystem.js";import{classifyModelRouting}from"#internal/classify-model-routing.js";import{normalizeAgentDefinition}from"#internal/authored-definition/core.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{parseJsonObject}from"#shared/json.js";import{isDynamicModelDefinition}from"#shared/agent-definition.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";async function compileAgentConfig(e,t,n={}){let r=e.configModule,a=r===void 0?void 0:formatAgentConfigModulePath(e,r),o=normalizeAgentDefinition(Object.hasOwn(n,`definition`)?n.definition:r===void 0?{model:DEFAULT_AGENT_MODEL_ID}:await loadModuleBackedDefinition({agentRoot:e.agentRoot,displayPath:a,kind:`agent config`,source:r}),r===void 0?`Expected the default agent config to match the public eve shape.`:`Expected the agent config export "${r.exportName??`default`}" from "${a}" to match the public eve shape.`),s=isDynamicModelDefinition(o.model)?o.model:void 0,c=s===void 0?await normalizeAuthoredModelReference({modelCatalog:t.modelCatalog,purpose:`the primary compaction trigger model`,contextWindowTokens:o.modelContextWindowTokens,providerOptions:o.modelOptions?.providerOptions,source:r,sourcePath:a,value:o.model}):void 0,l={},u={compaction:l,name:e.agentId};o.description!==void 0&&(u.description=o.description);let d;if(s!==void 0){if(r===void 0)throw Error(`Expected dynamic model definitions to be authored in agent.ts.`);d={eventNames:Object.keys(s.events),exportName:r.exportName,sourceKind:`module`,logicalPath:r.logicalPath,sourceId:r.sourceId}}let f=normalizeExperimentalDefinition(o.experimental);if(f!==void 0&&(u.experimental=f),o.build!==void 0&&(u.build={externalDependencies:o.build.externalDependencies===void 0?void 0:[...o.build.externalDependencies]}),o.outputSchema!==void 0&&(u.outputSchema=serializeOutputSchema(o.outputSchema)),o.reasoning!==void 0&&(u.reasoning=o.reasoning),o.limits!==void 0&&(u.limits={maxInputTokensPerSession:o.limits.maxInputTokensPerSession,maxOutputTokensPerSession:o.limits.maxOutputTokensPerSession,sessionTimeoutMs:o.limits.sessionTimeoutMs}),r!==void 0&&(u.source={exportName:r.exportName,sourceKind:`module`,logicalPath:r.logicalPath,sourceId:r.sourceId}),o.compaction?.model!==void 0&&(l.model=await normalizeAuthoredModelReference({modelCatalog:t.modelCatalog,purpose:`the compaction summary model`,contextWindowTokens:o.compaction.modelContextWindowTokens,providerOptions:o.modelOptions?.providerOptions,source:r,sourcePath:a,value:o.compaction.model})),o.compaction?.thresholdPercent!==void 0&&(l.thresholdPercent=o.compaction.thresholdPercent),d!==void 0)return{...u,dynamicModel:d};if(c===void 0)throw Error(`Expected a static agent model to compile to a concrete model reference.`);return{...u,model:c}}function normalizeExperimentalDefinition(e){if(e===void 0)return;let t={};return e.instrumentationProviders!==void 0&&(t.instrumentationProviders=e.instrumentationProviders),e.subagentPersistentSessions!==void 0&&(t.subagentPersistentSessions=e.subagentPersistentSessions),e.tasks!==void 0&&(t.tasks=e.tasks),e.workflow!==void 0&&(t.workflow={world:e.workflow.world}),t}async function normalizeAuthoredModelReference(e){if(typeof e.value==`string`)return await withCompiledRuntimeModelLimits({id:formatLanguageModelGatewayId(e.value),providerOptions:parseProviderOptionsRecord(e.providerOptions),routing:classifyModelRouting(e.value,e.providerOptions)},e);let t=e.source;if(t===void 0)throw Error(`Expected ${e.purpose} to provide a valid AI SDK language model reference.`);let n=e.value,r=n.specificationVersion;if(r!==`v2`&&r!==`v3`&&r!==`v4`||typeof n.provider!=`string`||typeof n.modelId!=`string`||typeof n.doGenerate!=`function`||typeof n.doStream!=`function`)throw Error(`Expected the authored agent config export "${t.exportName??`default`}" from "${e.sourcePath??t.logicalPath}" to provide a valid AI SDK language model.`);let i={id:formatLanguageModelGatewayId(n),source:{exportName:t.exportName,sourceKind:`module`,logicalPath:t.logicalPath,sourceId:t.sourceId},providerOptions:parseProviderOptionsRecord(e.providerOptions),routing:classifyModelRouting(n,e.providerOptions)};if(e.contextWindowTokens===void 0){let t=await e.modelCatalog.getByProviderModelId(n.provider,n.modelId);if(t)return{...i,id:t.slug,contextWindowTokens:t.limits.contextWindowTokens,maxOutputTokens:t.limits.maxOutputTokens}}return await withCompiledRuntimeModelLimits(i,e)}function formatAgentConfigModulePath(e,r){let i=join(e.agentRoot,r.logicalPath);return normalizeLogicalPath(relative(resolveTopLevelAgentRoot(e),i))}function resolveTopLevelAgentRoot(e){let t=resolve(e.appRoot),n=resolve(t,`agent`);return isPathInsideOrEqual(n,resolve(e.agentRoot))?n:t}function isPathInsideOrEqual(t,r){let i=relative(t,r);return i===``||!i.startsWith(`..`)&&!isAbsolute(i)}async function withCompiledRuntimeModelLimits(e,t){if(t.contextWindowTokens!==void 0)return{...e,contextWindowTokens:t.contextWindowTokens};let n;try{n=await t.modelCatalog.getModelLimits(e.id)}catch(n){throw Error(`Failed to load AI Gateway model metadata for ${t.purpose} "${e.id}". ${toErrorMessage(n)}`)}if(n===null)throw Error(`Cannot compile agent compaction because ${t.purpose} "${e.id}" does not have known AI Gateway context window metadata.`);return{...e,contextWindowTokens:n.contextWindowTokens,maxOutputTokens:n.maxOutputTokens}}function parseProviderOptionsRecord(e){if(e===void 0)return;let t={};for(let[n,r]of Object.entries(e))t[n]=parseJsonObject(r);return t}export{compileAgentConfig};
|
|
1
|
+
import{isAbsolute,join,relative,resolve}from"node:path";import{DEFAULT_AGENT_MODEL_ID}from"#shared/default-agent-model.js";import{toErrorMessage}from"#shared/errors.js";import{serializeOutputSchema}from"#shared/tool-schema.js";import{normalizeLogicalPath}from"#discover/filesystem.js";import{classifyModelRouting}from"#internal/classify-model-routing.js";import{normalizeAgentDefinition}from"#internal/authored-definition/core.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{parseJsonObject}from"#shared/json.js";import{isDynamicModelDefinition}from"#shared/agent-definition.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";async function compileAgentConfig(e,t,n={}){let r=e.configModule,a=r===void 0?void 0:formatAgentConfigModulePath(e,r),o=normalizeAgentDefinition(Object.hasOwn(n,`definition`)?n.definition:r===void 0?{model:DEFAULT_AGENT_MODEL_ID}:await loadModuleBackedDefinition({agentRoot:e.agentRoot,displayPath:a,kind:`agent config`,source:r}),r===void 0?`Expected the default agent config to match the public eve shape.`:`Expected the agent config export "${r.exportName??`default`}" from "${a}" to match the public eve shape.`),s=isDynamicModelDefinition(o.model)?o.model:void 0,c=s===void 0?await normalizeAuthoredModelReference({modelCatalog:t.modelCatalog,purpose:`the primary compaction trigger model`,contextWindowTokens:o.modelContextWindowTokens,providerOptions:o.modelOptions?.providerOptions,source:r,sourcePath:a,value:o.model}):void 0,l={},u={compaction:l,name:e.agentId};o.description!==void 0&&(u.description=o.description);let d;if(s!==void 0){if(r===void 0)throw Error(`Expected dynamic model definitions to be authored in agent.ts.`);d={eventNames:Object.keys(s.events),exportName:r.exportName,sourceKind:`module`,logicalPath:r.logicalPath,sourceId:r.sourceId}}let f=normalizeExperimentalDefinition(o.experimental);if(f!==void 0&&(u.experimental=f),o.build!==void 0&&(u.build={externalDependencies:o.build.externalDependencies===void 0?void 0:[...o.build.externalDependencies]}),o.outputSchema!==void 0&&(u.outputSchema=serializeOutputSchema(o.outputSchema)),o.reasoning!==void 0&&(u.reasoning=o.reasoning),o.limits!==void 0&&(u.limits={maxInputTokensPerSession:o.limits.maxInputTokensPerSession,maxOutputTokensPerSession:o.limits.maxOutputTokensPerSession,sessionTimeoutMs:o.limits.sessionTimeoutMs}),r!==void 0&&(u.source={exportName:r.exportName,sourceKind:`module`,logicalPath:r.logicalPath,sourceId:r.sourceId}),o.compaction?.model!==void 0&&(l.model=await normalizeAuthoredModelReference({modelCatalog:t.modelCatalog,purpose:`the compaction summary model`,contextWindowTokens:o.compaction.modelContextWindowTokens,providerOptions:o.modelOptions?.providerOptions,source:r,sourcePath:a,value:o.compaction.model})),o.compaction?.thresholdPercent!==void 0&&(l.thresholdPercent=o.compaction.thresholdPercent),d!==void 0)return{...u,dynamicModel:d};if(c===void 0)throw Error(`Expected a static agent model to compile to a concrete model reference.`);return{...u,model:c}}function normalizeExperimentalDefinition(e){if(e===void 0)return;let t={};return e.instrumentationProviders!==void 0&&(t.instrumentationProviders=e.instrumentationProviders),e.subagentPersistentSessions!==void 0&&(t.subagentPersistentSessions=e.subagentPersistentSessions),e.tasks!==void 0&&(t.tasks=e.tasks),e.workflow!==void 0&&(t.workflow={world:e.workflow.world}),t}async function normalizeAuthoredModelReference(e){if(typeof e.value==`string`)return await withCompiledRuntimeModelLimits({id:formatLanguageModelGatewayId(e.value),providerOptions:parseProviderOptionsRecord(e.providerOptions),routing:classifyModelRouting(e.value,e.providerOptions)},e);let t=e.source;if(t===void 0)throw Error(`Expected ${e.purpose} to provide a valid AI SDK language model reference.`);let n=e.value,r=n.specificationVersion;if(r!==`v2`&&r!==`v3`&&r!==`v4`||typeof n.provider!=`string`||typeof n.modelId!=`string`||typeof n.doGenerate!=`function`||typeof n.doStream!=`function`)throw Error(`Expected the authored agent config export "${t.exportName??`default`}" from "${e.sourcePath??t.logicalPath}" to provide a valid AI SDK language model.`);let i={id:formatLanguageModelGatewayId(n),source:{exportName:t.exportName,sourceKind:`module`,logicalPath:t.logicalPath,sourceId:t.sourceId},providerOptions:parseProviderOptionsRecord(e.providerOptions),routing:classifyModelRouting(n,e.providerOptions)};if(e.contextWindowTokens===void 0)try{let t=await e.modelCatalog.getByProviderModelId(n.provider,n.modelId);if(t)return{...i,id:t.slug,contextWindowTokens:t.limits.contextWindowTokens,maxOutputTokens:t.limits.maxOutputTokens}}catch{}return await withCompiledRuntimeModelLimits(i,e)}function formatAgentConfigModulePath(e,r){let i=join(e.agentRoot,r.logicalPath);return normalizeLogicalPath(relative(resolveTopLevelAgentRoot(e),i))}function resolveTopLevelAgentRoot(e){let t=resolve(e.appRoot),n=resolve(t,`agent`);return isPathInsideOrEqual(n,resolve(e.agentRoot))?n:t}function isPathInsideOrEqual(t,r){let i=relative(t,r);return i===``||!i.startsWith(`..`)&&!isAbsolute(i)}async function withCompiledRuntimeModelLimits(e,t){if(t.contextWindowTokens!==void 0)return{...e,contextWindowTokens:t.contextWindowTokens};let n;try{n=await t.modelCatalog.getModelLimits(e.id)}catch(n){throw Error(`Failed to load AI Gateway model metadata for ${t.purpose} "${e.id}". ${toErrorMessage(n)}`)}if(n===null)throw Error(`Cannot compile agent compaction because ${t.purpose} "${e.id}" does not have known AI Gateway context window metadata.`);return{...e,contextWindowTokens:n.contextWindowTokens,maxOutputTokens:n.maxOutputTokens}}function parseProviderOptionsRecord(e){if(e===void 0)return;let t={};for(let[n,r]of Object.entries(e))t[n]=parseJsonObject(r);return t}export{compileAgentConfig};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AgentSourceManifest, type LocalSubagentSourceRef, type ResolvedExtensionMount } from "#discover/manifest.js";
|
|
2
2
|
import type { CompiledChannelEntry, CompiledConnectionDefinition, CompiledDynamicInstructionsDefinition, CompiledDynamicSkillDefinition, CompiledDynamicToolDefinition, CompiledHookDefinition, CompiledInstructionsDefinition, CompiledScheduleDefinition, CompiledSkillDefinition, CompiledToolDefinition } from "#compiler/manifest.js";
|
|
3
3
|
import type { ManifestCompileContext } from "#compiler/normalize-helpers.js";
|
|
4
4
|
/**
|
|
@@ -35,6 +35,15 @@ export declare function compileExtensionContributions(input: {
|
|
|
35
35
|
readonly consumerAgentRoot: string;
|
|
36
36
|
readonly externalDependencies: readonly string[];
|
|
37
37
|
}): Promise<CompiledExtensionContributions>;
|
|
38
|
+
/** Composes one mount's root-visible subagents under its namespace. */
|
|
39
|
+
export declare function composeExtensionSubagentSources(input: {
|
|
40
|
+
readonly consumerAgentRoot: string;
|
|
41
|
+
readonly mount: ResolvedExtensionMount;
|
|
42
|
+
}): LocalSubagentSourceRef[];
|
|
43
|
+
/** Returns authored and mounted-extension subagents visible from one agent node. */
|
|
44
|
+
export declare function composeAgentSubagentSources(manifest: AgentSourceManifest): LocalSubagentSourceRef[];
|
|
45
|
+
/** Earlier entries win, matching directory-override precedence for other slots. */
|
|
46
|
+
export declare function mergeExtensionSubagentSources(primary: readonly LocalSubagentSourceRef[], secondary: readonly LocalSubagentSourceRef[]): LocalSubagentSourceRef[];
|
|
38
47
|
export interface DisabledToolTarget {
|
|
39
48
|
/** Namespaced target, e.g. `crm__search`. */
|
|
40
49
|
readonly name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{join,relative}from"node:path";import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{compileConnectionDefinition}from"#compiler/normalize-connection.js";import{compileHookEntry}from"#compiler/normalize-hook.js";import{compileInstructionsEntry}from"#compiler/normalize-instructions.js";import{compileScheduleDefinition}from"#compiler/normalize-schedule.js";import{compileSkillSource}from"#compiler/normalize-skill.js";import{compileToolEntry}from"#compiler/normalize-tool.js";async function compileExtensionContributions(e){let{mount:t,consumerAgentRoot:n}=e,r={externalDependencies:e.externalDependencies},i=await composeManifestContributions({manifest:t.manifest,namespace:t.namespace,consumerAgentRoot:n,options:r,sourceIdScope:`ext:${t.namespace}`,role:`extension`});if(t.overrides===void 0)return i.contributions;let a=await composeManifestContributions({manifest:t.overrides,namespace:t.namespace,consumerAgentRoot:n,options:r,sourceIdScope:`ext-override:${t.namespace}`,role:`override`});return applyOverrideDisables({merged:mergeContributions(a.contributions,i.contributions),disables:a.disabledToolTargets,extensionToolNames:new Set(i.contributions.tools.map(e=>e.name)),extensionDynamicToolSlugs:new Set(i.contributions.dynamicTools.map(e=>e.slug)),namespace:t.namespace})}function applyOverrideDisables(e){if(e.disables.length===0)return e.merged;let t=e.namespace.length+2,n=new Set;for(let r of e.disables){if(!e.extensionToolNames.has(r.name)&&!e.extensionDynamicToolSlugs.has(r.name)){let n=[...e.extensionToolNames,...e.extensionDynamicToolSlugs].map(e=>e.slice(t)).sort();throw Error(`The override "agent/extensions/${e.namespace}/${r.logicalPath}" calls disableTool(), but the "${e.namespace}" extension contributes no tool named "${r.name.slice(t)}". It contributes: ${n.length>0?n.join(`, `):`(no tools)`}.`)}n.add(r.name)}return{...e.merged,tools:e.merged.tools.filter(e=>!n.has(e.name)),dynamicTools:e.merged.dynamicTools.filter(e=>!n.has(e.slug))}}async function composeManifestContributions(
|
|
1
|
+
import{join,relative}from"node:path";import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{createPathDerivedSourceId}from"#discover/manifest.js";import{compileConnectionDefinition}from"#compiler/normalize-connection.js";import{compileHookEntry}from"#compiler/normalize-hook.js";import{compileInstructionsEntry}from"#compiler/normalize-instructions.js";import{compileScheduleDefinition}from"#compiler/normalize-schedule.js";import{compileSkillSource}from"#compiler/normalize-skill.js";import{compileToolEntry}from"#compiler/normalize-tool.js";async function compileExtensionContributions(e){let{mount:t,consumerAgentRoot:n}=e,r={externalDependencies:e.externalDependencies},i=await composeManifestContributions({manifest:t.manifest,namespace:t.namespace,consumerAgentRoot:n,options:r,sourceIdScope:`ext:${t.namespace}`,role:`extension`});if(t.overrides===void 0)return i.contributions;let a=await composeManifestContributions({manifest:t.overrides,namespace:t.namespace,consumerAgentRoot:n,options:r,sourceIdScope:`ext-override:${t.namespace}`,role:`override`});return applyOverrideDisables({merged:mergeContributions(a.contributions,i.contributions),disables:a.disabledToolTargets,extensionToolNames:new Set(i.contributions.tools.map(e=>e.name)),extensionDynamicToolSlugs:new Set(i.contributions.dynamicTools.map(e=>e.slug)),namespace:t.namespace})}function composeExtensionSubagentSources(e){let t=scopeExtensionSubagents({consumerAgentRoot:e.consumerAgentRoot,manifest:e.mount.manifest,namespace:e.mount.namespace,sourceIdScope:`ext:${e.mount.namespace}`,sourceRoot:e.mount.sourceRoot});return e.mount.overrides===void 0?t:mergeExtensionSubagentSources(scopeExtensionSubagents({consumerAgentRoot:e.consumerAgentRoot,manifest:e.mount.overrides,namespace:e.mount.namespace,sourceIdScope:`ext-override:${e.mount.namespace}`,sourceRoot:e.mount.overrides.agentRoot}),t)}function composeAgentSubagentSources(e){return[...e.subagents,...[...e.resolvedExtensions].sort((e,t)=>e.namespace.localeCompare(t.namespace)).flatMap(t=>composeExtensionSubagentSources({consumerAgentRoot:e.agentRoot,mount:t}))]}function mergeExtensionSubagentSources(e,t){return dedupeBy([...e,...t],e=>e.subagentId)}function scopeExtensionSubagents(e){return e.manifest.subagents.map(n=>({...scopeExtensionSubagentSource(n,e.sourceRoot,e.sourceIdScope),logicalPath:relative(e.consumerAgentRoot,n.entryPath).replaceAll(`\\`,`/`),subagentId:`${e.namespace}__${n.subagentId}`}))}function scopeExtensionSubagentSource(e,t,n){return{...e,manifest:scopeExtensionSubagentManifest(e.manifest,t,n),sourceId:scopeExtensionSourceId(t,e.entryPath,n)}}function scopeExtensionSubagentManifest(t,n,r){let scopeRef=i=>({...i,sourceId:scopeExtensionSourceId(n,join(t.agentRoot,i.logicalPath),r)});return{...t,channels:t.channels.map(scopeRef),connections:t.connections.map(scopeRef),...t.configModule===void 0?{}:{configModule:scopeRef(t.configModule)},extensions:t.extensions.map(scopeRef),hooks:t.hooks.map(scopeRef),instructions:t.instructions.map(scopeRef),lib:t.lib.map(scopeRef),sandbox:t.sandbox===null?null:scopeRef(t.sandbox),sandboxWorkspaces:t.sandboxWorkspaces.map(scopeRef),schedules:t.schedules.map(scopeRef),skills:t.skills.map(scopeRef),subagents:t.subagents.map(e=>scopeExtensionSubagentSource(e,n,r)),tools:t.tools.map(scopeRef)}}function scopeExtensionSourceId(e,n,i){return`${i}:${createPathDerivedSourceId(relative(e,n).replaceAll(`\\`,`/`))}`}function applyOverrideDisables(e){if(e.disables.length===0)return e.merged;let t=e.namespace.length+2,n=new Set;for(let r of e.disables){if(!e.extensionToolNames.has(r.name)&&!e.extensionDynamicToolSlugs.has(r.name)){let n=[...e.extensionToolNames,...e.extensionDynamicToolSlugs].map(e=>e.slice(t)).sort();throw Error(`The override "agent/extensions/${e.namespace}/${r.logicalPath}" calls disableTool(), but the "${e.namespace}" extension contributes no tool named "${r.name.slice(t)}". It contributes: ${n.length>0?n.join(`, `):`(no tools)`}.`)}n.add(r.name)}return{...e.merged,tools:e.merged.tools.filter(e=>!n.has(e.name)),dynamicTools:e.merged.dynamicTools.filter(e=>!n.has(e.slug))}}async function composeManifestContributions(r){let{manifest:o,namespace:s,consumerAgentRoot:c,options:l,sourceIdScope:u,role:d}=r,f=o.agentRoot,p=`${s}__`,scopeSourceId=e=>`${u}:${e}`,rebase=n=>relative(c,join(f,n)).replaceAll(`\\`,`/`),m=(await Promise.all(o.channels.map(e=>compileChannelDefinition(f,e,l)))).flat().map(e=>e.kind===`disabled`?{...e,name:`${p}${e.name}`,logicalPath:rebase(e.logicalPath)}:{...e,name:`${p}${e.name}`,sourceId:scopeSourceId(e.sourceId),logicalPath:rebase(e.logicalPath)}),h=[],g=[],_=[];for(let e of o.tools){let t=await compileToolEntry(f,e,l);if(t.kind===`tool`)h.push({...t.definition,name:`${p}${t.definition.name}`,sourceId:scopeSourceId(t.definition.sourceId),logicalPath:rebase(t.definition.logicalPath)});else if(t.kind===`dynamic-tool`)g.push({...t.definition,slug:`${p}${t.definition.slug}`,extensionNamespace:s,sourceId:scopeSourceId(t.definition.sourceId),logicalPath:rebase(t.definition.logicalPath)});else if(t.kind===`workflow-tool`)throw Error(`${describeExtensionSource(d,s,e.logicalPath)} enables the Workflow tool, but the Workflow tool is the consuming agent's to enable, not an extension's. Remove it.`);else if(t.kind===`web-search-tool`)throw Error(`${describeExtensionSource(d,s,e.logicalPath)} configures web search, but the web search provider is the consuming agent's to configure, not an extension's. Remove it.`);else if(d===`extension`)throw Error(`${describeExtensionSource(d,s,e.logicalPath)} calls disableTool(), but an extension cannot disable framework tools — that is the consuming agent's to own. Remove it.`);else _.push({name:`${p}${t.name}`,logicalPath:e.logicalPath})}let v=o.hooks.map(e=>{let t=compileHookEntry(e);return{...t,slug:`${p}${t.slug}`,sourceId:scopeSourceId(t.sourceId),logicalPath:rebase(t.logicalPath)}}),y=[],b=[];for(let e of o.skills){let t=await compileSkillSource(f,e,l);t.kind===`skill`?y.push({...t.definition,name:`${p}${t.definition.name}`,sourceId:scopeSourceId(t.definition.sourceId),logicalPath:rebase(t.definition.logicalPath)}):b.push({...t.definition,slug:`${p}${t.definition.slug}`,extensionNamespace:s,sourceId:scopeSourceId(t.definition.sourceId),logicalPath:rebase(t.definition.logicalPath)})}let x=(await Promise.all(o.connections.map(e=>compileConnectionDefinition(f,e,l)))).map(e=>({...e,connectionName:`${p}${e.connectionName}`,sourceId:scopeSourceId(e.sourceId),logicalPath:rebase(e.logicalPath)})),S=[],C=[];for(let e of o.instructions){let t=await compileInstructionsEntry(f,e,l);t.kind===`instructions`?C.push({...t.definition,sourceId:scopeSourceId(t.definition.sourceId),logicalPath:rebase(t.definition.logicalPath)}):S.push({...t.definition,slug:`${p}${t.definition.slug}`,sourceId:scopeSourceId(t.definition.sourceId),logicalPath:rebase(t.definition.logicalPath)})}return{contributions:{channels:m,tools:h,dynamicTools:g,hooks:v,skills:y,dynamicSkills:b,dynamicInstructions:S,connections:x,instructions:C,schedules:await Promise.all(o.schedules.map(async e=>{let t=await compileScheduleDefinition(f,e,l);return{...t,name:`${p}${t.name}`,sourceId:scopeSourceId(t.sourceId),logicalPath:rebase(t.logicalPath)}}))},disabledToolTargets:_}}function describeExtensionSource(e,t,n){return e===`override`?`The override "agent/extensions/${t}/${n}"`:`The "${t}" extension's "${n}"`}function mergeContributions(e,t){let n=new Set(e.channels.map(e=>e.name));return{channels:[...e.channels,...t.channels.filter(e=>!n.has(e.name))],tools:dedupeBy([...e.tools,...t.tools],e=>e.name),dynamicTools:dedupeBy([...e.dynamicTools,...t.dynamicTools],e=>e.slug),connections:dedupeBy([...e.connections,...t.connections],e=>e.connectionName),skills:dedupeBy([...e.skills,...t.skills],e=>e.name),schedules:dedupeBy([...e.schedules,...t.schedules],e=>e.name),hooks:[...e.hooks,...t.hooks],dynamicSkills:[...e.dynamicSkills,...t.dynamicSkills],dynamicInstructions:[...e.dynamicInstructions,...t.dynamicInstructions],instructions:[...e.instructions,...t.instructions]}}function dedupeBy(e,t){let n=new Set,r=[];for(let i of e){let e=t(i);n.has(e)||(n.add(e),r.push(i))}return r}export{applyOverrideDisables,compileExtensionContributions,composeAgentSubagentSources,composeExtensionSubagentSources,mergeContributions,mergeExtensionSubagentSources};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{ROOT_COMPILED_AGENT_NODE_ID,createCompiledAgentManifest,createCompiledAgentNodeManifest,createCompiledAgentResources}from"#compiler/manifest.js";import{compileConnectionDefinition}from"#compiler/normalize-connection.js";import{compileHookEntry}from"#compiler/normalize-hook.js";import{compileInstructionsEntry}from"#compiler/normalize-instructions.js";import{compileScheduleDefinition}from"#compiler/normalize-schedule.js";import{compileSkillSource}from"#compiler/normalize-skill.js";import{compileToolEntry}from"#compiler/normalize-tool.js";import{mountRefNamespace,packageStateNamespace}from"#discover/extensions.js";import{createCompiledRuntimeModelCatalogLoader}from"#compiler/model-catalog.js";import{compileAgentConfig}from"#compiler/normalize-agent-config.js";import{compileExtensionContributions}from"#compiler/normalize-extension.js";import{compileSandboxDefinition}from"#compiler/normalize-sandbox.js";import{compileSubagentGraph}from"#compiler/normalize-subagent.js";async function compileAgentManifest(e){let r={modelCatalog:createCompiledRuntimeModelCatalogLoader(e.appRoot)},i=await compileAgentNodeManifest(e,r),a=await compileSubagentGraph({appRoot:e.appRoot,compileAgentNodeManifest,compileAgentResources,context:r,externalDependencies:i.config.build?.externalDependencies??[],parentNodeId:ROOT_COMPILED_AGENT_NODE_ID,subagents:e
|
|
1
|
+
import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{ROOT_COMPILED_AGENT_NODE_ID,createCompiledAgentManifest,createCompiledAgentNodeManifest,createCompiledAgentResources}from"#compiler/manifest.js";import{compileConnectionDefinition}from"#compiler/normalize-connection.js";import{compileHookEntry}from"#compiler/normalize-hook.js";import{compileInstructionsEntry}from"#compiler/normalize-instructions.js";import{compileScheduleDefinition}from"#compiler/normalize-schedule.js";import{compileSkillSource}from"#compiler/normalize-skill.js";import{compileToolEntry}from"#compiler/normalize-tool.js";import{mountRefNamespace,packageStateNamespace}from"#discover/extensions.js";import{createCompiledRuntimeModelCatalogLoader}from"#compiler/model-catalog.js";import{compileAgentConfig}from"#compiler/normalize-agent-config.js";import{compileExtensionContributions,composeAgentSubagentSources}from"#compiler/normalize-extension.js";import{compileSandboxDefinition}from"#compiler/normalize-sandbox.js";import{compileSubagentGraph}from"#compiler/normalize-subagent.js";async function compileAgentManifest(e){let r={modelCatalog:createCompiledRuntimeModelCatalogLoader(e.appRoot)},i=await compileAgentNodeManifest(e,r),a=await compileSubagentGraph({appRoot:e.appRoot,compileAgentNodeManifest,compileAgentResources,context:r,externalDependencies:i.config.build?.externalDependencies??[],parentAgentRoot:e.agentRoot,parentNodeId:ROOT_COMPILED_AGENT_NODE_ID,subagents:composeAgentSubagentSources(e)});return createCompiledAgentManifest({...i,extensionMounts:i.extensionMounts,remoteAgents:a.remoteAgents,subagentEdges:a.edges,subagents:a.nodes})}async function compileAgentNodeManifest(e,t,n={}){let i=Object.hasOwn(n,`agentConfigDefinition`)?await compileAgentConfig(e,t,{definition:n.agentConfigDefinition}):await compileAgentConfig(e,t);if(n.allowRootOnlyConfig===!1&&i.experimental?.workflow!==void 0)throw Error(`Workflow runtime configuration is only supported on the root agent config. Remove "experimental.workflow" from "${e.agentId}".`);if(n.allowRootOnlyConfig===!1&&i.experimental?.tasks!==void 0)throw Error(`Background tasks are only supported on the root agent config. Remove "experimental.tasks" from "${e.agentId}".`);let a=mergeExternalDependencies(n.externalDependencies,i.build?.externalDependencies),o=a.length===0?i:{...i,build:{...i.build,externalDependencies:a}};return createCompiledAgentNodeManifest({...await compileAgentResources(e,t,{externalDependencies:a}),config:o})}async function compileAgentResources(t,n,r={}){let s=[...r.externalDependencies??[]],c=await Promise.all(t.tools.map(e=>compileToolEntry(t.agentRoot,e,{externalDependencies:s}))),l=[],u=[],d=[],f,p;for(let e of c)e.kind===`tool`?l.push(e.definition):e.kind===`dynamic-tool`?u.push(e.definition):e.kind===`workflow-tool`?f={maxSubagents:e.maxSubagents}:e.kind===`web-search-tool`?p=e.provider:d.push(e.name);let m=(await Promise.all(t.channels.map(n=>compileChannelDefinition(t.agentRoot,n,{externalDependencies:s})))).flat(),h=await Promise.all(t.skills.map(e=>compileSkillSource(t.agentRoot,e,{externalDependencies:s}))),g=[],_=[];for(let e of h)e.kind===`skill`?g.push(e.definition):_.push(e.definition);let v=await Promise.all(t.instructions.map(e=>compileInstructionsEntry(t.agentRoot,e,{externalDependencies:s}))),y=[],b=[];for(let e of v)e.kind===`instructions`?y.push(e.definition):b.push(e.definition);let x=await Promise.all(t.connections.map(e=>compileConnectionDefinition(t.agentRoot,e,{externalDependencies:s}))),S=t.hooks.map(e=>compileHookEntry(e)),C=await Promise.all(t.schedules.map(e=>compileScheduleDefinition(t.agentRoot,e,{externalDependencies:s}))),w=new Set(l.map(e=>e.name)),T=new Set(u.map(e=>e.slug)),E=new Set(x.map(e=>e.connectionName)),D=new Set(g.map(e=>e.name)),O=[];for(let e of[...t.resolvedExtensions].sort((e,t)=>e.namespace.localeCompare(t.namespace))){let r=await compileExtensionContributions({mount:e,context:n,consumerAgentRoot:t.agentRoot,externalDependencies:s});m.push(...r.channels);for(let e of r.tools)w.has(e.name)||(w.add(e.name),l.push(e));for(let e of r.dynamicTools)T.has(e.slug)||(T.add(e.slug),u.push(e));for(let e of r.connections)E.has(e.connectionName)||(E.add(e.connectionName),x.push(e));for(let e of r.skills)D.has(e.name)||(D.add(e.name),g.push(e));C.push(...r.schedules),S.push(...r.hooks),_.push(...r.dynamicSkills),b.push(...r.dynamicInstructions),O.push(...r.instructions)}let k=[...y,...O];return createCompiledAgentResources({agentRoot:t.agentRoot,appRoot:t.appRoot,channels:m,extensionMounts:compileExtensionMounts(t),connections:x,diagnosticsSummary:t.diagnosticsSummary,disabledFrameworkTools:d,workflowTool:f,webSearchProvider:p,dynamicSkills:_,dynamicTools:u,hooks:S,sandbox:t.sandbox===null?null:await compileSandboxDefinition(t.agentRoot,t.sandbox,{externalDependencies:s}),sandboxWorkspaces:t.sandboxWorkspaces.map(e=>({logicalPath:e.logicalPath,rootEntries:[...e.rootEntries],sourceId:e.sourceId,sourcePath:e.sourcePath})),schedules:C,dynamicInstructions:b,skills:g,instructions:k,tools:l})}function compileExtensionMounts(e){return e.resolvedExtensions.map(t=>{let n=e.extensions.find(e=>mountRefNamespace(e.logicalPath)===t.namespace);return{namespace:t.namespace,packageName:t.packageName,packageNamespace:packageStateNamespace(t.packageName),sourceRoot:t.sourceRoot,mountSourceId:n?.sourceId??`extensions/${t.namespace}`,mountLogicalPath:n?.logicalPath??`extensions/${t.namespace}`}})}function mergeExternalDependencies(...e){let t=new Set;for(let n of e)for(let e of n??[])t.add(e);return[...t]}export{compileAgentManifest};
|
|
@@ -29,6 +29,7 @@ export declare function compileSubagentGraph(input: {
|
|
|
29
29
|
readonly compileAgentResources: CompileAgentResourcesFn;
|
|
30
30
|
readonly context: ManifestCompileContext;
|
|
31
31
|
readonly externalDependencies?: readonly string[];
|
|
32
|
+
readonly parentAgentRoot: string;
|
|
32
33
|
readonly parentNodeId: string;
|
|
33
34
|
readonly subagents: readonly LocalSubagentSourceRef[];
|
|
34
35
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{expectBoolean,expectFunction,expectObjectRecord,expectOnlyKnownKeys,expectString}from"#internal/authored-module.js";import{EVE_SESSION_ROUTE_PATH}from"#protocol/routes.js";import{serializeOutputSchema}from"#shared/tool-schema.js";import{createCompiledSubagentNodeId}from"#compiler/manifest.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";import{isDynamicSentinel}from"#shared/dynamic-tool-definition.js";import{
|
|
1
|
+
import{expectBoolean,expectFunction,expectObjectRecord,expectOnlyKnownKeys,expectString}from"#internal/authored-module.js";import{EVE_SESSION_ROUTE_PATH}from"#protocol/routes.js";import{join,relative}from"node:path";import{serializeOutputSchema}from"#shared/tool-schema.js";import{createCompiledSubagentNodeId}from"#compiler/manifest.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";import{createPathDerivedSourceId}from"#discover/manifest.js";import{isDynamicSentinel}from"#shared/dynamic-tool-definition.js";import{composeAgentSubagentSources}from"#compiler/normalize-extension.js";const ALLOWED_DYNAMIC_SUBAGENT_EVENTS=new Set([`session.started`,`turn.started`]);async function compileSubagentGraph(e){let t=[],n=[],r=[];for(let i of e.subagents){let a=await compileSubagentDefinition({appRoot:e.appRoot,compileAgentNodeManifest:e.compileAgentNodeManifest,compileAgentResources:e.compileAgentResources,context:e.context,externalDependencies:e.externalDependencies,parentAgentRoot:e.parentAgentRoot,parentNodeId:e.parentNodeId,source:i});if(a.kind===`remote`){r.push(a.node);continue}t.push(a.node,...a.descendants.nodes),n.push({childNodeId:a.node.nodeId,parentNodeId:e.parentNodeId},...a.descendants.edges)}return{edges:n,nodes:t,remoteAgents:r}}async function compileSubagentDefinition(e){let t=e.source.manifest.configModule;if(t===void 0)throw Error(`Subagent "${e.source.logicalPath}" is missing an agent config module.`);let n=createSubagentConfigModuleSourceRef(e.source,t,e.parentAgentRoot),r=await loadModuleBackedDefinition({agentRoot:e.source.manifest.agentRoot,displayPath:n.logicalPath,externalDependencies:e.externalDependencies,kind:`subagent config`,source:t}),i=normalizeDynamicSubagentDefinition(r,`Expected the dynamic subagent config export "${t.exportName??`default`}" from "${n.logicalPath}" to match the public eve shape.`);return i===void 0&&readAgentDefinitionKind(r)===`remote`?{kind:`remote`,node:compileRemoteAgent({parentAgentRoot:e.parentAgentRoot,source:e.source,value:r})}:{kind:`local`,...await compileLocalSubagent({...e,agentConfigDefinition:i===void 0?r:void 0,configResolver:i===void 0?void 0:{...t,...i.definition,build:i.build}})}}async function compileSubagent(e){let t=createCompiledSubagentNodeId(e.parentNodeId,e.source.sourceId),n=e.source.subagentId,r={...e.source.manifest,appRoot:e.appRoot},i=mergeExternalDependencies(e.externalDependencies,e.configResolver?.build?.externalDependencies),a={entryPath:e.source.entryPath,logicalPath:e.source.logicalPath,name:n,nodeId:t,rootPath:e.source.rootPath,sourceId:e.source.sourceId,sourceKind:`module`};if(e.configResolver===void 0){let n=await e.compileAgentNodeManifest(r,e.context,{agentConfigDefinition:e.agentConfigDefinition,allowRootOnlyConfig:!1,externalDependencies:i}),o=n.config.description;if(!o)throw Error(`Local subagent "${e.source.logicalPath}" is missing a "description" field on its agent config. Add \`description\` to \`defineAgent({ ... })\` so the parent agent can decide when to delegate to this subagent.`);let s=await compileSubagentGraph({appRoot:e.appRoot,compileAgentNodeManifest:e.compileAgentNodeManifest,context:e.context,compileAgentResources:e.compileAgentResources,externalDependencies:n.config.build?.externalDependencies??i,parentAgentRoot:e.source.manifest.agentRoot,parentNodeId:t,subagents:composeAgentSubagentSources(e.source.manifest)});return{descendants:s,node:{...a,agent:{...n,remoteAgents:[...s.remoteAgents]},description:o}}}let o=await e.compileAgentResources(r,e.context,{externalDependencies:i}),s=await compileSubagentGraph({appRoot:e.appRoot,compileAgentNodeManifest:e.compileAgentNodeManifest,context:e.context,compileAgentResources:e.compileAgentResources,externalDependencies:i,parentAgentRoot:e.source.manifest.agentRoot,parentNodeId:t,subagents:composeAgentSubagentSources(e.source.manifest)});return{descendants:s,node:{...a,agent:{...o,remoteAgents:[...s.remoteAgents]},configResolver:e.configResolver}}}const compileLocalSubagent=compileSubagent;function compileRemoteAgent(e){let t=e.source.manifest.configModule;if(t===void 0)throw Error(`Remote agent "${e.source.logicalPath}" is missing a config module.`);assertRemoteAgentDefinitionHasNoLocalPackageEntries(e.source);let n=createSubagentConfigModuleSourceRef(e.source,t,e.parentAgentRoot),r=normalizeRemoteAgentDefinition(e.value,`Expected the remote agent config export "${t.exportName??`default`}" from "${n.logicalPath}" to match the public eve shape.`),i={...n,description:r.description,entryPath:e.source.entryPath,name:e.source.subagentId,nodeId:e.source.sourceId,outputSchema:r.outputSchema,path:r.path,rootPath:e.source.rootPath};return r.url===void 0?i:{...i,url:r.url}}function normalizeDynamicSubagentDefinition(e,i){if(!isDynamicSentinel(e))return;let a=expectObjectRecord(e,i);expectOnlyKnownKeys(a,[`build`,`events`,`kind`],i);let o=a.build===void 0?void 0:normalizeDynamicSubagentBuild(a.build,i),s=expectObjectRecord(a.events,i),c=[];for(let[e,n]of Object.entries(s)){if(!ALLOWED_DYNAMIC_SUBAGENT_EVENTS.has(e))throw Error(`${i} Dynamic subagents support only "session.started" and "turn.started" handlers.`);expectFunction(n,i),c.push(e)}let l={definition:{eventNames:c}};return o!==void 0&&(l.build=o),l}function normalizeDynamicSubagentBuild(e,t){let a=expectObjectRecord(e,t);if(expectOnlyKnownKeys(a,[`externalDependencies`],t),a.externalDependencies===void 0)return{};if(!Array.isArray(a.externalDependencies))throw Error(t);return{externalDependencies:a.externalDependencies.map(e=>expectString(e,t))}}function mergeExternalDependencies(...e){return[...new Set(e.flatMap(e=>e??[]))]}function createSubagentConfigModuleSourceRef(e,t,n){let r=relative(n,join(e.manifest.agentRoot,t.logicalPath)).replaceAll(`\\`,`/`),i={logicalPath:r,sourceId:t.sourceId.startsWith(`ext:`)||t.sourceId.startsWith(`ext-override:`)?t.sourceId:createPathDerivedSourceId(r),sourceKind:`module`};return t.exportName!==void 0&&(i.exportName=t.exportName),i}function readAgentDefinitionKind(e){return typeof e!=`object`||!e?`local`:e.kind===`remote`?`remote`:`local`}function normalizeRemoteAgentDefinition(t,o){let s=expectObjectRecord(t,o);if(expectOnlyKnownKeys(s,[`auth`,`description`,`forwardPrincipal`,`headers`,`kind`,`outputSchema`,`path`,`url`],o),s.kind!==`remote`)throw Error(`${o} Expected "kind" to be "remote".`);return s.forwardPrincipal!==void 0&&expectBoolean(s.forwardPrincipal,`${o} Expected "forwardPrincipal" to be a boolean.`),{description:expectString(s.description,o),outputSchema:serializeOutputSchema(s.outputSchema),path:s.path===void 0?EVE_SESSION_ROUTE_PATH:expectString(s.path,o),url:typeof s.url==`function`?void 0:expectString(s.url,o)}}function assertRemoteAgentDefinitionHasNoLocalPackageEntries(e){let t=e.manifest,n=[t.connections.length>0?`connections/`:void 0,t.hooks.length>0?`hooks/`:void 0,t.instructions.length>0?`instructions`:void 0,t.lib.length>0?`lib/`:void 0,t.sandbox===null?void 0:`sandbox/`,t.sandboxWorkspaces.length>0?`sandbox/workspace/`:void 0,t.schedules.length>0?`schedules/`:void 0,t.skills.length>0?`skills/`:void 0,t.subagents.length>0?`subagents/`:void 0,t.tools.length>0?`tools/`:void 0].filter(e=>e!==void 0);if(n.length!==0)throw Error(`Remote subagent definition "${e.logicalPath}" cannot include local package entries. Remove unsupported entries: ${n.join(`, `)}.`)}export{compileSubagentGraph};
|