experimental-ash 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/bin/ash.d.ts +4 -4
  3. package/bin/ash.js +12 -8
  4. package/dist/docs/public/channels/README.md +26 -2
  5. package/dist/docs/public/channels/discord.md +159 -0
  6. package/dist/docs/public/channels/slack.md +14 -2
  7. package/dist/src/channel/routes.d.ts +6 -1
  8. package/dist/src/channel/send.js +5 -2
  9. package/dist/src/channel/session-callback.d.ts +10 -0
  10. package/dist/src/channel/session-callback.js +65 -0
  11. package/dist/src/channel/types.d.ts +19 -0
  12. package/dist/src/chunks/{client-BShLWzR6.js → client-ZqNLLMZB.js} +3 -3
  13. package/dist/src/chunks/{compile-agent-CyP6FrL8.js → compile-agent-DrIyb818.js} +1 -1
  14. package/dist/src/chunks/{dev-authored-source-watcher-DIWfVUsu.js → dev-authored-source-watcher-C1WUVv9F.js} +1 -1
  15. package/dist/src/chunks/host-CwAcCrg7.js +70 -0
  16. package/dist/src/chunks/paths-CWZN-XRX.js +85 -0
  17. package/dist/src/chunks/{token-BOkIxJeV.js → token-YW4VSeBB.js} +1 -1
  18. package/dist/src/chunks/types-BJSR0JNV.js +1 -0
  19. package/dist/src/cli/commands/channels.d.ts +15 -0
  20. package/dist/src/cli/commands/channels.js +9 -0
  21. package/dist/src/cli/commands/info.js +1 -1
  22. package/dist/src/cli/dev/repl.js +3 -3
  23. package/dist/src/cli/run.js +1 -1
  24. package/dist/src/client/message-reducer.js +6 -0
  25. package/dist/src/context/keys.d.ts +1 -1
  26. package/dist/src/context/keys.js +1 -1
  27. package/dist/src/context/seed-keys.d.ts +5 -1
  28. package/dist/src/context/seed-keys.js +4 -0
  29. package/dist/src/evals/cli/eval.js +1 -1
  30. package/dist/src/execution/await-authorization-orchestrator.js +1 -1
  31. package/dist/src/execution/node-step.js +13 -0
  32. package/dist/src/execution/remote-agent-dispatch.d.ts +15 -0
  33. package/dist/src/execution/remote-agent-dispatch.js +79 -0
  34. package/dist/src/execution/runtime-context.js +4 -1
  35. package/dist/src/execution/session-callback-step.d.ts +16 -0
  36. package/dist/src/execution/session-callback-step.js +72 -0
  37. package/dist/src/execution/subagent-invocation.d.ts +16 -0
  38. package/dist/src/execution/subagent-invocation.js +16 -0
  39. package/dist/src/execution/subagent-tool.js +5 -8
  40. package/dist/src/execution/workflow-entry.js +21 -1
  41. package/dist/src/execution/workflow-steps.d.ts +6 -1
  42. package/dist/src/execution/workflow-steps.js +76 -25
  43. package/dist/src/harness/execute-tool.d.ts +3 -3
  44. package/dist/src/harness/runtime-actions.d.ts +1 -0
  45. package/dist/src/harness/runtime-actions.js +18 -1
  46. package/dist/src/internal/application/package.js +1 -1
  47. package/dist/src/internal/process/pnpm.d.ts +28 -0
  48. package/dist/src/internal/process/pnpm.js +50 -0
  49. package/dist/src/protocol/message.d.ts +6 -0
  50. package/dist/src/protocol/message.js +1 -0
  51. package/dist/src/protocol/routes.d.ts +11 -0
  52. package/dist/src/protocol/routes.js +13 -0
  53. package/dist/src/public/channels/ash.js +25 -1
  54. package/dist/src/public/channels/discord/api.d.ts +99 -0
  55. package/dist/src/public/channels/discord/api.js +167 -0
  56. package/dist/src/public/channels/discord/defaults.d.ts +9 -0
  57. package/dist/src/public/channels/discord/defaults.js +74 -0
  58. package/dist/src/public/channels/discord/discordChannel.d.ts +132 -0
  59. package/dist/src/public/channels/discord/discordChannel.js +402 -0
  60. package/dist/src/public/channels/discord/hitl.d.ts +34 -0
  61. package/dist/src/public/channels/discord/hitl.js +194 -0
  62. package/dist/src/public/channels/discord/inbound.d.ts +97 -0
  63. package/dist/src/public/channels/discord/inbound.js +238 -0
  64. package/dist/src/public/channels/discord/index.d.ts +7 -0
  65. package/dist/src/public/channels/discord/index.js +6 -0
  66. package/dist/src/public/channels/discord/responses.d.ts +11 -0
  67. package/dist/src/public/channels/discord/responses.js +40 -0
  68. package/dist/src/public/channels/discord/verify.d.ts +38 -0
  69. package/dist/src/public/channels/discord/verify.js +72 -0
  70. package/dist/src/public/channels/discord/verifyInbound.d.ts +6 -0
  71. package/dist/src/public/channels/discord/verifyInbound.js +19 -0
  72. package/dist/src/public/channels/slack/constants.d.ts +7 -0
  73. package/dist/src/public/channels/slack/constants.js +7 -0
  74. package/dist/src/public/channels/slack/slackChannel.js +2 -1
  75. package/dist/src/runtime/actions/keys.js +2 -0
  76. package/dist/src/runtime/actions/types.d.ts +47 -1
  77. package/dist/src/runtime/actions/types.js +23 -0
  78. package/dist/src/runtime/connections/callback-route.d.ts +1 -1
  79. package/dist/src/runtime/connections/callback-route.js +1 -1
  80. package/dist/src/runtime/connections/mcp-client.d.ts +1 -2
  81. package/dist/src/runtime/connections/mcp-client.js +69 -3
  82. package/dist/src/runtime/framework-channels/index.js +7 -2
  83. package/dist/src/runtime/session-callback-route.d.ts +6 -0
  84. package/dist/src/runtime/session-callback-route.js +87 -0
  85. package/package.json +9 -3
  86. package/dist/src/chunks/host-BxT35q6K.js +0 -70
  87. package/dist/src/chunks/paths-B2hLA0Fn.js +0 -85
  88. package/dist/src/chunks/types-CjIyrcYo.js +0 -1
@@ -1,4 +1,4 @@
1
- import{i as e}from"./chunk-DSjMdhoD.js";import{$ as t,B as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,N as u,P as d,Q as f,R as p,U as m,V as h,W as g,X as _,Y as v,Z as y,et as b,q as x,tt as ee,y as te,z as ne}from"./paths-B2hLA0Fn.js";import{t as re}from"./gray-matter-D-9jHwOT.js";import{n as S}from"./guards-26p6sOw3.js";import{t as ie}from"./errors-HYWjHxV6.js";import{basename as ae,dirname as C,join as w,relative as T,resolve as E}from"node:path";import{readFile as oe,readdir as se,stat as ce}from"node:fs/promises";var le=e(re(),1);function ue(e){return e}function de(e){return e}function fe(e){return e}const pe=/^---\r?\n[\s\S]*?\r?\n---(?:\r?\n|$)/;function D(e){if(!le.default.test(e))return{hasFrontmatter:!1,frontmatter:{},markdown:e};let t;try{t=(0,le.default)(e)}catch(t){throw ge(e)&&!_e(e)?Error(`Markdown frontmatter is missing a closing delimiter.`):t}if(!S(t.data))throw Error(`Markdown frontmatter must parse to an object.`);return{hasFrontmatter:!0,frontmatter:t.data,markdown:ve(t.content)}}function me(e){return fe(ne({markdown:e},`Expected authored instructions markdown to match the public Ash shape.`))}function he(e){let t=D(e);if(!t.hasFrontmatter)throw Error(`Schedule markdown must start with YAML frontmatter declaring "cron".`);if(`run`in t.frontmatter)throw Error('Markdown-form schedules do not support the "run" frontmatter key. Use a TypeScript schedule (`<name>.ts`) to author a handler.');return ue(n({...t.frontmatter,markdown:t.markdown},`Expected authored schedule markdown to match the public Ash shape.`))}function O(e,t={}){let n=D(e),r=t.slug;if(r===void 0&&!n.hasFrontmatter)throw Error(`Skill markdown must start with YAML frontmatter.`);let i=xe(n.frontmatter),a=k(i.description,`description`),o=r===void 0?Se(i.description,`description`):a??t.description??we(n.markdown,r),s={...i,description:o,markdown:n.markdown};return ye(s,i),de(h(s,`Expected authored skill markdown to match the public Ash shape.`))}function ge(e){return e.startsWith(`---
1
+ import{i as e}from"./chunk-DSjMdhoD.js";import{$ as t,B as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,N as u,P as d,Q as f,R as p,U as m,V as h,W as g,X as _,Y as v,Z as y,et as b,q as x,tt as ee,y as te,z as ne}from"./paths-CWZN-XRX.js";import{t as re}from"./gray-matter-D-9jHwOT.js";import{n as S}from"./guards-26p6sOw3.js";import{t as ie}from"./errors-HYWjHxV6.js";import{basename as ae,dirname as C,join as w,relative as T,resolve as E}from"node:path";import{readFile as oe,readdir as se,stat as ce}from"node:fs/promises";var le=e(re(),1);function ue(e){return e}function de(e){return e}function fe(e){return e}const pe=/^---\r?\n[\s\S]*?\r?\n---(?:\r?\n|$)/;function D(e){if(!le.default.test(e))return{hasFrontmatter:!1,frontmatter:{},markdown:e};let t;try{t=(0,le.default)(e)}catch(t){throw ge(e)&&!_e(e)?Error(`Markdown frontmatter is missing a closing delimiter.`):t}if(!S(t.data))throw Error(`Markdown frontmatter must parse to an object.`);return{hasFrontmatter:!0,frontmatter:t.data,markdown:ve(t.content)}}function me(e){return fe(ne({markdown:e},`Expected authored instructions markdown to match the public Ash shape.`))}function he(e){let t=D(e);if(!t.hasFrontmatter)throw Error(`Schedule markdown must start with YAML frontmatter declaring "cron".`);if(`run`in t.frontmatter)throw Error('Markdown-form schedules do not support the "run" frontmatter key. Use a TypeScript schedule (`<name>.ts`) to author a handler.');return ue(n({...t.frontmatter,markdown:t.markdown},`Expected authored schedule markdown to match the public Ash shape.`))}function O(e,t={}){let n=D(e),r=t.slug;if(r===void 0&&!n.hasFrontmatter)throw Error(`Skill markdown must start with YAML frontmatter.`);let i=xe(n.frontmatter),a=k(i.description,`description`),o=r===void 0?Se(i.description,`description`):a??t.description??we(n.markdown,r),s={...i,description:o,markdown:n.markdown};return ye(s,i),de(h(s,`Expected authored skill markdown to match the public Ash shape.`))}function ge(e){return e.startsWith(`---
2
2
  `)||e.startsWith(`---\r
3
3
  `)}function _e(e){return pe.test(e)}function ve(e){return e.replace(/^\r?\n/u,``)}function ye(e,t){let n=k(t.license,`license`);n!==void 0&&(e.license=n);let r=Ce(t.metadata,`metadata`);r!==void 0&&(e.metadata=r)}const be=[`name`];function xe(e){let t={...e};for(let e of be)delete t[e];return t}function k(e,t){if(e!=null){if(typeof e!=`string`)throw Error(`Expected "${t}" frontmatter to be a string.`);return e}}function Se(e,t){let n=k(e,t);if(n===void 0)throw Error(`Missing required "${t}" frontmatter.`);return n}function Ce(e,t){if(e==null)return;if(!S(e))throw Error(`Expected "${t}" frontmatter to be an object.`);let n=Object.entries(e).map(([e,n])=>{if(typeof n!=`string`)throw Error(`Expected "${t}.${e}" frontmatter to be a string.`);return[e,n]});return Object.fromEntries(n)}function we(e,t){let n=e.split(/\r?\n/u).map(e=>e.trim()).find(e=>e!==``&&!e.startsWith("```"));return n===void 0?`Instructions for the ${t} skill.`:n.replace(/^[#>*\-\s]+/u,``).trim()||`Instructions for the ${t} skill.`}async function A(e){let t=v(e.logicalPath);return{definition:e.lower(await e.source.readTextFile(e.sourcePath),{name:_(t)}),sourceKind:`markdown`,logicalPath:t,sourceId:l(t)}}function j(e,t){let n={moduleFileNames:[]};for(let r of e)if(r.isFile()){if(t.markdownFileName!==void 0&&r.name===t.markdownFileName){n.markdownFileName=r.name;continue}t.moduleBaseName!==void 0&&x(r.name)===t.moduleBaseName&&n.moduleFileNames.push(r.name)}return n.moduleFileNames.sort((e,t)=>e.localeCompare(t)),n}function M(e,t){let n=new Map;for(let r of e){if(!r.isFile())continue;let e=t.allowMarkdown?Te(r.name):null,i=t.allowModules?x(r.name):null,a=e??i;if(a===null)continue;let o=n.get(a);if(o===void 0&&(o={moduleFileNames:[],slotName:a},n.set(a,o)),e!==null){o.markdownFileName=r.name;continue}i!==null&&o.moduleFileNames.push(r.name)}return[...n.values()].map(e=>(e.moduleFileNames.sort((e,t)=>e.localeCompare(t)),e)).sort((e,t)=>e.slotName.localeCompare(t.slotName))}function Te(e){return!e.endsWith(`.md`)||e.length<=3?null:e.slice(0,-3)}async function N(e){let t=w(e.rootPath,e.directoryName),n=e.rootEntries.find(t=>t.name===e.directoryName);if(n===void 0)return{diagnostics:[],sources:[]};if(!n.isDirectory())return{diagnostics:[f({code:e.invalidDirectoryCode,message:e.invalidDirectoryMessage,sourcePath:t})],sources:[]};let r=[],i=[];return await P({allowMarkdown:e.allowMarkdown===!0,diagnostics:r,markdownLowerer:e.allowMarkdown===!0?e.markdownLowerer:void 0,projectSource:e.source,recursive:e.recursive,relativeDirectory:e.directoryName,rootDirectoryPath:t,sources:i,subdirectoryRelative:``,unsupportedEntryCode:e.unsupportedEntryCode,unsupportedEntryMessage:e.unsupportedEntryMessage,unsupportedFileCode:e.unsupportedFileCode,unsupportedFileMessage:e.unsupportedFileMessage,validateSegment:e.validateSegment}),{diagnostics:r,sources:i}}async function P(e){let t=e.subdirectoryRelative===``?e.rootDirectoryPath:w(e.rootDirectoryPath,e.subdirectoryRelative),n=await R(e.projectSource,t);e.recursive&&await Ee(e,n,t),(e.unsupportedFileCode!==void 0||e.unsupportedEntryCode!==void 0)&&De(e,n,t),await Oe(e,n,t)}async function Ee(e,t,n){for(let r of t){if(!r.isDirectory())continue;let t=w(n,r.name);if(e.validateSegment!==void 0){let n=e.validateSegment(r.name,t);if(n!==null){e.diagnostics.push(n);continue}}await P({allowMarkdown:e.allowMarkdown,diagnostics:e.diagnostics,markdownLowerer:e.markdownLowerer,projectSource:e.projectSource,recursive:e.recursive,relativeDirectory:e.relativeDirectory,rootDirectoryPath:e.rootDirectoryPath,sources:e.sources,subdirectoryRelative:e.subdirectoryRelative===``?r.name:w(e.subdirectoryRelative,r.name),unsupportedEntryCode:e.unsupportedEntryCode,unsupportedEntryMessage:e.unsupportedEntryMessage,unsupportedFileCode:e.unsupportedFileCode,unsupportedFileMessage:e.unsupportedFileMessage,validateSegment:e.validateSegment})}}function De(e,t,n){for(let r of t){let t=c(r),i=w(n,r.name);if(t===`directory`)continue;if(t===`other`){e.unsupportedEntryCode!==void 0&&e.diagnostics.push(f({code:e.unsupportedEntryCode,message:e.unsupportedEntryMessage?.(i,e.relativeDirectory)??`Expected "${i}" to be a regular file or directory within "${e.relativeDirectory}/".`,sourcePath:i}));continue}if(e.unsupportedFileCode===void 0)continue;let a=x(r.name)!==null,o=e.allowMarkdown&&r.name.endsWith(`.md`);a||o||e.diagnostics.push(f({code:e.unsupportedFileCode,message:e.unsupportedFileMessage?.(i,e.relativeDirectory)??`Expected "${i}" to be a supported authored source within "${e.relativeDirectory}/".`,sourcePath:i}))}}async function Oe(e,t,n){for(let r of M(t,{allowMarkdown:e.allowMarkdown,allowModules:!0})){let t=e.subdirectoryRelative===``?r.slotName:w(e.subdirectoryRelative,r.slotName),i=v(w(e.relativeDirectory,t));if(e.validateSegment!==void 0){let t=r.markdownFileName??r.moduleFileNames[0]??r.slotName,i=e.validateSegment(r.slotName,w(n,t));if(i!==null){e.diagnostics.push(i);continue}}if(r.markdownFileName!==void 0&&r.moduleFileNames.length>0){e.diagnostics.push(K(n,i,[r.markdownFileName,...r.moduleFileNames]));continue}if(r.moduleFileNames.length>1){e.diagnostics.push(q(n,i,r.moduleFileNames));continue}if(r.markdownFileName!==void 0){let t=e.subdirectoryRelative===``?r.markdownFileName:w(e.subdirectoryRelative,r.markdownFileName),n=v(w(e.relativeDirectory,t));if(e.markdownLowerer===void 0)continue;let i=await A({logicalPath:n,lower:e.markdownLowerer,source:e.projectSource,sourcePath:w(e.rootDirectoryPath,t)});e.sources.push(i);continue}let[a]=r.moduleFileNames;if(a===void 0)continue;let s=e.subdirectoryRelative===``?a:w(e.subdirectoryRelative,a);e.sources.push(o({logicalPath:v(w(e.relativeDirectory,s))}))}}const F=`discover/module-slot-collision`,I=`discover/tools-directory-invalid`,L=`discover/hooks-directory-invalid`,ke=/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/,Ae=/^[a-z][a-z0-9-]{0,63}$/,je=/^(\.?[a-z][a-z0-9-]{0,63}|\[[a-zA-Z][a-zA-Z0-9_]{0,63}\])$/,Me=/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/;async function R(e,t){let n=[...await e.readDirectory(t)];return n.sort((e,t)=>e.name.localeCompare(t.name)),n}async function z(e){let n=await B({markdownFileName:`instructions.md`,moduleBaseName:`instructions`,rootEntries:e.rootEntries,rootPath:e.rootPath,slotLabel:`instructions`,source:e.source});if(n.diagnostics.length>0||n.source!==void 0)return{diagnostics:n.diagnostics,instructions:n.source};let r=await B({markdownFileName:`system.md`,moduleBaseName:`system`,rootEntries:e.rootEntries,rootPath:e.rootPath,slotLabel:`system`,source:e.source});if(r.source!==void 0){let n=r.source.sourceKind===`markdown`?`system.md`:r.source.logicalPath;return{diagnostics:[t({code:`discover/deprecated-system-slot`,message:`The "${n}" slot is deprecated. Rename it to "${n.replace(/^system/,`instructions`)}" — the runtime still loads the legacy slot for now, but support will be removed in a future release.`,sourcePath:w(e.rootPath,n)}),...r.diagnostics],instructions:r.source}}return r.diagnostics.length>0?{diagnostics:r.diagnostics}:e.required===!1?{diagnostics:[]}:{diagnostics:[f({code:`discover/required-instructions-missing`,message:`Expected one authored instructions prompt source at "instructions.md", "instructions.ts", "instructions.cts", "instructions.mts", "instructions.js", "instructions.cjs", or "instructions.mjs".`,sourcePath:e.rootPath})]}}async function B(e){let t=j(e.rootEntries,{markdownFileName:e.markdownFileName,moduleBaseName:e.moduleBaseName});if(t.markdownFileName!==void 0&&t.moduleFileNames.length>0)return{diagnostics:[K(e.rootPath,e.slotLabel,[t.markdownFileName,...t.moduleFileNames])]};if(t.moduleFileNames.length>1)return{diagnostics:[q(e.rootPath,e.slotLabel,t.moduleFileNames)]};if(t.markdownFileName!==void 0)return{diagnostics:[],source:await A({logicalPath:e.markdownFileName,lower:me,source:e.source,sourcePath:w(e.rootPath,t.markdownFileName)})};let[n]=t.moduleFileNames;return n===void 0?{diagnostics:[]}:{diagnostics:[],source:o({logicalPath:n})}}function V(e){let t=j(e.rootEntries,{moduleBaseName:e.slotName});if(t.moduleFileNames.length>1)return{diagnostics:[q(e.rootPath,e.slotName,t.moduleFileNames)]};let[n]=t.moduleFileNames;return n===void 0?e.missingDiagnostic===void 0?{diagnostics:[]}:{diagnostics:[f({code:e.missingDiagnostic.code,message:e.missingDiagnostic.message,sourcePath:e.rootPath})]}:{diagnostics:[],module:o({logicalPath:n})}}function H(e,t){return ke.test(e)?null:f({code:`discover/tool-name-invalid`,message:`Tool filename "${e}" is not a legal tool name. Expected ASCII letters, digits, underscores, and dashes only, starting with a letter, up to 64 characters.`,sourcePath:t})}function U(e,t){return Ae.test(e)?null:f({code:`discover/connection-name-invalid`,message:`Connection filename "${e}" is not a legal connection name. Expected lowercase ASCII letters, digits, and dashes only, starting with a letter, up to 64 characters.`,sourcePath:t})}function Ne(e,t){return je.test(e)?null:f({code:`discover/channel-name-invalid`,message:`Channel path segment "${e}" is not a legal channel name. Expected lowercase kebab-case (\`my-channel\`), optionally with a leading dot (\`.well-known\`), or a path parameter form (\`[sessionId]\`).`,sourcePath:t})}function W(e,t){return Me.test(e)?null:f({code:`discover/hook-name-invalid`,message:`Hook path segment "${e}" is not a legal hook name. Expected ASCII letters, digits, underscores, and dashes only, starting with a letter, up to 64 characters.`,sourcePath:t})}function G(e){return e.rootEntries.flatMap(n=>!n.isDirectory()||e.classifyEntry(n.name,c(n))!==`unknown`?[]:[t({code:`discover/unsupported-directory`,message:e.createUnsupportedDirectoryMessage(n.name),sourcePath:w(e.rootPath,n.name)})])}function K(e,t,n){return f({code:`discover/slot-collision`,message:`Found conflicting authored sources for "${t}": ${J(n)}.`,sourcePath:e})}function q(e,t,n){return f({code:F,message:`Found multiple authored module sources for "${t}": ${J(n)}.`,sourcePath:e})}function J(e){return e.map(e=>`"${e}"`).join(`, `)}async function Pe(e){let t=`connections`,n=w(e.rootPath,t),r=e.rootEntries.find(e=>e.name===t);if(r===void 0)return{connections:[],diagnostics:[]};if(!r.isDirectory())return{connections:[],diagnostics:[f({code:`discover/connections-directory-invalid`,message:`Expected "${n}" to be a directory of authored connections.`,sourcePath:n})]};let i=await R(e.source,n),a=[],o=[],s=new Set;for(let e of M(i,{allowMarkdown:!1,allowModules:!0})){let r=v(w(t,e.slotName));if(e.moduleFileNames.length>1){s.add(e.slotName),o.push(q(n,r,e.moduleFileNames));continue}let[i]=e.moduleFileNames;if(i===void 0)continue;s.add(e.slotName);let c=U(e.slotName,w(n,i));if(c!==null){o.push(c);continue}a.push(d({connectionName:e.slotName,logicalPath:w(t,i)}))}for(let r of i){if(!r.isDirectory())continue;let i=r.name,c=w(n,i);if(s.has(i)){o.push(f({code:`discover/connection-file-folder-collision`,message:`Connection "${i}" is defined twice. Found both file-form "connections/${i}.ts" and folder-form "connections/${i}/". Use one form, not both.`,sourcePath:c}));let e=a.findIndex(e=>e.connectionName===i);e!==-1&&a.splice(e,1);continue}let l=U(i,c);if(l!==null){o.push(l);continue}let u=Fe(await R(e.source,c));if(u.length>1){o.push(f({code:F,message:`Found multiple connection definition modules inside "${v(w(t,i))}": `+u.map(e=>`"${e}"`).join(`, `),sourcePath:c}));continue}let[p]=u;if(p===void 0){o.push(f({code:`discover/connection-folder-empty`,message:`Connection folder "connections/${i}/" contains no "connection.ts" definition. Add "connections/${i}/connection.ts" or use the file form "connections/${i}.ts".`,sourcePath:c}));continue}a.push(d({connectionName:i,logicalPath:w(t,i,p)}))}return{connections:a,diagnostics:o}}function Fe(e){let t=e.filter(e=>e.isFile()),n=[];for(let e of M(t,{allowMarkdown:!1,allowModules:!0}))e.slotName===`connection`&&n.push(...e.moduleFileNames);return n}const Ie=`discover/lib-entry-unsupported`;async function Le(e){let t=await N({directoryName:`lib`,invalidDirectoryCode:`discover/lib-directory-invalid`,invalidDirectoryMessage:`Expected "${e.agentRoot}/lib" to be a directory of authored helper modules.`,recursive:!0,rootEntries:e.rootEntries,rootPath:e.agentRoot,source:e.source,unsupportedEntryCode:Ie,unsupportedEntryMessage:e=>`Expected "${e}" to be a supported authored module within "lib/".`,unsupportedFileCode:Ie,unsupportedFileMessage:e=>`Expected "${e}" to be a supported authored module within "lib/".`});return{diagnostics:t.diagnostics,lib:t.sources}}function Y(){return{kind:`disk`,async readDirectory(e){return await se(e,{withFileTypes:!0})},async readTextFile(e){return await oe(e,`utf8`)},async stat(e){try{let t=await ce(e);return t.isDirectory()?`directory`:t.isFile()?`file`:`other`}catch{return`missing`}}}}const X=`sandbox`,Z=`workspace`,Re=`sandbox`;async function ze(e){let t=[],n=e.rootEntries.find(e=>e.name===X);if(n===void 0)return Be({diagnostics:t,rootEntries:e.rootEntries,rootPath:e.rootPath});let r=w(e.rootPath,X);if(!n.isDirectory())return t.push(f({code:`discover/sandbox-directory-invalid`,message:`Expected "${r}" to be the sandbox folder.`,sourcePath:r})),{diagnostics:t,sandbox:null,sandboxWorkspace:null};let i=await R(e.source,r),a=Ve(i),s=i.find(e=>e.name===Z&&e.isDirectory());if(a.length>1)return t.push(f({code:F,message:`Found multiple sandbox definition modules inside "${v(X)}": `+a.map(e=>`"${e}"`).join(`, `),sourcePath:r})),{diagnostics:t,sandbox:null,sandboxWorkspace:null};let[c]=a,u=c!==void 0,d=s!==void 0;if(!u&&!d)return t.push(f({code:`discover/sandbox-folder-empty`,message:`Sandbox folder "sandbox/" contains neither a "sandbox.<ext>" definition nor a "workspace/" subdirectory. Add one or the other, or remove the folder.`,sourcePath:r})),{diagnostics:t,sandbox:null,sandboxWorkspace:null};let p=null;u&&(p=o({logicalPath:w(X,c)}));let m=null;if(d){let n=w(r,Z),i=v(w(X,Z)),a=await Ue(e.source,n);a===null?m={logicalPath:i,rootEntries:await He(e.source,n),sourceId:l(i),sourcePath:n}:t.push(a)}return{diagnostics:t,sandbox:p,sandboxWorkspace:m}}function Be(e){let t=j(e.rootEntries,{moduleBaseName:Re});if(t.moduleFileNames.length>1)return e.diagnostics.push(f({code:F,message:`Found multiple top-level sandbox definition modules: `+t.moduleFileNames.map(e=>`"${e}"`).join(`, `),sourcePath:e.rootPath})),{diagnostics:e.diagnostics,sandbox:null,sandboxWorkspace:null};let[n]=t.moduleFileNames;return n===void 0?{diagnostics:e.diagnostics,sandbox:null,sandboxWorkspace:null}:{diagnostics:e.diagnostics,sandbox:o({logicalPath:n}),sandboxWorkspace:null}}function Ve(e){let t=e.filter(e=>e.isFile()),n=[];for(let e of M(t,{allowMarkdown:!1,allowModules:!0}))e.slotName===Re&&n.push(...e.moduleFileNames);return n}async function He(e,t){let n=await R(e,t),r=[];for(let e of n){if(e.isDirectory()){r.push(`${e.name}/`);continue}e.isFile()&&r.push(e.name)}return r}async function Ue(e,t){return(await R(e,t)).find(e=>e.name===`skills`)===void 0?null:f({code:`discover/sandbox-workspace-skills-reserved`,message:`"sandbox/workspace/skills/" is reserved for the framework skill discovery. Move skill files under "agent/skills/" instead, or rename the subtree.`,sourcePath:w(t,`skills`)})}const We=`discover/skill-frontmatter-invalid`;async function Ge(e){let t=e.source??Y(),n=E(e.agentRoot),r=E(e.skillsDirectoryPath??w(n,`skills`)),i=v(e.skillsLogicalPath??T(n,r)),a=await t.stat(r);if(a===`missing`)return{diagnostics:[],skills:[]};if(a!==`directory`)return{diagnostics:[f({code:`discover/skills-directory-invalid`,message:`Expected "${r}" to be a directory of authored skills.`,sourcePath:r})],skills:[]};let o=[],s=new Set,l=new Map,u=await R(t,r);for(let e of u){let n=await Ke({entryName:e.name,entryType:c(e),skillsDirectoryPath:r,skillsLogicalPath:i,source:t});if(o.push(...n.diagnostics),n.skill===null||n.skillId===null||s.has(n.skillId))continue;let a=l.get(n.skillId);if(a!==void 0){o.push(f({code:`discover/skill-collision`,message:`Found conflicting authored skill sources for "${n.skillId}": "${a.logicalPath}" and "${n.logicalPath}".`,sourcePath:w(r,n.skillId)})),s.add(n.skillId),l.delete(n.skillId);continue}l.set(n.skillId,{logicalPath:n.logicalPath,skill:n.skill})}return{diagnostics:o,skills:[...l.values()].map(e=>e.skill)}}async function Ke(e){let t=w(e.skillsDirectoryPath,e.entryName);switch(i(e.entryName,e.entryType)){case`skill-package-directory`:return qe({logicalSkillsPath:e.skillsLogicalPath,skillId:e.entryName,skillRootPath:t,source:e.source});case`flat-skill-markdown`:return Je({logicalSkillsPath:e.skillsLogicalPath,skillFileName:e.entryName,skillFilePath:t,source:e.source});case`flat-skill-module`:return Ye({logicalSkillsPath:e.skillsLogicalPath,skillFileName:e.entryName});default:return{diagnostics:[f({code:`discover/skill-entry-not-directory`,message:`Expected "${t}" to be a skill directory containing SKILL.md or a flat ".md", ".ts", ".cts", ".mts", ".js", ".cjs", or ".mjs" skill file.`,sourcePath:t})],logicalPath:v(w(e.skillsLogicalPath,e.entryName)),skill:null,skillId:null}}}async function qe(e){let t=w(e.skillRootPath,`SKILL.md`),n=v(w(e.logicalSkillsPath,e.skillId,`SKILL.md`));if(await e.source.stat(t)!==`file`)return{diagnostics:[f({code:`discover/skill-markdown-missing`,message:`Expected "${t}" to exist for the "${e.skillId}" skill.`,sourcePath:e.skillRootPath})],logicalPath:n,skill:null,skillId:null};let r;try{r=O(await e.source.readTextFile(t))}catch(e){return{diagnostics:[f({code:We,message:Ze(t,e),sourcePath:t})],logicalPath:n,skill:null,skillId:null}}let i=await Xe(e.source,e.skillRootPath),a={description:r.description,logicalPath:n,markdown:r.markdown,name:e.skillId,rootPath:e.skillRootPath,skillFilePath:t,skillId:e.skillId,sourceId:l(n)};return i.assetsPath!==void 0&&(a.assetsPath=i.assetsPath),r.license!==void 0&&(a.license=r.license),r.metadata!==void 0&&(a.metadata=r.metadata),i.referencesPath!==void 0&&(a.referencesPath=i.referencesPath),i.scriptsPath!==void 0&&(a.scriptsPath=i.scriptsPath),{diagnostics:[],logicalPath:n,skill:p(a),skillId:e.skillId}}async function Je(e){let t=Qe(e.skillFileName),n=v(w(e.logicalSkillsPath,e.skillFileName)),r;try{r=O(await e.source.readTextFile(e.skillFilePath),{slug:t})}catch(t){return{diagnostics:[f({code:We,message:Ze(e.skillFilePath,t),sourcePath:e.skillFilePath})],logicalPath:n,skill:null,skillId:null}}return{diagnostics:[],logicalPath:n,skill:{definition:r,sourceKind:`markdown`,logicalPath:n,sourceId:l(n)},skillId:t}}async function Ye(e){let t=x(e.skillFileName),n=v(w(e.logicalSkillsPath,e.skillFileName));return t===null?{diagnostics:[],logicalPath:n,skill:null,skillId:null}:{diagnostics:[],logicalPath:n,skill:o({logicalPath:n}),skillId:t}}async function Xe(e,t){let n=await e.readDirectory(t),r={};for(let e of n)if(e.isDirectory())switch(g(e.name,c(e))){case`skill-assets-directory`:r.assetsPath=w(t,e.name);break;case`skill-references-directory`:r.referencesPath=w(t,e.name);break;case`skill-scripts-directory`:r.scriptsPath=w(t,e.name);break;default:break}return r}function Ze(e,t){return`Invalid authored skill frontmatter in "${e}": ${ie(t)}`}function Qe(e){return e.endsWith(`.md`)?e.slice(0,-3):e}async function Q(e){let t=e.source??Y(),n=E(e.agentRoot),r=E(e.subagentsDirectoryPath??w(n,`subagents`)),i=v(e.subagentsLogicalPath??T(n,r)),a=await t.stat(r);if(a===`missing`)return{diagnostics:[],subagents:[]};if(a!==`directory`)return{diagnostics:[f({code:`discover/subagents-directory-invalid`,message:`Expected "${r}" to be a directory of authored subagents.`,sourcePath:r})],subagents:[]};let o=await R(t,r),s=[],c=[];for(let a of o){if(a.isFile()){let t=x(a.name);if(t===null)continue;c.push($e({agentRoot:n,appRoot:e.appRoot,subagentId:t,subagentLogicalPath:w(i,a.name),subagentPath:w(r,a.name)}));continue}if(!a.isDirectory())continue;let o=await et({appRoot:e.appRoot,source:t,subagentId:a.name,subagentLogicalPath:w(i,a.name),subagentRoot:w(r,a.name)});s.push(...o.diagnostics),c.push(o.subagent)}return{diagnostics:s,subagents:c}}function $e(e){let t=o({logicalPath:e.subagentLogicalPath}),n=u({agentId:e.subagentId,agentRoot:e.agentRoot,appRoot:e.appRoot,configModule:t});return r({entryPath:e.subagentPath,logicalPath:e.subagentLogicalPath,manifest:n,rootPath:e.agentRoot,subagentId:e.subagentId})}async function et(e){let t=[],n=await R(e.source,e.subagentRoot);t.push(...G({classifyEntry:m,createUnsupportedDirectoryMessage(e){return`Ignoring unsupported directory "${e}/" in the local subagent root.`},rootEntries:n,rootPath:e.subagentRoot}));let i=await z({required:!1,rootEntries:n,rootPath:e.subagentRoot,source:e.source});t.push(...i.diagnostics);let a=V({missingDiagnostic:{code:`discover/required-subagent-config-module-missing`,message:`Expected one authored subagent config module at "agent.ts", "agent.cts", "agent.mts", "agent.js", "agent.cjs", or "agent.mjs".`},rootEntries:n,rootPath:e.subagentRoot,slotName:`agent`});t.push(...a.diagnostics);let o=await Pe({rootEntries:n,rootPath:e.subagentRoot,source:e.source});t.push(...o.diagnostics);let s=await ze({rootEntries:n,rootPath:e.subagentRoot,source:e.source});t.push(...s.diagnostics);let c=await N({directoryName:`tools`,invalidDirectoryCode:I,invalidDirectoryMessage:`Expected "${w(e.subagentRoot,`tools`)}" to be a directory of authored tools.`,recursive:!0,rootEntries:n,rootPath:e.subagentRoot,source:e.source,validateSegment:H});t.push(...c.diagnostics);let l=await N({directoryName:`hooks`,invalidDirectoryCode:L,invalidDirectoryMessage:`Expected "${w(e.subagentRoot,`hooks`)}" to be a directory of authored hooks.`,recursive:!0,rootEntries:n,rootPath:e.subagentRoot,source:e.source,validateSegment:W});t.push(...l.diagnostics);let d=await Le({agentRoot:e.subagentRoot,rootEntries:n,source:e.source});t.push(...d.diagnostics),t.push(...tt(e.subagentRoot,n));let f=await Ge({agentRoot:e.subagentRoot,source:e.source});t.push(...f.diagnostics);let p=await Q({agentRoot:e.subagentRoot,appRoot:e.appRoot,source:e.source});t.push(...p.diagnostics);let h={agentRoot:e.subagentRoot,appRoot:e.appRoot,connections:o.connections,diagnostics:t,hooks:l.sources,lib:d.lib,instructions:i.instructions,sandbox:s.sandbox,sandboxWorkspaces:s.sandboxWorkspace===null?[]:[s.sandboxWorkspace],skills:f.skills,tools:c.sources,subagents:p.subagents};a.module!==void 0&&(h.configModule=a.module);let g=u(h);return{diagnostics:t,subagent:r({entryPath:e.subagentRoot,logicalPath:e.subagentLogicalPath,manifest:g,rootPath:e.subagentRoot,subagentId:e.subagentId})}}function tt(e,t){return t.flatMap(t=>m(t.name,c(t))===`invalid-schedules-directory`?[f({code:`discover/local-subagent-schedules-invalid`,message:`Local subagent packages cannot define schedules at "${w(e,t.name)}".`,sourcePath:w(e,t.name)})]:[])}async function nt(e){let t=await N({allowMarkdown:!0,directoryName:`schedules`,invalidDirectoryCode:`discover/schedules-directory-invalid`,invalidDirectoryMessage:`Expected "${w(e.agentRoot,`schedules`)}" to be a directory of authored schedules.`,markdownLowerer:e=>he(e),recursive:!0,rootEntries:e.rootEntries,rootPath:e.agentRoot,source:e.source,unsupportedFileCode:`discover/schedule-file-unsupported`,unsupportedFileMessage:e=>`Expected "${e}" to be a TypeScript or markdown schedule file within "schedules/".`});return{diagnostics:t.diagnostics,schedules:t.sources}}async function rt(e){let t=e.source??Y(),n=E(e.appRoot),r=E(e.agentRoot),i=[],o=await it(t,n),s=await R(t,r);i.push(...G({classifyEntry:a,createUnsupportedDirectoryMessage(e){return`Ignoring unsupported directory "${e}/" in the agent root.`},rootEntries:s,rootPath:r}));let c=await z({rootEntries:s,rootPath:r,source:t});i.push(...c.diagnostics);let l=V({rootEntries:s,rootPath:r,slotName:`agent`});i.push(...l.diagnostics);let d=await N({directoryName:`channels`,invalidDirectoryCode:`discover/channels-directory-invalid`,invalidDirectoryMessage:`Expected "${w(r,`channels`)}" to be a directory of authored channels.`,recursive:!0,rootEntries:s,rootPath:r,source:t,validateSegment:Ne});i.push(...d.diagnostics);let f=await Le({agentRoot:r,rootEntries:s,source:t});i.push(...f.diagnostics);let p=await nt({agentRoot:r,rootEntries:s,source:t});i.push(...p.diagnostics);let m=await Pe({rootEntries:s,rootPath:r,source:t});i.push(...m.diagnostics);let h=await ze({rootEntries:s,rootPath:r,source:t});i.push(...h.diagnostics);let g=await N({directoryName:`tools`,invalidDirectoryCode:I,invalidDirectoryMessage:`Expected "${w(r,`tools`)}" to be a directory of authored tools.`,recursive:!0,rootEntries:s,rootPath:r,source:t,validateSegment:H});i.push(...g.diagnostics);let _=await N({directoryName:`hooks`,invalidDirectoryCode:L,invalidDirectoryMessage:`Expected "${w(r,`hooks`)}" to be a directory of authored hooks.`,recursive:!0,rootEntries:s,rootPath:r,source:t,validateSegment:W});i.push(..._.diagnostics);let v=await Ge({agentRoot:r,source:t});i.push(...v.diagnostics);let y=await Q({agentRoot:r,appRoot:n,source:t});i.push(...y.diagnostics);let b={agentRoot:r,appRoot:n,channels:d.sources,connections:m.connections,packageName:o,diagnostics:i,hooks:_.sources,lib:f.lib,instructions:c.instructions,sandbox:h.sandbox,sandboxWorkspaces:h.sandboxWorkspace===null?[]:[h.sandboxWorkspace],schedules:p.schedules,skills:v.skills,tools:g.sources,subagents:y.subagents};return l.module!==void 0&&(b.configModule=l.module),{diagnostics:i,manifest:u(b)}}async function it(e,t){try{let n=w(t,`package.json`),r=JSON.parse(await e.readTextFile(n)).name;if(typeof r!=`string`||r.length===0)return;let i=r.lastIndexOf(`/`);return i===-1?r:r.slice(i+1)}catch{return}}var at=class extends Error{diagnostic;constructor(e){super(e.message),this.name=`DiscoveryProjectResolutionError`,this.diagnostic=e}};async function ot(e=process.cwd(),t={}){let n=t.source??Y(),r=await st(n,e),i=r;for(;;){let e=await ct(n,i);if(e!==null)return e;let t=await lt(n,i);if(t!==null)return t;if(await ut(n,i))return{agentRoot:i,appRoot:i,layout:`flat`};let r=C(i);if(r===i)break;i=r}throw new at(f({code:y,message:`Could not resolve an Ash agent root from "${r}".`,sourcePath:r}))}async function st(e,t){let n=E(t);return await e.stat(n)===`directory`?n:C(n)}async function ct(e,t){if(ae(t)!==`agent`)return null;let n=C(t);return await dt(e,n)?{agentRoot:t,appRoot:n,layout:`nested`}:null}async function lt(e,t){if(!await dt(e,t))return null;let n=w(t,`agent`);return await pt(e,n)?{agentRoot:n,appRoot:t,layout:`nested`}:null}async function ut(e,t){let n=await ft(e,t);return Array.from(n.entries()).some(([e,t])=>{let n=a(e,t);return n!==`unknown`&&n!==`lib-directory`})}async function dt(e,t){let n=await ft(e,t);return Array.from(n.entries()).some(([e,t])=>s(e,t))}async function ft(e,t){if(await e.stat(t)!==`directory`)return new Map;let n=await e.readDirectory(t);return new Map(n.map(e=>[e.name,c(e)]))}async function pt(e,t){return await e.stat(t)===`directory`}var $=class extends Error{result;constructor(e){super(gt({diagnostics:e.diagnostics,diagnosticsPath:e.paths.diagnosticsPath})),this.name=`CompileAgentError`,this.result=e}};async function mt(e={}){let t=e.source??Y(),n=await ot(e.startPath,{source:t}),r=await rt({...n,source:t}),i=await te({appRoot:n.appRoot,diagnostics:r.diagnostics,manifest:r.manifest}),a={diagnostics:r.diagnostics,manifest:i.compiledManifest,metadata:i.metadata,paths:i.paths,project:n};if(b(r.diagnostics))throw new $(a);return ht(r.diagnostics),a}function ht(e){let t=e.filter(e=>e.severity===`warning`);if(t.length!==0)for(let e of t)console.warn(`Warning [${e.code}]: ${e.message}\n source: ${e.sourcePath}`)}function gt(e){let t=ee(e.diagnostics),n=[`Discovery failed with ${t.errors} error(s) and ${t.warnings} warning(s).`];if(e.diagnosticsPath!==void 0&&n.push(`Diagnostics artifact: ${e.diagnosticsPath}`),e.diagnostics.length===0)return n.join(`
4
4
  `);n.push(`Discovery diagnostics:`);for(let t of e.diagnostics)n.push(`- ${_t(t.severity)}: ${t.message}`),n.push(` source: ${t.sourcePath}`);return n.join(`
@@ -1 +1 @@
1
- import{A as e,s as t}from"./paths-B2hLA0Fn.js";import{t as n}from"./errors-HYWjHxV6.js";import{getDevelopmentEnvironmentFilePaths as r,loadDevelopmentEnvironmentFiles as i}from"../cli/dev/environment.js";import{a,c as o,i as s,o as c,r as l,s as u}from"./host-BxT35q6K.js";import{createRequire as d}from"node:module";import*as f from"node:path";import{dirname as p,isAbsolute as m,join as h,relative as g,resolve as _,sep as v}from"node:path";import{lstat as y,open as b,readFile as x,readdir as S,realpath as C,stat as w}from"node:fs/promises";import{existsSync as ee,stat as te,unwatchFile as T,watch as ne,watchFile as re}from"node:fs";import{parse as ie}from"#compiled/jsonc-parser/index.js";import{EventEmitter as ae}from"node:events";import{Readable as oe}from"node:stream";import{type as se}from"node:os";const E={FILE_TYPE:`files`,DIR_TYPE:`directories`,FILE_DIR_TYPE:`files_directories`,EVERYTHING_TYPE:`all`},D={root:`.`,fileFilter:e=>!0,directoryFilter:e=>!0,type:E.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(D);const O=`READDIRP_RECURSIVE_ERROR`,ce=new Set([`ENOENT`,`EPERM`,`EACCES`,`ELOOP`,O]),k=[E.DIR_TYPE,E.EVERYTHING_TYPE,E.FILE_DIR_TYPE,E.FILE_TYPE],le=new Set([E.DIR_TYPE,E.EVERYTHING_TYPE,E.FILE_DIR_TYPE]),ue=new Set([E.EVERYTHING_TYPE,E.FILE_DIR_TYPE,E.FILE_TYPE]),de=e=>ce.has(e.code),fe=process.platform===`win32`,pe=e=>!0,A=e=>{if(e===void 0)return pe;if(typeof e==`function`)return e;if(typeof e==`string`){let t=e.trim();return e=>e.basename===t}if(Array.isArray(e)){let t=e.map(e=>e.trim());return e=>t.some(t=>e.basename===t)}return pe};var me=class extends oe{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...D,...e},{root:n,type:r}=t;this._fileFilter=A(t.fileFilter),this._directoryFilter=A(t.directoryFilter);let i=t.lstat?y:w;fe?this._stat=e=>i(e,{bigint:!0}):this._stat=i,this._maxDepth=t.depth!=null&&Number.isSafeInteger(t.depth)?t.depth:D.depth,this._wantsDir=r?le.has(r):!1,this._wantsFile=r?ue.has(r):!1,this._wantsEverything=r===E.EVERYTHING_TYPE,this._root=_(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?`dirent`:`stats`,this._rdOptions={encoding:`utf8`,withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:r,depth:i}=t,a=n.splice(0,e).map(e=>this._formatEntry(e,r)),o=await Promise.all(a);for(let t of o){if(!t)continue;if(this.destroyed)return;let n=await this._getEntryType(t);n===`directory`&&this._directoryFilter(t)?(i<=this._maxDepth&&this.parents.push(this._exploreDir(t.fullPath,i+1)),this._wantsDir&&(this.push(t),e--)):(n===`file`||this._includeAsFile(t))&&this._fileFilter(t)&&this._wantsFile&&(this.push(t),e--)}}else{let e=this.parents.pop();if(!e){this.push(null);break}if(this.parent=await e,this.destroyed)return}}}catch(e){this.destroy(e)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await S(e,this._rdOptions)}catch(e){this._onError(e)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,r=this._isDirent?e.name:e;try{let i=_(h(t,r));n={path:g(this._root,i),fullPath:i,basename:r},n[this._statsProp]=this._isDirent?e:await this._stat(i)}catch(e){this._onError(e);return}return n}_onError(e){de(e)&&!this.destroyed?this.emit(`warn`,e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return``;let t=e[this._statsProp];if(t.isFile())return`file`;if(t.isDirectory())return`directory`;if(t&&t.isSymbolicLink()){let t=e.fullPath;try{let e=await C(t),n=await y(e);if(n.isFile())return`file`;if(n.isDirectory()){let n=e.length;if(t.startsWith(e)&&t.substr(n,1)===v){let n=Error(`Circular symlink detected: "${t}" points to "${e}"`);return n.code=O,this._onError(n)}return`directory`}}catch(e){return this._onError(e),``}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function he(e,t={}){let n=t.entryType||t.type;if(n===`both`&&(n=E.FILE_DIR_TYPE),n&&(t.type=n),!e)throw Error(`readdirp: root argument is required. Usage: readdirp(root, options)`);if(typeof e!=`string`)throw TypeError(`readdirp: root argument must be a string. Usage: readdirp(root, options)`);if(n&&!k.includes(n))throw Error(`readdirp: Invalid type passed. Use one of ${k.join(`, `)}`);return t.root=e,new me(t)}const j=()=>{},M=process.platform,N=M===`win32`,ge=M===`darwin`,_e=M===`linux`,ve=M===`freebsd`,ye=se()===`OS400`,P={ALL:`all`,READY:`ready`,ADD:`add`,CHANGE:`change`,ADD_DIR:`addDir`,UNLINK:`unlink`,UNLINK_DIR:`unlinkDir`,RAW:`raw`,ERROR:`error`},F=P,be={lstat:y,stat:w},I=`listeners`,L=`errHandlers`,R=`rawEmitters`,xe=[I,L,R],Se=new Set(`3dm.3ds.3g2.3gp.7z.a.aac.adp.afdesign.afphoto.afpub.ai.aif.aiff.alz.ape.apk.appimage.ar.arj.asf.au.avi.bak.baml.bh.bin.bk.bmp.btif.bz2.bzip2.cab.caf.cgm.class.cmx.cpio.cr2.cur.dat.dcm.deb.dex.djvu.dll.dmg.dng.doc.docm.docx.dot.dotm.dra.DS_Store.dsk.dts.dtshd.dvb.dwg.dxf.ecelp4800.ecelp7470.ecelp9600.egg.eol.eot.epub.exe.f4v.fbs.fh.fla.flac.flatpak.fli.flv.fpx.fst.fvt.g3.gh.gif.graffle.gz.gzip.h261.h263.h264.icns.ico.ief.img.ipa.iso.jar.jpeg.jpg.jpgv.jpm.jxr.key.ktx.lha.lib.lvp.lz.lzh.lzma.lzo.m3u.m4a.m4v.mar.mdi.mht.mid.midi.mj2.mka.mkv.mmr.mng.mobi.mov.movie.mp3.mp4.mp4a.mpeg.mpg.mpga.mxu.nef.npx.numbers.nupkg.o.odp.ods.odt.oga.ogg.ogv.otf.ott.pages.pbm.pcx.pdb.pdf.pea.pgm.pic.png.pnm.pot.potm.potx.ppa.ppam.ppm.pps.ppsm.ppsx.ppt.pptm.pptx.psd.pya.pyc.pyo.pyv.qt.rar.ras.raw.resources.rgb.rip.rlc.rmf.rmvb.rpm.rtf.rz.s3m.s7z.scpt.sgi.shar.snap.sil.sketch.slk.smv.snk.so.stl.suo.sub.swf.tar.tbz.tbz2.tga.tgz.thmx.tif.tiff.tlz.ttc.ttf.txz.udf.uvh.uvi.uvm.uvp.uvs.uvu.viv.vob.war.wav.wax.wbmp.wdp.weba.webm.webp.whl.wim.wm.wma.wmv.wmx.woff.woff2.wrm.wvx.xbm.xif.xla.xlam.xls.xlsb.xlsm.xlsx.xlt.xltm.xltx.xm.xmind.xpi.xpm.xwd.xz.z.zip.zipx`.split(`.`)),Ce=e=>Se.has(f.extname(e).slice(1).toLowerCase()),z=(e,t)=>{e instanceof Set?e.forEach(t):t(e)},B=(e,t,n)=>{let r=e[t];r instanceof Set||(e[t]=r=new Set([r])),r.add(n)},we=e=>t=>{let n=e[t];n instanceof Set?n.clear():delete e[t]},V=(e,t,n)=>{let r=e[t];r instanceof Set?r.delete(n):r===n&&delete e[t]},H=e=>e instanceof Set?e.size===0:!e,U=new Map;function W(e,t,n,r,i){let a=(t,r)=>{n(e),i(t,r,{watchedPath:e}),r&&e!==r&&G(f.resolve(e,r),I,f.join(e,r))};try{return ne(e,{persistent:t.persistent},a)}catch(e){r(e);return}}const G=(e,t,n,r,i)=>{let a=U.get(e);a&&z(a[t],e=>{e(n,r,i)})},Te=(e,t,n,r)=>{let{listener:i,errHandler:a,rawEmitter:o}=r,s=U.get(t),c;if(!n.persistent)return c=W(e,n,i,a,o),c?c.close.bind(c):void 0;if(s)B(s,I,i),B(s,L,a),B(s,R,o);else{if(c=W(e,n,G.bind(null,t,I),a,G.bind(null,t,R)),!c)return;c.on(F.ERROR,async n=>{let r=G.bind(null,t,L);if(s&&(s.watcherUnusable=!0),N&&n.code===`EPERM`)try{await(await b(e,`r`)).close(),r(n)}catch{}else r(n)}),s={listeners:i,errHandlers:a,rawEmitters:o,watcher:c},U.set(t,s)}return()=>{V(s,I,i),V(s,L,a),V(s,R,o),H(s.listeners)&&(s.watcher.close(),U.delete(t),xe.forEach(we(s)),s.watcher=void 0,Object.freeze(s))}},K=new Map,Ee=(e,t,n,r)=>{let{listener:i,rawEmitter:a}=r,o=K.get(t),s=o&&o.options;return s&&(s.persistent<n.persistent||s.interval>n.interval)&&(T(t),o=void 0),o?(B(o,I,i),B(o,R,a)):(o={listeners:i,rawEmitters:a,options:n,watcher:re(t,n,(n,r)=>{z(o.rawEmitters,e=>{e(F.CHANGE,t,{curr:n,prev:r})});let i=n.mtimeMs;(n.size!==r.size||i>r.mtimeMs||i===0)&&z(o.listeners,t=>t(e,n))})},K.set(t,o)),()=>{V(o,I,i),V(o,R,a),H(o.listeners)&&(K.delete(t),T(t),o.options=o.watcher=void 0,Object.freeze(o))}};var De=class{fsw;_boundHandleError;constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,r=f.dirname(e),i=f.basename(e);this.fsw._getWatchedDir(r).add(i);let a=f.resolve(e),o={persistent:n.persistent};t||=j;let s;return n.usePolling?(o.interval=n.interval!==n.binaryInterval&&Ce(i)?n.binaryInterval:n.interval,s=Ee(e,a,o,{listener:t,rawEmitter:this.fsw._emitRaw})):s=Te(e,a,o,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw}),s}_handleFile(e,t,n){if(this.fsw.closed)return;let r=f.dirname(e),i=f.basename(e),a=this.fsw._getWatchedDir(r),o=t;if(a.has(i))return;let s=async(t,n)=>{if(this.fsw._throttle(`watch`,e,5)){if(!n||n.mtimeMs===0)try{let n=await w(e);if(this.fsw.closed)return;let r=n.atimeMs,i=n.mtimeMs;if((!r||r<=i||i!==o.mtimeMs)&&this.fsw._emit(F.CHANGE,e,n),(ge||_e||ve)&&o.ino!==n.ino){this.fsw._closeFile(t),o=n;let r=this._watchWithNodeFs(e,s);r&&this.fsw._addPathCloser(t,r)}else o=n}catch{this.fsw._remove(r,i)}else if(a.has(i)){let t=n.atimeMs,r=n.mtimeMs;(!t||t<=r||r!==o.mtimeMs)&&this.fsw._emit(F.CHANGE,e,n),o=n}}},c=this._watchWithNodeFs(e,s);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(F.ADD,e,0))return;this.fsw._emit(F.ADD,e,t)}return c}async _handleSymlink(e,t,n,r){if(this.fsw.closed)return;let i=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let t;try{t=await C(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(r)?this.fsw._symlinkPaths.get(i)!==t&&(this.fsw._symlinkPaths.set(i,t),this.fsw._emit(F.CHANGE,n,e.stats)):(a.add(r),this.fsw._symlinkPaths.set(i,t),this.fsw._emit(F.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(i))return!0;this.fsw._symlinkPaths.set(i,!0)}_handleRead(e,t,n,r,i,a,o){e=f.join(e,``);let s=r?`${e}:${r}`:e;if(o=this.fsw._throttle(`readdir`,s,1e3),!o)return;let c=this.fsw._getWatchedDir(n.path),l=new Set,u=this.fsw._readdirp(e,{fileFilter:e=>n.filterPath(e),directoryFilter:e=>n.filterDir(e)});if(u)return u.on(`data`,async o=>{if(this.fsw.closed){u=void 0;return}let s=o.path,d=f.join(e,s);if(l.add(s),!(o.stats.isSymbolicLink()&&await this._handleSymlink(o,e,d,s))){if(this.fsw.closed){u=void 0;return}(s===r||!r&&!c.has(s))&&(this.fsw._incrReadyCount(),d=f.join(i,f.relative(i,d)),this._addToNodeFs(d,t,n,a+1))}}).on(F.ERROR,this._boundHandleError),new Promise((t,s)=>{if(!u)return s();u.once(`end`,()=>{if(this.fsw.closed){u=void 0;return}let s=o?o.clear():!1;t(void 0),c.getChildren().filter(t=>t!==e&&!l.has(t)).forEach(t=>{this.fsw._remove(e,t)}),u=void 0,s&&this._handleRead(e,!1,n,r,i,a,o)})})}async _handleDir(e,t,n,r,i,a,o){let s=this.fsw._getWatchedDir(f.dirname(e)),c=s.has(f.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!i&&!c&&this.fsw._emit(F.ADD_DIR,e,t),s.add(f.basename(e)),this.fsw._getWatchedDir(e);let l,u=this.fsw.options.depth;if((u==null||r<=u)&&!this.fsw._symlinkPaths.has(o)){if(!i&&(await this._handleRead(e,n,a,i,e,r,void 0),this.fsw.closed))return;l=this._watchWithNodeFs(e,(t,n)=>{n&&n.mtimeMs===0||this._handleRead(t,!1,a,i,e,r,void 0)})}return l}async _addToNodeFs(e,t,n,r,i){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let o=this.fsw._getWatchHelpers(e);n&&(o.filterPath=e=>n.filterPath(e),o.filterDir=e=>n.filterDir(e));try{let n=await be[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,n))return a(),!1;let s=this.fsw.options.followSymlinks,c;if(n.isDirectory()){let a=f.resolve(e),l=s?await C(e):e;if(this.fsw.closed||(c=await this._handleDir(o.watchPath,n,t,r,i,o,l),this.fsw.closed))return;a!==l&&l!==void 0&&this.fsw._symlinkPaths.set(a,l)}else if(n.isSymbolicLink()){let i=s?await C(e):e;if(this.fsw.closed)return;let a=f.dirname(o.watchPath);if(this.fsw._getWatchedDir(a).add(o.watchPath),this.fsw._emit(F.ADD,o.watchPath,n),c=await this._handleDir(a,n,t,r,e,o,i),this.fsw.closed)return;i!==void 0&&this.fsw._symlinkPaths.set(f.resolve(e),i)}else c=this._handleFile(o.watchPath,n,t);return a(),c&&this.fsw._addPathCloser(e,c),!1}catch(t){if(this.fsw._handleError(t))return a(),e}}};const Oe=/\\/g,q=/\/\//g,ke=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,Ae=/^\.[/\\]/;function J(e){return Array.isArray(e)?e:[e]}const Y=e=>typeof e==`object`&&!!e&&!(e instanceof RegExp);function je(e){return typeof e==`function`?e:typeof e==`string`?t=>e===t:e instanceof RegExp?t=>e.test(t):typeof e==`object`&&e?t=>{if(e.path===t)return!0;if(e.recursive){let n=f.relative(e.path,t);return n?!n.startsWith(`..`)&&!f.isAbsolute(n):!1}return!1}:()=>!1}function Me(e){if(typeof e!=`string`)throw Error(`string expected`);e=f.normalize(e),e=e.replace(/\\/g,`/`);let t=!1;return e.startsWith(`//`)&&(t=!0),e=e.replace(q,`/`),t&&(e=`/`+e),e}function X(e,t,n){let r=Me(t);for(let t=0;t<e.length;t++){let i=e[t];if(i(r,n))return!0}return!1}function Ne(e,t){if(e==null)throw TypeError(`anymatch: specify first argument`);let n=J(e).map(e=>je(e));return t==null?(e,t)=>X(n,e,t):X(n,t)}const Z=e=>{let t=J(e).flat();if(!t.every(e=>typeof e==`string`))throw TypeError(`Non-string provided as watch path: ${t}`);return t.map(Pe)},Q=e=>{let t=e.replace(Oe,`/`),n=!1;return t.startsWith(`//`)&&(n=!0),t=t.replace(q,`/`),n&&(t=`/`+t),t},Pe=e=>Q(f.normalize(Q(e))),Fe=(e=``)=>t=>typeof t==`string`?Pe(f.isAbsolute(t)?t:f.join(e,t)):t,Ie=(e,t)=>f.isAbsolute(e)?e:f.join(t,e),Le=Object.freeze(new Set);var Re=class{path;_removeWatcher;items;constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==`.`&&e!==`..`&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await S(n)}catch{this._removeWatcher&&this._removeWatcher(f.dirname(n),f.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path=``,this._removeWatcher=j,this.items=Le,Object.freeze(this)}},ze=class{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(e,t,n){this.fsw=n;let r=e;this.path=e=e.replace(Ae,``),this.watchPath=r,this.fullWatchPath=f.resolve(r),this.dirParts=[],this.dirParts.forEach(e=>{e.length>1&&e.pop()}),this.followSymlinks=t,this.statMethod=t?`stat`:`lstat`}entryPath(e){return f.join(this.watchPath,f.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},Be=class extends ae{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},r={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?J(e.ignored):J([]),awaitWriteFinish:t===!0?n:typeof t==`object`?{...n,...t}:!1};ye&&(r.usePolling=!0),r.atomic===void 0&&(r.atomic=!r.usePolling);let i=process.env.CHOKIDAR_USEPOLLING;if(i!==void 0){let e=i.toLowerCase();e===`false`||e===`0`?r.usePolling=!1:e===`true`||e===`1`?r.usePolling=!0:r.usePolling=!!e}let a=process.env.CHOKIDAR_INTERVAL;a&&(r.interval=Number.parseInt(a,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=j,this._readyEmitted=!0,process.nextTick(()=>this.emit(P.READY)))},this._emitRaw=(...e)=>this.emit(P.RAW,...e),this._boundRemove=this._remove.bind(this),this.options=r,this._nodeFsHandler=new De(this),Object.freeze(r)}_addIgnoredPath(e){if(Y(e)){for(let t of this._ignoredPaths)if(Y(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e==`string`)for(let t of this._ignoredPaths)Y(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:r}=this.options;this.closed=!1,this._closePromise=void 0;let i=Z(e);return r&&(i=i.map(e=>Ie(e,r))),i.forEach(e=>{this._removeIgnoredPath(e)}),this._userIgnored=void 0,this._readyCount||=0,this._readyCount+=i.length,Promise.all(i.map(async e=>{let r=await this._nodeFsHandler._addToNodeFs(e,!n,void 0,0,t);return r&&this._emitReady(),r})).then(e=>{this.closed||e.forEach(e=>{e&&this.add(f.dirname(e),f.basename(t||e))})}),this}unwatch(e){if(this.closed)return this;let t=Z(e),{cwd:n}=this.options;return t.forEach(e=>{!f.isAbsolute(e)&&!this._closers.has(e)&&(n&&(e=f.join(n,e)),e=f.resolve(e)),this._closePath(e),this._addIgnoredPath(e),this._watched.has(e)&&this._addIgnoredPath({path:e,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(t=>{let n=t();n instanceof Promise&&e.push(n)})),this._streams.forEach(e=>e.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(e=>e.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let r=(this.options.cwd?f.relative(this.options.cwd,n):n)||`.`;e[r]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==P.ERROR&&this.emit(P.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let r=this.options;N&&(t=f.normalize(t)),r.cwd&&(t=f.relative(r.cwd,t));let i=[t];n!=null&&i.push(n);let a=r.awaitWriteFinish,o;if(a&&(o=this._pendingWrites.get(t)))return o.lastChange=new Date,this;if(r.atomic){if(e===P.UNLINK)return this._pendingUnlinks.set(t,[e,...i]),setTimeout(()=>{this._pendingUnlinks.forEach((e,t)=>{this.emit(...e),this.emit(P.ALL,...e),this._pendingUnlinks.delete(t)})},typeof r.atomic==`number`?r.atomic:100),this;e===P.ADD&&this._pendingUnlinks.has(t)&&(e=P.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===P.ADD||e===P.CHANGE)&&this._readyEmitted)return this._awaitWriteFinish(t,a.stabilityThreshold,e,(t,n)=>{t?(e=P.ERROR,i[0]=t,this.emitWithAll(e,i)):n&&(i.length>1?i[1]=n:i.push(n),this.emitWithAll(e,i))}),this;if(e===P.CHANGE&&!this._throttle(P.CHANGE,t,50))return this;if(r.alwaysStat&&n===void 0&&(e===P.ADD||e===P.ADD_DIR||e===P.CHANGE)){let e=r.cwd?f.join(r.cwd,t):t,n;try{n=await w(e)}catch{}if(!n||this.closed)return;i.push(n)}return this.emitWithAll(e,i),this}_handleError(e){let t=e&&e.code;return e&&t!==`ENOENT`&&t!==`ENOTDIR`&&(!this.options.ignorePermissionErrors||t!==`EPERM`&&t!==`EACCES`)&&this.emit(P.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e);if(!r)throw Error(`invalid throttle`);let i=r.get(t);if(i)return i.count++,!1;let a,o=()=>{let e=r.get(t),n=e?e.count:0;return r.delete(t),clearTimeout(a),e&&clearTimeout(e.timeoutObject),n};a=setTimeout(o,n);let s={timeoutObject:a,clear:o,count:0};return r.set(t,s),s}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,r){let i=this.options.awaitWriteFinish;if(typeof i!=`object`)return;let a=i.pollInterval,o,s=e;this.options.cwd&&!f.isAbsolute(e)&&(s=f.join(this.options.cwd,e));let c=new Date,l=this._pendingWrites;function u(n){te(s,(i,s)=>{if(i||!l.has(e)){i&&i.code!==`ENOENT`&&r(i);return}let c=Number(new Date);n&&s.size!==n.size&&(l.get(e).lastChange=c),c-l.get(e).lastChange>=t?(l.delete(e),r(void 0,s)):o=setTimeout(u,a,s)})}l.has(e)||(l.set(e,{lastChange:c,cancelWait:()=>(l.delete(e),clearTimeout(o),n)}),o=setTimeout(u,a))}_isIgnored(e,t){if(this.options.atomic&&ke.test(e))return!0;if(!this._userIgnored){let{cwd:e}=this.options,t=(this.options.ignored||[]).map(Fe(e)),n=[...[...this._ignoredPaths].map(Fe(e)),...t];this._userIgnored=Ne(n,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new ze(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=f.resolve(e);return this._watched.has(t)||this._watched.set(t,new Re(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let r=f.join(e,t),i=f.resolve(r);if(n??=this._watched.has(r)||this._watched.has(i),!this._throttle(`remove`,r,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(r).getChildren().forEach(e=>this._remove(r,e));let a=this._getWatchedDir(e),o=a.has(t);a.remove(t),this._symlinkPaths.has(i)&&this._symlinkPaths.delete(i);let s=r;if(this.options.cwd&&(s=f.relative(this.options.cwd,r)),this.options.awaitWriteFinish&&this._pendingWrites.has(s)&&this._pendingWrites.get(s).cancelWait()===P.ADD)return;this._watched.delete(r),this._watched.delete(i);let c=n?P.UNLINK_DIR:P.UNLINK;o&&!this._isIgnored(r)&&this._emit(c,r),this._closePath(r)}_closePath(e){this._closeFile(e);let t=f.dirname(e);this._getWatchedDir(t).remove(f.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(e=>e()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n=he(e,{type:P.ALL,alwaysStat:!0,lstat:!0,...t,depth:0});return this._streams.add(n),n.once(`close`,()=>{n=void 0}),n.once(`end`,()=>{n&&=(this._streams.delete(n),void 0)}),n}};function Ve(e,t={}){let n=new Be(t);return n.add(e),n}const He=[`pnpm-lock.yaml`,`package-lock.json`,`yarn.lock`,`bun.lock`,`bun.lockb`],Ue=[`.git`,`pnpm-workspace.yaml`],We=[`**/.ash/**`,`**/.git/**`,`**/.output/**`,`**/.turbo/**`,`**/.vercel/**`,`**/.workflow-data/**`,`**/node_modules/**`];async function Ge(r){let d=r.schedulesEnabled!==!1,f=r.preparedHost,p=!1,m=Promise.resolve(),h,g=new Set,_=new Set,v=await qe(f),y=Je(v),b=Ve(v,{awaitWriteFinish:{pollInterval:50,stabilityThreshold:160},followSymlinks:!1,ignoreInitial:!0,ignored:We}),x=Ke(b),S=()=>{p||(m=m.then(async()=>{if(p)return;let m=g.size,h=[..._];g.clear(),_.clear();let v=f,x=Xe(v.appRoot,h);console.log(`[ash:dev] change detected (${m} event${m===1?``:`s`}), rebuilding authored artifacts...`);try{x&&i(v.appRoot);let n=await s(v.appRoot);await l({appRoot:n.appRoot,log:e=>console.log(e)});let p=o({appRoot:n.appRoot,dev:r.nitro.options.dev===!0}),m=u(r.nitro,{artifactsConfig:p,next:c(n),previous:c(v)}),h=a(r.nitro,{artifactsConfig:p,dispatchModulePath:e(`src/internal/nitro/routes/schedule-task.ts`),next:d?n.scheduleRegistrations:[],previous:d?v.scheduleRegistrations:[]});t(),f=n,m||h||x?(console.log(`[ash:dev] structural change detected, reloading Nitro worker...`),await r.nitro.hooks.callHook(`rollup:reload`)):console.log(`[ash:dev] authored artifacts updated.`),y=Ye({nextWatchPaths:await qe(n),previousWatchPathsByKey:y,watcher:b})}catch(e){console.error(`[ash:dev] rebuild failed: ${n(e)}`)}}).catch(e=>{console.error(`[ash:dev] rebuild queue error: ${n(e)}`)}))};return b.on(`all`,(e,t)=>{p||(g.add(`${e}:${t}`),_.add(t),h!==void 0&&clearTimeout(h),h=setTimeout(()=>{h=void 0,S()},120))}),await x,{async close(){p=!0,h!==void 0&&(clearTimeout(h),h=void 0),await b.close(),await m}}}async function Ke(e){await new Promise((t,n)=>{e.on(`ready`,()=>{t()}),e.on(`error`,e=>{n(e)})})}async function qe(e){let t=new Set([e.compileResult.project.agentRoot,h(e.appRoot,`package.json`),h(e.appRoot,`jsconfig.json`),h(e.appRoot,`tsconfig.json`),h(e.appRoot,`tsconfig.*.json`)]),n=await $e(e.appRoot);for(let n of r(e.appRoot))t.add(n);for(let e of n)t.add(e);for(let n of Ze(e.appRoot))for(let e of He)t.add(h(n,e));return[...t].sort((e,t)=>e.localeCompare(t))}function Je(e){let t=new Map;for(let n of e)t.set($(n),n);return t}function Ye(e){let t=Je(e.nextWatchPaths),n=[],r=[];for(let[r,i]of t)e.previousWatchPathsByKey.has(r)||n.push(i);for(let[n,i]of e.previousWatchPathsByKey)t.has(n)||r.push(i);return n.length>0&&e.watcher.add(n),r.length>0&&e.watcher.unwatch(r),t}function $(e){return e.replaceAll(`\\`,`/`)}function Xe(e,t){let n=new Set(r(e).map(e=>$(_(e))));return t.some(e=>n.has($(_(e))))}function Ze(e){let t=[],n=_(e);for(;t.push(n),!Qe(n);){let e=p(n);if(e===n)break;n=e}return t}function Qe(e){return Ue.some(t=>ee(h(e,t)))}async function $e(e){let t=await et(e),n=new Set,r=new Set;for(let e of t)await tt({configPath:e,resolvedConfigPaths:n,visitingConfigPaths:r});return[...n].sort((e,t)=>e.localeCompare(t))}async function et(e){let t=new Set([h(e,`tsconfig.json`),h(e,`jsconfig.json`)]);try{let n=await S(e,{withFileTypes:!0});for(let r of n)r.isFile()&&/^tsconfig\..+\.json$/i.test(r.name)&&t.add(h(e,r.name))}catch{}return[...t]}async function tt(e){let t=_(e.configPath);if(e.resolvedConfigPaths.has(t)||e.visitingConfigPaths.has(t))return;let n=await nt(t);if(n!==void 0){e.resolvedConfigPaths.add(t),e.visitingConfigPaths.add(t);try{let r=rt(n);for(let n of r)for(let r of it({configPath:t,extendsSpecifier:n}))await tt({configPath:r,resolvedConfigPaths:e.resolvedConfigPaths,visitingConfigPaths:e.visitingConfigPaths})}finally{e.visitingConfigPaths.delete(t)}}}async function nt(e){try{return await x(e,`utf8`)}catch{return}}function rt(e){let t=[],n=ie(e,t,{allowTrailingComma:!0});if(t.length>0||typeof n!=`object`||!n||Array.isArray(n))return[];let r=n.extends;return typeof r==`string`?r.length>0?[r]:[]:Array.isArray(r)?r.filter(e=>typeof e==`string`&&e.length>0):[]}function it(e){let t=new Set;if(st(e.extendsSpecifier))for(let n of at({configPath:e.configPath,extendsSpecifier:e.extendsSpecifier}))t.add(n);else for(let n of ot({configPath:e.configPath,extendsSpecifier:e.extendsSpecifier}))t.add(n);return[...t]}function at(e){let t=_(p(e.configPath),e.extendsSpecifier),n=new Set;return n.add(t),t.endsWith(`.json`)||(n.add(`${t}.json`),n.add(h(t,`tsconfig.json`))),[...n]}function ot(e){let t=new Set([e.extendsSpecifier]);e.extendsSpecifier.endsWith(`.json`)||(t.add(`${e.extendsSpecifier}.json`),t.add(`${e.extendsSpecifier}/tsconfig.json`));let n=new Set,r=d(e.configPath);for(let e of t)try{n.add(r.resolve(e))}catch{}return[...n]}function st(e){return e.startsWith(`.`)||m(e)?!0:/^[A-Za-z]:[\\/]/.test(e)}export{Ge as startAuthoredSourceWatcher};
1
+ import{A as e,s as t}from"./paths-CWZN-XRX.js";import{t as n}from"./errors-HYWjHxV6.js";import{getDevelopmentEnvironmentFilePaths as r,loadDevelopmentEnvironmentFiles as i}from"../cli/dev/environment.js";import{a,c as o,i as s,o as c,r as l,s as u}from"./host-CwAcCrg7.js";import{createRequire as d}from"node:module";import*as f from"node:path";import{dirname as p,isAbsolute as m,join as h,relative as g,resolve as _,sep as v}from"node:path";import{lstat as y,open as b,readFile as x,readdir as S,realpath as C,stat as w}from"node:fs/promises";import{existsSync as ee,stat as te,unwatchFile as T,watch as ne,watchFile as re}from"node:fs";import{parse as ie}from"#compiled/jsonc-parser/index.js";import{EventEmitter as ae}from"node:events";import{Readable as oe}from"node:stream";import{type as se}from"node:os";const E={FILE_TYPE:`files`,DIR_TYPE:`directories`,FILE_DIR_TYPE:`files_directories`,EVERYTHING_TYPE:`all`},D={root:`.`,fileFilter:e=>!0,directoryFilter:e=>!0,type:E.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(D);const O=`READDIRP_RECURSIVE_ERROR`,ce=new Set([`ENOENT`,`EPERM`,`EACCES`,`ELOOP`,O]),k=[E.DIR_TYPE,E.EVERYTHING_TYPE,E.FILE_DIR_TYPE,E.FILE_TYPE],le=new Set([E.DIR_TYPE,E.EVERYTHING_TYPE,E.FILE_DIR_TYPE]),ue=new Set([E.EVERYTHING_TYPE,E.FILE_DIR_TYPE,E.FILE_TYPE]),de=e=>ce.has(e.code),fe=process.platform===`win32`,pe=e=>!0,A=e=>{if(e===void 0)return pe;if(typeof e==`function`)return e;if(typeof e==`string`){let t=e.trim();return e=>e.basename===t}if(Array.isArray(e)){let t=e.map(e=>e.trim());return e=>t.some(t=>e.basename===t)}return pe};var me=class extends oe{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...D,...e},{root:n,type:r}=t;this._fileFilter=A(t.fileFilter),this._directoryFilter=A(t.directoryFilter);let i=t.lstat?y:w;fe?this._stat=e=>i(e,{bigint:!0}):this._stat=i,this._maxDepth=t.depth!=null&&Number.isSafeInteger(t.depth)?t.depth:D.depth,this._wantsDir=r?le.has(r):!1,this._wantsFile=r?ue.has(r):!1,this._wantsEverything=r===E.EVERYTHING_TYPE,this._root=_(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?`dirent`:`stats`,this._rdOptions={encoding:`utf8`,withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:r,depth:i}=t,a=n.splice(0,e).map(e=>this._formatEntry(e,r)),o=await Promise.all(a);for(let t of o){if(!t)continue;if(this.destroyed)return;let n=await this._getEntryType(t);n===`directory`&&this._directoryFilter(t)?(i<=this._maxDepth&&this.parents.push(this._exploreDir(t.fullPath,i+1)),this._wantsDir&&(this.push(t),e--)):(n===`file`||this._includeAsFile(t))&&this._fileFilter(t)&&this._wantsFile&&(this.push(t),e--)}}else{let e=this.parents.pop();if(!e){this.push(null);break}if(this.parent=await e,this.destroyed)return}}}catch(e){this.destroy(e)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await S(e,this._rdOptions)}catch(e){this._onError(e)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,r=this._isDirent?e.name:e;try{let i=_(h(t,r));n={path:g(this._root,i),fullPath:i,basename:r},n[this._statsProp]=this._isDirent?e:await this._stat(i)}catch(e){this._onError(e);return}return n}_onError(e){de(e)&&!this.destroyed?this.emit(`warn`,e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return``;let t=e[this._statsProp];if(t.isFile())return`file`;if(t.isDirectory())return`directory`;if(t&&t.isSymbolicLink()){let t=e.fullPath;try{let e=await C(t),n=await y(e);if(n.isFile())return`file`;if(n.isDirectory()){let n=e.length;if(t.startsWith(e)&&t.substr(n,1)===v){let n=Error(`Circular symlink detected: "${t}" points to "${e}"`);return n.code=O,this._onError(n)}return`directory`}}catch(e){return this._onError(e),``}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function he(e,t={}){let n=t.entryType||t.type;if(n===`both`&&(n=E.FILE_DIR_TYPE),n&&(t.type=n),!e)throw Error(`readdirp: root argument is required. Usage: readdirp(root, options)`);if(typeof e!=`string`)throw TypeError(`readdirp: root argument must be a string. Usage: readdirp(root, options)`);if(n&&!k.includes(n))throw Error(`readdirp: Invalid type passed. Use one of ${k.join(`, `)}`);return t.root=e,new me(t)}const j=()=>{},M=process.platform,N=M===`win32`,ge=M===`darwin`,_e=M===`linux`,ve=M===`freebsd`,ye=se()===`OS400`,P={ALL:`all`,READY:`ready`,ADD:`add`,CHANGE:`change`,ADD_DIR:`addDir`,UNLINK:`unlink`,UNLINK_DIR:`unlinkDir`,RAW:`raw`,ERROR:`error`},F=P,be={lstat:y,stat:w},I=`listeners`,L=`errHandlers`,R=`rawEmitters`,xe=[I,L,R],Se=new Set(`3dm.3ds.3g2.3gp.7z.a.aac.adp.afdesign.afphoto.afpub.ai.aif.aiff.alz.ape.apk.appimage.ar.arj.asf.au.avi.bak.baml.bh.bin.bk.bmp.btif.bz2.bzip2.cab.caf.cgm.class.cmx.cpio.cr2.cur.dat.dcm.deb.dex.djvu.dll.dmg.dng.doc.docm.docx.dot.dotm.dra.DS_Store.dsk.dts.dtshd.dvb.dwg.dxf.ecelp4800.ecelp7470.ecelp9600.egg.eol.eot.epub.exe.f4v.fbs.fh.fla.flac.flatpak.fli.flv.fpx.fst.fvt.g3.gh.gif.graffle.gz.gzip.h261.h263.h264.icns.ico.ief.img.ipa.iso.jar.jpeg.jpg.jpgv.jpm.jxr.key.ktx.lha.lib.lvp.lz.lzh.lzma.lzo.m3u.m4a.m4v.mar.mdi.mht.mid.midi.mj2.mka.mkv.mmr.mng.mobi.mov.movie.mp3.mp4.mp4a.mpeg.mpg.mpga.mxu.nef.npx.numbers.nupkg.o.odp.ods.odt.oga.ogg.ogv.otf.ott.pages.pbm.pcx.pdb.pdf.pea.pgm.pic.png.pnm.pot.potm.potx.ppa.ppam.ppm.pps.ppsm.ppsx.ppt.pptm.pptx.psd.pya.pyc.pyo.pyv.qt.rar.ras.raw.resources.rgb.rip.rlc.rmf.rmvb.rpm.rtf.rz.s3m.s7z.scpt.sgi.shar.snap.sil.sketch.slk.smv.snk.so.stl.suo.sub.swf.tar.tbz.tbz2.tga.tgz.thmx.tif.tiff.tlz.ttc.ttf.txz.udf.uvh.uvi.uvm.uvp.uvs.uvu.viv.vob.war.wav.wax.wbmp.wdp.weba.webm.webp.whl.wim.wm.wma.wmv.wmx.woff.woff2.wrm.wvx.xbm.xif.xla.xlam.xls.xlsb.xlsm.xlsx.xlt.xltm.xltx.xm.xmind.xpi.xpm.xwd.xz.z.zip.zipx`.split(`.`)),Ce=e=>Se.has(f.extname(e).slice(1).toLowerCase()),z=(e,t)=>{e instanceof Set?e.forEach(t):t(e)},B=(e,t,n)=>{let r=e[t];r instanceof Set||(e[t]=r=new Set([r])),r.add(n)},we=e=>t=>{let n=e[t];n instanceof Set?n.clear():delete e[t]},V=(e,t,n)=>{let r=e[t];r instanceof Set?r.delete(n):r===n&&delete e[t]},H=e=>e instanceof Set?e.size===0:!e,U=new Map;function W(e,t,n,r,i){let a=(t,r)=>{n(e),i(t,r,{watchedPath:e}),r&&e!==r&&G(f.resolve(e,r),I,f.join(e,r))};try{return ne(e,{persistent:t.persistent},a)}catch(e){r(e);return}}const G=(e,t,n,r,i)=>{let a=U.get(e);a&&z(a[t],e=>{e(n,r,i)})},Te=(e,t,n,r)=>{let{listener:i,errHandler:a,rawEmitter:o}=r,s=U.get(t),c;if(!n.persistent)return c=W(e,n,i,a,o),c?c.close.bind(c):void 0;if(s)B(s,I,i),B(s,L,a),B(s,R,o);else{if(c=W(e,n,G.bind(null,t,I),a,G.bind(null,t,R)),!c)return;c.on(F.ERROR,async n=>{let r=G.bind(null,t,L);if(s&&(s.watcherUnusable=!0),N&&n.code===`EPERM`)try{await(await b(e,`r`)).close(),r(n)}catch{}else r(n)}),s={listeners:i,errHandlers:a,rawEmitters:o,watcher:c},U.set(t,s)}return()=>{V(s,I,i),V(s,L,a),V(s,R,o),H(s.listeners)&&(s.watcher.close(),U.delete(t),xe.forEach(we(s)),s.watcher=void 0,Object.freeze(s))}},K=new Map,Ee=(e,t,n,r)=>{let{listener:i,rawEmitter:a}=r,o=K.get(t),s=o&&o.options;return s&&(s.persistent<n.persistent||s.interval>n.interval)&&(T(t),o=void 0),o?(B(o,I,i),B(o,R,a)):(o={listeners:i,rawEmitters:a,options:n,watcher:re(t,n,(n,r)=>{z(o.rawEmitters,e=>{e(F.CHANGE,t,{curr:n,prev:r})});let i=n.mtimeMs;(n.size!==r.size||i>r.mtimeMs||i===0)&&z(o.listeners,t=>t(e,n))})},K.set(t,o)),()=>{V(o,I,i),V(o,R,a),H(o.listeners)&&(K.delete(t),T(t),o.options=o.watcher=void 0,Object.freeze(o))}};var De=class{fsw;_boundHandleError;constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,r=f.dirname(e),i=f.basename(e);this.fsw._getWatchedDir(r).add(i);let a=f.resolve(e),o={persistent:n.persistent};t||=j;let s;return n.usePolling?(o.interval=n.interval!==n.binaryInterval&&Ce(i)?n.binaryInterval:n.interval,s=Ee(e,a,o,{listener:t,rawEmitter:this.fsw._emitRaw})):s=Te(e,a,o,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw}),s}_handleFile(e,t,n){if(this.fsw.closed)return;let r=f.dirname(e),i=f.basename(e),a=this.fsw._getWatchedDir(r),o=t;if(a.has(i))return;let s=async(t,n)=>{if(this.fsw._throttle(`watch`,e,5)){if(!n||n.mtimeMs===0)try{let n=await w(e);if(this.fsw.closed)return;let r=n.atimeMs,i=n.mtimeMs;if((!r||r<=i||i!==o.mtimeMs)&&this.fsw._emit(F.CHANGE,e,n),(ge||_e||ve)&&o.ino!==n.ino){this.fsw._closeFile(t),o=n;let r=this._watchWithNodeFs(e,s);r&&this.fsw._addPathCloser(t,r)}else o=n}catch{this.fsw._remove(r,i)}else if(a.has(i)){let t=n.atimeMs,r=n.mtimeMs;(!t||t<=r||r!==o.mtimeMs)&&this.fsw._emit(F.CHANGE,e,n),o=n}}},c=this._watchWithNodeFs(e,s);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(F.ADD,e,0))return;this.fsw._emit(F.ADD,e,t)}return c}async _handleSymlink(e,t,n,r){if(this.fsw.closed)return;let i=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let t;try{t=await C(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(r)?this.fsw._symlinkPaths.get(i)!==t&&(this.fsw._symlinkPaths.set(i,t),this.fsw._emit(F.CHANGE,n,e.stats)):(a.add(r),this.fsw._symlinkPaths.set(i,t),this.fsw._emit(F.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(i))return!0;this.fsw._symlinkPaths.set(i,!0)}_handleRead(e,t,n,r,i,a,o){e=f.join(e,``);let s=r?`${e}:${r}`:e;if(o=this.fsw._throttle(`readdir`,s,1e3),!o)return;let c=this.fsw._getWatchedDir(n.path),l=new Set,u=this.fsw._readdirp(e,{fileFilter:e=>n.filterPath(e),directoryFilter:e=>n.filterDir(e)});if(u)return u.on(`data`,async o=>{if(this.fsw.closed){u=void 0;return}let s=o.path,d=f.join(e,s);if(l.add(s),!(o.stats.isSymbolicLink()&&await this._handleSymlink(o,e,d,s))){if(this.fsw.closed){u=void 0;return}(s===r||!r&&!c.has(s))&&(this.fsw._incrReadyCount(),d=f.join(i,f.relative(i,d)),this._addToNodeFs(d,t,n,a+1))}}).on(F.ERROR,this._boundHandleError),new Promise((t,s)=>{if(!u)return s();u.once(`end`,()=>{if(this.fsw.closed){u=void 0;return}let s=o?o.clear():!1;t(void 0),c.getChildren().filter(t=>t!==e&&!l.has(t)).forEach(t=>{this.fsw._remove(e,t)}),u=void 0,s&&this._handleRead(e,!1,n,r,i,a,o)})})}async _handleDir(e,t,n,r,i,a,o){let s=this.fsw._getWatchedDir(f.dirname(e)),c=s.has(f.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!i&&!c&&this.fsw._emit(F.ADD_DIR,e,t),s.add(f.basename(e)),this.fsw._getWatchedDir(e);let l,u=this.fsw.options.depth;if((u==null||r<=u)&&!this.fsw._symlinkPaths.has(o)){if(!i&&(await this._handleRead(e,n,a,i,e,r,void 0),this.fsw.closed))return;l=this._watchWithNodeFs(e,(t,n)=>{n&&n.mtimeMs===0||this._handleRead(t,!1,a,i,e,r,void 0)})}return l}async _addToNodeFs(e,t,n,r,i){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let o=this.fsw._getWatchHelpers(e);n&&(o.filterPath=e=>n.filterPath(e),o.filterDir=e=>n.filterDir(e));try{let n=await be[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,n))return a(),!1;let s=this.fsw.options.followSymlinks,c;if(n.isDirectory()){let a=f.resolve(e),l=s?await C(e):e;if(this.fsw.closed||(c=await this._handleDir(o.watchPath,n,t,r,i,o,l),this.fsw.closed))return;a!==l&&l!==void 0&&this.fsw._symlinkPaths.set(a,l)}else if(n.isSymbolicLink()){let i=s?await C(e):e;if(this.fsw.closed)return;let a=f.dirname(o.watchPath);if(this.fsw._getWatchedDir(a).add(o.watchPath),this.fsw._emit(F.ADD,o.watchPath,n),c=await this._handleDir(a,n,t,r,e,o,i),this.fsw.closed)return;i!==void 0&&this.fsw._symlinkPaths.set(f.resolve(e),i)}else c=this._handleFile(o.watchPath,n,t);return a(),c&&this.fsw._addPathCloser(e,c),!1}catch(t){if(this.fsw._handleError(t))return a(),e}}};const Oe=/\\/g,q=/\/\//g,ke=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,Ae=/^\.[/\\]/;function J(e){return Array.isArray(e)?e:[e]}const Y=e=>typeof e==`object`&&!!e&&!(e instanceof RegExp);function je(e){return typeof e==`function`?e:typeof e==`string`?t=>e===t:e instanceof RegExp?t=>e.test(t):typeof e==`object`&&e?t=>{if(e.path===t)return!0;if(e.recursive){let n=f.relative(e.path,t);return n?!n.startsWith(`..`)&&!f.isAbsolute(n):!1}return!1}:()=>!1}function Me(e){if(typeof e!=`string`)throw Error(`string expected`);e=f.normalize(e),e=e.replace(/\\/g,`/`);let t=!1;return e.startsWith(`//`)&&(t=!0),e=e.replace(q,`/`),t&&(e=`/`+e),e}function X(e,t,n){let r=Me(t);for(let t=0;t<e.length;t++){let i=e[t];if(i(r,n))return!0}return!1}function Ne(e,t){if(e==null)throw TypeError(`anymatch: specify first argument`);let n=J(e).map(e=>je(e));return t==null?(e,t)=>X(n,e,t):X(n,t)}const Z=e=>{let t=J(e).flat();if(!t.every(e=>typeof e==`string`))throw TypeError(`Non-string provided as watch path: ${t}`);return t.map(Pe)},Q=e=>{let t=e.replace(Oe,`/`),n=!1;return t.startsWith(`//`)&&(n=!0),t=t.replace(q,`/`),n&&(t=`/`+t),t},Pe=e=>Q(f.normalize(Q(e))),Fe=(e=``)=>t=>typeof t==`string`?Pe(f.isAbsolute(t)?t:f.join(e,t)):t,Ie=(e,t)=>f.isAbsolute(e)?e:f.join(t,e),Le=Object.freeze(new Set);var Re=class{path;_removeWatcher;items;constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==`.`&&e!==`..`&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await S(n)}catch{this._removeWatcher&&this._removeWatcher(f.dirname(n),f.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path=``,this._removeWatcher=j,this.items=Le,Object.freeze(this)}},ze=class{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(e,t,n){this.fsw=n;let r=e;this.path=e=e.replace(Ae,``),this.watchPath=r,this.fullWatchPath=f.resolve(r),this.dirParts=[],this.dirParts.forEach(e=>{e.length>1&&e.pop()}),this.followSymlinks=t,this.statMethod=t?`stat`:`lstat`}entryPath(e){return f.join(this.watchPath,f.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},Be=class extends ae{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},r={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?J(e.ignored):J([]),awaitWriteFinish:t===!0?n:typeof t==`object`?{...n,...t}:!1};ye&&(r.usePolling=!0),r.atomic===void 0&&(r.atomic=!r.usePolling);let i=process.env.CHOKIDAR_USEPOLLING;if(i!==void 0){let e=i.toLowerCase();e===`false`||e===`0`?r.usePolling=!1:e===`true`||e===`1`?r.usePolling=!0:r.usePolling=!!e}let a=process.env.CHOKIDAR_INTERVAL;a&&(r.interval=Number.parseInt(a,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=j,this._readyEmitted=!0,process.nextTick(()=>this.emit(P.READY)))},this._emitRaw=(...e)=>this.emit(P.RAW,...e),this._boundRemove=this._remove.bind(this),this.options=r,this._nodeFsHandler=new De(this),Object.freeze(r)}_addIgnoredPath(e){if(Y(e)){for(let t of this._ignoredPaths)if(Y(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e==`string`)for(let t of this._ignoredPaths)Y(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:r}=this.options;this.closed=!1,this._closePromise=void 0;let i=Z(e);return r&&(i=i.map(e=>Ie(e,r))),i.forEach(e=>{this._removeIgnoredPath(e)}),this._userIgnored=void 0,this._readyCount||=0,this._readyCount+=i.length,Promise.all(i.map(async e=>{let r=await this._nodeFsHandler._addToNodeFs(e,!n,void 0,0,t);return r&&this._emitReady(),r})).then(e=>{this.closed||e.forEach(e=>{e&&this.add(f.dirname(e),f.basename(t||e))})}),this}unwatch(e){if(this.closed)return this;let t=Z(e),{cwd:n}=this.options;return t.forEach(e=>{!f.isAbsolute(e)&&!this._closers.has(e)&&(n&&(e=f.join(n,e)),e=f.resolve(e)),this._closePath(e),this._addIgnoredPath(e),this._watched.has(e)&&this._addIgnoredPath({path:e,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(t=>{let n=t();n instanceof Promise&&e.push(n)})),this._streams.forEach(e=>e.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(e=>e.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let r=(this.options.cwd?f.relative(this.options.cwd,n):n)||`.`;e[r]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==P.ERROR&&this.emit(P.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let r=this.options;N&&(t=f.normalize(t)),r.cwd&&(t=f.relative(r.cwd,t));let i=[t];n!=null&&i.push(n);let a=r.awaitWriteFinish,o;if(a&&(o=this._pendingWrites.get(t)))return o.lastChange=new Date,this;if(r.atomic){if(e===P.UNLINK)return this._pendingUnlinks.set(t,[e,...i]),setTimeout(()=>{this._pendingUnlinks.forEach((e,t)=>{this.emit(...e),this.emit(P.ALL,...e),this._pendingUnlinks.delete(t)})},typeof r.atomic==`number`?r.atomic:100),this;e===P.ADD&&this._pendingUnlinks.has(t)&&(e=P.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===P.ADD||e===P.CHANGE)&&this._readyEmitted)return this._awaitWriteFinish(t,a.stabilityThreshold,e,(t,n)=>{t?(e=P.ERROR,i[0]=t,this.emitWithAll(e,i)):n&&(i.length>1?i[1]=n:i.push(n),this.emitWithAll(e,i))}),this;if(e===P.CHANGE&&!this._throttle(P.CHANGE,t,50))return this;if(r.alwaysStat&&n===void 0&&(e===P.ADD||e===P.ADD_DIR||e===P.CHANGE)){let e=r.cwd?f.join(r.cwd,t):t,n;try{n=await w(e)}catch{}if(!n||this.closed)return;i.push(n)}return this.emitWithAll(e,i),this}_handleError(e){let t=e&&e.code;return e&&t!==`ENOENT`&&t!==`ENOTDIR`&&(!this.options.ignorePermissionErrors||t!==`EPERM`&&t!==`EACCES`)&&this.emit(P.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e);if(!r)throw Error(`invalid throttle`);let i=r.get(t);if(i)return i.count++,!1;let a,o=()=>{let e=r.get(t),n=e?e.count:0;return r.delete(t),clearTimeout(a),e&&clearTimeout(e.timeoutObject),n};a=setTimeout(o,n);let s={timeoutObject:a,clear:o,count:0};return r.set(t,s),s}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,r){let i=this.options.awaitWriteFinish;if(typeof i!=`object`)return;let a=i.pollInterval,o,s=e;this.options.cwd&&!f.isAbsolute(e)&&(s=f.join(this.options.cwd,e));let c=new Date,l=this._pendingWrites;function u(n){te(s,(i,s)=>{if(i||!l.has(e)){i&&i.code!==`ENOENT`&&r(i);return}let c=Number(new Date);n&&s.size!==n.size&&(l.get(e).lastChange=c),c-l.get(e).lastChange>=t?(l.delete(e),r(void 0,s)):o=setTimeout(u,a,s)})}l.has(e)||(l.set(e,{lastChange:c,cancelWait:()=>(l.delete(e),clearTimeout(o),n)}),o=setTimeout(u,a))}_isIgnored(e,t){if(this.options.atomic&&ke.test(e))return!0;if(!this._userIgnored){let{cwd:e}=this.options,t=(this.options.ignored||[]).map(Fe(e)),n=[...[...this._ignoredPaths].map(Fe(e)),...t];this._userIgnored=Ne(n,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new ze(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=f.resolve(e);return this._watched.has(t)||this._watched.set(t,new Re(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let r=f.join(e,t),i=f.resolve(r);if(n??=this._watched.has(r)||this._watched.has(i),!this._throttle(`remove`,r,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(r).getChildren().forEach(e=>this._remove(r,e));let a=this._getWatchedDir(e),o=a.has(t);a.remove(t),this._symlinkPaths.has(i)&&this._symlinkPaths.delete(i);let s=r;if(this.options.cwd&&(s=f.relative(this.options.cwd,r)),this.options.awaitWriteFinish&&this._pendingWrites.has(s)&&this._pendingWrites.get(s).cancelWait()===P.ADD)return;this._watched.delete(r),this._watched.delete(i);let c=n?P.UNLINK_DIR:P.UNLINK;o&&!this._isIgnored(r)&&this._emit(c,r),this._closePath(r)}_closePath(e){this._closeFile(e);let t=f.dirname(e);this._getWatchedDir(t).remove(f.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(e=>e()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n=he(e,{type:P.ALL,alwaysStat:!0,lstat:!0,...t,depth:0});return this._streams.add(n),n.once(`close`,()=>{n=void 0}),n.once(`end`,()=>{n&&=(this._streams.delete(n),void 0)}),n}};function Ve(e,t={}){let n=new Be(t);return n.add(e),n}const He=[`pnpm-lock.yaml`,`package-lock.json`,`yarn.lock`,`bun.lock`,`bun.lockb`],Ue=[`.git`,`pnpm-workspace.yaml`],We=[`**/.ash/**`,`**/.git/**`,`**/.output/**`,`**/.turbo/**`,`**/.vercel/**`,`**/.workflow-data/**`,`**/node_modules/**`];async function Ge(r){let d=r.schedulesEnabled!==!1,f=r.preparedHost,p=!1,m=Promise.resolve(),h,g=new Set,_=new Set,v=await qe(f),y=Je(v),b=Ve(v,{awaitWriteFinish:{pollInterval:50,stabilityThreshold:160},followSymlinks:!1,ignoreInitial:!0,ignored:We}),x=Ke(b),S=()=>{p||(m=m.then(async()=>{if(p)return;let m=g.size,h=[..._];g.clear(),_.clear();let v=f,x=Xe(v.appRoot,h);console.log(`[ash:dev] change detected (${m} event${m===1?``:`s`}), rebuilding authored artifacts...`);try{x&&i(v.appRoot);let n=await s(v.appRoot);await l({appRoot:n.appRoot,log:e=>console.log(e)});let p=o({appRoot:n.appRoot,dev:r.nitro.options.dev===!0}),m=u(r.nitro,{artifactsConfig:p,next:c(n),previous:c(v)}),h=a(r.nitro,{artifactsConfig:p,dispatchModulePath:e(`src/internal/nitro/routes/schedule-task.ts`),next:d?n.scheduleRegistrations:[],previous:d?v.scheduleRegistrations:[]});t(),f=n,m||h||x?(console.log(`[ash:dev] structural change detected, reloading Nitro worker...`),await r.nitro.hooks.callHook(`rollup:reload`)):console.log(`[ash:dev] authored artifacts updated.`),y=Ye({nextWatchPaths:await qe(n),previousWatchPathsByKey:y,watcher:b})}catch(e){console.error(`[ash:dev] rebuild failed: ${n(e)}`)}}).catch(e=>{console.error(`[ash:dev] rebuild queue error: ${n(e)}`)}))};return b.on(`all`,(e,t)=>{p||(g.add(`${e}:${t}`),_.add(t),h!==void 0&&clearTimeout(h),h=setTimeout(()=>{h=void 0,S()},120))}),await x,{async close(){p=!0,h!==void 0&&(clearTimeout(h),h=void 0),await b.close(),await m}}}async function Ke(e){await new Promise((t,n)=>{e.on(`ready`,()=>{t()}),e.on(`error`,e=>{n(e)})})}async function qe(e){let t=new Set([e.compileResult.project.agentRoot,h(e.appRoot,`package.json`),h(e.appRoot,`jsconfig.json`),h(e.appRoot,`tsconfig.json`),h(e.appRoot,`tsconfig.*.json`)]),n=await $e(e.appRoot);for(let n of r(e.appRoot))t.add(n);for(let e of n)t.add(e);for(let n of Ze(e.appRoot))for(let e of He)t.add(h(n,e));return[...t].sort((e,t)=>e.localeCompare(t))}function Je(e){let t=new Map;for(let n of e)t.set($(n),n);return t}function Ye(e){let t=Je(e.nextWatchPaths),n=[],r=[];for(let[r,i]of t)e.previousWatchPathsByKey.has(r)||n.push(i);for(let[n,i]of e.previousWatchPathsByKey)t.has(n)||r.push(i);return n.length>0&&e.watcher.add(n),r.length>0&&e.watcher.unwatch(r),t}function $(e){return e.replaceAll(`\\`,`/`)}function Xe(e,t){let n=new Set(r(e).map(e=>$(_(e))));return t.some(e=>n.has($(_(e))))}function Ze(e){let t=[],n=_(e);for(;t.push(n),!Qe(n);){let e=p(n);if(e===n)break;n=e}return t}function Qe(e){return Ue.some(t=>ee(h(e,t)))}async function $e(e){let t=await et(e),n=new Set,r=new Set;for(let e of t)await tt({configPath:e,resolvedConfigPaths:n,visitingConfigPaths:r});return[...n].sort((e,t)=>e.localeCompare(t))}async function et(e){let t=new Set([h(e,`tsconfig.json`),h(e,`jsconfig.json`)]);try{let n=await S(e,{withFileTypes:!0});for(let r of n)r.isFile()&&/^tsconfig\..+\.json$/i.test(r.name)&&t.add(h(e,r.name))}catch{}return[...t]}async function tt(e){let t=_(e.configPath);if(e.resolvedConfigPaths.has(t)||e.visitingConfigPaths.has(t))return;let n=await nt(t);if(n!==void 0){e.resolvedConfigPaths.add(t),e.visitingConfigPaths.add(t);try{let r=rt(n);for(let n of r)for(let r of it({configPath:t,extendsSpecifier:n}))await tt({configPath:r,resolvedConfigPaths:e.resolvedConfigPaths,visitingConfigPaths:e.visitingConfigPaths})}finally{e.visitingConfigPaths.delete(t)}}}async function nt(e){try{return await x(e,`utf8`)}catch{return}}function rt(e){let t=[],n=ie(e,t,{allowTrailingComma:!0});if(t.length>0||typeof n!=`object`||!n||Array.isArray(n))return[];let r=n.extends;return typeof r==`string`?r.length>0?[r]:[]:Array.isArray(r)?r.filter(e=>typeof e==`string`&&e.length>0):[]}function it(e){let t=new Set;if(st(e.extendsSpecifier))for(let n of at({configPath:e.configPath,extendsSpecifier:e.extendsSpecifier}))t.add(n);else for(let n of ot({configPath:e.configPath,extendsSpecifier:e.extendsSpecifier}))t.add(n);return[...t]}function at(e){let t=_(p(e.configPath),e.extendsSpecifier),n=new Set;return n.add(t),t.endsWith(`.json`)||(n.add(`${t}.json`),n.add(h(t,`tsconfig.json`))),[...n]}function ot(e){let t=new Set([e.extendsSpecifier]);e.extendsSpecifier.endsWith(`.json`)||(t.add(`${e.extendsSpecifier}.json`),t.add(`${e.extendsSpecifier}/tsconfig.json`));let n=new Set,r=d(e.configPath);for(let e of t)try{n.add(r.resolve(e))}catch{}return[...n]}function st(e){return e.startsWith(`.`)||m(e)?!0:/^[A-Za-z]:[\\/]/.test(e)}export{Ge as startAuthoredSourceWatcher};
@@ -0,0 +1,70 @@
1
+ import{n as e}from"./chunk-DSjMdhoD.js";import{A as t,C as n,D as r,E as i,M as a,O as o,S as s,T as c,_ as l,a as u,c as d,d as f,f as p,g as m,h as ee,i as te,j as h,k as ne,l as re,m as ie,o as ae,r as oe,u as se,v as ce,w as le,x as ue}from"./paths-CWZN-XRX.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./authored-module-loader-DcCfCiBm.js";import{n as ge}from"./compile-agent-DrIyb818.js";import{t as _e}from"./errors-HYWjHxV6.js";import{g,m as ve,p as ye}from"./types-BJSR0JNV.js";import{loadDevelopmentEnvironmentFiles as be}from"../cli/dev/environment.js";import{builtinModules as xe}from"node:module";import{dirname as _,extname as Se,isAbsolute as Ce,join as v,posix as we,relative as y,resolve as b,sep as Te}from"node:path";import{cp as x,mkdir as S,readFile as C,readdir as w,realpath as T,rename as E,rm as D,symlink as Ee,writeFile as O}from"node:fs/promises";import{createHash as De,randomUUID as Oe}from"node:crypto";import{existsSync as k,readFileSync as ke}from"node:fs";import{fileURLToPath as Ae}from"node:url";import{Buffer as je}from"node:buffer";import{build as Me,copyPublicAssets as Ne,createDevServer as Pe,createNitro as Fe,prepare as Ie,prerender as Le}from"nitro/builder";const Re=`ash-cache.json`;async function ze(e){let t=await Be(e),n=r().version;t!==null&&t===n||await D(e,{force:!0,recursive:!0})}async function A(e){await S(e,{recursive:!0}),await O(v(e,Re),`${JSON.stringify({ashVersion:r().version},null,2)}\n`)}async function Be(e){try{let t=JSON.parse(await C(v(e,Re),`utf8`));return typeof t.ashVersion==`string`?t.ashVersion:null}catch(e){return e instanceof Error&&`code`in e&&e.code,null}}const Ve=new Set([`__builtin_response_array_buffer`,`__builtin_response_json`,`__builtin_response_text`]);async function He(e){if(e.mode===!1)return{code:e.source,workflowManifest:{}};let t=await Ue(e.filename,e.source),n=Ge(t);if(n.length===0)return{code:e.source,workflowManifest:{}};let r=e.moduleSpecifier??`./${ot(e.filename)}`,i=e.stableModuleSpecifier??r,a={},o=[],s=[],c=!1;for(let t of n){if(t.directive===`use step`){let n=st(r,t.name);a.steps??={};let i=a.steps[e.filename]??={};if(i[t.name]={stepId:n},e.mode===`workflow`){let e=t.exportPrefix.length>0?`export `:``;o.push({end:t.rangeEnd,start:t.rangeStart,text:`${e}var ${t.name} = globalThis[Symbol.for("WORKFLOW_USE_STEP")](${JSON.stringify(n)});`})}else o.push({end:t.directiveEnd,start:t.directiveStart,text:``}),e.mode===`step`?(c=!0,s.push(`registerStepFunction(${JSON.stringify(n)}, ${t.name});`)):s.push(`${t.name}.stepId = ${JSON.stringify(n)};`);continue}let n=`workflow//${e.stableWorkflowNames?.has(t.name)===!0?i:r}//${t.name}`;a.workflows??={};let l=a.workflows[e.filename]??={};l[t.name]={workflowId:n},e.mode===`workflow`?(o.push({end:t.directiveEnd,start:t.directiveStart,text:``}),s.push(`${t.name}.workflowId = ${JSON.stringify(n)};`),s.push(`globalThis.__private_workflows.set(${JSON.stringify(n)}, ${t.name});`)):(o.push({end:t.directiveEnd,start:t.directiveStart,text:`throw new Error(${JSON.stringify(`You attempted to execute workflow ${t.name} function directly. To start a workflow, use start(${t.name}) from workflow/api`)});`}),s.push(`${t.name}.workflowId = ${JSON.stringify(n)};`))}let l=`/**__internal_workflows${JSON.stringify(a)}*/;`,u=n.some(e=>e.directive===`use workflow`);if(e.mode===`workflow`&&!u)return{code:`${l}\n${We(e.source,t,n,r)}`,workflowManifest:a};let d=Xe(e.source,o),f=e.mode===`workflow`?await Ze(e.filename,d):d;return{code:`${c?`import { registerStepFunction } from "workflow/internal/private";\n${l}\n`:`${l}\n`}${f}${s.length>0?`\n${s.join(`
2
+ `)}\n`:``}`,workflowManifest:a}}async function Ue(e,t){let{parseAst:n}=await de();return n(t,{astType:`ts`,lang:at(e),range:!0,sourceType:`module`},e)}function We(e,t,n,r){let i=Qe(e,t),a=n.filter(e=>e.directive===`use step`).map(e=>{let t=e.exportPrefix.length>0?`export `:``,n=st(r,e.name);return`${t}var ${e.name} = globalThis[Symbol.for("WORKFLOW_USE_STEP")](${JSON.stringify(n)});`}),o=[...i,...a];return o.length>0?`${o.join(`
3
+ `)}\n`:``}function Ge(e){let t=[];for(let n of e.body??[]){let e=Ke(n);if(e===null)continue;let r=e.fn,i=r.id?.name,a=Je(r.body);if(r.async!==!0||i===void 0||a===void 0)continue;let o=Ye(a[0]);o!==null&&t.push({directive:o.value,directiveEnd:o.end,directiveStart:o.start,exportPrefix:e.exported?`export `:``,name:i,rangeEnd:e.end,rangeStart:e.start})}return t}function Ke(e){return e.type===`FunctionDeclaration`?qe(e,!1,e):e.type!==`ExportNamedDeclaration`||e.declaration?.type!==`FunctionDeclaration`?null:qe(e.declaration,!0,e)}function qe(e,t,n){return e.start===void 0||e.end===void 0||n.start===void 0||n.end===void 0?null:{end:n.end,exported:t,fn:e,start:n.start}}function Je(e){return e===void 0||Array.isArray(e)?e:e.body}function Ye(e){let t=e?.directive??(e?.type===`ExpressionStatement`&&e.expression?.type===`Literal`?e.expression.value:void 0);return t!==`use workflow`&&t!==`use step`||e?.start===void 0||e.end===void 0?null:{end:e.end,start:e.start,value:t}}function Xe(e,t){let n=``,r=0;for(let i of[...t].sort((e,t)=>e.start-t.start))n+=e.slice(r,i.start),n+=i.text,r=i.end;return n+e.slice(r)}async function Ze(e,t){let n=await Ue(e,t),r=nt(n),i=[];for(let e of n.body??[]){if(e.type!==`ImportDeclaration`||e.start===void 0||e.end===void 0)continue;let n=tt(e);n.length>0&&n.every(e=>!r.has(e))&&i.push({end:it(t,e.end),start:e.start,text:``})}return i.length>0?Xe(t,i):t}function Qe(e,t){let n=[];for(let r of t.body??[])r.type===`ExportNamedDeclaration`&&r.declaration?.type===`VariableDeclaration`&&r.declaration.kind===`const`&&r.start!==void 0&&r.end!==void 0&&(r.declaration.declarations??[]).every($e)&&n.push(e.slice(r.start,r.end).trim());return n}function $e(e){return et(e.init)}function et(e){return e==null?!1:e.type===`Literal`?e.value===null||typeof e.value==`boolean`||typeof e.value==`number`||typeof e.value==`string`:e.type===`TSAsExpression`||e.type===`TSSatisfiesExpression`||e.type===`TSNonNullExpression`||e.type===`TSTypeAssertion`?et(e.expression):e.type===`UnaryExpression`&&e.argument?.type===`Literal`?typeof e.argument.value==`number`:!1}function tt(e){return e.importKind===`type`?[]:(e.specifiers??[]).filter(e=>e.importKind!==`type`).map(e=>e.local?.name).filter(e=>e!==void 0)}function nt(e){let t=new Set;return j(e,e=>{e.type===`Identifier`&&typeof e.name==`string`&&t.add(e.name)}),t}function j(e,t){if(!(e.type===`ImportDeclaration`||e.type?.startsWith(`TS`))){t(e);for(let n of Object.values(e))if(Array.isArray(n))for(let e of n)rt(e)&&j(e,t);else rt(n)&&j(n,t)}}function rt(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function it(e,t){let n=t;for(;n<e.length&&(e[n]===` `||e[n]===` `);)n+=1;return e[n]===`\r`&&e[n+1]===`
4
+ `?n+2:e[n]===`
5
+ `?n+1:n}function at(e){return e.endsWith(`.tsx`)?`tsx`:e.endsWith(`.jsx`)?`jsx`:/\.[cm]?ts$/.test(e)?`ts`:`js`}function ot(e){return e.replace(/\.(?:[cm]?[jt]sx?)$/,``)}function st(e,t){return Ve.has(t)?t:`step//${e}//${t}`}const ct={type:`queue/v2beta`,topic:`__wkf_workflow_*`,consumer:`default`,retryAfterSeconds:5,initialDelaySeconds:0},M=new Map,lt=new Map;async function N(e,t,n,r,i,a=ae){let o=i??process.cwd(),{moduleSpecifier:s,stableModuleSpecifier:c}=ft(r===void 0?Ce(e)?e:v(o,e):r,o);return He({filename:e,mode:n,moduleSpecifier:s,source:t,stableModuleSpecifier:c,stableWorkflowNames:a})}function ut(e){return{hasSerde:e.includes(`workflow.serde`)||e.includes(`@serde`)||e.includes(`workflowSerde`)||e.includes(`__workflow_serde`),hasUseStep:/["']use step["']/.test(e),hasUseWorkflow:/["']use workflow["']/.test(e)}}function dt(e,t){let n=I(e),r=!n&&gt(e,t);if(n||r){let n=P(e);if(n!==null){let i=ht(t).has(n.name);if(!(r||i))return{importPath:L(e,t),isPackage:!1};let a=pt(e,n);return a?{importPath:`${n.name}${a}`,isPackage:!0}:yt(e,n)?{importPath:n.name,isPackage:!0}:{importPath:L(e,t),isPackage:!1}}}return{importPath:L(e,t),isPackage:!1}}function ft(e,t){let n=I(e),r=!n&&gt(e,t);if(!n&&!r)return{moduleSpecifier:void 0,stableModuleSpecifier:void 0};let i=P(e);if(i===null)return{moduleSpecifier:void 0,stableModuleSpecifier:void 0};let a=pt(e,i),o=a?`${i.name}${a}`:i.name;return{moduleSpecifier:`${o}@${i.version}`,stableModuleSpecifier:o}}function P(e){let t=_(e),n=[];for(;t!==_(t);){let e=M.get(t);if(e!==void 0){for(let t of n)M.set(t,e);return e}n.push(t);let r=v(t,`package.json`);if(k(r))try{let e=JSON.parse(ke(r,`utf8`));if(typeof e.name==`string`&&typeof e.version==`string`){let r={dir:t,exports:e.exports,main:e.main,module:e.module,name:e.name,version:e.version};M.set(t,r);for(let e of n)M.set(e,r);return r}}catch{}t=_(t)}for(let e of n)M.set(e,null);return null}function pt(e,t){if(t.exports===null||typeof t.exports!=`object`||Array.isArray(t.exports))return``;let n=e.replace(/\\/g,`/`),r=t.dir.replace(/\\/g,`/`),i=n.startsWith(`${r}/`)?`./${n.substring(r.length+1)}`:null;if(i===null)return``;for(let[e,n]of Object.entries(t.exports)){let t=F(n);if(t!==null&&mt(t)===i)return e===`.`?``:e.substring(1)}return``}function F(e){if(typeof e==`string`)return e;if(Array.isArray(e)){for(let t of e){let e=F(t);if(e!==null)return e}return null}if(typeof e==`object`&&e)for(let t of[`workflow`,`default`,`require`,`import`,`node`]){let n=e[t],r=F(n);if(r!==null)return r}return null}function mt(e){return e.startsWith(`./`)?e:`./${e}`}function I(e){return e.split(Te).join(`/`).includes(`/node_modules/`)}function ht(e){let t=lt.get(e);if(t!==void 0)return t;let n=new Set,r=v(e,`package.json`);if(k(r))try{let e=JSON.parse(ke(r,`utf8`));for(let t of[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`]){let r=e[t];if(typeof r==`object`&&r&&!Array.isArray(r))for(let e of Object.keys(r))n.add(e)}}catch{}return lt.set(e,n),n}function gt(e,t){if(I(e))return!1;let n=P(e);return n===null||b(n.dir)===b(t)?!1:ht(t).has(n.name)}function L(e,t){let n=t.replace(/\\/g,`/`),r=e.replace(/\\/g,`/`),i=r.startsWith(`${n}/`)?r.substring(n.length+1):y(t,e).replace(/\\/g,`/`);return i.startsWith(`.`)||(i=`./${i}`),i}function _t(e){if(typeof e==`string`||Array.isArray(e))return!0;if(typeof e!=`object`||!e)return!1;let t=Object.keys(e);return t.length>0&&t.every(e=>!e.startsWith(`.`))?!0:`.`in e}function vt(e){let t=e.replace(/\\/g,`/`);return t.startsWith(`./`)?t.substring(2):t.startsWith(`/`)?t.substring(1):t}function yt(e,t){let n=e.replace(/\\/g,`/`),r=t.dir.replace(/\\/g,`/`);if(!n.startsWith(`${r}/`))return!1;let i=n.substring(r.length+1);if(t.exports!==void 0){let e;if(t.exports!==null&&typeof t.exports==`object`&&`.`in t.exports)e=t.exports[`.`];else if(_t(t.exports))e=t.exports;else return!1;let n=F(e);return n!==null&&vt(n)===i}return[t.module,t.main,`index.js`,`index.mjs`,`index.cjs`,`index.ts`,`index.mts`,`index.cts`].flatMap(e=>typeof e==`string`?[vt(e)]:[]).includes(i)}const bt=`\0ash-workflow-entry`,xt=new Set([`server-only`,`client-only`,`next/dist/compiled/server-only`,`next/dist/compiled/client-only`]);new Set([...xe,...xe.map(e=>`node:${e}`)]);const St=new Set([`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`]),Ct=new Set([`node_modules`,`.git`,`.next`,`.nuxt`,`.output`,`.vercel`,`.workflow-data`,`.workflow-vitest`,`.well-known`,`.svelte-kit`,`.turbo`,`.cache`,`.yarn`,`.pnpm-store`]);async function wt(e){let t=[];async function n(e){let r;try{r=await w(e,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}for(let i of r){if(i.isDirectory()){Ct.has(i.name)||await n(v(e,i.name));continue}if(!i.isFile())continue;let r=i.name.match(/\.[^.]+$/)?.[0];r!==void 0&&St.has(r)&&t.push(v(e,i.name))}}return await n(e),t}function Tt(e,t){let{importPath:n,isPackage:r}=dt(e,t);return r?`import ${JSON.stringify(n)};`:`import ${JSON.stringify(Pt(t,e))};`}function Et(e){return{name:`ash-workflow-virtual-entry`,resolveId(e){if(e===`\0ash-workflow-entry`)return{id:e}},load(t){if(t===`\0ash-workflow-entry`)return{code:e,moduleSideEffects:!0,moduleType:`js`}}}}function Dt(){return{name:`ash-workflow-pseudo-packages`,resolveId(e){if(xt.has(e))return{id:`\0ash-workflow-pseudo-package:${e}`}},load(e){if(e.startsWith(`\0ash-workflow-pseudo-package:`))return{code:``,moduleType:`js`}}}}function Ot(e,t={}){return{name:`ash-package-imports`,resolveId(n){let r=n.match(/^#compiled\/(.+)$/)?.[1];if(r!==void 0)return t.workflowCondition===!0&&r===`@workflow/core/index.js`?R([v(e,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.ts`),v(e,`dist`,`src`,`internal`,`workflow-bundle`,`workflow-core-shim.js`)]):R([v(e,`.generated`,`compiled`,r),v(e,`dist`,`src`,`compiled`,r)]);let i=n.match(/^#(.+)\.js$/)?.[1];if(i!==void 0)return R([`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`].flatMap(t=>[v(e,`src`,`${i}${t}`),v(e,`dist`,`src`,`${i}${t}`)]))}}}function kt(e){let t=new Set(e.sideEffectFiles?.map(e=>e.replaceAll(`\\`,`/`))??[]);return{name:`ash-workflow-transform`,async load(n){if(!Rt(n))return;let r=await C(n,`utf8`),i=await N(Lt(e.workingDir,n),r.replace(/require\(\s*(['"])server-only\1\s*\)/g,`void 0`).replace(/require\(\s*(['"])client-only\1\s*\)/g,`void 0`),e.mode??`workflow`,n,e.projectRoot);return It(e.manifest,i.workflowManifest),{code:i.code,map:null,moduleSideEffects:t.has(n.replaceAll(`\\`,`/`))||void 0}}}}async function At(e){let t=`// biome-ignore-all lint: generated file
6
+ /* eslint-disable */
7
+ import { workflowEntrypoint } from 'workflow/runtime';
8
+
9
+ const workflowCode = \`${(e.code.endsWith(`
10
+ `)?e.code:`${e.code}\n`).replace(/[\\`$]/g,`\\$&`)}\`;
11
+
12
+ export const POST = workflowEntrypoint(workflowCode);`;if(!e.bundleFinalOutput){await Ft(e.outfile,t);return}let n=fe(await me({cwd:e.workingDir,input:bt,external:e=>e===`@aws-sdk/credential-provider-web-identity`,platform:`node`,plugins:[Et(t)],write:!1,output:{comments:!1,format:e.format,sourcemap:!1}}),`final workflow bundle for "${e.outfile}"`);await Ft(e.outfile,n.code)}function jt(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={stepId:i.stepId}}return t}function Mt(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={graph:{edges:[],nodes:[]},workflowId:i.workflowId}}return t}function Nt(e){let t={};for(let[n,r]of Object.entries(e??{})){t[n]={};for(let[e,i]of Object.entries(r))t[n][e]={classId:i.classId}}return t}function Pt(e,t){let n=y(e,t).replaceAll(`\\`,`/`);return n.startsWith(`./`)||n.startsWith(`../`)?n:`./${n}`}function R(e){for(let t of e)if(k(t))return{id:b(t)}}async function Ft(e,t){await S(_(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await O(n,t),await E(n,e)}function It(e,t){e.steps=z(e.steps,t.steps),e.workflows=z(e.workflows,t.workflows),e.classes=z(e.classes,t.classes)}function z(e,t){if(t===void 0)return e;let n={...e};for(let[e,r]of Object.entries(t))n[e]={...n[e],...r};return n}function Lt(e,t){let n=t.replaceAll(`\\`,`/`),r=y(e.replaceAll(`\\`,`/`),n).replaceAll(`\\`,`/`);return r.startsWith(`../`)&&(r=r.split(`/`).filter(e=>e!==`..`).join(`/`)),r}function Rt(e){return/\.(?:[cm]?[jt]sx?)$/.test(e)}async function B(e,t){let n=`${e}.tmp-${process.pid}-${Date.now().toString(36)}`;await O(n,t),await E(n,e)}async function zt(e){let t=[...e.discoveredEntries.discoveredSteps].sort(),n=new Set(t),r=[...e.discoveredEntries.discoveredSerdeFiles].sort().filter(e=>!n.has(e)),i=await Vt({projectRoot:e.projectRoot,stepFiles:t,serdeOnlyFiles:r,workingDir:e.workingDir}),a=_(e.outfile),o=[`// Generated by Ash. Do not edit by hand.`,...Bt({builtinsImportSpecifier:e.builtinsPath===void 0?`workflow/internal/builtins`:V({outfileDirectory:a,preferAbsoluteFileImports:e.preferAbsoluteFileImports??!1,targetPath:e.builtinsPath}),outfileDirectory:a,preferAbsoluteFileImports:e.preferAbsoluteFileImports??!1,serdeOnlyFiles:r,stepFiles:t}),`export const __steps_registered = true;`,``].join(`
13
+ `);return await S(a,{recursive:!0}),await Gt(e.outfile)!==o&&await O(e.outfile,o),i}function Bt(e){return[e.builtinsImportSpecifier,...e.stepFiles.map(t=>V({outfileDirectory:e.outfileDirectory,preferAbsoluteFileImports:e.preferAbsoluteFileImports,targetPath:t})),...e.serdeOnlyFiles.map(t=>V({outfileDirectory:e.outfileDirectory,preferAbsoluteFileImports:e.preferAbsoluteFileImports,targetPath:t}))].map(e=>`import ${JSON.stringify(e)};`)}function V(e){return e.preferAbsoluteFileImports?n(e.targetPath):Wt(e.outfileDirectory,e.targetPath)}async function Vt(e){let t={},n=[...e.stepFiles,...e.serdeOnlyFiles];for(let r of n){let n=await C(r,`utf8`);Ht(t,(await N(Ut(e.workingDir,r),n,`step`,r,e.projectRoot)).workflowManifest)}return t}function Ht(e,t){e.steps=H(e.steps,t.steps),e.workflows=H(e.workflows,t.workflows),e.classes=H(e.classes,t.classes)}function H(e,t){if(t===void 0)return e;let n={...e};for(let[e,r]of Object.entries(t))n[e]={...n[e],...r};return n}function Ut(e,t){let n=t.replaceAll(`\\`,`/`),r=y(e.replaceAll(`\\`,`/`),n).replaceAll(`\\`,`/`);return r.startsWith(`../`)&&(r=r.split(`/`).filter(e=>e!==`..`).join(`/`)),r}function Wt(e,t){let n=y(e,t).replaceAll(`\\`,`/`);return n.startsWith(`.`)?n:`./${n}`}async function Gt(e){try{return await C(e,`utf8`)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}}const Kt=`index.__ash_service_route_prefix.mjs`,qt=[`ash/`,`.well-known/workflow/`];function Jt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Yt(e){return qt.some(t=>e.startsWith(t))}function Xt(e,t){return e.filter(Zt).map(e=>en(e,t))}function Zt(e){if(!Jt(e)||`handle`in e)return!0;let t=typeof e.src==`string`?e.src:``,n=typeof e.dest==`string`?e.dest:``;return Qt(t)||Qt(n)}function Qt(e){return e.includes(`/ash/v1`)||e.includes(`/.well-known/workflow/`)}function $t(e){return e.includes(`/ash/v1`)}function en(e,t){if(!Jt(e)||`handle`in e||typeof e.src!=`string`)return e;let n=$t(e.src)||typeof e.dest==`string`&&$t(e.dest),r={...e,src:tn(e.src,t)};return n&&(r.dest=`/ash/__server`),r}function tn(e,t){if(t===void 0||t===`/`||!Qt(e)||e.includes(t))return e;let n=t.endsWith(`/`)?t.slice(0,-1):t,r=n.replaceAll(`/`,`\\/`);return e.includes(r)?e:e.startsWith(`^(?:/`)?`^(?:${n}${e.slice(4)}`:e.startsWith(`^/`)?`^${n}${e.slice(1)}`:e.startsWith(`/`)?`${n}${e}`:e}async function nn(e,t){let n=v(e,`.vc-config.json`),r=v(e,Kt),i=JSON.parse(await C(n,`utf8`)),a=Jt(i)?i:{};await O(r,rn(t)),await O(n,`${JSON.stringify({...a,handler:Kt},null,2)}\n`)}function rn(e){return`
14
+ import { Server } from "node:http";
15
+
16
+ const SERVICE_PREFIX = ${JSON.stringify(an(e))};
17
+ const PATCH_SYMBOL = Symbol.for("ash.service.route-prefix-strip.patch");
18
+
19
+ function stripServiceRoutePrefix(requestUrl) {
20
+ if (typeof requestUrl !== "string" || requestUrl === "*") {
21
+ return requestUrl;
22
+ }
23
+
24
+ const queryIndex = requestUrl.indexOf("?");
25
+ const rawPath = queryIndex === -1 ? requestUrl : requestUrl.slice(0, queryIndex);
26
+ const query = queryIndex === -1 ? "" : requestUrl.slice(queryIndex);
27
+ const path = rawPath.startsWith("/") ? rawPath : \`/\${rawPath}\`;
28
+
29
+ if (path === SERVICE_PREFIX) {
30
+ return \`/\${query}\`;
31
+ }
32
+
33
+ if (path.startsWith(\`\${SERVICE_PREFIX}/\`)) {
34
+ return path.slice(SERVICE_PREFIX.length) + query;
35
+ }
36
+
37
+ return path + query;
38
+ }
39
+
40
+ if (!globalThis[PATCH_SYMBOL]) {
41
+ globalThis[PATCH_SYMBOL] = true;
42
+ const originalEmit = Server.prototype.emit;
43
+ Server.prototype.emit = function patchedEmit(event, request, ...args) {
44
+ if (event === "request" && request && typeof request.url === "string") {
45
+ request.url = stripServiceRoutePrefix(request.url);
46
+ }
47
+
48
+ return originalEmit.call(this, event, request, ...args);
49
+ };
50
+ }
51
+
52
+ const originalModule = await import("./index.mjs");
53
+ const entrypoint = originalModule?.default ?? originalModule;
54
+
55
+ export default entrypoint;
56
+ `.trimStart()}function an(e){let t=(e.startsWith(`/`)?e:`/${e}`).replace(/\/+$/,``);return t.length===0?`/`:t}const on=[`@mongodb-js/zstd`,`node-liblzma`],sn=[`@chat-adapter/slack`,`chat`];function cn(e){let t={};return ln(e)&&Object.assign(t,e),t.NODE_OPTIONS=`--experimental-require-module`,t}function ln(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function un(e){await D(e,{force:!0,recursive:!0}),await S(e,{recursive:!0})}async function dn(e){try{return await T(e.sourcePath)}catch{return await T(e.fallbackPath)}}async function fn(e){let t=await dn({fallbackPath:e.fallbackPath,sourcePath:e.sourcePath});await un(e.targetPath),await x(t,e.targetPath,{dereference:!0,recursive:!0})}async function pn(e,t={}){let n=v(e,`functions`),r=await mn(n);r!==null&&(t.servicePrefix!==void 0&&await nn(r,t.servicePrefix),await hn(n,r)),await _n(n,n),await vn(e,t.servicePrefix)}async function mn(e){let t=v(e,`__server.func`),n=v(e,`ash/__server.func`),r;try{r=await T(t)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}let i=`${n}.ash-staging`;return await S(_(n),{recursive:!0}),await D(i,{force:!0,recursive:!0}),await x(r,i,{dereference:!0,recursive:!0}),await D(n,{force:!0,recursive:!0}),await E(i,n),n}async function hn(e,t,n=e){let r;try{r=await w(e,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}await Promise.all(r.map(async r=>{let i=v(e,r.name),a=yn(y(n,i));if(r.isSymbolicLink()){r.name.endsWith(`.func`)&&Yt(a)&&await gn(i,t);return}r.isDirectory()&&!r.name.endsWith(`.func`)&&await hn(i,t,n)}))}async function gn(e,t){await D(e,{force:!0,recursive:!0}),await Ee(yn(y(_(e),t)),e,`dir`)}async function _n(e,t){let n;try{n=await w(t,{withFileTypes:!0})}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}await Promise.all(n.map(async n=>{let r=v(t,n.name),i=yn(y(e,r));if(n.name.endsWith(`.func`)){Yt(i)||await D(r,{force:!0,recursive:!0});return}n.isDirectory()&&await _n(e,r)}))}async function vn(e,t){let n=v(e,`config.json`),r;try{r=JSON.parse(await C(n,`utf8`))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}!ln(r)||!Array.isArray(r.routes)||(r.routes=Xt(r.routes,t),await O(n,`${JSON.stringify(r,null,2)}\n`))}function yn(e){return e.replaceAll(`\\`,`/`)}function bn(e){let t=y(e.fromDirectoryPath,e.toFilePath).replaceAll(`\\`,`/`);return t.startsWith(`.`)?t:`./${t}`}function xn(e){return[`import nitroHandler from ${JSON.stringify(e.delegateImportPath)};`,``,`function invokeNitroHandler(request, context) {`,` if (typeof nitroHandler === "function") {`,` return nitroHandler(request, context);`,` }`,``,` if (nitroHandler !== null && typeof nitroHandler === "object" && "fetch" in nitroHandler) {`,` const fetch = nitroHandler.fetch;`,` if (typeof fetch === "function") {`,` return fetch.call(nitroHandler, request, context);`,` }`,` }`,``,` throw new TypeError("Expected Nitro handler to export a function or an object with fetch(request, context).");`,`}`,``,`const workflowRoutePath = ${JSON.stringify(e.workflowRoutePath)};`,``,`function rewriteRequestToWorkflowRoute(request) {`,` const sourceUrl = new URL(request.url);`,` const routedUrl = new URL(workflowRoutePath, sourceUrl);`,` routedUrl.search = sourceUrl.search;`,` return new Request(routedUrl, request);`,`}`,``,`export default {`,` fetch(request, context) {`,` return invokeNitroHandler(rewriteRequestToWorkflowRoute(request), context);`,` },`,`};`,``].join(`
57
+ `)}async function Sn(e){try{let t=JSON.parse(await C(v(e,`.vc-config.json`),`utf8`));if(typeof t.handler==`string`&&t.handler.length>0)return t.handler}catch{}return`index.mjs`}async function Cn(e){let t=await Sn(e.functionDirectoryPath),n=v(e.functionDirectoryPath,t),r=_(n),i=Se(t),a=v(r,`__ash_nitro_handler__${i.length>0?i:`.mjs`}`),o=bn({fromDirectoryPath:r,toFilePath:a});await E(n,a),await O(n,xn({delegateImportPath:o,workflowRoutePath:e.workflowRoutePath}))}const wn=new Map;var Tn=class{#e;#t;config;#n=new WeakMap;constructor(e){this.config={buildTarget:`standalone`,dirs:[ne(`src/execution`)],externalPackages:[...on,...sn],projectRoot:e.appRoot,watch:e.watch,workingDir:e.rootDir},this.#e=e.compiledArtifactsBootstrapPath,this.#t=e.outDir}async build(e={}){let t=(wn.get(this.#t)??Promise.resolve()).then(()=>this.#r(e));wn.set(this.#t,t.catch(()=>{})),await t}async#r(e){await ze(this.#t);let t=await this.#i();if(t.length===0)throw Error(`Expected the execution workflow source file under "${ne(`src/execution`)}".`);let n=await this.findTsConfigPath();await S(this.#t,{recursive:!0});let r=await this.discoverEntries(t,this.#t,n),i=v(this.#t,`workflows.mjs`),{manifest:a}=await this.createWorkflowsBundle({discoveredEntries:r,keepInterimBundleContext:!1,outfile:i,bundleFinalOutput:!1,format:`esm`,inputFiles:t,tsconfigPath:n}),o=v(this.#t,`steps.mjs`),s=await zt({builtinsPath:h(`workflow/internal/builtins`),discoveredEntries:r,outfile:o,preferAbsoluteFileImports:!0,projectRoot:this.config.projectRoot??this.config.workingDir,workingDir:this.config.workingDir}),c=e.nitroStepOutfile;c!==void 0&&c!==o&&await zt({builtinsPath:h(`workflow/internal/builtins`),discoveredEntries:r,outfile:c,preferAbsoluteFileImports:!0,projectRoot:this.config.projectRoot??this.config.workingDir,workingDir:this.config.workingDir}),await En(i,o),await Dn(i),await On(i);let l=e.nitroWorkflowOutfile;l!==void 0&&l!==i&&(await S(_(l),{recursive:!0}),await In(i,l),c!==void 0&&(await En(l,c),await Dn(l),await On(l))),await this.createManifest({workflowBundlePath:v(this.#t,`workflows.mjs`),manifestDir:this.#t,manifest:{steps:{...s.steps,...a.steps},workflows:{...s.workflows,...a.workflows},classes:{...s.classes,...a.classes}}}),await A(this.#t)}get transformProjectRoot(){return this.config.projectRoot??this.config.workingDir}async findTsConfigPath(){let e=this.config.workingDir;for(;;){for(let t of[`tsconfig.json`,`jsconfig.json`]){let n=v(e,t);try{return await C(n),n}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}}let t=_(e);if(t===e)return;e=t}}async getInputFiles(){let e=this.config.dirs.map(e=>b(this.config.workingDir,e));return(await Promise.all(e.map(e=>wt(e)))).flat()}async discoverEntries(e,t,n){let r=this.#n.get(e);if(r!==void 0)return r;let i={discoveredSerdeFiles:[],discoveredSteps:[],discoveredWorkflows:[]};for(let t of e){let e=ut(await C(t,`utf8`));e.hasUseStep&&i.discoveredSteps.push(t),e.hasUseWorkflow&&i.discoveredWorkflows.push(t),e.hasSerde&&i.discoveredSerdeFiles.push(t)}return this.#n.set(e,i),i}async createWorkflowsBundle({bundleFinalOutput:e=!0,discoveredEntries:t,format:n=`cjs`,inputFiles:r,keepInterimBundleContext:i=this.config.watch,outfile:a,tsconfigPath:o}){let s=t??await this.discoverEntries(r,_(a),o),c=[...s.discoveredWorkflows].sort(),l=new Set(c),u=[...s.discoveredSerdeFiles].sort().filter(e=>!l.has(e)),d={},f=[...c.map(e=>Tt(e,this.config.workingDir)),...u.map(e=>Tt(e,this.config.workingDir))].join(`
58
+ `);return await At({bundleFinalOutput:e,code:fe(await me({cwd:this.config.workingDir,input:bt,platform:`neutral`,plugins:[Et(f),Dt(),Ot(this.config.workingDir,{workflowCondition:!0}),kt({manifest:d,projectRoot:this.transformProjectRoot,sideEffectFiles:[...c,...u],workingDir:this.config.workingDir})],resolve:{conditionNames:[`ash-source`,`workflow`,`node`,`import`,`default`],extensions:[`.ts`,`.tsx`,`.mts`,`.cts`,`.js`,`.jsx`,`.mjs`,`.cjs`],mainFields:[`module`,`main`]},tsconfig:o??!1,write:!1,output:{banner:`globalThis.__private_workflows = new Map();`,codeSplitting:!1,comments:!1,format:`cjs`,sourcemap:`inline`}}),`intermediate workflow bundle for "${a}"`).code,format:n,outfile:a,workingDir:this.config.workingDir}),i?{bundleFinal:async t=>{await At({bundleFinalOutput:e,code:t,format:n,outfile:a,workingDir:this.config.workingDir})},interimBundleCtx:void 0,manifest:d}:{manifest:d}}async createManifest({manifest:e,manifestDir:t}){let n={version:`1.0.0`,steps:jt(e.steps),workflows:Mt(e.workflows),classes:Nt(e.classes)},r=JSON.stringify(n,null,2);return await S(t,{recursive:!0}),await O(v(t,`manifest.json`),r),r}async buildVercelOutput(e){await this.build();let t=v(this.#t,`vercel-build-output`,`functions`,`.well-known`,`workflow`,`v1`),n=v(t,`flow.func`),r=v(e.outputDir,`functions`,`.well-known`,`workflow`,`v1`),i=v(e.flowNitroOutputDir,`functions`,`__server.func`),a=v(e.flowNitroOutputDir,`functions`,`.well-known`,`workflow`,`v1`,`flow.func`),o=v(r,`flow.func`),s=v(r,`step.func`),c=v(r,`webhook`,`[token].func`);await fn({fallbackPath:i,sourcePath:a,targetPath:n}),await Promise.all([this.#a(n,{experimentalTriggers:Array.from([ct]),maxDuration:`max`,runtime:e.runtime??null,shouldAddHelpers:!1}),x(v(this.#t,`manifest.json`),v(t,`manifest.json`))]),await Cn({functionDirectoryPath:n,workflowRoutePath:`/.well-known/workflow/v1/flow`}),await Promise.all([D(o,{force:!0,recursive:!0}),D(s,{force:!0,recursive:!0}),D(c,{force:!0,recursive:!0})]),await S(r,{recursive:!0}),await Promise.all([x(n,o,{recursive:!0}),x(v(t,`manifest.json`),v(r,`manifest.json`))])}async#i(){return[...await this.getInputFiles(),this.#e]}async#a(e,t){let n=v(e,`.vc-config.json`),r=await this.#o(n),i={...r};i.environment=cn(r.environment),t.runtime!==null&&(i.runtime=t.runtime),t.maxDuration!==void 0&&(i.maxDuration=t.maxDuration),t.shouldAddHelpers!==void 0&&(i.shouldAddHelpers=t.shouldAddHelpers),t.shouldAddSourcemapSupport!==void 0&&(i.shouldAddSourcemapSupport=t.shouldAddSourcemapSupport),t.experimentalTriggers!==void 0&&(i.experimentalTriggers=[...t.experimentalTriggers]),await O(n,`${JSON.stringify(i,null,2)}\n`)}async#o(e){try{let t=JSON.parse(await C(e,`utf8`));if(typeof t==`object`&&t)return t}catch{}return{}}};async function En(e,t){let n=await Pn(e);if(n===null||n.includes(`__ashWorkflowStepsRegistered`))return;let r=Nn(_(e),t),i=[`import { __steps_registered as __ashWorkflowStepsRegistered } from ${JSON.stringify(r)};`,`void __ashWorkflowStepsRegistered;`,``].join(`
59
+ `),a=n.match(/^import\s.+?;\n/m);if(a===null||a.index===void 0){await B(e,`${i}${n}`);return}let o=a.index+a[0].length;await B(e,`${n.slice(0,o)}${i}${n.slice(o)}`)}async function Dn(e){let t=await Pn(e);if(t===null)return;let n=t;for(let e of[`workflow`,`workflow/api`,`workflow/internal/builtins`,`workflow/internal/private`,`workflow/runtime`]){let t=Mn(h(e));n=jn(n,e,t)}n!==t&&await B(e,n)}async function On(e){let t=await Pn(e);if(t===null)return;let n=t.indexOf(`const workflowCode = `),r=t.lastIndexOf(`;
60
+
61
+ export const POST = workflowEntrypoint(workflowCode);`);if(n===-1||r===-1||r<=n)return;let i=n+21,a=t.slice(i,r);if(!a.trimStart().startsWith("`"))return;let o=An(a,e),s=`${t.slice(0,i)}${kn(o)}${t.slice(r)}`;s!==t&&await B(e,s)}function kn(e){let t=je.from(e,`utf8`).toString(`base64`).match(/.{1,16384}/g)??[``];return`Buffer.from(${JSON.stringify(t)}.join(""), "base64").toString("utf8")`}function An(e,t){let n=e.trim();if(!n.startsWith("`")||!n.endsWith("`"))throw Error(`Expected generated workflow code literal in "${t}" to be a template.`);let r=n.slice(1,-1),i=``;for(let e=0;e<r.length;e+=1){let t=r[e];if(t!==`\\`){i+=t;continue}let n=r[e+1];if(n===`\\`||n==="`"||n===`$`){i+=n,e+=1;continue}i+=t}return i}function jn(e,t,n){return e.replaceAll(JSON.stringify(t),JSON.stringify(n)).replaceAll(`'${t}'`,JSON.stringify(n))}function Mn(e){return n(e)}function Nn(e,t){let n=y(e,t).replaceAll(`\\`,`/`);return n.startsWith(`.`)?n:`./${n}`}async function Pn(e){try{return await C(e,`utf8`)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}}async function Fn(e){try{return await C(e)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}}async function In(e,t){let n=await C(e),r=await Fn(t);r!==null&&r.equals(n)||await B(t,n)}function Ln(e){return e.dev?{appRoot:e.appRoot,dev:e.dev,moduleMapLoaderPath:t(`src/internal/authored-module-map-loader.ts`)}:{appRoot:e.appRoot,dev:e.dev}}const Rn=`\0ash-pruned-local-sandbox-backend`,zn=/[/\\]bindings[/\\]local\.js$/;function Bn(){return{name:`ash-hosted-sandbox-backend-prune`,load(e){return e===Rn?[`export function createLocalSandboxBackend() {`,` throw new Error("The local sandbox backend is pruned from hosted server bundles.");`,`}`,``].join(`
62
+ `):null},resolveId(e){return zn.test(e)?Rn:null}}}const Vn=`${g}/runs`,Hn=`${g}/runs/:runId`,Un=`${g}/runs/:runId/steps`,Wn=`${g}/runs/:runId/events`,Gn=`#ash-channel/`;function Kn(e){let t=e.compileResult.manifest.channels,n=new Set,r=[],i=new Set,a=re();for(let e of t){if(e.kind===`disabled`){if(!a.has(e.name))throw Error(`agent/channels/${e.name}.ts exports disableRoute() but "${e.name}" is not a framework channel. Rename the file to one of: ${[...a].sort().join(`, `)}.`);i.add(e.name);continue}n.add(e.name),r.push({method:e.method,route:e.urlPath})}let o=se().filter(e=>!n.has(e.name)&&!i.has(e.name)).map(e=>({method:e.method,route:e.urlPath})),s=new Set,c=[];for(let e of[...o,...r]){let t=Yn(e);s.has(t)||(s.add(t),c.push(e))}return c}function qn(e,t){for(let n of t.registrations)Xn(e,{artifactsConfig:t.artifactsConfig,method:n.method,route:n.route})}function Jn(e,t){return $n(t.previous,t.next)?!1:(Zn(e),qn(e,{artifactsConfig:t.artifactsConfig,registrations:t.next}),e.routing.sync(),!0)}function Yn(e){return`${e.method.toUpperCase()} ${e.route}`}function Xn(e,n){let r=Yn(n),i=`${Gn}${r}`,a=c(t(`src/internal/nitro/routes/channel-dispatch.ts`));e.options.handlers.push({handler:i,method:n.method,route:n.route}),e.options.virtual[i]=[`import { dispatchChannelRequest } from ${a};`,`const config = ${JSON.stringify(n.artifactsConfig)};`,`export default (event) => dispatchChannelRequest(event, ${JSON.stringify(r)}, config);`].join(`
63
+ `)}function Zn(e){for(let t=e.options.handlers.length-1;t>=0;--t){let n=e.options.handlers[t];n!==void 0&&Qn(n)&&e.options.handlers.splice(t,1)}for(let t of Object.keys(e.options.virtual))t.startsWith(Gn)&&delete e.options.virtual[t]}function Qn(e){return e.handler.startsWith(Gn)}function $n(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(r===void 0||i===void 0||r.method!==i.method||r.route!==i.route)return!1}return!0}function er(e){return e===`all`||e===`app`}function tr(e){return U(e)}function U(e){return e===`all`||e===`flow`}function W(e,t){let n=`#ash-route-handler/${t.method??`ALL`} ${t.route}`,r=c(t.handlerPath);e.options.handlers.push({handler:n,method:t.method,route:t.route}),e.options.virtual[n]=[`import handler from ${r};`,`export default handler;`].join(`
64
+ `)}function G(e){return v(e.options.buildDir,`workflow`)}function nr(e,t){let n=y(e,t).replaceAll(`\\`,`/`);return n.startsWith(`.`)?n:`./${n}`}async function rr(e,t){let n=v(G(e),`${t.bundleName}-handler.mjs`),r=_(n),i=nr(r,t.bundlePath),a=(t.directHandlers??[]).map(e=>{let t=nr(r,e.bundlePath);return{importSpecifier:t,isOwnBundle:t===i,queuePrefix:e.queuePrefix}});await S(r,{recursive:!0}),await O(n,ir({bundlePath:i,directHandlers:a,runtimeImportSpecifier:t.runtimeImportSpecifier})),e.options.handlers.push({handler:n,route:t.route})}function ir(e){let t=[`// Generated by Ash. Do not edit by hand.`,`import { POST } from ${JSON.stringify(e.bundlePath)};`];if(e.directHandlers.length>0&&e.runtimeImportSpecifier!==void 0){let n=0,r=e.directHandlers.map(e=>{if(e.isOwnBundle)return{...e,binding:`POST`};let t=`__ashWorkflowDirectHandler${n}`;return n+=1,{...e,binding:t}});for(let e of r)e.isOwnBundle||t.push(`import { POST as ${e.binding} } from ${JSON.stringify(e.importSpecifier)};`);t.push(`import { getWorld as __ashGetWorkflowWorld } from ${JSON.stringify(e.runtimeImportSpecifier)};`,``,`try {`,` const __ashWorkflowWorld = await __ashGetWorkflowWorld();`,` if (typeof __ashWorkflowWorld?.registerHandler === "function") {`);for(let e of r)t.push(` __ashWorkflowWorld.registerHandler(${JSON.stringify(e.queuePrefix)}, ${e.binding});`);t.push(` }`,`} catch (err) {`,` console.warn("[ash] Failed to register direct workflow queue handlers:", err);`,`}`)}return t.push(``,`export default async ({ req }) => {`,` return await POST(req);`,`};`,``),t.join(`
65
+ `)}function ar(e,t){let n=`#ash-route${t.route}`,r=c(t.modulePath);e.options.handlers.push({handler:n,method:t.method,route:t.route}),e.options.virtual[n]=[`import { ${t.handlerExport} } from ${r};`,`export default async (event) => ${t.handlerExport}(${t.args}, event.req);`].join(`
66
+ `)}async function or(e,r,i){if(tr(i.surface)){let t=o(),n=new Tn({appRoot:r.appRoot,compiledArtifactsBootstrapPath:r.compiledArtifacts.bootstrapPath,outDir:r.workflowBuildDir,rootDir:t,watch:e.options.dev}),a=Promise.resolve(),s=async()=>{await n.build({nitroStepOutfile:U(i.surface)?v(G(e),`steps.mjs`):void 0,nitroWorkflowOutfile:e.options.dev&&U(i.surface)?v(G(e),`workflows.mjs`):void 0})},c=async()=>{let e=a.then(s);a=e.catch(()=>{}),await e},l=!0;await c(),e.hooks.hook(`build:before`,async()=>{if(l){l=!1;return}await c()}),e.options.dev&&e.hooks.hook(`dev:reload`,async()=>{await c()})}let a=Ln({appRoot:r.appRoot,dev:e.options.dev});er(i.surface)&&(W(e,{handlerPath:t(`src/internal/nitro/routes/index.ts`),method:`GET`,route:`/`}),W(e,{handlerPath:t(`src/internal/nitro/routes/health.ts`),method:`GET`,route:ye}),ar(e,{args:JSON.stringify({appRoot:a.appRoot}),handlerExport:`handleAgentInfoRequest`,method:`GET`,modulePath:t(`src/internal/nitro/routes/info.ts`),route:ve}),W(e,{handlerPath:t(`src/internal/nitro/routes/workflow-runs.ts`),method:`GET`,route:Vn}),W(e,{handlerPath:t(`src/internal/nitro/routes/workflow-run.ts`),method:`GET`,route:Hn}),W(e,{handlerPath:t(`src/internal/nitro/routes/workflow-run-steps.ts`),method:`GET`,route:Un}),W(e,{handlerPath:t(`src/internal/nitro/routes/workflow-run-events.ts`),method:`GET`,route:Wn}),qn(e,{artifactsConfig:a,registrations:Kn(r)}));let s=G(e),c=U(i.surface)?e.options.dev?v(s,`workflows.mjs`):v(r.workflowBuildDir,`workflows.mjs`):void 0,l=e.options.dev&&c!==void 0?[{bundlePath:c,queuePrefix:`__wkf_workflow_`}]:[],u=l.length>0?n(h(`workflow/runtime`)):void 0;c&&await rr(e,{bundleName:`workflows`,bundlePath:c,directHandlers:l,route:`/.well-known/workflow/v1/flow`,runtimeImportSpecifier:u}),e.routing.sync()}function sr(){return`${g}/cron/${Oe()}`}function cr(e){e.options.vercel!==void 0&&(e.options.vercel.cronHandlerRoute=sr())}function lr(e){return{plugins:[pe(),...e]}}function ur(e){e.hooks.hook(`rollup:before`,(e,t)=>{Array.isArray(t.plugins)&&t.plugins.unshift({name:`ash:nitro-routing-import-specifiers`,transform(e,t){if(t!==`#nitro/virtual/routing`&&t!==`#nitro/virtual/routing-meta`)return null;let n=le(e);return n===e?null:{code:n,map:null}}})})}const dr=`ash.schedule.`;var fr=class extends Error{scheduleId;sourceId;taskName;constructor(e,t={}){super(e),this.name=`ScheduleRegistrationError`,t.scheduleId!==void 0&&(this.scheduleId=t.scheduleId),t.sourceId!==void 0&&(this.sourceId=t.sourceId),t.taskName!==void 0&&(this.taskName=t.taskName)}};function pr(e){let t=e.map(e=>({cron:e.cron,description:`Run Ash schedule "${e.name}" from "${e.logicalPath}".`,logicalPath:e.logicalPath,scheduleId:e.name,sourceId:e.sourceId,taskName:hr(e.sourceId)})).sort((e,t)=>e.sourceId.localeCompare(t.sourceId));return mr(t),t}function mr(e){let t=new Map;for(let n of e){let e=t.get(n.scheduleId);if(e===void 0){t.set(n.scheduleId,n);continue}throw new fr(`Duplicate authored schedule id "${n.scheduleId}" found in "${e.logicalPath}" and "${n.logicalPath}".`,{scheduleId:n.scheduleId,sourceId:n.sourceId,taskName:n.taskName})}}function hr(e){return`${dr}${Buffer.from(e,`utf8`).toString(`base64url`)}`}const gr=`#ash-schedule-task/`;function _r(e,t){if(t.registrations.length!==0){e.options.experimental.tasks=!0;for(let n of t.registrations)br(e,{artifactsConfig:t.artifactsConfig,dispatchModulePath:t.dispatchModulePath,registration:n})}}function vr(e,t){let n=!Cr(t.previous,t.next);return yr(e),_r(e,{artifactsConfig:t.artifactsConfig,dispatchModulePath:t.dispatchModulePath,registrations:t.next}),n}function yr(e){for(let t of Object.keys(e.options.tasks))t.startsWith(`ash.schedule.`)&&delete e.options.tasks[t];for(let t of Object.keys(e.options.virtual))t.startsWith(gr)&&delete e.options.virtual[t];for(let[t,n]of Object.entries(e.options.scheduledTasks)){let r=Sr(n).filter(e=>!e.startsWith(dr));if(r.length===0){delete e.options.scheduledTasks[t];continue}if(r.length===1){let[n]=r;n!==void 0&&(e.options.scheduledTasks[t]=n);continue}e.options.scheduledTasks[t]=r}}function br(e,t){let n=`${gr}${t.registration.taskName}`,r=c(t.dispatchModulePath);e.options.tasks[t.registration.taskName]={description:t.registration.description,handler:n},e.options.virtual[n]=[`import { dispatchScheduleTask } from ${r};`,`const config = ${JSON.stringify(t.artifactsConfig)};`,`export default {`,` meta: { description: ${JSON.stringify(t.registration.description)} },`,` async run(event) {`,` return { result: await dispatchScheduleTask(event.name, config) };`,` },`,`};`].join(`
67
+ `),xr(e,t.registration.cron,t.registration.taskName)}function xr(e,t,n){let r=e.options.scheduledTasks[t];if(r===void 0){e.options.scheduledTasks[t]=n;return}if(typeof r==`string`){e.options.scheduledTasks[t]=[r,n];return}r.includes(n)||r.push(n)}function Sr(e){return typeof e==`string`?[e]:[...e]}function Cr(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(r===void 0||i===void 0||r.cron!==i.cron||r.description!==i.description||r.logicalPath!==i.logicalPath||r.scheduleId!==i.scheduleId||r.sourceId!==i.sourceId||r.taskName!==i.taskName)return!1}return!0}const wr=`@alinea/generated.@appsignal/nodejs.@aws-sdk/client-s3.@aws-sdk/s3-presigned-post.@blockfrost/blockfrost-js.@highlight-run/node.@huggingface/transformers.@jpg-store/lucid-cardano.@libsql/client.@mikro-orm/core.@mikro-orm/knex.@node-rs/argon2.@node-rs/bcrypt.@prisma/client.@react-pdf/renderer.@sentry/profiling-node.@sparticuz/chromium.@sparticuz/chromium-min.@statsig/statsig-node-core.@swc/core.@xenova/transformers.@zenstackhq/runtime.argon2.autoprefixer.aws-crt.bcrypt.better-sqlite3.canvas.chromadb-default-embed.config.cpu-features.cypress.dd-trace.eslint.express.firebase-admin.htmlrewriter.import-in-the-middle.isolated-vm.jest.jsdom.keyv.libsql.mdx-bundler.mongodb.mongoose.newrelic.next-mdx-remote.next-seo.node-cron.node-pty.node-web-audio-api.onnxruntime-node.oslo.pg.pino.pino-pretty.pino-roll.playwright.playwright-core.postcss.prettier.prisma.puppeteer.puppeteer-core.ravendb.require-in-the-middle.rimraf.sharp.shiki.sqlite3.thread-stream.ts-morph.ts-node.typescript.vscode-oniguruma.webpack.websocket.zeromq`.split(`.`);function Tr(e){if(e)return{config:{version:3,framework:{version:r().version}}}}const Er=[`workflow`,`workflow/api`,`workflow/errors`,`workflow/internal/builtins`,`workflow/internal/private`,`workflow/runtime`],Dr=Symbol(`ash.workflow-transform-patched`),Or=[`@napi-rs/keyring`];function kr(){let e={};for(let t of Er)e[t]=h(t);return e}function Ar(e){if(!e&&process.env.VERCEL)return`vercel`}function jr(e){return e===`all`||e===`app`}function Mr(e){return e===`all`||e===`flow`}function Nr(e){return Mr(e)}function Pr(e,t){return e.options.dev?v(e.options.buildDir,`workflow`,`steps.mjs`):v(t.workflowBuildDir,`steps.mjs`)}function Fr(e){let t=e.compileResult.manifest.config.build;return[...new Set([...Or,...wr,...t?.externalDependencies??[]])].filter(e=>e!==a)}function K(e){return e.replaceAll(`\\`,`/`)}function Ir(e){let t=e.indexOf(`?`),n=e.indexOf(`#`),r=t===-1?n:n===-1?t:Math.min(t,n);return r===-1?e:e.slice(0,r)}function Lr(e){return e.startsWith(`/@fs/`)?e.slice(4):e}function q(e,t){return t.startsWith(`file://`)?K(Lr(Ir(Ae(t)))):Ce(t)?K(Lr(Ir(t))):K(Lr(Ir(b(e,t))))}function Rr(e,t){let n=K(e);return n.startsWith(t)||n.includes(`/.ash/workflow-cache/`)}function zr(e){let t=K(e);return process.platform===`win32`?t.toLowerCase():t}function Br(e){let t=/^\s*import\s+(?:.+?\s+from\s+)?["']([^"']+)["'];?\s*$/gm,n=[];for(let r of e.matchAll(t)){let e=r[1];e!==void 0&&n.push(e)}return n}function Vr(e,t,n){return t.startsWith(`workflow`)?h(t):t.startsWith(`.`)||t.startsWith(`/`)||t.startsWith(`file://`)?q(n===void 0?e:_(q(e,n)),t):null}async function Hr(e,t){let n=await C(e,`utf8`),r=new Set;for(let i of Br(n)){let n=Vr(t,i,e);n!==null&&r.add(zr(n))}return r}async function Ur(e,t){if(e.options.noExternals===!0)return;let n;try{n=await Hr(t,e.options.rootDir)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return;throw e}let r=Array.isArray(e.options.noExternals)?[...e.options.noExternals]:[];e.options.noExternals=[...new Set([...r,...n])]}function Wr(e,t){let n=K(e).replace(/\/$/,``),r=K(t),i=n.toLowerCase(),a=r.toLowerCase();if(a.startsWith(`${i}/`))return r.slice(n.length+1);if(a===i)return`.`;let o=y(n,r).replaceAll(`\\`,`/`);if(o.startsWith(`../`)&&(o=o.split(`/`).filter(e=>e!==`..`).join(`/`)),o.includes(`:`)||o.startsWith(`/`)){let e=r.split(`/`).pop();return e===void 0||e.length===0?`unknown.ts`:e}return o}function Gr(e,t){let n=[t,v(e.options.buildDir,`workflow`)].map(t=>q(e.options.rootDir,t));e.hooks.hook(`rollup:before`,(t,r)=>{Array.isArray(r.plugins)&&r.plugins.unshift({name:`ash:workflow-module-side-effects`,resolveId(t,r){let i=Vr(e.options.rootDir,t,r)??q(e.options.rootDir,t);return n.some(e=>Rr(i,e))?{id:i,moduleSideEffects:`no-treeshake`}:null}})})}function Kr(e,t){let n=null,r=async()=>(n===null&&(n=await Hr(t.stepEntrypointPath,e.options.rootDir)),n);e.hooks.hook(`build:before`,()=>{n=null}),e.options.dev&&e.hooks.hook(`dev:reload`,()=>{n=null}),e.hooks.hook(`rollup:before`,(t,n)=>{Array.isArray(n.plugins)&&n.plugins.unshift({name:`ash:workflow-step-module-side-effects`,async resolveId(t,n){let i=Vr(e.options.rootDir,t,n);return i===null||!(await r()).has(zr(i))?null:{id:i,moduleSideEffects:`no-treeshake`}}})})}function qr(e,t){let n=null,r=async()=>(n===null&&(n=await Hr(t.stepEntrypointPath,e.options.rootDir)),n);e.hooks.hook(`build:before`,()=>{n=null}),e.options.dev&&e.hooks.hook(`dev:reload`,()=>{n=null}),e.hooks.hook(`rollup:before`,(t,n)=>{Array.isArray(n.plugins)&&n.plugins.unshift({async transform(t,n){let i=await r(),a=q(e.options.rootDir,n);return i.has(zr(a))?{code:(await N(Wr(e.options.rootDir,a),t,`step`,a,e.options.rootDir)).code,map:null}:null},name:`ash:workflow-step-transform`})})}function Jr(e,t){let n=K(t);e.hooks.hook(`rollup:before`,(e,t)=>{Array.isArray(t.plugins)&&t.plugins.unshift({name:`ash:instrumentation-module-side-effects`,resolveId(e){return K(e)===n?{id:e,moduleSideEffects:`no-treeshake`}:null}})})}function Yr(e,t){let n=K(t);e.hooks.hook(`rollup:before`,(e,t)=>{if(Array.isArray(t.plugins))for(let e of t.plugins){if(typeof e!=`object`||!e)continue;let t=e;if(t.name!==`workflow:transform`||t[Dr]===!0||typeof t.transform!=`function`)continue;let r=t.transform;t.transform=function(e,t,...i){return Rr(t,n)?null:r.call(this,e,t,...i)},t[Dr]=!0}})}async function J(e,n,r={}){let i=r.surface??`all`,a=(!n||r.schedules===!0)&&jr(i)&&e.scheduleRegistrations.length>0,o=Ar(n),s=o===`vercel`?Bn():null,c=s===null?[]:[s],l=lr(c),u=lr(c),d=Fr(e),f=oe(e.appRoot,i),p=e.compiledArtifacts.instrumentationPluginPath===void 0?[e.compiledArtifacts.bootstrapPath]:[e.compiledArtifacts.instrumentationPluginPath,e.compiledArtifacts.bootstrapPath];await ze(f);let m=await Fe({_cli:{command:n?`dev`:`build`},buildDir:f,dev:n,logLevel:n?1:void 0,output:r.outputDir===void 0?void 0:{dir:r.outputDir},preset:o,plugins:p,publicAssets:[],scanDirs:Nr(i)?[ne(`src/execution`)]:void 0,rolldownConfig:l,rollupConfig:u,rootDir:e.appRoot,serverDir:!1,traceDeps:d,vercel:Tr(o===`vercel`&&jr(i))},n?{watch:!0}:void 0);if(await A(f),ur(m),Mr(i)){let t=kr();for(let[e,n]of Object.entries(t))m.options.alias[e]=n;Gr(m,e.workflowBuildDir),Yr(m,e.workflowBuildDir)}if(Nr(i)){let t=Pr(m,e);Kr(m,{stepEntrypointPath:t}),qr(m,{stepEntrypointPath:t})}if(e.compiledArtifacts.instrumentationSourcePath!==void 0&&Jr(m,e.compiledArtifacts.instrumentationSourcePath),n&&Mr(i)){let t=e.workflowBuildDir,n=new Set([K(v(t,`workflows.mjs`))]);m.hooks.hook(`rollup:before`,(e,t)=>{let r=t.external;t.external=(e,...t)=>{if(n.has(K(e)))return!0;if(typeof r==`function`)return r(e,...t)}})}return a&&(cr(m),_r(m,{artifactsConfig:Ln({appRoot:e.appRoot,dev:m.options.dev}),dispatchModulePath:t(`src/internal/nitro/routes/schedule-task.ts`),registrations:e.scheduleRegistrations})),await or(m,e,{surface:i}),Nr(i)&&await Ur(m,Pr(m,e)),m}function Xr(e){if(typeof e!=`string`||e.length===0)return`unknown`;let t=e.toLowerCase();return t===`slack`||t.includes(`slack`)?`slack`:t===`http`?`http`:t.includes(`webhook`)?`webhook`:`unknown`}function Zr(e){let{manifest:t}=e;return{kind:`vercel-ash-agent-summary`,schemaVersion:2,generatorVersion:e.generatorVersion??r().version,agent:{name:t.config.name,description:t.config.description,modelId:t.config.model.id},instructions:t.instructions?ei(t.instructions):null,schedules:t.schedules.map(ti),tools:t.tools.map(ni),skills:t.skills.map(ri),connections:t.connections.map(ii),channels:t.channels.filter($r).map(ai),sandbox:t.sandbox===null?null:{logicalPath:t.sandbox.logicalPath},subagents:t.subagents.map(oi),diagnostics:{errors:t.diagnosticsSummary.errors,warnings:t.diagnosticsSummary.warnings}}}async function Qr(e){let t=Zr({generatorVersion:e.generatorVersion,manifest:e.manifest}),n=v(e.appRoot,`.ash/agent-summary.json`);return await S(_(n),{recursive:!0}),await O(n,`${JSON.stringify(t,null,2)}\n`),n}function $r(e){return e.kind===`channel`}function ei(e){return{logicalPath:e.logicalPath,sourceKind:e.sourceKind,markdown:e.markdown}}function ti(e){return{name:e.name,cron:e.cron,logicalPath:e.logicalPath}}function ni(e){return{name:e.name,description:e.description,logicalPath:e.logicalPath}}function ri(e){return{name:e.name,description:e.description,logicalPath:e.logicalPath,sourceKind:e.sourceKind}}function ii(e){let t={name:e.connectionName,description:e.description,url:e.url,logicalPath:e.logicalPath,type:`mcp`};return e.vercelConnect===void 0?t:{...t,vercelConnect:{connector:e.vercelConnect.connector}}}function ai(e){let t={name:e.name,method:e.method,urlPath:e.urlPath,type:Xr(e.adapterKind),logicalPath:e.logicalPath};return e.adapterKind===void 0?t:{...t,adapterKind:e.adapterKind}}function oi(e){return{name:e.name,description:e.description,logicalPath:e.logicalPath}}async function si(e){return[...e.manifest.schedules].map(e=>{let t={cron:e.cron,hasRun:e.hasRun,logicalPath:e.logicalPath,name:e.name,sourceId:e.sourceId,sourceKind:e.sourceKind};return e.markdown===void 0?t:{...t,markdown:e.markdown}})}async function ci(e){return await si({manifest:await p({compiledArtifactsSource:e.compiledArtifactsSource})})}async function li(e){let n=v(e.outDir,`compiled-artifacts-bootstrap.mjs`),r=v(e.outDir,`compiled-artifacts-instrumentation.mjs`),i=di(e.compileResult.manifest.agentRoot);await S(e.outDir,{recursive:!0}),await O(n,await pi({compileResult:e.compileResult,installModulePath:t(`src/runtime/loaders/bundled-artifacts.ts`),moduleMapPath:n,metadata:e.compileResult.metadata})),i!==void 0&&await O(r,mi({agentName:e.compileResult.manifest.config.name,instrumentationPath:i,registerConfigPath:t(`src/harness/instrumentation-config.ts`)}));let a={bootstrapPath:n};return i!==void 0&&(a.instrumentationPluginPath=r,a.instrumentationSourcePath=i),a}const ui=[`.ts`,`.mts`,`.js`,`.mjs`];function di(e){for(let t of ui){let n=v(e,`instrumentation${t}`);if(k(n))return n}}function fi(e){return e.replace(/^export const moduleMap = /m,`const moduleMap = `).replace(/\nexport default moduleMap;\n?$/,`
68
+ `)}async function pi(e){let t=fi(s({importSpecifierStyle:`absolute`,manifest:e.compileResult.manifest,moduleMapPath:e.moduleMapPath})).trim();return[`// Generated by Ash. Do not edit by hand.`,`import { installBundledCompiledArtifacts } from ${c(e.installModulePath)};`,``,t,``,`const metadata = ${JSON.stringify(e.metadata,null,2)};`,``,`const manifest = ${JSON.stringify(e.compileResult.manifest,null,2)};`,``,`export function installCompiledArtifactsBootstrap() {`,` installBundledCompiledArtifacts({`,` manifest,`,` metadata,`,` moduleMap,`,` });`,`}`,``,`installCompiledArtifactsBootstrap();`,``,`// Default export satisfies the Nitro plugin contract so this file`,`// can be used directly as a Nitro plugin without a separate wrapper.`,`export default function installCompiledArtifactsPlugin() {`,` // Already installed on import above.`,`}`,``,`export async function __ashInstallCompiledArtifactsStep() {`,` "use step";`,` return null;`,`}`,``].join(`
69
+ `)}function mi(e){return[`// Generated by Ash. Do not edit by hand.`,`import * as instrumentationModule from ${c(e.instrumentationPath)};`,`import { registerInstrumentationConfig } from ${c(e.registerConfigPath)};`,``,`if (instrumentationModule.default != null) {`,` registerInstrumentationConfig(instrumentationModule.default, { agentName: ${JSON.stringify(e.agentName)} });`,`}`,``,`// Default export satisfies the Nitro plugin contract so this file`,`// can be used directly as a Nitro plugin without a separate wrapper.`,`export default function installInstrumentationPlugin() {}`,``].join(`
70
+ `)}function hi(e){return m(e,{moduleMapLoaderPath:t(`src/internal/authored-module-map-loader.ts`)})}async function gi(e){let t=await ge({startPath:e}),n=await ci({compiledArtifactsSource:hi(t.project.appRoot)}),r=pr(n),i=u(t.project.appRoot),a=await li({compileResult:t,outDir:t.paths.compileDirectoryPath});return{appRoot:t.project.appRoot,compileResult:t,compiledArtifacts:a,scheduleRegistrations:r,schedules:n,workflowBuildDir:i}}async function _i(e){return await vi(await p({compiledArtifactsSource:e.compiledArtifactsSource}))}async function vi(e){let t={},n=[{agentRoot:e.agentRoot,manifest:e,nodeId:i},...[...e.subagents].sort((e,t)=>e.nodeId.localeCompare(t.nodeId)).map(e=>({agentRoot:e.agent.agentRoot,manifest:e.agent,nodeId:e.nodeId}))];for(let e of n)t[e.nodeId]={modules:await yi({agentRoot:e.agentRoot,manifest:e.manifest})};return{nodes:t}}async function yi(e){let t=ue(e.manifest).sort((e,t)=>e.sourceId.localeCompare(t.sourceId)),n={};for(let r of t){let t=v(e.agentRoot,r.logicalPath);n[r.sourceId]=await he(t)}return n}async function bi(e){let t=await xi(e.backendName,e.compiledArtifactsSource),n=await Si({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId,sourceId:e.sourceId}),i=Y(`${r().version}:2:${n}`).slice(0,20);return Ci(`ash-sbx-tpl-${e.backendName}-${t}-${i}`)}async function xi(e,t){if(e===`vercel`){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim();if(e!==void 0&&e.length>0)return Y(e).slice(0,16)}let n=l(t);return n===void 0?Y(ce(t)).slice(0,16):Y(await T(n)).slice(0,16)}async function Si(e){return Y(`${(await ie({compiledArtifactsSource:e.compiledArtifactsSource}))?.discovery.sourceGraphHash??ce(e.compiledArtifactsSource)}:${e.nodeId}:${e.sourceId}`)}function Y(e){return De(`sha256`).update(e).digest(`hex`)}function Ci(e){return e.replaceAll(/[^a-zA-Z0-9._-]+/g,`-`).slice(0,120)}async function wi(e){let t=[];return await Ti({files:t,logicalDirectoryPath:`.`,sourceDirectoryPath:e}),t.sort((e,t)=>e.path.localeCompare(t.path)),t}async function Ti(e){let t=await w(e.sourceDirectoryPath,{withFileTypes:!0});for(let n of t){if(!n.isDirectory()&&!n.isFile())continue;let t=v(e.sourceDirectoryPath,n.name),r=we.join(e.logicalDirectoryPath,n.name);if(n.isDirectory()){await Ti({files:e.files,logicalDirectoryPath:r,sourceDirectoryPath:t});continue}e.files.push({content:await C(t),path:we.join(f,r)})}}async function Ei(e){let t=await Di(e);if(t.length===0)return;e.log?.(`Ash: initializing ${t.length} sandbox ${ji(t.length,`template`)}...`);let n=e.dispatch??(async({backend:e,input:t})=>{await e.prewarm(t)});await Promise.all(t.map(async({backend:t,label:r,input:i})=>{e.log?.(`Ash: initializing sandbox template "${r}"...`);try{await n({backend:t,input:i})}catch(n){throw e.log?.(`Ash: failed to initialize sandbox template "${r}" on backend "${t.name}": ${_e(n)}`),n}e.log?.(`Ash: sandbox template "${r}" initialized.`)})),e.log?.(`Ash: initialized ${t.length} sandbox ${ji(t.length,`template`)}.`)}async function X(e){let t=hi(e.appRoot),n=await(e.loadAgentGraph??ki)({compiledArtifactsSource:t});await Ei({compiledArtifactsSource:t,dispatch:e.dispatch,graph:n,log:e.log})}async function Di(e){let t=ee(e.compiledArtifactsSource.appRoot).compileDirectoryPath,n={appRoot:e.compiledArtifactsSource.appRoot};return[...await Promise.all(Ai(e.graph).map(async({definition:r,nodeId:i,workspaceResourceRoot:a})=>{let o=await bi({backendName:r.backend.name,compiledArtifactsSource:e.compiledArtifactsSource,nodeId:i,sourceId:r.sourceId});return{backend:r.backend,label:Mi(i),input:{bootstrap:r.bootstrap,seedFiles:await Oi({compileDirectoryPath:t,workspaceResourceRoot:a}),runtimeContext:n,templateKey:o}}}))].sort((e,t)=>e.label.localeCompare(t.label))}async function Oi(e){return e.workspaceResourceRoot.rootEntries.length===0?[]:(await wi(`${e.compileDirectoryPath}/${e.workspaceResourceRoot.logicalPath}`)).map(e=>({content:e.content,path:e.path}))}async function ki(e){let[t,n]=await Promise.all([p({compiledArtifactsSource:e.compiledArtifactsSource}),_i({compiledArtifactsSource:e.compiledArtifactsSource})]);return await d({manifest:t,moduleMap:n})}function Ai(e){return[...e.nodesByNodeId.entries()].flatMap(([e,t])=>{let n=t.sandboxRegistry.sandbox;return n===null?[]:[{...n,nodeId:e}]})}function ji(e,t){return e===1?t:`${t}s`}function Mi(e){return e===`__root__`?`root`:e}function Ni(){let e=process.env.VERCEL?.trim(),t=process.env.VERCEL_DEPLOYMENT_ID?.trim();return typeof e==`string`&&e.length>0&&typeof t==`string`&&t.length>0}async function Pi(e){return Ni()?(await X(e),!0):!1}function Fi(e){return e.replace(/[\\/]+$/,``)}function Ii(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Li(e,t){return typeof t!=`string`||t.trim().length===0?null:b(e,t)}function Ri(e){if(!Ii(e.config)||!Ii(e.config.experimentalServices))return;let t=!1,n;for(let r of Object.values(e.config.experimentalServices)){if(!Ii(r))continue;if(r.framework===`nextjs`){t=!0;continue}if(r.framework!==`ash`)continue;let i=Li(e.configRoot,r.entrypoint),a=typeof r.routePrefix==`string`?r.routePrefix.trim():``;i===e.appRoot&&a.length>0&&a!==`/`&&(n=a)}return t?n:void 0}async function zi(e){let t=e;for(;;){try{let n=v(t,`vercel.json`),r=JSON.parse(await C(n,`utf8`)),i=Ri({appRoot:e,configRoot:t,config:r});if(i!==void 0)return i}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}let n=_(t);if(n===t)return;t=n}}async function Bi(e){try{return JSON.parse(await C(v(e,`functions`,`__server.func`,`.vc-config.json`),`utf8`)).runtime}catch{return}}async function Vi(e){let t=new Tn({appRoot:e.appRoot,compiledArtifactsBootstrapPath:e.compiledArtifactsBootstrapPath,outDir:e.workflowBuildDir,rootDir:o(),watch:!1}),n=await Bi(e.outputDir);await t.buildVercelOutput({flowNitroOutputDir:e.flowNitroOutputDir,outputDir:e.outputDir,runtime:n})}async function Hi(e){let t=Fi(e.options.output.dir);return await ze(t),await Ie(e),await Ne(e),await Le(e),await Me(e),await A(t),t}async function Ui(e,t){let n=await J(e,!1,{outputDir:te(e.appRoot,t),surface:t});try{return await Hi(n)}finally{await n.close()}}async function Wi(e){let t=await gi(e);if(!process.env.VERCEL){let e=await J(t,!1);try{let n=await Hi(e);return await Qr({manifest:t.compileResult.manifest,appRoot:t.appRoot}),n}finally{await e.close()}}let n=await J(t,!1,{surface:`app`});try{let e=await Hi(n);await Pi({appRoot:t.appRoot,log(e){console.log(e)}});let r=await Ui(t,`flow`);await Vi({appRoot:t.appRoot,compiledArtifactsBootstrapPath:t.compiledArtifacts.bootstrapPath,flowNitroOutputDir:r,outputDir:e,workflowBuildDir:t.workflowBuildDir});let i=await zi(t.appRoot);return i!==void 0&&await pn(e,{servicePrefix:i}),await Qr({manifest:t.compileResult.manifest,appRoot:t.appRoot}),e}finally{await n.close()}}const Z=65535,Q=`WORKFLOW_LOCAL_BASE_URL`,$=`PORT`,Gi=new Set([`[::]`,`::`,`0.0.0.0`]);function Ki(e){let t=new URL(e);return Gi.has(t.hostname)?(t.hostname=`127.0.0.1`,t.toString()):e}function qi(e){return e instanceof Error&&`code`in e&&e.code===`EADDRINUSE`}function Ji(e){let t=typeof e==`string`?Number(e):e??3e3;if(!Number.isInteger(t)||t<0||t>Z)throw Error(`Invalid development server port "${String(e)}". Expected an integer between 0 and ${Z}.`);return t}function Yi(){let e=process.env[$];if(e===void 0||e.trim()===``)return;let t=Number(e);if(!Number.isInteger(t)||t<0||t>Z)throw Error(`Invalid ${$} environment variable "${e}". Expected an integer between 0 and ${Z}.`);return t}function Xi(e){let t=Ji(e.port);if(t===0||!e.retryOnAddressInUse)return[t];let n=[];for(let e=0;e<10;e+=1){let r=t+e;if(r>65535)break;n.push(r)}return n}function Zi(e){let t=process.env[Q],n=process.env[$],r=new URL(Ki(e));return process.env[Q]=r.origin,r.port&&(process.env[$]=r.port),()=>{t===void 0?delete process.env[Q]:process.env[Q]=t,n===void 0?delete process.env[$]:process.env[$]=n}}function Qi(e){let t=()=>{};return e.once(`error`,t),()=>{e.off(`error`,t)}}function $i(e){let t=e.upgrade.bind(e);e.upgrade=async(e,n,r)=>{let i=Qi(n);try{await t(e,n,r)}catch{n.destroyed||n.destroy()}finally{i()}}}async function ea(e){let t=Xi({port:e.port,retryOnAddressInUse:e.retryOnAddressInUse}),n;for(let r of t){let t=e.devServer.listen({hostname:e.host,port:r,silent:!0});try{return await t.ready(),t}catch(r){if(n=r,await t.close().catch(()=>{}),!qi(r)||!e.retryOnAddressInUse)throw r}}throw Error(`Failed to start Nitro dev server after ${t.length} attempts. Tried ports ${t.join(`, `)}.`,{cause:n})}async function ta(e,t={}){let n=t.schedules===!0;be(e);let r=await gi(e);await X({appRoot:r.appRoot,log:e=>console.log(e)});let i=await J(r,!0,{schedules:n}),a=Pe(i);$i(a);let o=t.host??i.options.devServer.hostname,s=t.port??Yi(),c=s??i.options.devServer.port,l=s===void 0,u;try{let e=await ea({devServer:a,host:o,port:c,retryOnAddressInUse:l});if(!e.url)throw Error(`Nitro dev server did not expose a URL.`);u=Zi(e.url),await Ie(i),await Me(i);let{startAuthoredSourceWatcher:t}=await import(`./dev-authored-source-watcher-C1WUVv9F.js`),s=await t({nitro:i,preparedHost:r,schedulesEnabled:n}),d=u;if(d===void 0)throw Error(`Workflow local queue environment was not initialized.`);return{async close(){try{await s.close(),await a.close(),await i.close()}finally{d()}},url:Ki(e.url)}}catch(e){throw u?.(),await a.close().catch(()=>{}),await i.close().catch(()=>{}),e}}var na=e({buildApplication:()=>Wi,startDevelopmentServer:()=>ta});export{vr as a,Ln as c,gi as i,ta as n,Kn as o,X as r,Jn as s,na as t};