@netlify/agent-runner-cli 1.179.0-cancel-fields.0 → 1.179.1-cancel-fields.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin-local.js CHANGED
@@ -141,7 +141,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
141
141
  `,LF:`
142
142
  `,concatBytes:sj},I6e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},P6e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:I6e};import{Buffer as O6e}from"buffer";var Cue=(t,e)=>t?void 0:N6e.bind(void 0,e),N6e=function*(t,e){if(typeof e!="string"&&!Er(e)&&!O6e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Iue=(t,e)=>t?k6e.bind(void 0,e):M6e.bind(void 0,e),k6e=function*(t,e){Pue(t,e),yield e},M6e=function*(t,e){if(Pue(t,e),typeof e!="string"&&!Er(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Pue=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
143
143
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
144
- if (condition) { yield value; }`)};import{Buffer as $6e}from"buffer";import{StringDecoder as D6e}from"string_decoder";var RC=(t,e,r)=>{if(r)return;if(t)return{transform:L6e.bind(void 0,new TextEncoder)};let n=new D6e(e);return{transform:U6e.bind(void 0,n),final:F6e.bind(void 0,n)}},L6e=function*(t,e){$6e.isBuffer(e)?yield Fa(e):typeof e=="string"?yield t.encode(e):yield e},U6e=function*(t,e){yield Er(e)?t.write(e):e},F6e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Oue}from"util";var cj=Oue(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),CC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=j6e}=e[r];for await(let i of n(t))yield*CC(i,e,r+1)},Nue=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*z6e(r,Number(e),t)},z6e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*CC(n,r,e+1)},kue=Oue(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),j6e=function*(t){yield t};var lj=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Mue=(t,e)=>[...e.flatMap(r=>[...Ad(r,t,0)]),...bE(t)],Ad=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=q6e}=e[r];for(let i of n(t))yield*Ad(i,e,r+1)},bE=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*B6e(r,Number(e),t)},B6e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ad(n,r,e+1)},q6e=function*(t){yield t};var uj=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Due(t,s,o),l=wd(e),u=wd(r),d=l?cj.bind(void 0,CC,a):lj.bind(void 0,Ad),f=l||u?cj.bind(void 0,Nue,a):lj.bind(void 0,bE),p=l||u?kue.bind(void 0,a):void 0;return{stream:new V6e({writableObjectMode:n,writableHighWaterMark:$ue(n),readableObjectMode:i,readableHighWaterMark:$ue(i),transform(m,g,_){d([m,c,0],this,_)},flush(m){f([c],this,m)},destroy:p})}},IC=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=Due(s,r,a);t=Mue(c,t)}return t},Due=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Cue(n,a)},RC(r,s,n),xC(r,o,n,c),{transform:t,final:e},{transform:Iue(i,a)},Rue({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Lue=(t,e)=>{for(let r of G6e(t))H6e(t,r,e)},G6e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),H6e=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${fl[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>W6e(a,n));r.input=fE(s)},W6e=(t,e)=>{let r=IC(t,e,"utf8",!0);return Y6e(r),fE(r)},Y6e=t=>{let e=t.find(r=>typeof r!="string"&&!Er(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as X6e,appendFileSync as Q6e}from"fs";var PC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Ch(r,n)&&!wi.has(e)&&K6e(n)&&(t.some(({type:i,value:o})=>i==="native"&&Z6e.has(o))||t.every(({type:i})=>Qi.has(i))),K6e=t=>t===1||t===2,Z6e=new Set(["pipe","overlapped"]),Uue=async(t,e,r,n)=>{for await(let i of t)J6e(e)||zue(i,r,n)},Fue=(t,e,r)=>{for(let n of t)zue(n,e,r)},J6e=t=>t._readableState.pipes.length>0,zue=(t,e,r)=>{let n=V0(t);Os({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var jue=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>e3e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},e3e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=Ble(t,o,d),p=Fa(f),{stdioItems:h,objectMode:m}=e[r],g=t3e([p],h,c,n),{serializedResult:_,finalResult:v=_}=r3e({chunks:g,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});n3e({serializedResult:_,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let w=a[r]?v:void 0;try{return n.error===void 0&&i3e(_,h,i),w}catch(E){return n.error=E,w}},t3e=(t,e,r,n)=>{try{return IC(t,e,r,!1)}catch(i){return n.error=i,t}},r3e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:fE(t)};let s=rae(t,r);return n[o]?{serializedResult:s,finalResult:aj(s,!i[o],e)}:{serializedResult:s}},n3e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!PC({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=aj(t,!1,s);try{Fue(a,e,n)}catch(c){r.error??=c}},i3e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>wC.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?Q6e(n,t):(r.add(o),X6e(n,t))}};var Bue=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Ba(e,r,"all")]:Array.isArray(e)?[Ba(t,r,"all"),...e]:Er(t)&&Er(e)?gz([t,e]):`${t}${e}`};import{once as dj}from"events";var que=async(t,e)=>{let[r,n]=await o3e(t);return e.isForcefullyTerminated??=!1,[r,n]},o3e=async t=>{let[e,r]=await Promise.allSettled([dj(t,"spawn"),dj(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Vue(t):r.value},Vue=async t=>{try{return await dj(t,"exit")}catch{return Vue(t)}},Gue=async t=>{let[e,r]=await t;if(!s3e(e,r)&&fj(e,r))throw new Uo;return[e,r]},s3e=(t,e)=>t===void 0&&e===void 0,fj=(t,e)=>t!==0||e!==null;var Hue=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=a3e(t,e,r),s=o?.code==="ETIMEDOUT",a=jle(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},a3e=(t,e,r)=>t!==void 0?t:fj(e,r)?new Uo:void 0;var Wue=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=l3e(t,e,r),d=f3e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Uh(d,c,l)},l3e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=H0(t,e,r),a=u3e(r),{file:c,commandArguments:l,options:u}=fC(t,e,a);d3e(u);let d=Tue(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},u3e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,d3e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&OC("ipcInput"),t&&OC("ipc: true"),r&&OC("detached: true"),n&&OC("cancelSignal")},OC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},f3e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=p3e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Hue(c,r),{output:h,error:m=l}=jue({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),g=h.map((v,w)=>Ba(v,r,w)),_=Ba(Bue(h,r),r,"all");return m3e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:_,options:r,command:n,escapedCommand:i,startTime:a})},p3e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Lue(o,r);let a=h3e(r);return c3e(...pC(t,e,a))}catch(a){return Lh({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},h3e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:EC(e)}),m3e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?vC({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):vE({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as rYe}from"events";import{spawn as nYe}from"child_process";import Xue from"process";import{once as pj,on as g3e}from"events";var Yue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Oh({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),_3e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),_3e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{rC(e,i);let o=dl(t,e,r),s=new AbortController;try{return await Promise.race([y3e(o,n,s),S3e(o,r,s),E3e(o,r,s)])}catch(a){throw Nh(t),a}finally{s.abort(),nC(e,i)}},y3e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await pj(t,"message",{signal:r});return n}for await(let[n]of g3e(t,"message",{signal:r}))if(e(n))return n},S3e=async(t,e,{signal:r})=>{await pj(t,"disconnect",{signal:r}),Mce(e)},E3e=async(t,e,{signal:r})=>{let[n]=await pj(t,"strict:error",{signal:r});throw Q0(n,e)};import{once as Zue,on as v3e}from"events";var Jue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>hj({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),hj=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Oh({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),rC(e,o);let s=dl(t,e,r),a=new AbortController,c={};return b3e(t,s,a),T3e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),w3e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},b3e=async(t,e,r)=>{try{await Zue(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},T3e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Zue(t,"strict:error",{signal:r.signal});n.error=Q0(i,e),r.abort()}catch{}},w3e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of v3e(r,"message",{signal:o.signal}))Kue(s),yield c}catch{Kue(s)}finally{o.abort(),nC(e,a),n||Nh(t),i&&await t}},Kue=({error:t})=>{if(t)throw t};var Que=(t,{ipc:e})=>{Object.assign(t,tde(t,!1,e))},ede=()=>{let t=Xue,e=!0,r=Xue.channel!==void 0;return{...tde(t,e,r),getCancelSignal:ale.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},tde=(t,e,r)=>({sendMessage:uC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Yue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Jue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as A3e}from"child_process";import{PassThrough as x3e,Readable as R3e,Writable as C3e,Duplex as I3e}from"stream";var rde=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{ij(n);let a=new A3e;P3e(a,n),Object.assign(a,{readable:O3e,writable:N3e,duplex:k3e});let c=Lh({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=M3e(c,s,i);return{subprocess:a,promise:l}},P3e=(t,e)=>{let r=TE(),n=TE(),i=TE(),o=Array.from({length:e.length-3},TE),s=TE(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},TE=()=>{let t=new x3e;return t.end(),t},O3e=()=>new R3e({read(){}}),N3e=()=>new C3e({write(){}}),k3e=()=>new I3e({read(){},write(){}}),M3e=async(t,e,r)=>Uh(t,e,r);import{createReadStream as nde,createWriteStream as ide}from"fs";import{Buffer as $3e}from"buffer";import{Readable as wE,Writable as D3e,Duplex as L3e}from"stream";var sde=(t,e)=>AC(U3e,t,e,!1),AE=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${fl[t]}.`)},ode={fileNumber:AE,generator:uj,asyncGenerator:uj,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:L3e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},U3e={input:{...ode,fileUrl:({value:t})=>({stream:nde(t)}),filePath:({value:{file:t}})=>({stream:nde(t)}),webStream:({value:t})=>({stream:wE.fromWeb(t)}),iterable:({value:t})=>({stream:wE.from(t)}),asyncIterable:({value:t})=>({stream:wE.from(t)}),string:({value:t})=>({stream:wE.from(t)}),uint8Array:({value:t})=>({stream:wE.from($3e.from(t))})},output:{...ode,fileUrl:({value:t})=>({stream:ide(t)}),filePath:({value:{file:t,append:e}})=>({stream:ide(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:D3e.fromWeb(t)}),iterable:AE,asyncIterable:AE,string:AE,uint8Array:AE}};import{on as F3e,once as ade}from"events";import{PassThrough as z3e,getDefaultHighWaterMark as j3e}from"stream";import{finished as ude}from"stream/promises";function xd(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)gj(i);let e=t.some(({readableObjectMode:i})=>i),r=B3e(t,e),n=new mj({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var B3e=(t,e)=>{if(t.length===0)return j3e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},mj=class extends z3e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(gj(e),this.#e.has(e))return;this.#e.add(e),this.#n??=q3e(this,this.#e,this.#o);let r=H3e({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(gj(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},q3e=async(t,e,r)=>{NC(t,cde);let n=new AbortController;try{await Promise.race([V3e(t,n),G3e(t,e,r,n)])}finally{n.abort(),NC(t,-cde)}},V3e=async(t,{signal:e})=>{try{await ude(t,{signal:e,cleanup:!0})}catch(r){throw dde(t,r),r}},G3e=async(t,e,r,{signal:n})=>{for await(let[i]of F3e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},gj=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},H3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{NC(t,lde);let a=new AbortController;try{await Promise.race([W3e(o,e,a),Y3e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),K3e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),NC(t,-lde)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?_j(t):Z3e(t))},W3e=async(t,e,{signal:r})=>{try{await t,r.aborted||_j(e)}catch(n){r.aborted||dde(e,n)}},Y3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await ude(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;fde(s)?i.add(e):pde(t,s)}},K3e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await ade(t,i,{signal:o}),!t.readable)return ade(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},Z3e=t=>{t.writable&&t.end()},dde=(t,e)=>{fde(e)?_j(t):pde(t,e)},fde=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",_j=t=>{(t.readable||t.writable)&&t.destroy()},pde=(t,e)=>{t.destroyed||(t.once("error",J3e),t.destroy(e))},J3e=()=>{},NC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},cde=2,lde=1;import{finished as hde}from"stream/promises";var zh=(t,e)=>{t.pipe(e),X3e(t,e),Q3e(t,e)},X3e=async(t,e)=>{if(!(Lo(t)||Lo(e))){try{await hde(t,{cleanup:!0,readable:!0,writable:!1})}catch{}yj(e)}},yj=t=>{t.writable&&t.end()},Q3e=async(t,e)=>{if(!(Lo(t)||Lo(e))){try{await hde(e,{cleanup:!0,readable:!1,writable:!0})}catch{}Sj(t)}},Sj=t=>{t.readable&&t.destroy()};var mde=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Qi.has(c)))eWe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Qi.has(c)))rWe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:xd(o);zh(s,i)}},eWe=(t,e,r,n)=>{r==="output"?zh(t.stdio[n],e):zh(e,t.stdio[n]);let i=tWe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},tWe=["stdin","stdout","stderr"],rWe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;nWe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},nWe=(t,{signal:e})=>{Lo(t)&&bd(t,iWe,e)},iWe=2;import{addAbortListener as aWe}from"events";var Rd=[];Rd.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Rd.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Rd.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var kC=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",Ej=Symbol.for("signal-exit emitter"),vj=globalThis,oWe=Object.defineProperty.bind(Object),bj=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(vj[Ej])return vj[Ej];oWe(vj,Ej,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},MC=class{},sWe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),Tj=class extends MC{onExit(){return()=>{}}load(){}unload(){}},wj=class extends MC{#e=Aj.platform==="win32"?"SIGINT":"SIGHUP";#r=new bj;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Rd)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!kC(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of Rd)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,Rd.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return kC(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&kC(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},Aj=globalThis.process,{onExit:gde,load:bjt,unload:Tjt}=sWe(kC(Aj)?new wj(Aj):new Tj);var _de=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=gde(()=>{t.kill()});aWe(n,()=>{i()})};var Sde=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=G0(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=cWe(r,n,i),{sourceStream:d,sourceError:f}=uWe(t,l),{options:p,fileDescriptors:h}=ks.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},cWe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=lWe(t,e,...r),a=tC(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},lWe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(yde,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||hz(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=$0(r,...n);return{destination:e(yde)(i,o,s),pipeOptions:s}}if(ks.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},yde=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),uWe=(t,e)=>{try{return{sourceStream:kh(t,e)}}catch(r){return{sourceError:r}}};var vde=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=dWe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw xj({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},dWe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return Sj(t),n;if(e!==void 0)return yj(r),e},xj=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Lh({error:t,command:Ede,escapedCommand:Ede,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Ede="source.pipe(destination)";var bde=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as fWe}from"stream/promises";var Tde=(t,e,r)=>{let n=$C.has(e)?hWe(t,e):pWe(t,e);return bd(t,gWe,r.signal),bd(e,_We,r.signal),mWe(e),n},pWe=(t,e)=>{let r=xd([t]);return zh(r,e),$C.set(e,r),r},hWe=(t,e)=>{let r=$C.get(e);return r.add(t),r},mWe=async t=>{try{await fWe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}$C.delete(t)},$C=new WeakMap,gWe=2,_We=1;import{aborted as yWe}from"util";var wde=(t,e)=>t===void 0?[]:[SWe(t,e)],SWe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await yWe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw xj({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var DC=(t,...e)=>{if(cr(e[0]))return DC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Sde(t,...e),i=EWe({...n,destination:r});return i.pipe=DC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},EWe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=vWe(t,i);vde({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Tde(e,o,d);return await Promise.race([bde(u),...wde(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},vWe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as CWe}from"timers/promises";import{on as bWe}from"events";import{getDefaultHighWaterMark as TWe}from"stream";var LC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return wWe(e,s),xde({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},wWe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},Rj=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;AWe(e,s,t);let a=t.readableObjectMode&&!o;return xde({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},AWe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},xde=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=bWe(t,"data",{signal:e.signal,highWaterMark:Ade,highWatermark:Ade});return xWe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},Cj=TWe(!0),Ade=Cj,xWe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=RWe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ad(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*bE(a)}},RWe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[RC(t,r,!e),xC(t,i,!n,{})].filter(Boolean);var Rde=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=IWe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([PWe(t),d]);return}let f=oj(c,r),p=Rj({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([OWe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},IWe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!PC({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=Rj({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Uue(a,t,r,o)},PWe=async t=>{await CWe(),t.readableFlowing===null&&t.resume()},OWe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await _C(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await yC(r,{maxBuffer:o})):await Dh(r,{maxBuffer:o})}catch(a){return Cde(Ule({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},Ij=async t=>{try{return await t}catch(e){return Cde(e)}},Cde=({bufferedData:t})=>eae(t)?new Uint8Array(t):t;import{finished as NWe}from"stream/promises";var xE=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=kWe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],NWe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||DWe(a,e,r,n)}finally{s.abort()}},kWe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&MWe(t,r,n),n},MWe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{$We(e,r),n.call(t,...i)}},$We=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},DWe=(t,e,r,n)=>{if(!LWe(t,e,r,n))throw t},LWe=(t,e,r,n=!0)=>r.propagating?Ide(t)||UC(t):(r.propagating=!0,Pj(r,e)===n?Ide(t):UC(t)),Pj=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",UC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Ide=t=>t?.code==="EPIPE";var Pde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>Oj({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),Oj=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=xE(t,e,l);if(Pj(l,e)){await u;return}let[d]=await Promise.all([Rde({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var Ode=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?xd([t,e].filter(Boolean)):void 0,Nde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>Oj({...UWe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:FWe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),UWe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},FWe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as zWe}from"events";var kde=t=>Ch(t,"ipc"),Mde=(t,e)=>{let r=V0(t);Os({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var $de=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=kde(o),a=za(e,"ipc"),c=za(r,"ipc");for await(let l of hj({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Fle(t,i,c),i.push(l)),s&&Mde(l,o);return i},Dde=async(t,e)=>(await Promise.allSettled([t]),e);var Lde=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:g,controller:_})=>{let v=que(t,f),w={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},E=Pde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),T=Nde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),A=[],R=$de({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:A,verboseInfo:p}),P=jWe(m,t,w),k=BWe(h,w);try{return await Promise.race([Promise.all([{},Gue(v),Promise.all(E),T,R,_le(t,d),...P,...k]),g,qWe(t,_),...fle(t,o,f,_),...kce({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:_}),...ule({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:_})])}catch(L){return f.terminationReason??="other",Promise.all([{error:L},v,Promise.all(E.map(y=>Ij(y))),Ij(T),Dde(R,A),Promise.allSettled(P),Promise.allSettled(k)])}},jWe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:xE(n,i,r)),BWe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>zo(o,{checkOpen:!1})&&!Lo(o)).map(({type:i,value:o,stream:s=o})=>xE(s,n,e,{isSameDirection:Qi.has(i),stopOnExit:i==="native"}))),qWe=async(t,{signal:e})=>{let[r]=await zWe(t,"error",{signal:e});throw r};var Ude=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),RE=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=Ns();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},jh=async({resolve:t,promises:e},r)=>{t();let[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...e])]);return!n};import{Readable as VWe}from"stream";import{callbackify as GWe}from"util";import{finished as Fde}from"stream/promises";var Nj=async t=>{if(t!==void 0)try{await kj(t)}catch{}},zde=async t=>{if(t!==void 0)try{await Mj(t)}catch{}},kj=async t=>{await Fde(t,{cleanup:!0,readable:!1,writable:!0})},Mj=async t=>{await Fde(t,{cleanup:!0,readable:!0,writable:!1})},FC=async(t,e)=>{if(await t,e)throw e},zC=(t,e,r)=>{r&&!UC(r)?t.destroy(r):e&&t.destroy()};var jde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||wi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=$j(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=Dj(a,s),{read:f,onStdoutDataDone:p}=Lj({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new VWe({read:f,destroy:GWe(Fj.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return Uj({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},$j=(t,e,r)=>{let n=kh(t,e),i=RE(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},Dj=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:Cj},Lj=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=Ns(),s=LC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){HWe(this,s,o)},onStdoutDataDone:o}},HWe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},Uj=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await Mj(t),await n,await Nj(i),await e,r.readable&&r.push(null)}catch(o){await Nj(i),Bde(r,o)}},Fj=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await jh(r,e)&&(Bde(t,n),await FC(e,n))},Bde=(t,e)=>{zC(t,t.readable,e)};import{Writable as WWe}from"stream";import{callbackify as qde}from"util";var Vde=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=zj(t,r,e),s=new WWe({...jj(n,t,i),destroy:qde(qj.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return Bj(n,s),s},zj=(t,e,r)=>{let n=tC(t,e),i=RE(r,n,"writableFinal"),o=RE(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},jj=(t,e,r)=>({write:YWe.bind(void 0,t),final:qde(KWe.bind(void 0,t,e,r))}),YWe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},KWe=async(t,e,r)=>{await jh(r,e)&&(t.writable&&t.end(),await e)},Bj=async(t,e,r)=>{try{await kj(t),e.writable&&e.end()}catch(n){await zde(r),Gde(e,n)}},qj=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await jh(r,e),await jh(n,e)&&(Gde(t,i),await FC(e,i))},Gde=(t,e)=>{zC(t,t.writable,e)};import{Duplex as ZWe}from"stream";import{callbackify as JWe}from"util";var Hde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||wi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=$j(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=zj(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=Dj(c,a),{read:g,onStdoutDataDone:_}=Lj({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),v=new ZWe({read:g,...jj(u,t,d),destroy:JWe(XWe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return Uj({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:t,subprocessStdin:u}),Bj(u,v,c),v},XWe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([Fj({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),qj({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var Vj=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||wi.has(e),s=kh(t,r),a=LC({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return QWe(a,s,t)},QWe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Wde=(t,{encoding:e})=>{let r=Ude();t.readable=jde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Vde.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Hde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=Vj.bind(void 0,t,e),t[Symbol.asyncIterator]=Vj.bind(void 0,t,e,{})};var Yde=(t,e)=>{for(let[r,n]of tYe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},eYe=(async()=>{})().constructor.prototype,tYe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(eYe,t)]);var Kde=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=iYe(t,e,r),{subprocess:f,promise:p}=sYe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=DC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Yde(f,p),ks.set(f,{options:u,fileDescriptors:d}),f},iYe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=H0(t,e,r),{file:a,commandArguments:c,options:l}=fC(t,e,r),u=oYe(l),d=sde(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},oYe=({timeout:t,signal:e,...r})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:t}},sYe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=nYe(...pC(t,e,r))}catch(h){return rde({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;rYe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];mde(c,a,l),_de(c,r,l);let d={},f=Ns();c.kill=Oce.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Ode(c,r),Wde(c,r),Que(c,r);let p=aYe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},aYe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,g]=await Lde({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let _=h.map((E,T)=>Ba(E,e,T)),v=Ba(m,e,"all"),w=cYe({errorInfo:d,exitCode:f,signal:p,stdio:_,all:v,ipcOutput:g,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Uh(w,n,e)},cYe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?vE({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ms,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):vC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var jC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,lYe(n,t[n],i)]));return{...t,...r}},lYe=(t,e,r)=>uYe.has(t)&&cr(e)&&cr(r)?{...e,...r}:r,uYe=new Set(["env",...Ez]);var pl=(t,e,r,n)=>{let i=(s,a,c)=>pl(s,a,r,c),o=(...s)=>dYe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},dYe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(cr(o))return i(t,jC(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=fYe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Wue(a,c,l):Kde(a,c,l,i)},fYe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=sae(e)?aae(e,r):[e,...r],[s,a,c]=$0(...o),l=jC(jC(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Zde=({file:t,commandArguments:e})=>Xde(t,e),Jde=({file:t,commandArguments:e})=>({...Xde(t,e),isSync:!0}),Xde=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);let[r,...n]=pYe(t);return{file:r,commandArguments:n}},pYe=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);let e=t.trim();if(e==="")return[];let r=[];for(let n of e.split(hYe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},hYe=/ +/g;var Qde=(t,e,r)=>{t.sync=e(mYe,r),t.s=t.sync},efe=({options:t})=>tfe(t),mYe=({options:t})=>({...tfe(t),isSync:!0}),tfe=t=>({options:{...gYe(t),...t}}),gYe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},rfe={preferLocal:!0};var nfe=pl(()=>({})),fqt=pl(()=>({isSync:!0})),ife=pl(Zde),pqt=pl(Jde),hqt=pl(hle),mqt=pl(efe,{},rfe,Qde),{sendMessage:gqt,getOneMessage:_qt,getEachMessage:yqt,getCancelSignal:Sqt}=ede();var ofe=!1,sfe,afe=t=>{ofe=!0,sfe??=t},qa=()=>ofe,cfe=()=>sfe;var CE=null,lfe=t=>(CE&&CE.destroy(),CE=new Ds({totalAllowedTime:t}),CE),ufe=()=>CE;var Ds=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&qa())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await b0({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Z.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var dfe={name:"@netlify/agent-runner-cli",type:"module",version:"1.179.0-cancel-fields.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.6","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.1","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.153.4","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.1",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var EYe=yYe(import.meta.url),vYe=Va.dirname(EYe),bYe=SYe(import.meta.url),Bh=oe("shell"),Gj=new Set,ffe={preferLocal:!0},Ft=(t,e,r)=>{let[n,i]=TYe(e,r),o={...ffe,...i},s=nfe(t,n,o);hfe(s,o),_fe(s);let a=r?.idleTimeout;return a&&a>0&&gfe(s,a),s},pfe=(t,e)=>{let r={...ffe,...e},n=ife(t,r);return hfe(n,r),_fe(n),e?.idleTimeout&&e.idleTimeout>0&&gfe(n,e.idleTimeout),n},TYe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},hfe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Ls.env.NETLIFY_LOCAL_QUIET==="true")return;if(Ls.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new nE).pipe(Ls.stdout),t.stderr?.pipe(new nE).pipe(Ls.stderr);return}t.stdout?.pipe(Ls.stdout),t.stderr?.pipe(Ls.stderr)},Hj=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ls.kill(-t.pid,e),Bh.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Bh.error("Error killing process:",r),!1}},mfe=t=>Hj(t,"SIGKILL"),gfe=(t,e)=>{let r=null,n=()=>{Bh.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),Hj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Bh.log(`Force killing idle process ${t.pid}`),mfe(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},_fe=t=>{Gj.add(t);let e=ufe();if(e){let r=e.onTimesUp(()=>{Bh.log(`Global timer expired, killing process ${t.pid}`),Hj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Bh.log(`Force killing process ${t.pid} after timeout`),mfe(t))},5e3)});t.on("exit",()=>{Gj.delete(t),r()}),t.on("error",()=>{Gj.delete(t),r()})}};function qC(t,e){return!!jo(t,e)}function jo(t,e){if(!Ls.env.NETLIFY_LOCAL_MODE)try{let i=bYe.resolve(dfe.name),o=Va.dirname(i);for(;o!==Va.dirname(o);){let s=Va.dirname(o);if(Va.basename(s)==="node_modules"){let a=Va.join(s,".bin",e);if(BC.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ls.env.NODE_PATH){let i=Va.join(Ls.env.NODE_PATH,".bin",e);if(BC.existsSync(i))return i}let r=Va.join(t,"node_modules",".bin",e);if(BC.existsSync(r))return r;let n=Va.join(vYe,"..","node_modules",".bin",e);if(BC.existsSync(n))return n}var yfe=oe("repo"),Tfe="runner-diffs-",wfe=t=>`${Tfe}${t}-`,Afe=async t=>{let e=bfe.tmpdir(),r;try{r=await VC.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(Tfe)&&!n.startsWith(wfe(t))).map(n=>VC.rm(GC.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},mn=(t,e={})=>Ft("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),HC=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{yfe.info("Getting runner diffs");let n=await RYe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=OYe(o);await NYe(h,r)}yfe.info("Changes after processing"),await Yj(r);let s=await Kj(o,r);if(await Wj(s,r),i=await CYe(r),!i)return{hasChanges:!1,ignored:s};await mn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await VC.mkdtemp(GC.join(bfe.tmpdir(),wfe(t.sessionId))),c=async({from:h,to:m,fileName:g,binary:_})=>{let v=GC.join(a,g);await mn([..._?["diff",h,m,"--binary"]:["diff",h,m],`--output=${v}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:E}=await VC.stat(v);return{path:v,size:E}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await vfe(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await Efe(d,h)||(f=h)}await vfe(r),Z.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Efe(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Sfe=async t=>{let e=wYe("sha256");for await(let r of AYe(t))e.update(r);return e.digest("hex")},Efe=async(t,e)=>t.size===e.size&&await Sfe(t.path)===await Sfe(e.path),vfe=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await mn(["reset","--soft","HEAD~1"],{cwd:t})},Wj=async(t=[],e=process.cwd())=>{await mn(["add",".",...t],{cwd:e})},Yj=async(t=process.cwd())=>{let e=await mn(["status","-s"],{cwd:t});return String(e.stdout??"")},xfe=/.. (.+)?\.log$/,xYe=[xfe],RYe=async(t=process.cwd())=>{let e=await Yj(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
144
+ if (condition) { yield value; }`)};import{Buffer as $6e}from"buffer";import{StringDecoder as D6e}from"string_decoder";var RC=(t,e,r)=>{if(r)return;if(t)return{transform:L6e.bind(void 0,new TextEncoder)};let n=new D6e(e);return{transform:U6e.bind(void 0,n),final:F6e.bind(void 0,n)}},L6e=function*(t,e){$6e.isBuffer(e)?yield Fa(e):typeof e=="string"?yield t.encode(e):yield e},U6e=function*(t,e){yield Er(e)?t.write(e):e},F6e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Oue}from"util";var cj=Oue(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),CC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=j6e}=e[r];for await(let i of n(t))yield*CC(i,e,r+1)},Nue=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*z6e(r,Number(e),t)},z6e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*CC(n,r,e+1)},kue=Oue(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),j6e=function*(t){yield t};var lj=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Mue=(t,e)=>[...e.flatMap(r=>[...Ad(r,t,0)]),...bE(t)],Ad=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=q6e}=e[r];for(let i of n(t))yield*Ad(i,e,r+1)},bE=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*B6e(r,Number(e),t)},B6e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ad(n,r,e+1)},q6e=function*(t){yield t};var uj=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Due(t,s,o),l=wd(e),u=wd(r),d=l?cj.bind(void 0,CC,a):lj.bind(void 0,Ad),f=l||u?cj.bind(void 0,Nue,a):lj.bind(void 0,bE),p=l||u?kue.bind(void 0,a):void 0;return{stream:new V6e({writableObjectMode:n,writableHighWaterMark:$ue(n),readableObjectMode:i,readableHighWaterMark:$ue(i),transform(m,g,_){d([m,c,0],this,_)},flush(m){f([c],this,m)},destroy:p})}},IC=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=Due(s,r,a);t=Mue(c,t)}return t},Due=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Cue(n,a)},RC(r,s,n),xC(r,o,n,c),{transform:t,final:e},{transform:Iue(i,a)},Rue({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Lue=(t,e)=>{for(let r of G6e(t))H6e(t,r,e)},G6e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),H6e=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${fl[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>W6e(a,n));r.input=fE(s)},W6e=(t,e)=>{let r=IC(t,e,"utf8",!0);return Y6e(r),fE(r)},Y6e=t=>{let e=t.find(r=>typeof r!="string"&&!Er(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as X6e,appendFileSync as Q6e}from"fs";var PC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Ch(r,n)&&!wi.has(e)&&K6e(n)&&(t.some(({type:i,value:o})=>i==="native"&&Z6e.has(o))||t.every(({type:i})=>Qi.has(i))),K6e=t=>t===1||t===2,Z6e=new Set(["pipe","overlapped"]),Uue=async(t,e,r,n)=>{for await(let i of t)J6e(e)||zue(i,r,n)},Fue=(t,e,r)=>{for(let n of t)zue(n,e,r)},J6e=t=>t._readableState.pipes.length>0,zue=(t,e,r)=>{let n=V0(t);Os({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var jue=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>e3e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},e3e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=Ble(t,o,d),p=Fa(f),{stdioItems:h,objectMode:m}=e[r],g=t3e([p],h,c,n),{serializedResult:_,finalResult:v=_}=r3e({chunks:g,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});n3e({serializedResult:_,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let w=a[r]?v:void 0;try{return n.error===void 0&&i3e(_,h,i),w}catch(E){return n.error=E,w}},t3e=(t,e,r,n)=>{try{return IC(t,e,r,!1)}catch(i){return n.error=i,t}},r3e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:fE(t)};let s=rae(t,r);return n[o]?{serializedResult:s,finalResult:aj(s,!i[o],e)}:{serializedResult:s}},n3e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!PC({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=aj(t,!1,s);try{Fue(a,e,n)}catch(c){r.error??=c}},i3e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>wC.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?Q6e(n,t):(r.add(o),X6e(n,t))}};var Bue=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Ba(e,r,"all")]:Array.isArray(e)?[Ba(t,r,"all"),...e]:Er(t)&&Er(e)?gz([t,e]):`${t}${e}`};import{once as dj}from"events";var que=async(t,e)=>{let[r,n]=await o3e(t);return e.isForcefullyTerminated??=!1,[r,n]},o3e=async t=>{let[e,r]=await Promise.allSettled([dj(t,"spawn"),dj(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Vue(t):r.value},Vue=async t=>{try{return await dj(t,"exit")}catch{return Vue(t)}},Gue=async t=>{let[e,r]=await t;if(!s3e(e,r)&&fj(e,r))throw new Uo;return[e,r]},s3e=(t,e)=>t===void 0&&e===void 0,fj=(t,e)=>t!==0||e!==null;var Hue=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=a3e(t,e,r),s=o?.code==="ETIMEDOUT",a=jle(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},a3e=(t,e,r)=>t!==void 0?t:fj(e,r)?new Uo:void 0;var Wue=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=l3e(t,e,r),d=f3e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Uh(d,c,l)},l3e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=H0(t,e,r),a=u3e(r),{file:c,commandArguments:l,options:u}=fC(t,e,a);d3e(u);let d=Tue(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},u3e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,d3e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&OC("ipcInput"),t&&OC("ipc: true"),r&&OC("detached: true"),n&&OC("cancelSignal")},OC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},f3e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=p3e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Hue(c,r),{output:h,error:m=l}=jue({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),g=h.map((v,w)=>Ba(v,r,w)),_=Ba(Bue(h,r),r,"all");return m3e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:_,options:r,command:n,escapedCommand:i,startTime:a})},p3e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Lue(o,r);let a=h3e(r);return c3e(...pC(t,e,a))}catch(a){return Lh({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},h3e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:EC(e)}),m3e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?vC({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):vE({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as rYe}from"events";import{spawn as nYe}from"child_process";import Xue from"process";import{once as pj,on as g3e}from"events";var Yue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Oh({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),_3e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),_3e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{rC(e,i);let o=dl(t,e,r),s=new AbortController;try{return await Promise.race([y3e(o,n,s),S3e(o,r,s),E3e(o,r,s)])}catch(a){throw Nh(t),a}finally{s.abort(),nC(e,i)}},y3e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await pj(t,"message",{signal:r});return n}for await(let[n]of g3e(t,"message",{signal:r}))if(e(n))return n},S3e=async(t,e,{signal:r})=>{await pj(t,"disconnect",{signal:r}),Mce(e)},E3e=async(t,e,{signal:r})=>{let[n]=await pj(t,"strict:error",{signal:r});throw Q0(n,e)};import{once as Zue,on as v3e}from"events";var Jue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>hj({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),hj=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Oh({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),rC(e,o);let s=dl(t,e,r),a=new AbortController,c={};return b3e(t,s,a),T3e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),w3e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},b3e=async(t,e,r)=>{try{await Zue(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},T3e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Zue(t,"strict:error",{signal:r.signal});n.error=Q0(i,e),r.abort()}catch{}},w3e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of v3e(r,"message",{signal:o.signal}))Kue(s),yield c}catch{Kue(s)}finally{o.abort(),nC(e,a),n||Nh(t),i&&await t}},Kue=({error:t})=>{if(t)throw t};var Que=(t,{ipc:e})=>{Object.assign(t,tde(t,!1,e))},ede=()=>{let t=Xue,e=!0,r=Xue.channel!==void 0;return{...tde(t,e,r),getCancelSignal:ale.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},tde=(t,e,r)=>({sendMessage:uC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Yue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Jue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as A3e}from"child_process";import{PassThrough as x3e,Readable as R3e,Writable as C3e,Duplex as I3e}from"stream";var rde=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{ij(n);let a=new A3e;P3e(a,n),Object.assign(a,{readable:O3e,writable:N3e,duplex:k3e});let c=Lh({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=M3e(c,s,i);return{subprocess:a,promise:l}},P3e=(t,e)=>{let r=TE(),n=TE(),i=TE(),o=Array.from({length:e.length-3},TE),s=TE(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},TE=()=>{let t=new x3e;return t.end(),t},O3e=()=>new R3e({read(){}}),N3e=()=>new C3e({write(){}}),k3e=()=>new I3e({read(){},write(){}}),M3e=async(t,e,r)=>Uh(t,e,r);import{createReadStream as nde,createWriteStream as ide}from"fs";import{Buffer as $3e}from"buffer";import{Readable as wE,Writable as D3e,Duplex as L3e}from"stream";var sde=(t,e)=>AC(U3e,t,e,!1),AE=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${fl[t]}.`)},ode={fileNumber:AE,generator:uj,asyncGenerator:uj,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:L3e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},U3e={input:{...ode,fileUrl:({value:t})=>({stream:nde(t)}),filePath:({value:{file:t}})=>({stream:nde(t)}),webStream:({value:t})=>({stream:wE.fromWeb(t)}),iterable:({value:t})=>({stream:wE.from(t)}),asyncIterable:({value:t})=>({stream:wE.from(t)}),string:({value:t})=>({stream:wE.from(t)}),uint8Array:({value:t})=>({stream:wE.from($3e.from(t))})},output:{...ode,fileUrl:({value:t})=>({stream:ide(t)}),filePath:({value:{file:t,append:e}})=>({stream:ide(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:D3e.fromWeb(t)}),iterable:AE,asyncIterable:AE,string:AE,uint8Array:AE}};import{on as F3e,once as ade}from"events";import{PassThrough as z3e,getDefaultHighWaterMark as j3e}from"stream";import{finished as ude}from"stream/promises";function xd(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)gj(i);let e=t.some(({readableObjectMode:i})=>i),r=B3e(t,e),n=new mj({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var B3e=(t,e)=>{if(t.length===0)return j3e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},mj=class extends z3e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(gj(e),this.#e.has(e))return;this.#e.add(e),this.#n??=q3e(this,this.#e,this.#o);let r=H3e({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(gj(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},q3e=async(t,e,r)=>{NC(t,cde);let n=new AbortController;try{await Promise.race([V3e(t,n),G3e(t,e,r,n)])}finally{n.abort(),NC(t,-cde)}},V3e=async(t,{signal:e})=>{try{await ude(t,{signal:e,cleanup:!0})}catch(r){throw dde(t,r),r}},G3e=async(t,e,r,{signal:n})=>{for await(let[i]of F3e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},gj=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},H3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{NC(t,lde);let a=new AbortController;try{await Promise.race([W3e(o,e,a),Y3e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),K3e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),NC(t,-lde)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?_j(t):Z3e(t))},W3e=async(t,e,{signal:r})=>{try{await t,r.aborted||_j(e)}catch(n){r.aborted||dde(e,n)}},Y3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await ude(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;fde(s)?i.add(e):pde(t,s)}},K3e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await ade(t,i,{signal:o}),!t.readable)return ade(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},Z3e=t=>{t.writable&&t.end()},dde=(t,e)=>{fde(e)?_j(t):pde(t,e)},fde=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",_j=t=>{(t.readable||t.writable)&&t.destroy()},pde=(t,e)=>{t.destroyed||(t.once("error",J3e),t.destroy(e))},J3e=()=>{},NC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},cde=2,lde=1;import{finished as hde}from"stream/promises";var zh=(t,e)=>{t.pipe(e),X3e(t,e),Q3e(t,e)},X3e=async(t,e)=>{if(!(Lo(t)||Lo(e))){try{await hde(t,{cleanup:!0,readable:!0,writable:!1})}catch{}yj(e)}},yj=t=>{t.writable&&t.end()},Q3e=async(t,e)=>{if(!(Lo(t)||Lo(e))){try{await hde(e,{cleanup:!0,readable:!1,writable:!0})}catch{}Sj(t)}},Sj=t=>{t.readable&&t.destroy()};var mde=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Qi.has(c)))eWe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Qi.has(c)))rWe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:xd(o);zh(s,i)}},eWe=(t,e,r,n)=>{r==="output"?zh(t.stdio[n],e):zh(e,t.stdio[n]);let i=tWe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},tWe=["stdin","stdout","stderr"],rWe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;nWe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},nWe=(t,{signal:e})=>{Lo(t)&&bd(t,iWe,e)},iWe=2;import{addAbortListener as aWe}from"events";var Rd=[];Rd.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Rd.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Rd.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var kC=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",Ej=Symbol.for("signal-exit emitter"),vj=globalThis,oWe=Object.defineProperty.bind(Object),bj=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(vj[Ej])return vj[Ej];oWe(vj,Ej,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},MC=class{},sWe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),Tj=class extends MC{onExit(){return()=>{}}load(){}unload(){}},wj=class extends MC{#e=Aj.platform==="win32"?"SIGINT":"SIGHUP";#r=new bj;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Rd)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!kC(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of Rd)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,Rd.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return kC(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&kC(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},Aj=globalThis.process,{onExit:gde,load:bjt,unload:Tjt}=sWe(kC(Aj)?new wj(Aj):new Tj);var _de=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=gde(()=>{t.kill()});aWe(n,()=>{i()})};var Sde=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=G0(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=cWe(r,n,i),{sourceStream:d,sourceError:f}=uWe(t,l),{options:p,fileDescriptors:h}=ks.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},cWe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=lWe(t,e,...r),a=tC(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},lWe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(yde,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||hz(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=$0(r,...n);return{destination:e(yde)(i,o,s),pipeOptions:s}}if(ks.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},yde=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),uWe=(t,e)=>{try{return{sourceStream:kh(t,e)}}catch(r){return{sourceError:r}}};var vde=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=dWe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw xj({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},dWe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return Sj(t),n;if(e!==void 0)return yj(r),e},xj=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Lh({error:t,command:Ede,escapedCommand:Ede,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Ede="source.pipe(destination)";var bde=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as fWe}from"stream/promises";var Tde=(t,e,r)=>{let n=$C.has(e)?hWe(t,e):pWe(t,e);return bd(t,gWe,r.signal),bd(e,_We,r.signal),mWe(e),n},pWe=(t,e)=>{let r=xd([t]);return zh(r,e),$C.set(e,r),r},hWe=(t,e)=>{let r=$C.get(e);return r.add(t),r},mWe=async t=>{try{await fWe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}$C.delete(t)},$C=new WeakMap,gWe=2,_We=1;import{aborted as yWe}from"util";var wde=(t,e)=>t===void 0?[]:[SWe(t,e)],SWe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await yWe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw xj({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var DC=(t,...e)=>{if(cr(e[0]))return DC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Sde(t,...e),i=EWe({...n,destination:r});return i.pipe=DC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},EWe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=vWe(t,i);vde({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Tde(e,o,d);return await Promise.race([bde(u),...wde(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},vWe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as CWe}from"timers/promises";import{on as bWe}from"events";import{getDefaultHighWaterMark as TWe}from"stream";var LC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return wWe(e,s),xde({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},wWe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},Rj=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;AWe(e,s,t);let a=t.readableObjectMode&&!o;return xde({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},AWe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},xde=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=bWe(t,"data",{signal:e.signal,highWaterMark:Ade,highWatermark:Ade});return xWe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},Cj=TWe(!0),Ade=Cj,xWe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=RWe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ad(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*bE(a)}},RWe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[RC(t,r,!e),xC(t,i,!n,{})].filter(Boolean);var Rde=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=IWe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([PWe(t),d]);return}let f=oj(c,r),p=Rj({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([OWe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},IWe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!PC({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=Rj({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Uue(a,t,r,o)},PWe=async t=>{await CWe(),t.readableFlowing===null&&t.resume()},OWe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await _C(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await yC(r,{maxBuffer:o})):await Dh(r,{maxBuffer:o})}catch(a){return Cde(Ule({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},Ij=async t=>{try{return await t}catch(e){return Cde(e)}},Cde=({bufferedData:t})=>eae(t)?new Uint8Array(t):t;import{finished as NWe}from"stream/promises";var xE=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=kWe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],NWe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||DWe(a,e,r,n)}finally{s.abort()}},kWe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&MWe(t,r,n),n},MWe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{$We(e,r),n.call(t,...i)}},$We=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},DWe=(t,e,r,n)=>{if(!LWe(t,e,r,n))throw t},LWe=(t,e,r,n=!0)=>r.propagating?Ide(t)||UC(t):(r.propagating=!0,Pj(r,e)===n?Ide(t):UC(t)),Pj=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",UC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Ide=t=>t?.code==="EPIPE";var Pde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>Oj({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),Oj=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=xE(t,e,l);if(Pj(l,e)){await u;return}let[d]=await Promise.all([Rde({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var Ode=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?xd([t,e].filter(Boolean)):void 0,Nde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>Oj({...UWe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:FWe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),UWe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},FWe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as zWe}from"events";var kde=t=>Ch(t,"ipc"),Mde=(t,e)=>{let r=V0(t);Os({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var $de=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=kde(o),a=za(e,"ipc"),c=za(r,"ipc");for await(let l of hj({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Fle(t,i,c),i.push(l)),s&&Mde(l,o);return i},Dde=async(t,e)=>(await Promise.allSettled([t]),e);var Lde=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:g,controller:_})=>{let v=que(t,f),w={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},E=Pde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),T=Nde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),A=[],R=$de({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:A,verboseInfo:p}),P=jWe(m,t,w),k=BWe(h,w);try{return await Promise.race([Promise.all([{},Gue(v),Promise.all(E),T,R,_le(t,d),...P,...k]),g,qWe(t,_),...fle(t,o,f,_),...kce({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:_}),...ule({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:_})])}catch(L){return f.terminationReason??="other",Promise.all([{error:L},v,Promise.all(E.map(y=>Ij(y))),Ij(T),Dde(R,A),Promise.allSettled(P),Promise.allSettled(k)])}},jWe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:xE(n,i,r)),BWe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>zo(o,{checkOpen:!1})&&!Lo(o)).map(({type:i,value:o,stream:s=o})=>xE(s,n,e,{isSameDirection:Qi.has(i),stopOnExit:i==="native"}))),qWe=async(t,{signal:e})=>{let[r]=await zWe(t,"error",{signal:e});throw r};var Ude=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),RE=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=Ns();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},jh=async({resolve:t,promises:e},r)=>{t();let[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...e])]);return!n};import{Readable as VWe}from"stream";import{callbackify as GWe}from"util";import{finished as Fde}from"stream/promises";var Nj=async t=>{if(t!==void 0)try{await kj(t)}catch{}},zde=async t=>{if(t!==void 0)try{await Mj(t)}catch{}},kj=async t=>{await Fde(t,{cleanup:!0,readable:!1,writable:!0})},Mj=async t=>{await Fde(t,{cleanup:!0,readable:!0,writable:!1})},FC=async(t,e)=>{if(await t,e)throw e},zC=(t,e,r)=>{r&&!UC(r)?t.destroy(r):e&&t.destroy()};var jde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||wi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=$j(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=Dj(a,s),{read:f,onStdoutDataDone:p}=Lj({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new VWe({read:f,destroy:GWe(Fj.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return Uj({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},$j=(t,e,r)=>{let n=kh(t,e),i=RE(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},Dj=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:Cj},Lj=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=Ns(),s=LC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){HWe(this,s,o)},onStdoutDataDone:o}},HWe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},Uj=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await Mj(t),await n,await Nj(i),await e,r.readable&&r.push(null)}catch(o){await Nj(i),Bde(r,o)}},Fj=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await jh(r,e)&&(Bde(t,n),await FC(e,n))},Bde=(t,e)=>{zC(t,t.readable,e)};import{Writable as WWe}from"stream";import{callbackify as qde}from"util";var Vde=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=zj(t,r,e),s=new WWe({...jj(n,t,i),destroy:qde(qj.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return Bj(n,s),s},zj=(t,e,r)=>{let n=tC(t,e),i=RE(r,n,"writableFinal"),o=RE(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},jj=(t,e,r)=>({write:YWe.bind(void 0,t),final:qde(KWe.bind(void 0,t,e,r))}),YWe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},KWe=async(t,e,r)=>{await jh(r,e)&&(t.writable&&t.end(),await e)},Bj=async(t,e,r)=>{try{await kj(t),e.writable&&e.end()}catch(n){await zde(r),Gde(e,n)}},qj=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await jh(r,e),await jh(n,e)&&(Gde(t,i),await FC(e,i))},Gde=(t,e)=>{zC(t,t.writable,e)};import{Duplex as ZWe}from"stream";import{callbackify as JWe}from"util";var Hde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||wi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=$j(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=zj(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=Dj(c,a),{read:g,onStdoutDataDone:_}=Lj({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),v=new ZWe({read:g,...jj(u,t,d),destroy:JWe(XWe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return Uj({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:t,subprocessStdin:u}),Bj(u,v,c),v},XWe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([Fj({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),qj({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var Vj=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||wi.has(e),s=kh(t,r),a=LC({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return QWe(a,s,t)},QWe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Wde=(t,{encoding:e})=>{let r=Ude();t.readable=jde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Vde.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Hde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=Vj.bind(void 0,t,e),t[Symbol.asyncIterator]=Vj.bind(void 0,t,e,{})};var Yde=(t,e)=>{for(let[r,n]of tYe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},eYe=(async()=>{})().constructor.prototype,tYe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(eYe,t)]);var Kde=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=iYe(t,e,r),{subprocess:f,promise:p}=sYe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=DC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Yde(f,p),ks.set(f,{options:u,fileDescriptors:d}),f},iYe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=H0(t,e,r),{file:a,commandArguments:c,options:l}=fC(t,e,r),u=oYe(l),d=sde(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},oYe=({timeout:t,signal:e,...r})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:t}},sYe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=nYe(...pC(t,e,r))}catch(h){return rde({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;rYe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];mde(c,a,l),_de(c,r,l);let d={},f=Ns();c.kill=Oce.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Ode(c,r),Wde(c,r),Que(c,r);let p=aYe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},aYe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,g]=await Lde({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let _=h.map((E,T)=>Ba(E,e,T)),v=Ba(m,e,"all"),w=cYe({errorInfo:d,exitCode:f,signal:p,stdio:_,all:v,ipcOutput:g,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Uh(w,n,e)},cYe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?vE({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ms,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):vC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var jC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,lYe(n,t[n],i)]));return{...t,...r}},lYe=(t,e,r)=>uYe.has(t)&&cr(e)&&cr(r)?{...e,...r}:r,uYe=new Set(["env",...Ez]);var pl=(t,e,r,n)=>{let i=(s,a,c)=>pl(s,a,r,c),o=(...s)=>dYe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},dYe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(cr(o))return i(t,jC(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=fYe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Wue(a,c,l):Kde(a,c,l,i)},fYe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=sae(e)?aae(e,r):[e,...r],[s,a,c]=$0(...o),l=jC(jC(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Zde=({file:t,commandArguments:e})=>Xde(t,e),Jde=({file:t,commandArguments:e})=>({...Xde(t,e),isSync:!0}),Xde=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);let[r,...n]=pYe(t);return{file:r,commandArguments:n}},pYe=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);let e=t.trim();if(e==="")return[];let r=[];for(let n of e.split(hYe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},hYe=/ +/g;var Qde=(t,e,r)=>{t.sync=e(mYe,r),t.s=t.sync},efe=({options:t})=>tfe(t),mYe=({options:t})=>({...tfe(t),isSync:!0}),tfe=t=>({options:{...gYe(t),...t}}),gYe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},rfe={preferLocal:!0};var nfe=pl(()=>({})),fqt=pl(()=>({isSync:!0})),ife=pl(Zde),pqt=pl(Jde),hqt=pl(hle),mqt=pl(efe,{},rfe,Qde),{sendMessage:gqt,getOneMessage:_qt,getEachMessage:yqt,getCancelSignal:Sqt}=ede();var ofe=!1,sfe,afe=t=>{ofe=!0,sfe??=t},qa=()=>ofe,cfe=()=>sfe;var CE=null,lfe=t=>(CE&&CE.destroy(),CE=new Ds({totalAllowedTime:t}),CE),ufe=()=>CE;var Ds=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&qa())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await b0({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Z.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var dfe={name:"@netlify/agent-runner-cli",type:"module",version:"1.179.1-cancel-fields.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.6","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.1","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.153.4","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.1",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var EYe=yYe(import.meta.url),vYe=Va.dirname(EYe),bYe=SYe(import.meta.url),Bh=oe("shell"),Gj=new Set,ffe={preferLocal:!0},Ft=(t,e,r)=>{let[n,i]=TYe(e,r),o={...ffe,...i},s=nfe(t,n,o);hfe(s,o),_fe(s);let a=r?.idleTimeout;return a&&a>0&&gfe(s,a),s},pfe=(t,e)=>{let r={...ffe,...e},n=ife(t,r);return hfe(n,r),_fe(n),e?.idleTimeout&&e.idleTimeout>0&&gfe(n,e.idleTimeout),n},TYe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},hfe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Ls.env.NETLIFY_LOCAL_QUIET==="true")return;if(Ls.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new nE).pipe(Ls.stdout),t.stderr?.pipe(new nE).pipe(Ls.stderr);return}t.stdout?.pipe(Ls.stdout),t.stderr?.pipe(Ls.stderr)},Hj=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ls.kill(-t.pid,e),Bh.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Bh.error("Error killing process:",r),!1}},mfe=t=>Hj(t,"SIGKILL"),gfe=(t,e)=>{let r=null,n=()=>{Bh.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),Hj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Bh.log(`Force killing idle process ${t.pid}`),mfe(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},_fe=t=>{Gj.add(t);let e=ufe();if(e){let r=e.onTimesUp(()=>{Bh.log(`Global timer expired, killing process ${t.pid}`),Hj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Bh.log(`Force killing process ${t.pid} after timeout`),mfe(t))},5e3)});t.on("exit",()=>{Gj.delete(t),r()}),t.on("error",()=>{Gj.delete(t),r()})}};function qC(t,e){return!!jo(t,e)}function jo(t,e){if(!Ls.env.NETLIFY_LOCAL_MODE)try{let i=bYe.resolve(dfe.name),o=Va.dirname(i);for(;o!==Va.dirname(o);){let s=Va.dirname(o);if(Va.basename(s)==="node_modules"){let a=Va.join(s,".bin",e);if(BC.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ls.env.NODE_PATH){let i=Va.join(Ls.env.NODE_PATH,".bin",e);if(BC.existsSync(i))return i}let r=Va.join(t,"node_modules",".bin",e);if(BC.existsSync(r))return r;let n=Va.join(vYe,"..","node_modules",".bin",e);if(BC.existsSync(n))return n}var yfe=oe("repo"),Tfe="runner-diffs-",wfe=t=>`${Tfe}${t}-`,Afe=async t=>{let e=bfe.tmpdir(),r;try{r=await VC.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(Tfe)&&!n.startsWith(wfe(t))).map(n=>VC.rm(GC.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},mn=(t,e={})=>Ft("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),HC=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{yfe.info("Getting runner diffs");let n=await RYe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=OYe(o);await NYe(h,r)}yfe.info("Changes after processing"),await Yj(r);let s=await Kj(o,r);if(await Wj(s,r),i=await CYe(r),!i)return{hasChanges:!1,ignored:s};await mn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await VC.mkdtemp(GC.join(bfe.tmpdir(),wfe(t.sessionId))),c=async({from:h,to:m,fileName:g,binary:_})=>{let v=GC.join(a,g);await mn([..._?["diff",h,m,"--binary"]:["diff",h,m],`--output=${v}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:E}=await VC.stat(v);return{path:v,size:E}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await vfe(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await Efe(d,h)||(f=h)}await vfe(r),Z.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Efe(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Sfe=async t=>{let e=wYe("sha256");for await(let r of AYe(t))e.update(r);return e.digest("hex")},Efe=async(t,e)=>t.size===e.size&&await Sfe(t.path)===await Sfe(e.path),vfe=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await mn(["reset","--soft","HEAD~1"],{cwd:t})},Wj=async(t=[],e=process.cwd())=>{await mn(["add",".",...t],{cwd:e})},Yj=async(t=process.cwd())=>{let e=await mn(["status","-s"],{cwd:t});return String(e.stdout??"")},xfe=/.. (.+)?\.log$/,xYe=[xfe],RYe=async(t=process.cwd())=>{let e=await Yj(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
145
145
  `).filter(i=>xYe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},CYe=async(t=process.cwd())=>{try{return await mn(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},IE=async(t=process.cwd())=>{let{stdout:e}=await mn(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},IYe=1,PYe=async t=>{try{return await mn(["rev-parse","--verify","--quiet","HEAD"],{cwd:t}),!0}catch(e){if(e.exitCode===IYe)return!1;throw e}},Rfe=async(t=process.cwd())=>{if(!await PYe(t))return!0;let{stdout:e}=await mn(["ls-tree","--name-only","HEAD"],{cwd:t});return String(e??"").trim().length===0},Cfe=async(t=process.cwd())=>{let{stdout:e}=await mn(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},Kj=async(t,e=process.cwd())=>{t||=await Yj(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
146
146
  `).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${GC.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(xfe)?.[1];o&&n.push(`:!${o}.log`)}),n},Ife=async(t=process.cwd())=>{await mn(["reset","--hard","HEAD"],{cwd:t})},Pfe=async(t=process.cwd())=>{let e=await mn(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
147
147
  `).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},OYe=t=>{let e=t.split(`
@@ -661,7 +661,7 @@ Preview deploy created successfully:`,{deployId:p.deploy_id,deployUrl:p.deploy_u
661
661
 
662
662
  ${bt.error}
663
663
 
664
- Please fix the issue and do NOT run \`drizzle-kit generate\` yourself \u2014 it will be run automatically after you're done.`]);let Re=await v.generateMigrations(),Mt=Re.error?"unresolved":Re.skipped?"skipped":"resolved";Re.error?(Ar.warn("drizzle-kit generate still failing after the fix turn",{error:Re.error}),y?.setAttributes({"db_migrations.generate_fix_unresolved":!0})):Ar.log("drizzle-kit generate recovered after the fix turn",{outcome:Mt}),Z.inc("db_migrations.generate_fix",1,{outcome:Mt})}let Rr=await v.hasDatabase(),_t=bt.reason==="no_module"||Rr===!1?{}:await v.verifyMigrations(),Rn=0;for(let Re=1;_t.error&&Re<=AZ;Re++){let Mt=_t.error;Rn=Re,Ar.log("Migration drift detected, running inference to fix",{attempt:Re,maxAttempts:AZ}),Z.inc("db_migrations.drift_fix_attempt",1,{attempt:String(Re)});let is=Re===1?"inference-migration-drift-fix":`inference-migration-drift-fix-${Re}`;if(await de(is,[Mt]),_t=await v.verifyMigrations(),!_t.error){Ar.log("Migration drift resolved by fix turn",{attempt:Re}),Z.inc("db_migrations.drift_resolved",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_resolved":!0});break}if(_t.error===Mt){Ar.warn("Migration drift unchanged after fix attempt; not retrying",{attempt:Re}),Z.inc("db_migrations.drift_no_progress",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_no_progress":!0});break}}if(_t.error){let Re=`${Rn} fix attempt${Rn===1?"":"s"}`;if(Ar.warn("Migration drift persists after fix attempts",{attempts:Rn,maxAttempts:AZ}),Z.inc("db_migrations.drift_unresolved",1),y?.setAttributes({"db_migrations.drift_unresolved":!0}),Ye().migrationDriftBlocksDeployEnabled)throw new Error(`Migration drift persists after ${Re}; refusing to deploy a tree the platform will reject.`)}if(Ye().aiFnV1GuardrailEnabled&&n&&!V)try{let Re=await v0(n);Re.v1>0&&(Ar.log(`Detected ${Re.v1} v1 AI function(s), running inference to fix`),await de("inference-ai-fn-v1-fix",[wIe(Re.v1Files)]))}catch(Re){if(La(Re))throw Re;Ar.warn("ai_fn_v1_guardrail failed",{err:Re})}let at=await _("deploy",()=>LT({cliPath:r,config:t,result:F.result,filter:i,isRetry:!1,deploySubdomain:ce})),ft=at.hasChanges?at:void 0,we=F;at.deployError&&Z.inc("deploy.failed",1,{attempt:1});let rt=[],Ie;if(at.hasChanges&&at.deployError){rt.push(Ese(at.deployError));let Re=1,Mt=!1;for(;Re<=ty&&!at.previewInfo&&!Mt;)Ar.log(`Deploy attempt had errors. Retrying. ${Re}/${ty}`),await Dy(pt(),"deploy-stage",async is=>{is?.setAttributes({"stage.attempt":Re});let mi;try{g=h;let ny=await v.currentContext();mi=(await Ne.runFixTurn(()=>_(`inference-retry-${Re}`,()=>xu({cliPath:r,config:t,context:$,runner:K,persistSteps:ne,aiGateway:te,buildErrors:rt,additionalContext:ny,priorAgentSessionId:F.agentSessionId,answerFold:Fe})))).runnerResult}catch(ny){if(La(ny))throw ny;Ar.warn(`Inference retry ${Re} failed, stopping deploy retries:`,ny),Mt=!0;return}if(ve)throw Object.assign(ve,{agentSessionId:mi.agentSessionId??F.agentSessionId}),ve;we=ev(we,mi),await v.generateMigrations(),at=await _(`deploy-retry-${Re}`,()=>LT({cliPath:r,config:t,result:mi.result,filter:i,isRetry:!0,deploySubdomain:ce})),at.hasChanges&&(ft=at),at.deployError&&(Z.inc("deploy.failed",1,{attempt:Re+1}),rt.push(at.deployError)),Re++});Re>ty&&!at.previewInfo&&(Z.inc("deploy.retries_exhausted",1),t.mode==="create"?(console.warn(`Deploy still failing after ${ty} retries, failing the create run`),Ie=new Error(`Deploy failed after ${ty} retries`)):console.warn(`Deploy still failing after ${ty} retries, completing run without a preview`))}let be=at.previewInfo||at.hasChanges?at:ft??at,{diff:un,resultDiff:aa,previewInfo:hM,diffBinary:ry,resultDiffBinary:mM,hasNetlifyForm:rp,hasNetlifyIdentity:Nu}=be;be.hasChanges&&T0({previewDeployed:!!be.previewInfo,hadFailedAttempts:rt.length>0}),await c?.stop(),y?.setAttributes(bse(we,c?.getCreditsCost())),f=we.resolvedModel,p=we.effort??p;let np=we.agentSessionId??F.agentSessionId;await A({...Ie?{outcome:"deploy-failed",error:Ie}:{outcome:"completed",pipelineSpan:y},artifacts:{diff:un,result:we.result,duration:we.duration,resultDiff:aa,diffBinary:ry,resultDiffBinary:mM,previewInfo:hM,isProdDeploy:ke,hasNetlifyForm:rp,hasNetlifyIdentity:Nu,nativeSessionId:np,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h}});let Yt=await v.hasDatabase();typeof Yt=="boolean"&&y?.setAttributes({"actual.has_db":Yt}),await Hse({config:t,hasDb:Yt,pipelineSpan:y,resolvedModel:we.resolvedModel??F.resolvedModel,cliVersion:Ou.version})})}catch(y){if(La(y)){u="gracefulError",Ar.info("Agent run terminated gracefully",{statusCode:y.statusCode,reason:y.message}),await c?.stop();let te=y.isCreditLimitExceeded?"credit-limit":"graceful-error";await A({outcome:te,error:y,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h});return}throw Ar.error("Got error while running pipeline",y),await c?.stop(),u=qa()?"interrupted":"error",await A({outcome:u,error:y}),y}finally{v.revokeAskAccess(),m&&PIe(m,c?.getCreditsCost(),g),EIe({isHotFollowUp:o,startedAt:l,outcome:u,nativeResume:d,isAnswerResume:L,creditsCost:c?.getCreditsCost(),model:f,effort:p}),bIe({agentRunnerId:t.id,sessionId:t.sessionId,devServerId:process.env.NETLIFY_DEV_SERVER_ID,agent:t.runner,mode:t.mode,outcome:u,finalizationOutcome:E,stopReason:cfe(),version:Ou.version,startedAt:l,model:f,effort:p,creditsCost:c?.getCreditsCost(),nativeResume:d,isAnswerResume:L,isHotFollowUp:o})}};import zIe from"crypto";var xn=oe("bin_local"),Gn=(0,qIe.default)(xr.argv.slice(2),{string:["cwd","cli-path","filter","prompt","runner","model","netlify-api-token","trace-exporter-url"],boolean:["quiet","help","preview"],alias:{h:"help",q:"quiet"}});Gn.quiet&&(xr.env.LOG="0",xr.env.NETLIFY_LOCAL_QUIET="true");var RZ=()=>{console.log(`
664
+ Please fix the issue and do NOT run \`drizzle-kit generate\` yourself \u2014 it will be run automatically after you're done.`]);let Re=await v.generateMigrations(),Mt=Re.error?"unresolved":Re.skipped?"skipped":"resolved";Re.error?(Ar.warn("drizzle-kit generate still failing after the fix turn",{error:Re.error}),y?.setAttributes({"db_migrations.generate_fix_unresolved":!0})):Ar.log("drizzle-kit generate recovered after the fix turn",{outcome:Mt}),Z.inc("db_migrations.generate_fix",1,{outcome:Mt})}let Rr=await v.hasDatabase(),_t=bt.reason==="no_module"||Rr===!1?{}:await v.verifyMigrations(),Rn=0;for(let Re=1;_t.error&&Re<=AZ;Re++){let Mt=_t.error;Rn=Re,Ar.log("Migration drift detected, running inference to fix",{attempt:Re,maxAttempts:AZ}),Z.inc("db_migrations.drift_fix_attempt",1,{attempt:String(Re)});let is=Re===1?"inference-migration-drift-fix":`inference-migration-drift-fix-${Re}`;if(await de(is,[Mt]),_t=await v.verifyMigrations(),!_t.error){Ar.log("Migration drift resolved by fix turn",{attempt:Re}),Z.inc("db_migrations.drift_resolved",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_resolved":!0});break}if(_t.error===Mt){Ar.warn("Migration drift unchanged after fix attempt; not retrying",{attempt:Re}),Z.inc("db_migrations.drift_no_progress",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_no_progress":!0});break}}if(_t.error){let Re=`${Rn} fix attempt${Rn===1?"":"s"}`;if(Ar.warn("Migration drift persists after fix attempts",{attempts:Rn,maxAttempts:AZ}),Z.inc("db_migrations.drift_unresolved",1),y?.setAttributes({"db_migrations.drift_unresolved":!0}),Ye().migrationDriftBlocksDeployEnabled)throw new Error(`Migration drift persists after ${Re}; refusing to deploy a tree the platform will reject.`)}if(Ye().aiFnV1GuardrailEnabled&&n&&!V)try{let Re=await v0(n);Re.v1>0&&(Ar.log(`Detected ${Re.v1} v1 AI function(s), running inference to fix`),await de("inference-ai-fn-v1-fix",[wIe(Re.v1Files)]))}catch(Re){if(La(Re))throw Re;Ar.warn("ai_fn_v1_guardrail failed",{err:Re})}let at=await _("deploy",()=>LT({cliPath:r,config:t,result:F.result,filter:i,isRetry:!1,deploySubdomain:ce})),ft=at.hasChanges?at:void 0,we=F;at.deployError&&Z.inc("deploy.failed",1,{attempt:1});let rt=[],Ie;if(at.hasChanges&&at.deployError){rt.push(Ese(at.deployError));let Re=1,Mt=!1;for(;Re<=ty&&!at.previewInfo&&!Mt;)Ar.log(`Deploy attempt had errors. Retrying. ${Re}/${ty}`),await Dy(pt(),"deploy-stage",async is=>{is?.setAttributes({"stage.attempt":Re});let mi;try{g=h;let ny=await v.currentContext();mi=(await Ne.runFixTurn(()=>_(`inference-retry-${Re}`,()=>xu({cliPath:r,config:t,context:$,runner:K,persistSteps:ne,aiGateway:te,buildErrors:rt,additionalContext:ny,priorAgentSessionId:F.agentSessionId,answerFold:Fe})))).runnerResult}catch(ny){if(La(ny))throw ny;Ar.warn(`Inference retry ${Re} failed, stopping deploy retries:`,ny),Mt=!0;return}if(ve)throw Object.assign(ve,{agentSessionId:mi.agentSessionId??F.agentSessionId}),ve;we=ev(we,mi),await v.generateMigrations(),at=await _(`deploy-retry-${Re}`,()=>LT({cliPath:r,config:t,result:mi.result,filter:i,isRetry:!0,deploySubdomain:ce})),at.hasChanges&&(ft=at),at.deployError&&(Z.inc("deploy.failed",1,{attempt:Re+1}),rt.push(at.deployError)),Re++});Re>ty&&!at.previewInfo&&(Z.inc("deploy.retries_exhausted",1),t.mode==="create"?(console.warn(`Deploy still failing after ${ty} retries, failing the create run`),Ie=new Error(`Deploy failed after ${ty} retries`)):console.warn(`Deploy still failing after ${ty} retries, completing run without a preview`))}let be=at.previewInfo||at.hasChanges?at:ft??at,{diff:un,resultDiff:aa,previewInfo:hM,diffBinary:ry,resultDiffBinary:mM,hasNetlifyForm:rp,hasNetlifyIdentity:Nu}=be;be.hasChanges&&T0({previewDeployed:!!be.previewInfo,hadFailedAttempts:rt.length>0}),await c?.stop(),y?.setAttributes(bse(we,c?.getCreditsCost())),f=we.resolvedModel,p=we.effort??p;let np=we.agentSessionId??F.agentSessionId;await A({...Ie?{outcome:"deploy-failed",error:Ie}:{outcome:"completed",pipelineSpan:y},artifacts:{diff:un,result:we.result,duration:we.duration,resultDiff:aa,diffBinary:ry,resultDiffBinary:mM,previewInfo:hM,isProdDeploy:ke,hasNetlifyForm:rp,hasNetlifyIdentity:Nu,nativeSessionId:np,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h}});let Yt=await v.hasDatabase();typeof Yt=="boolean"&&y?.setAttributes({"actual.has_db":Yt}),await Hse({config:t,hasDb:Yt,pipelineSpan:y,resolvedModel:we.resolvedModel??F.resolvedModel,cliVersion:Ou.version})})}catch(y){if(La(y)){u="gracefulError",Ar.info("Agent run terminated gracefully",{statusCode:y.statusCode,reason:y.message}),await c?.stop();let te=y.isCreditLimitExceeded?"credit-limit":"graceful-error";await A({outcome:te,error:y,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h});return}throw Ar.error("Got error while running pipeline",y),await c?.stop(),u=qa()?"interrupted":"error",await A({outcome:u,error:y}),y}finally{v.revokeAskAccess(),m&&PIe(m,c?.getCreditsCost(),g),EIe({isHotFollowUp:o,startedAt:l,outcome:u,nativeResume:d,isAnswerResume:L,creditsCost:c?.getCreditsCost(),model:f,effort:p}),bIe({agentRunnerId:t.id,sessionId:t.sessionId,devServerId:process.env.NETLIFY_DEV_SERVER_ID,agent:t.runner,mode:t.mode,outcome:u,finalizationOutcome:E,stopReason:cfe(),version:Ou.version,startedAt:l,model:f??t.model,effort:p??t.effort,creditsCost:c?.getCreditsCost(),nativeResume:d,isAnswerResume:L,isHotFollowUp:o})}};import zIe from"crypto";var xn=oe("bin_local"),Gn=(0,qIe.default)(xr.argv.slice(2),{string:["cwd","cli-path","filter","prompt","runner","model","netlify-api-token","trace-exporter-url"],boolean:["quiet","help","preview"],alias:{h:"help",q:"quiet"}});Gn.quiet&&(xr.env.LOG="0",xr.env.NETLIFY_LOCAL_QUIET="true");var RZ=()=>{console.log(`
665
665
  agent-runner-cli-local - Run Netlify agent runner locally without API connections
666
666
 
667
667
  USAGE:
package/dist/bin.js CHANGED
@@ -631,7 +631,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
631
631
  `,LF:`
632
632
  `,concatBytes:FK},YAt=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},KAt={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:YAt};import{Buffer as JAt}from"buffer";var yxe=(t,e)=>t?void 0:ZAt.bind(void 0,e),ZAt=function*(t,e){if(typeof e!="string"&&!nn(e)&&!JAt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Sxe=(t,e)=>t?XAt.bind(void 0,e):QAt.bind(void 0,e),XAt=function*(t,e){Exe(t,e),yield e},QAt=function*(t,e){if(Exe(t,e),typeof e!="string"&&!nn(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Exe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
633
633
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
634
- if (condition) { yield value; }`)};import{Buffer as ext}from"buffer";import{StringDecoder as txt}from"string_decoder";var Kk=(t,e,r)=>{if(r)return;if(t)return{transform:rxt.bind(void 0,new TextEncoder)};let n=new txt(e);return{transform:nxt.bind(void 0,n),final:ixt.bind(void 0,n)}},rxt=function*(t,e){ext.isBuffer(e)?yield cl(e):typeof e=="string"?yield t.encode(e):yield e},nxt=function*(t,e){yield nn(e)?t.write(e):e},ixt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as vxe}from"util";var zK=vxe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Jk=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=oxt}=e[r];for await(let i of n(t))yield*Jk(i,e,r+1)},bxe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*sxt(r,Number(e),t)},sxt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Jk(n,r,e+1)},Txe=vxe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),oxt=function*(t){yield t};var qK=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},wxe=(t,e)=>[...e.flatMap(r=>[...qp(r,t,0)]),...zw(t)],qp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=cxt}=e[r];for(let i of n(t))yield*qp(i,e,r+1)},zw=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*axt(r,Number(e),t)},axt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*qp(n,r,e+1)},cxt=function*(t){yield t};var BK=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Axe(t,o,s),l=zp(e),u=zp(r),d=l?zK.bind(void 0,Jk,a):qK.bind(void 0,qp),f=l||u?zK.bind(void 0,bxe,a):qK.bind(void 0,zw),p=l||u?Txe.bind(void 0,a):void 0;return{stream:new lxt({writableObjectMode:n,writableHighWaterMark:Rxe(n),readableObjectMode:i,readableHighWaterMark:Rxe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},Zk=(t,e,r,n)=>{let i=e.filter(({type:o})=>o==="generator"),s=n?i.reverse():i;for(let{value:o,optionName:a}of s){let c=Axe(o,r,a);t=wxe(c,t)}return t},Axe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:yxe(n,a)},Kk(r,o,n),Yk(r,s,n,c),{transform:t,final:e},{transform:Sxe(i,a)},_xe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var xxe=(t,e)=>{for(let r of uxt(t))dxt(t,r,e)},uxt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),dxt=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${pd[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>fxt(a,n));r.input=Ow(o)},fxt=(t,e)=>{let r=Zk(t,e,"utf8",!0);return pxt(r),Ow(r)},pxt=t=>{let e=t.find(r=>typeof r!="string"&&!nn(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as _xt,appendFileSync as yxt}from"fs";var Xk=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&X_(r,n)&&!ys.has(e)&&hxt(n)&&(t.some(({type:i,value:s})=>i==="native"&&mxt.has(s))||t.every(({type:i})=>to.has(i))),hxt=t=>t===1||t===2,mxt=new Set(["pipe","overlapped"]),Cxe=async(t,e,r,n)=>{for await(let i of t)gxt(e)||Ixe(i,r,n)},Pxe=(t,e,r)=>{for(let n of t)Ixe(n,e,r)},gxt=t=>t._readableState.pipes.length>0,Ixe=(t,e,r)=>{let n=fk(t);La({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Oxe=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:e.map((c,l)=>Sxt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},Sxt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=NAe(t,s,d),p=cl(f),{stdioItems:h,objectMode:m}=e[r],_=Ext([p],h,c,n),{serializedResult:y,finalResult:E=y}=vxt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});bxt({serializedResult:y,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let S=a[r]?E:void 0;try{return n.error===void 0&&Txt(y,h,i),S}catch(g){return n.error=g,S}},Ext=(t,e,r,n)=>{try{return Zk(t,e,r,!1)}catch(i){return n.error=i,t}},vxt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Ow(t)};let o=Gwe(t,r);return n[s]?{serializedResult:o,finalResult:jK(o,!i[s],e)}:{serializedResult:o}},bxt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!Xk({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=jK(t,!1,o);try{Pxe(a,e,n)}catch(c){r.error??=c}},Txt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>Gk.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?yxt(n,t):(r.add(s),_xt(n,t))}};var Nxe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,dl(e,r,"all")]:Array.isArray(e)?[dl(t,r,"all"),...e]:nn(t)&&nn(e)?KY([t,e]):`${t}${e}`};import{once as VK}from"events";var kxe=async(t,e)=>{let[r,n]=await wxt(t);return e.isForcefullyTerminated??=!1,[r,n]},wxt=async t=>{let[e,r]=await Promise.allSettled([VK(t,"spawn"),VK(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?$xe(t):r.value},$xe=async t=>{try{return await VK(t,"exit")}catch{return $xe(t)}},Lxe=async t=>{let[e,r]=await t;if(!Rxt(e,r)&&HK(e,r))throw new $o;return[e,r]},Rxt=(t,e)=>t===void 0&&e===void 0,HK=(t,e)=>t!==0||e!==null;var Dxe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=Axt(t,e,r),o=s?.code==="ETIMEDOUT",a=OAe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},Axt=(t,e,r)=>t!==void 0?t:HK(e,r)?new $o:void 0;var Mxe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=Cxt(t,e,r),d=Oxt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return cy(d,c,l)},Cxt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=hk(t,e,r),a=Pxt(r),{file:c,commandArguments:l,options:u}=$k(t,e,a);Ixt(u);let d=pxe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Pxt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Ixt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Qk("ipcInput"),t&&Qk("ipc: true"),r&&Qk("detached: true"),n&&Qk("cancelSignal")},Qk=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},Oxt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=Nxt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Dxe(c,r),{output:h,error:m=l}=Oxe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((E,S)=>dl(E,r,S)),y=dl(Nxe(h,r),r,"all");return $xt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},Nxt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{xxe(s,r);let a=kxt(r);return xxt(...Lk(t,e,a))}catch(a){return ay({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},kxt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:qk(e)}),$xt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?Bk({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):jw({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as vPt}from"events";import{spawn as bPt}from"child_process";import qxe from"process";import{once as GK,on as Lxt}from"events";var Uxe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(ty({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:Ck(t)}),Dxt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),Dxt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{wk(e,i);let s=fd(t,e,r),o=new AbortController;try{return await Promise.race([Mxt(s,n,o),Uxt(s,r,o),Fxt(s,r,o)])}catch(a){throw ry(t),a}finally{o.abort(),Rk(e,i)}},Mxt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await GK(t,"message",{signal:r});return n}for await(let[n]of Lxt(t,"message",{signal:r}))if(e(n))return n},Uxt=async(t,e,{signal:r})=>{await GK(t,"disconnect",{signal:r}),w0e(e)},Fxt=async(t,e,{signal:r})=>{let[n]=await GK(t,"strict:error",{signal:r});throw vk(n,e)};import{once as jxe,on as jxt}from"events";var zxe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>WK({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),WK=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{ty({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:Ck(t)}),wk(e,s);let o=fd(t,e,r),a=new AbortController,c={};return zxt(t,o,a),qxt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Bxt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},zxt=async(t,e,r)=>{try{await jxe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},qxt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await jxe(t,"strict:error",{signal:r.signal});n.error=vk(i,e),r.abort()}catch{}},Bxt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of jxt(r,"message",{signal:s.signal}))Fxe(o),yield c}catch{Fxe(o)}finally{s.abort(),Rk(e,a),n||ry(t),i&&await t}},Fxe=({error:t})=>{if(t)throw t};var Bxe=(t,{ipc:e})=>{Object.assign(t,Hxe(t,!1,e))},Vxe=()=>{let t=qxe,e=!0,r=qxe.channel!==void 0;return{...Hxe(t,e,r),getCancelSignal:Z0e.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Hxe=(t,e,r)=>({sendMessage:Nk.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Uxe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:zxe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as Vxt}from"child_process";import{PassThrough as Hxt,Readable as Gxt,Writable as Wxt,Duplex as Yxt}from"stream";var Gxe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{MK(n);let a=new Vxt;Kxt(a,n),Object.assign(a,{readable:Jxt,writable:Zxt,duplex:Xxt});let c=ay({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=Qxt(c,o,i);return{subprocess:a,promise:l}},Kxt=(t,e)=>{let r=qw(),n=qw(),i=qw(),s=Array.from({length:e.length-3},qw),o=qw(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},qw=()=>{let t=new Hxt;return t.end(),t},Jxt=()=>new Gxt({read(){}}),Zxt=()=>new Wxt({write(){}}),Xxt=()=>new Yxt({read(){},write(){}}),Qxt=async(t,e,r)=>cy(t,e,r);import{createReadStream as Wxe,createWriteStream as Yxe}from"fs";import{Buffer as eCt}from"buffer";import{Readable as Bw,Writable as tCt,Duplex as rCt}from"stream";var Jxe=(t,e)=>Wk(nCt,t,e,!1),Vw=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${pd[t]}.`)},Kxe={fileNumber:Vw,generator:BK,asyncGenerator:BK,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:rCt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},nCt={input:{...Kxe,fileUrl:({value:t})=>({stream:Wxe(t)}),filePath:({value:{file:t}})=>({stream:Wxe(t)}),webStream:({value:t})=>({stream:Bw.fromWeb(t)}),iterable:({value:t})=>({stream:Bw.from(t)}),asyncIterable:({value:t})=>({stream:Bw.from(t)}),string:({value:t})=>({stream:Bw.from(t)}),uint8Array:({value:t})=>({stream:Bw.from(eCt.from(t))})},output:{...Kxe,fileUrl:({value:t})=>({stream:Yxe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Yxe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:tCt.fromWeb(t)}),iterable:Vw,asyncIterable:Vw,string:Vw,uint8Array:Vw}};import{on as iCt,once as Zxe}from"events";import{PassThrough as sCt,getDefaultHighWaterMark as oCt}from"stream";import{finished as eCe}from"stream/promises";function Bp(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)KK(i);let e=t.some(({readableObjectMode:i})=>i),r=aCt(t,e),n=new YK({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var aCt=(t,e)=>{if(t.length===0)return oCt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},YK=class extends sCt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(KK(e),this.#e.has(e))return;this.#e.add(e),this.#n??=cCt(this,this.#e,this.#s);let r=dCt({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#s});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(KK(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},cCt=async(t,e,r)=>{e$(t,Xxe);let n=new AbortController;try{await Promise.race([lCt(t,n),uCt(t,e,r,n)])}finally{n.abort(),e$(t,-Xxe)}},lCt=async(t,{signal:e})=>{try{await eCe(t,{signal:e,cleanup:!0})}catch(r){throw tCe(t,r),r}},uCt=async(t,e,r,{signal:n})=>{for await(let[i]of iCt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},KK=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},dCt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{e$(t,Qxe);let a=new AbortController;try{await Promise.race([fCt(s,e,a),pCt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),hCt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),e$(t,-Qxe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?JK(t):mCt(t))},fCt=async(t,e,{signal:r})=>{try{await t,r.aborted||JK(e)}catch(n){r.aborted||tCe(e,n)}},pCt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await eCe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;rCe(o)?i.add(e):nCe(t,o)}},hCt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Zxe(t,i,{signal:s}),!t.readable)return Zxe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},mCt=t=>{t.writable&&t.end()},tCe=(t,e)=>{rCe(e)?JK(t):nCe(t,e)},rCe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",JK=t=>{(t.readable||t.writable)&&t.destroy()},nCe=(t,e)=>{t.destroyed||(t.once("error",gCt),t.destroy(e))},gCt=()=>{},e$=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Xxe=2,Qxe=1;import{finished as iCe}from"stream/promises";var uy=(t,e)=>{t.pipe(e),_Ct(t,e),yCt(t,e)},_Ct=async(t,e)=>{if(!(ko(t)||ko(e))){try{await iCe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}ZK(e)}},ZK=t=>{t.writable&&t.end()},yCt=async(t,e)=>{if(!(ko(t)||ko(e))){try{await iCe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}XK(t)}},XK=t=>{t.readable&&t.destroy()};var sCe=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:s,direction:o}]of Object.entries(e)){for(let{stream:a}of s.filter(({type:c})=>to.has(c)))SCt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!to.has(c)))vCt({subprocess:t,stream:a,direction:o,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,s]of n.entries()){let o=s.length===1?s[0]:Bp(s);uy(o,i)}},SCt=(t,e,r,n)=>{r==="output"?uy(t.stdio[n],e):uy(e,t.stdio[n]);let i=ECt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},ECt=["stdin","stdout","stderr"],vCt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;bCt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},bCt=(t,{signal:e})=>{ko(t)&&Fp(t,TCt,e)},TCt=2;import{addAbortListener as ACt}from"events";var Vp=[];Vp.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Vp.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Vp.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var t$=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",QK=Symbol.for("signal-exit emitter"),e5=globalThis,wCt=Object.defineProperty.bind(Object),t5=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(e5[QK])return e5[QK];wCt(e5,QK,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let s of this.listeners[e])i=s(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},r$=class{},RCt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),r5=class extends r${onExit(){return()=>{}}load(){}unload(){}},n5=class extends r${#e=i5.platform==="win32"?"SIGINT":"SIGHUP";#r=new t5;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Vp)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),n.length===i){this.unload();let o=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;o||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!t$(this.#t))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#r.count+=1;for(let e of Vp)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#o&&(this.#o=!1,Vp.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#s,this.#r.count-=1)}#a(e){return t$(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#s.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&t$(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},i5=globalThis.process,{onExit:oCe,load:pwr,unload:hwr}=RCt(t$(i5)?new n5(i5):new r5);var aCe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=oCe(()=>{t.kill()});ACt(n,()=>{i()})};var lCe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=pk(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=xCt(r,n,i),{sourceStream:d,sourceError:f}=PCt(t,l),{options:p,fileDescriptors:h}=Ma.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},xCt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=CCt(t,e,...r),a=Tk(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},CCt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(cCe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||WY(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,s,o]=nk(r,...n);return{destination:e(cCe)(i,s,o),pipeOptions:o}}if(Ma.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},cCe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),PCt=(t,e)=>{try{return{sourceStream:ny(t,e)}}catch(r){return{sourceError:r}}};var dCe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=ICt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw s5({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},ICt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return XK(t),n;if(e!==void 0)return ZK(r),e},s5=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>ay({error:t,command:uCe,escapedCommand:uCe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),uCe="source.pipe(destination)";var fCe=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:s,value:o=s}]=await t;if(o.pipedFrom.includes(n)||o.pipedFrom.push(n),i==="rejected")throw o;if(e==="rejected")throw n;return o};import{finished as OCt}from"stream/promises";var pCe=(t,e,r)=>{let n=n$.has(e)?kCt(t,e):NCt(t,e);return Fp(t,LCt,r.signal),Fp(e,DCt,r.signal),$Ct(e),n},NCt=(t,e)=>{let r=Bp([t]);return uy(r,e),n$.set(e,r),r},kCt=(t,e)=>{let r=n$.get(e);return r.add(t),r},$Ct=async t=>{try{await OCt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}n$.delete(t)},n$=new WeakMap,LCt=2,DCt=1;import{aborted as MCt}from"util";var hCe=(t,e)=>t===void 0?[]:[UCt(t,e)],UCt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await MCt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw s5({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var i$=(t,...e)=>{if(Fr(e[0]))return i$.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=lCe(t,...e),i=FCt({...n,destination:r});return i.pipe=i$.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},FCt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=jCt(t,i);dCe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=pCe(e,s,d);return await Promise.race([fCe(u),...hCe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},jCt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as WCt}from"timers/promises";import{on as zCt}from"events";import{getDefaultHighWaterMark as qCt}from"stream";var s$=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return BCt(e,o),gCe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},BCt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},o5=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;VCt(e,o,t);let a=t.readableObjectMode&&!s;return gCe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},VCt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},gCe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=zCt(t,"data",{signal:e.signal,highWaterMark:mCe,highWatermark:mCe});return HCt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},a5=qCt(!0),mCe=a5,HCt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=GCt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*qp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*zw(a)}},GCt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Kk(t,r,!e),Yk(t,i,!n,{})].filter(Boolean);var _Ce=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=YCt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([KCt(t),d]);return}let f=UK(c,r),p=o5({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([JCt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},YCt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!Xk({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=o5({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Cxe(a,t,r,s)},KCt=async t=>{await WCt(),t.readableFlowing===null&&t.resume()},JCt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await Fk(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await jk(r,{maxBuffer:s})):await oy(r,{maxBuffer:s})}catch(a){return yCe(CAe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},c5=async t=>{try{return await t}catch(e){return yCe(e)}},yCe=({bufferedData:t})=>Vwe(t)?new Uint8Array(t):t;import{finished as ZCt}from"stream/promises";var Hw=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=XCt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],ZCt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||tPt(a,e,r,n)}finally{o.abort()}},XCt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&QCt(t,r,n),n},QCt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{ePt(e,r),n.call(t,...i)}},ePt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},tPt=(t,e,r,n)=>{if(!rPt(t,e,r,n))throw t},rPt=(t,e,r,n=!0)=>r.propagating?SCe(t)||o$(t):(r.propagating=!0,l5(r,e)===n?SCe(t):o$(t)),l5=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",o$=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",SCe=t=>t?.code==="EPIPE";var ECe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>u5({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),u5=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=Hw(t,e,l);if(l5(l,e)){await u;return}let[d]=await Promise.all([_Ce({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var vCe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Bp([t,e].filter(Boolean)):void 0,bCe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>u5({...nPt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:iPt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),nPt=({stdout:t,stderr:e,all:r},[,n,i])=>{let s=n||i;return s?n?i?{stream:r,buffer:s}:{stream:t,buffer:s}:{stream:e,buffer:s}:{stream:r,buffer:s}},iPt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as sPt}from"events";var TCe=t=>X_(t,"ipc"),wCe=(t,e)=>{let r=fk(t);La({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var RCe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=TCe(s),a=ll(e,"ipc"),c=ll(r,"ipc");for await(let l of WK({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(PAe(t,i,c),i.push(l)),o&&wCe(l,s);return i},ACe=async(t,e)=>(await Promise.allSettled([t]),e);var xCe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:y})=>{let E=kxe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:E,propagating:!1},g=ECe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),b=bCe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),w=[],R=RCe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:w,verboseInfo:p}),T=oPt(m,t,S),C=aPt(h,S);try{return await Promise.race([Promise.all([{},Lxe(E),Promise.all(g),b,R,aAe(t,d),...T,...C]),_,cPt(t,y),...rAe(t,s,f,y),...T0e({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...eAe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(N){return f.terminationReason??="other",Promise.all([{error:N},E,Promise.all(g.map(A=>c5(A))),c5(b),ACe(R,w),Promise.allSettled(T),Promise.allSettled(C)])}},oPt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:Hw(n,i,r)),aPt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Do(s,{checkOpen:!1})&&!ko(s)).map(({type:i,value:s,stream:o=s})=>Hw(o,n,e,{isSameDirection:to.has(i),stopOnExit:i==="native"}))),cPt=async(t,{signal:e})=>{let[r]=await sPt(t,"error",{signal:e});throw r};var CCe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),Gw=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Da();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},dy=async({resolve:t,promises:e},r)=>{t();let[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...e])]);return!n};import{Readable as lPt}from"stream";import{callbackify as uPt}from"util";import{finished as PCe}from"stream/promises";var d5=async t=>{if(t!==void 0)try{await f5(t)}catch{}},ICe=async t=>{if(t!==void 0)try{await p5(t)}catch{}},f5=async t=>{await PCe(t,{cleanup:!0,readable:!1,writable:!0})},p5=async t=>{await PCe(t,{cleanup:!0,readable:!0,writable:!1})},a$=async(t,e)=>{if(await t,e)throw e},c$=(t,e,r)=>{r&&!o$(r)?t.destroy(r):e&&t.destroy()};var OCe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||ys.has(r),{subprocessStdout:a,waitReadableDestroy:c}=h5(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=m5(a,o),{read:f,onStdoutDataDone:p}=g5({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new lPt({read:f,destroy:uPt(y5.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return _5({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},h5=(t,e,r)=>{let n=ny(t,e),i=Gw(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},m5=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:a5},g5=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Da(),o=s$({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){dPt(this,o,s)},onStdoutDataDone:s}},dPt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},_5=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await p5(t),await n,await d5(i),await e,r.readable&&r.push(null)}catch(s){await d5(i),NCe(r,s)}},y5=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await dy(r,e)&&(NCe(t,n),await a$(e,n))},NCe=(t,e)=>{c$(t,t.readable,e)};import{Writable as fPt}from"stream";import{callbackify as kCe}from"util";var $Ce=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=S5(t,r,e),o=new fPt({...E5(n,t,i),destroy:kCe(b5.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return v5(n,o),o},S5=(t,e,r)=>{let n=Tk(t,e),i=Gw(r,n,"writableFinal"),s=Gw(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},E5=(t,e,r)=>({write:pPt.bind(void 0,t),final:kCe(hPt.bind(void 0,t,e,r))}),pPt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},hPt=async(t,e,r)=>{await dy(r,e)&&(t.writable&&t.end(),await e)},v5=async(t,e,r)=>{try{await f5(t),e.writable&&e.end()}catch(n){await ICe(r),LCe(e,n)}},b5=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await dy(r,e),await dy(n,e)&&(LCe(t,i),await a$(e,i))},LCe=(t,e)=>{c$(t,t.writable,e)};import{Duplex as mPt}from"stream";import{callbackify as gPt}from"util";var DCe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ys.has(r),{subprocessStdout:c,waitReadableDestroy:l}=h5(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=S5(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=m5(c,a),{read:_,onStdoutDataDone:y}=g5({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),E=new mPt({read:_,...E5(u,t,d),destroy:gPt(_Pt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return _5({subprocessStdout:c,onStdoutDataDone:y,readable:E,subprocess:t,subprocessStdin:u}),v5(u,E,c),E},_Pt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([y5({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),b5({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var T5=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||ys.has(e),o=ny(t,r),a=s$({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return yPt(a,o,t)},yPt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var MCe=(t,{encoding:e})=>{let r=CCe();t.readable=OCe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=$Ce.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=DCe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=T5.bind(void 0,t,e),t[Symbol.asyncIterator]=T5.bind(void 0,t,e,{})};var UCe=(t,e)=>{for(let[r,n]of EPt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},SPt=(async()=>{})().constructor.prototype,EPt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(SPt,t)]);var FCe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=TPt(t,e,r),{subprocess:f,promise:p}=RPt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=i$.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),UCe(f,p),Ma.set(f,{options:u,fileDescriptors:d}),f},TPt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=hk(t,e,r),{file:a,commandArguments:c,options:l}=$k(t,e,r),u=wPt(l),d=Jxe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},wPt=({timeout:t,signal:e,...r})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:t}},RPt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=bPt(...Lk(t,e,r))}catch(h){return Gxe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;vPt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];sCe(c,a,l),aCe(c,r,l);let d={},f=Da();c.kill=v0e.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=vCe(c,r),MCe(c,r),Bxe(c,r);let p=APt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:s,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},APt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,_]=await xCe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let y=h.map((g,b)=>dl(g,e,b)),E=dl(m,e,"all"),S=xPt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:E,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return cy(S,n,e)},xPt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?jw({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ua,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):Bk({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var l$=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,CPt(n,t[n],i)]));return{...t,...r}},CPt=(t,e,r)=>PPt.has(t)&&Fr(e)&&Fr(r)?{...e,...r}:r,PPt=new Set(["env",...QY]);var hd=(t,e,r,n)=>{let i=(o,a,c)=>hd(o,a,r,c),s=(...o)=>IPt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},IPt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Fr(s))return i(t,l$(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=OPt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?Mxe(a,c,l):FCe(a,c,l,i)},OPt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=Jwe(e)?Zwe(e,r):[e,...r],[o,a,c]=nk(...s),l=l$(l$(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var jCe=({file:t,commandArguments:e})=>qCe(t,e),zCe=({file:t,commandArguments:e})=>({...qCe(t,e),isSync:!0}),qCe=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);let[r,...n]=NPt(t);return{file:r,commandArguments:n}},NPt=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);let e=t.trim();if(e==="")return[];let r=[];for(let n of e.split(kPt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},kPt=/ +/g;var BCe=(t,e,r)=>{t.sync=e($Pt,r),t.s=t.sync},VCe=({options:t})=>HCe(t),$Pt=({options:t})=>({...HCe(t),isSync:!0}),HCe=t=>({options:{...LPt(t),...t}}),LPt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},GCe={preferLocal:!0};var WCe=hd(()=>({})),nAr=hd(()=>({isSync:!0})),YCe=hd(jCe),iAr=hd(zCe),sAr=hd(iAe),oAr=hd(VCe,{},GCe,BCe),{sendMessage:aAr,getOneMessage:cAr,getEachMessage:lAr,getCancelSignal:uAr}=Vxe();import{Transform as DPt}from"stream";var MPt=["NETLIFY_AI_GATEWAY_KEY"];function UPt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...MPt])]}function FPt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function jPt(){let e=UPt().map(r=>process.env[r]).filter(r=>!(!r||FPt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Xi(t){if(typeof t!="string")return t;let e=jPt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(zPt(n),"g");r=r.replace(i,"******")}),r}function zPt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Ww=class extends DPt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Xi(i);n(null,s)}},u$=Symbol("maskedWrite");function KCe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[u$]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Xi(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[u$]=!0,process.stdout.write=r}if(!process.stderr.write[u$]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Xi(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[u$]=!0,process.stderr.write=r}}}var JCe=!1,ZCe,XCe=t=>{JCe=!0,ZCe??=t},Ss=()=>JCe,QCe=()=>ZCe;var Yw=null,ePe=t=>(Yw&&Yw.destroy(),Yw=new ja({totalAllowedTime:t}),Yw),tPe=()=>Yw;var ja=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&Ss())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await XN({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{oe.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var rPe={name:"@netlify/agent-runner-cli",type:"module",version:"1.179.0-cancel-fields.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.6","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.1","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.153.4","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.1",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var HPt=BPt(import.meta.url),GPt=fl.dirname(HPt),WPt=VPt(import.meta.url),fy=pe("shell"),w5=new Set,nPe={preferLocal:!0},hr=(t,e,r)=>{let[n,i]=YPt(e,r),s={...nPe,...i},o=WCe(t,n,s);sPe(o,s),cPe(o);let a=r?.idleTimeout;return a&&a>0&&aPe(o,a),o},iPe=(t,e)=>{let r={...nPe,...e},n=YCe(t,r);return sPe(n,r),cPe(n),e?.idleTimeout&&e.idleTimeout>0&&aPe(n,e.idleTimeout),n},YPt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},sPe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||za.env.NETLIFY_LOCAL_QUIET==="true")return;if(za.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Ww).pipe(za.stdout),t.stderr?.pipe(new Ww).pipe(za.stderr);return}t.stdout?.pipe(za.stdout),t.stderr?.pipe(za.stderr)},R5=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(za.kill(-t.pid,e),fy.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return fy.error("Error killing process:",r),!1}},oPe=t=>R5(t,"SIGKILL"),aPe=(t,e)=>{let r=null,n=()=>{fy.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),R5(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(fy.log(`Force killing idle process ${t.pid}`),oPe(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let s=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",s),t.on("error",s)},cPe=t=>{w5.add(t);let e=tPe();if(e){let r=e.onTimesUp(()=>{fy.log(`Global timer expired, killing process ${t.pid}`),R5(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(fy.log(`Force killing process ${t.pid} after timeout`),oPe(t))},5e3)});t.on("exit",()=>{w5.delete(t),r()}),t.on("error",()=>{w5.delete(t),r()})}};function qa(t,e){if(!za.env.NETLIFY_LOCAL_MODE)try{let i=WPt.resolve(rPe.name),s=fl.dirname(i);for(;s!==fl.dirname(s);){let o=fl.dirname(s);if(fl.basename(o)==="node_modules"){let a=fl.join(o,".bin",e);if(d$.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(za.env.NODE_PATH){let i=fl.join(za.env.NODE_PATH,".bin",e);if(d$.existsSync(i))return i}let r=fl.join(t,"node_modules",".bin",e);if(d$.existsSync(r))return r;let n=fl.join(GPt,"..","node_modules",".bin",e);if(d$.existsSync(n))return n}import $1 from"process";import{fileURLToPath as T2t}from"url";import{createRequire as w2t}from"module";import G0 from"path";import{readFileSync as R2t}from"fs";var KPt="__netlify__getTracer",JPt="__netlify__shutdownTracers",Pt=(t,e)=>globalThis[KPt]?.(t,e),lPe=async()=>globalThis[JPt]?.();function Kw(t,e,r,n,i){let s=typeof n=="function"?n:typeof r=="function"?r:i;if(!s)throw new Error("function to execute with active span is missing");return t?t.withActiveSpan(e,r,n,s):s()}import{setTimeout as g2t}from"timers/promises";Le();import ZOt from"process";Le();var EIt=(t,e)=>{e.recordException(t),e.setStatus({code:ai.ERROR})};var ml=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=rIe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>nIe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=rIe(r,n,i),c=this._tracer.startSpan(e,s,o);return nIe(c,s,a)}};function rIe(t,e,r){let n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??tr.active(),{opts:n,ctx:i,fn:s}}function nIe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:EIt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}Le();var Sy=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var s9=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=pIe(e),n._asyncAttributesPending=e.filter(([i,s])=>Sy(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(Sy(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=pIe(this._rawAttributes),this._schemaUrl=vIt(r?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[r,n]=this._rawAttributes[e];this._rawAttributes[e]=[r,Sy(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&ce.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(Sy(n)){ce.debug(`Unsettled resource attribute ${r} skipped`);continue}n!=null&&(e[r]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(e){if(e==null)return this;let r=bIt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function o9(t,e){return s9.FromAttributeList(Object.entries(t),e)}function pIe(t){return t.map(([e,r])=>Sy(r)?[e,r.catch(n=>{ce.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function vIt(t){if(typeof t=="string"||t===void 0)return t;ce.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function bIt(t,e){let r=t?.schemaUrl,n=e?.schemaUrl,i=r===void 0||r==="",s=n===void 0||n==="";if(i)return n;if(s||r===n)return r;ce.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Le();var aR=class{emit(e){}enabled(){return!1}},hIe=new aR;var cR=Symbol.for("io.opentelemetry.js.api.logs"),Ey=globalThis;function mIe(t,e,r){return n=>n===t?e:r}var a9=1;var c9=class{getLogger(e,r,n){return new aR}},$$=new c9;var L$=class{constructor(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):hIe}};var lR=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new L$(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:$$}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(e,r,n)}};var D$=class t{constructor(){this._proxyLoggerProvider=new lR}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return Ey[cR]?this.getLoggerProvider():(Ey[cR]=mIe(a9,e,$$),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=Ey[cR])===null||e===void 0?void 0:e.call(Ey,a9))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete Ey[cR],this._proxyLoggerProvider=new lR}};var gIe=D$.getInstance();function _Ie(t,e,r,n){for(let i=0,s=t.length;i<s;i++){let o=t[i];e&&o.setTracerProvider(e),r&&o.setMeterProvider(r),n&&o.setLoggerProvider&&o.setLoggerProvider(n),o.getConfig().enabled||o.enable()}}function yIe(t){t.forEach(e=>e.disable())}function l9(t){let e=t.tracerProvider||jt.getTracerProvider(),r=t.meterProvider||oR.getMeterProvider(),n=t.loggerProvider||gIe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return _Ie(i,e,r,n),()=>{yIe(i)}}Le();var TIt=_n("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function SIe(t){return t.getValue(TIt)===!0}var vy;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(vy||(vy={}));Le();var u9="[_0-9a-z-*/]",wIt=`[a-z]${u9}{0,255}`,RIt=`[a-z0-9]${u9}{0,240}@[a-z]${u9}{0,13}`,AIt=new RegExp(`^(?:${wIt}|${RIt})$`),xIt=/^[ -~]{0,255}[!-~]$/,CIt=/,|=/;function d9(t){return AIt.test(t)}function f9(t){return xIt.test(t)&&!CIt.test(t)}var PIt=32,EIe=512,vIe=",",bIe="=",M$=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!d9(e)||!f9(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>EIe)return this;let o=new Map(n);return o.delete(e),o.set(e,r),this._fromState(o,s)}unset(e){let r=this._getState(),n=r.get(e);if(typeof n!="string")return this;let i=this._length-(e.length+n.length+1);r.size>1&&(i=i-1);let s=new Map(r);return s.delete(e),this._fromState(s,i)}get(e){return this._getState().get(e)}serialize(){let e="",r=0;for(let n of this._getState())r>0&&(e=vIe+e),e=`${n[0]}${bIe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(vIe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(bIe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!d9(a)||!f9(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>EIe)&&(r.set(a,c),n=l,r.size>=PIt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var U$="traceparent",F$="tracestate",IIt="00",OIt="(?!ff)[\\da-f]{2}",NIt="(?![0]{32})[\\da-f]{32}",kIt="(?![0]{16})[\\da-f]{16}",$It="[\\da-f]{2}",LIt=new RegExp(`^\\s?(${OIt})-(${NIt})-(${kIt})-(${$It})(-.*)?\\s?$`);function TIe(t){let e=LIt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var _d=class{inject(e,r,n){let i=jt.getSpanContext(e);if(!i||SIe(e)||!Qi(i))return;let s=`${IIt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||Pr.NONE).toString(16)}`;n.set(r,U$,s),i.traceState&&n.set(r,F$,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,U$);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=TIe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,F$);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new M$(typeof c=="string"?c:void 0)}return jt.setSpanContext(e,o)}fields(){return[U$,F$]}};var j$=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var uR=class{_isCalled=!1;_deferred=new j$;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var OL=Pn(Z9(),1);Le();var ske=t=>{throw TypeError(t)},t8=(t,e,r)=>e.has(t)||ske("Cannot "+r),IL=(t,e,r)=>(t8(t,e,"read from private field"),r?r.call(t):e.get(t)),X9=(t,e,r)=>e.has(t)?ske("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),rke=(t,e,r,n)=>(t8(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),JOt=(t,e,r)=>(t8(t,e,"access private method"),r),nke="__netlify__getTracer",XOt="__netlify__shutdownTracers",QOt="__nfOTLPTrace",RR,AR,e8,oke,eNt=class{constructor(){X9(this,e8),X9(this,RR),X9(this,AR),rke(this,RR,new uR(JOt(this,e8,oke),this)),rke(this,AR,ce.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(IL(this,AR).debug(`export ${t.length.toString()} spans`),IL(this,RR).isCalled){e({code:vy.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(QOt,JSON.stringify(tNt(t))),e({code:vy.SUCCESS})}shutdown(){return IL(this,RR).call()}};RR=new WeakMap;AR=new WeakMap;e8=new WeakSet;oke=function(){return IL(this,AR).debug("Shutting down"),Promise.resolve()};function tNt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:PL(e.resource.attributes),droppedAttributesCount:e.droppedAttributesCount},scopeSpans:[{scope:{name:e.instrumentationScope.name,version:e.instrumentationScope.version},spans:[{traceId:r.traceId,spanId:r.spanId,parentSpanId:e.parentSpanContext?.spanId,name:e.name,kind:e.kind||Mo.SERVER,startTimeUnixNano:Q9(e.startTime),endTimeUnixNano:Q9(e.endTime),attributes:PL(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:Q9(n.time),attributes:PL(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedEventsCount:e.droppedEventsCount,status:{code:e.status.code,message:e.status.message},links:e.links.map(n=>({spanId:n.context.spanId,traceId:n.context.traceId,attributes:PL(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function PL(t){return Object.keys(t).map(e=>ake(e,t[e]))}function ake(t,e){return{key:t,value:cke(e)}}function cke(t){let e=typeof t;return e==="string"?{stringValue:t}:e==="number"?Number.isInteger(t)?{intValue:t}:{doubleValue:t}:e==="boolean"?{boolValue:t}:t instanceof Uint8Array?{bytesValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(cke)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>ake(r,n))}}:{}}function Q9(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var ike={name:"@netlify/otel",version:"6.0.6",type:"module",engines:{node:"^18.14.0 || >=20.6.1"},main:"./dist/main.cjs",module:"./dist/main.js",types:"./dist/main.d.ts",exports:{".":{require:{types:"./dist/main.d.cts",default:"./dist/main.cjs"},import:{types:"./dist/main.d.ts",default:"./dist/main.js"},default:{types:"./dist/main.d.ts",default:"./dist/main.js"}},"./package.json":"./package.json","./bootstrap":{require:{types:"./dist/bootstrap/main.d.cts",default:"./dist/bootstrap/main.cjs"},import:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"},default:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"}},"./exporter-netlify":{require:{types:"./dist/exporters/netlify.d.cts",default:"./dist/exporters/netlify.cjs"},import:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"},default:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"}},"./instrumentation-fetch":{require:{types:"./dist/instrumentations/fetch.d.cts",default:"./dist/instrumentations/fetch.cjs"},import:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"},default:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"}},"./instrumentation-http":{require:{types:"./dist/instrumentations/http.d.cts",default:"./dist/instrumentations/http.cjs"},import:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"},default:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"}},"./opentelemetry":{require:{types:"./dist/opentelemetry.d.cts",default:"./dist/opentelemetry.cjs"},import:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"},default:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"}}},files:["dist/**/*"],scripts:{build:"tsup-node",dev:"tsup-node --watch",prepack:"npm run build",test:"run-s build test:ci","test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"vitest","test:dev:vitest:watch":"vitest watch","test:ci:vitest":"vitest run",publint:"npx -y publint --strict"},keywords:["netlify","cdn"],license:"MIT",repository:{type:"git",url:"https://github.com/netlify/primitives.git",directory:"packages/otel"},bugs:{url:"https://github.com/netlify/primitives/issues"},author:"Netlify Inc.",devDependencies:{"@netlify/dev-utils":"^5.0.0",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.8.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/resources":"2.9.0","@opentelemetry/sdk-trace-node":"2.9.0"}},lke=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,nke))return;let e=ZOt.version.slice(1),r=o9({"service.name":t.serviceName,"service.version":t.serviceVersion,"process.runtime.name":"nodejs","process.runtime.version":e,"deployment.environment":t.deploymentEnvironment,"http.url":t.siteUrl,"netlify.site.id":t.siteId,"netlify.site.name":t.siteName}),n=t.spanProcessors??[rNt()],i=new OL.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new _d});let s=t.instrumentations??[];l9({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,nke,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new ml(jt.getTracer(a,c)):new ml(jt.getTracer(ike.name,ike.version))}}),Object.defineProperty(globalThis,XOt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},rNt=()=>new OL.SimpleSpanProcessor(new eNt);Le();var xR=Pn(Z9(),1);Le();import*as NL from"diagnostics_channel";var uke=class{constructor(t={}){this.instrumentationName="@netlify/otel/instrumentation-fetch",this.instrumentationVersion="1.0.0",this._recordFromReq=new WeakMap,this.config=t,this._channelSubs=[]}getConfig(){return this.config}setConfig(){}setMeterProvider(){}setTracerProvider(t){this.provider=t}getTracerProvider(){return this.provider}annotateFromRequest(t,e){let r=this.config.getRequestAttributes?.(e)??{},n=new URL(e.path,e.origin);t.setAttributes({...r,"http.request.method":e.method,"url.full":n.href,"url.host":n.host,"url.scheme":n.protocol.slice(0,-1),"server.address":n.hostname,"server.port":n.port,...this.prepareHeaders("request",e.headers)})}annotateFromResponse(t,e){let r=this.config.getResponseAttributes?.(e)??{};t.setAttributes({...r,"http.response.status_code":e.statusCode,...this.prepareHeaders("response",e.headers)}),t.setStatus({code:e.statusCode>=400?ai.ERROR:ai.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof ml?t:new ml(t)}enable(){this._channelSubs.length>0||(this.subscribe("undici:request:create",this.onRequestCreate.bind(this)),this.subscribe("undici:request:headers",this.onRequestHeaders.bind(this)),this.subscribe("undici:request:trailers",this.onRequestEnd.bind(this)),this.subscribe("undici:request:error",this.onRequestError.bind(this)))}subscribe(t,e){NL.subscribe(t,e);let r=()=>NL.unsubscribe(t,e);this._channelSubs.push({name:t,unsubscribe:r})}disable(){this._channelSubs.forEach(t=>{t.unsubscribe()}),this._channelSubs.length=0}onRequestCreate({request:t}){try{let e=this.getTracer(),r=new URL(t.path,t.origin);if(!e||t.method==="CONNECT"||this.config.skipURLs?.some(i=>typeof i=="string"?r.href.startsWith(i):i.test(r.href)))return;let n=e.startSpan(this.getRequestMethod(t.method),{kind:Mo.CLIENT},tr.active());this.annotateFromRequest(n,t),this._recordFromReq.set(t,n)}catch{}}onRequestHeaders({request:t,response:e}){try{let r=this._recordFromReq.get(t);if(!r)return;this.annotateFromResponse(r,e)}catch{}}onRequestError({request:t,error:e}){try{let r=this._recordFromReq.get(t);if(!r)return;r.recordException(e),r.setStatus({code:ai.ERROR,message:e.message}),r.end(),this._recordFromReq.delete(t)}catch{}}onRequestEnd({request:t}){try{let e=this._recordFromReq.get(t);if(!e)return;e.end(),this._recordFromReq.delete(t)}catch{}}};var $je=Pn(Nje(),1);var N1=pe("tracing"),kje=8e3,_2t=5e3,H0=async(t=_2t)=>{try{await Promise.race([lPe(),g2t(t)])}catch(e){N1.warn("Failed to flush tracers on shutdown",e)}},Lje=async(t,e,r)=>{if(!Pt()){let n=[new xR.SimpleSpanProcessor(new rQ),new xR.SimpleSpanProcessor(new $je.OTLPTraceExporter({url:r.exporterUrl}))];await lke({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new uke({skipHeaders:!0})]})}return r.traceparent?(Pi.setGlobalPropagator(new _d),Pi.extract(tr.active(),{traceparent:r.traceparent,isRemote:!0})):tr.active()};function ir(t,e,r){return N1.log(`\u23F3 TRACE: ${e} starting...`),Kw(t,e,r)}var rQ=class{export(e,r){for(let n of e)this.logSpan(n);r({code:1})}async shutdown(){}forceFlush(){return Promise.resolve()}logSpan(e){let r=(e.endTime[0]-e.startTime[0])*1e3+(e.endTime[1]-e.startTime[1])/1e6,n=e.attributes,i=[];for(let[a,c]of Object.entries(n))a.includes("duration")&&typeof c=="number"?i.push(`${a}=${c.toFixed(2)}ms`):i.push(`${a}=${c}`);let s=e.status?.code===2?"\u274C":"\u2705",o=i.length>0?` [${i.join(", ")}]`:"";N1.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&N1.log(` \u274C Error: ${e.status.message}`)}};function nQ(){return Ze().captureLlmContentEnabled}function Dje(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function k1(t,e,r){let n={role:t,parts:[{type:"text",content:Xi(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var y2t=new Set([Q.Task,Q.RunCommand,Q.Explore,Q.FileRead,Q.FileWrite,Q.Notebook,Q.Web,Q.Todo,Q.Skill,Q.Tool,Q.Memorize,Q.Deployment,Q.SiteGeneration]);function Mje(t,e,r,n){if(!t.length)return;let i=Pt();if(!i)return;let s=nQ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&y2t.has(a.category),f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,_=a.message?a.message.length>kje?`${a.message.slice(0,kje)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Xi(_)}:{"gen_ai.output.messages":k1("assistant",_)}:{}}}).end(u)})}import{readdir as S2t,rm as E2t}from"fs/promises";import{join as v2t}from"path";async function Uje(t,e=[]){let n=(await S2t(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>E2t(v2t(t,i),{recursive:!0,force:!0})))}var b2t=300,Ih=t=>Ze().budgetCreditThresholds[t.mode]?.[t.runner]??b2t,Oh=({mode:t,sessionCreditLimit:e},r)=>t==="create"&&e!=null&&e<=r;var iQ=t=>{let e=Ih(t);if(!Oh(t,e))return"default";let r=Ze();return r.createAskFirstEnabled&&r.questionsEnabled?"ask_first":r.creditWrapUpEnabled?"budget_constrained":"default"},Fje=t=>{let e=iQ(t),r=Ih(t);return{budget_eligible:Oh(t,r),budget_constrained:e==="budget_constrained",ask_first:e==="ask_first"}};var A2t=G0.dirname(T2t(import.meta.url)),jje=w2t(import.meta.url),x2t=G0.resolve(A2t,"scripts/scaffold.js"),C2t="scripts/scaffold.js",P2t=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,sQ=t=>{if(t.length>=2){let e=t[0],r=t[t.length-1];if(e==='"'&&r==='"'||e==="'"&&r==="'")return t.slice(1,-1)}return t},I2t=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),O2t=t=>{let e=sQ(t);return e==="node"||e.endsWith("/node")},Fl=t=>{if(typeof t!="string")return!1;let e=t.match(P2t)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&I2t(sQ(e[r]));)r+=1;if(r>=e.length||!O2t(e[r]))return!1;let n=e[r+1];return n?sQ(n).includes(C2t):!1},Nh=pe("create_stage"),oQ="Do not run local validation or dev-server commands to check your work \u2014 specifically `tsc`, `npx tsc`, `vite build`, `vite dev`, or any equivalent build/start/test command. The build pipeline installs and validates the project automatically after your edits. Verify your changes by reading the files you edited.",N2t=`${oQ}
634
+ if (condition) { yield value; }`)};import{Buffer as ext}from"buffer";import{StringDecoder as txt}from"string_decoder";var Kk=(t,e,r)=>{if(r)return;if(t)return{transform:rxt.bind(void 0,new TextEncoder)};let n=new txt(e);return{transform:nxt.bind(void 0,n),final:ixt.bind(void 0,n)}},rxt=function*(t,e){ext.isBuffer(e)?yield cl(e):typeof e=="string"?yield t.encode(e):yield e},nxt=function*(t,e){yield nn(e)?t.write(e):e},ixt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as vxe}from"util";var zK=vxe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Jk=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=oxt}=e[r];for await(let i of n(t))yield*Jk(i,e,r+1)},bxe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*sxt(r,Number(e),t)},sxt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Jk(n,r,e+1)},Txe=vxe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),oxt=function*(t){yield t};var qK=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},wxe=(t,e)=>[...e.flatMap(r=>[...qp(r,t,0)]),...zw(t)],qp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=cxt}=e[r];for(let i of n(t))yield*qp(i,e,r+1)},zw=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*axt(r,Number(e),t)},axt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*qp(n,r,e+1)},cxt=function*(t){yield t};var BK=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Axe(t,o,s),l=zp(e),u=zp(r),d=l?zK.bind(void 0,Jk,a):qK.bind(void 0,qp),f=l||u?zK.bind(void 0,bxe,a):qK.bind(void 0,zw),p=l||u?Txe.bind(void 0,a):void 0;return{stream:new lxt({writableObjectMode:n,writableHighWaterMark:Rxe(n),readableObjectMode:i,readableHighWaterMark:Rxe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},Zk=(t,e,r,n)=>{let i=e.filter(({type:o})=>o==="generator"),s=n?i.reverse():i;for(let{value:o,optionName:a}of s){let c=Axe(o,r,a);t=wxe(c,t)}return t},Axe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:yxe(n,a)},Kk(r,o,n),Yk(r,s,n,c),{transform:t,final:e},{transform:Sxe(i,a)},_xe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var xxe=(t,e)=>{for(let r of uxt(t))dxt(t,r,e)},uxt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),dxt=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${pd[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>fxt(a,n));r.input=Ow(o)},fxt=(t,e)=>{let r=Zk(t,e,"utf8",!0);return pxt(r),Ow(r)},pxt=t=>{let e=t.find(r=>typeof r!="string"&&!nn(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as _xt,appendFileSync as yxt}from"fs";var Xk=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&X_(r,n)&&!ys.has(e)&&hxt(n)&&(t.some(({type:i,value:s})=>i==="native"&&mxt.has(s))||t.every(({type:i})=>to.has(i))),hxt=t=>t===1||t===2,mxt=new Set(["pipe","overlapped"]),Cxe=async(t,e,r,n)=>{for await(let i of t)gxt(e)||Ixe(i,r,n)},Pxe=(t,e,r)=>{for(let n of t)Ixe(n,e,r)},gxt=t=>t._readableState.pipes.length>0,Ixe=(t,e,r)=>{let n=fk(t);La({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Oxe=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:e.map((c,l)=>Sxt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},Sxt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=NAe(t,s,d),p=cl(f),{stdioItems:h,objectMode:m}=e[r],_=Ext([p],h,c,n),{serializedResult:y,finalResult:E=y}=vxt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});bxt({serializedResult:y,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let S=a[r]?E:void 0;try{return n.error===void 0&&Txt(y,h,i),S}catch(g){return n.error=g,S}},Ext=(t,e,r,n)=>{try{return Zk(t,e,r,!1)}catch(i){return n.error=i,t}},vxt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Ow(t)};let o=Gwe(t,r);return n[s]?{serializedResult:o,finalResult:jK(o,!i[s],e)}:{serializedResult:o}},bxt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!Xk({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=jK(t,!1,o);try{Pxe(a,e,n)}catch(c){r.error??=c}},Txt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>Gk.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?yxt(n,t):(r.add(s),_xt(n,t))}};var Nxe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,dl(e,r,"all")]:Array.isArray(e)?[dl(t,r,"all"),...e]:nn(t)&&nn(e)?KY([t,e]):`${t}${e}`};import{once as VK}from"events";var kxe=async(t,e)=>{let[r,n]=await wxt(t);return e.isForcefullyTerminated??=!1,[r,n]},wxt=async t=>{let[e,r]=await Promise.allSettled([VK(t,"spawn"),VK(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?$xe(t):r.value},$xe=async t=>{try{return await VK(t,"exit")}catch{return $xe(t)}},Lxe=async t=>{let[e,r]=await t;if(!Rxt(e,r)&&HK(e,r))throw new $o;return[e,r]},Rxt=(t,e)=>t===void 0&&e===void 0,HK=(t,e)=>t!==0||e!==null;var Dxe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=Axt(t,e,r),o=s?.code==="ETIMEDOUT",a=OAe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},Axt=(t,e,r)=>t!==void 0?t:HK(e,r)?new $o:void 0;var Mxe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=Cxt(t,e,r),d=Oxt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return cy(d,c,l)},Cxt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=hk(t,e,r),a=Pxt(r),{file:c,commandArguments:l,options:u}=$k(t,e,a);Ixt(u);let d=pxe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Pxt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Ixt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Qk("ipcInput"),t&&Qk("ipc: true"),r&&Qk("detached: true"),n&&Qk("cancelSignal")},Qk=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},Oxt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=Nxt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Dxe(c,r),{output:h,error:m=l}=Oxe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((E,S)=>dl(E,r,S)),y=dl(Nxe(h,r),r,"all");return $xt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},Nxt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{xxe(s,r);let a=kxt(r);return xxt(...Lk(t,e,a))}catch(a){return ay({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},kxt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:qk(e)}),$xt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?Bk({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):jw({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as vPt}from"events";import{spawn as bPt}from"child_process";import qxe from"process";import{once as GK,on as Lxt}from"events";var Uxe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(ty({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:Ck(t)}),Dxt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),Dxt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{wk(e,i);let s=fd(t,e,r),o=new AbortController;try{return await Promise.race([Mxt(s,n,o),Uxt(s,r,o),Fxt(s,r,o)])}catch(a){throw ry(t),a}finally{o.abort(),Rk(e,i)}},Mxt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await GK(t,"message",{signal:r});return n}for await(let[n]of Lxt(t,"message",{signal:r}))if(e(n))return n},Uxt=async(t,e,{signal:r})=>{await GK(t,"disconnect",{signal:r}),w0e(e)},Fxt=async(t,e,{signal:r})=>{let[n]=await GK(t,"strict:error",{signal:r});throw vk(n,e)};import{once as jxe,on as jxt}from"events";var zxe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>WK({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),WK=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{ty({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:Ck(t)}),wk(e,s);let o=fd(t,e,r),a=new AbortController,c={};return zxt(t,o,a),qxt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Bxt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},zxt=async(t,e,r)=>{try{await jxe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},qxt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await jxe(t,"strict:error",{signal:r.signal});n.error=vk(i,e),r.abort()}catch{}},Bxt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of jxt(r,"message",{signal:s.signal}))Fxe(o),yield c}catch{Fxe(o)}finally{s.abort(),Rk(e,a),n||ry(t),i&&await t}},Fxe=({error:t})=>{if(t)throw t};var Bxe=(t,{ipc:e})=>{Object.assign(t,Hxe(t,!1,e))},Vxe=()=>{let t=qxe,e=!0,r=qxe.channel!==void 0;return{...Hxe(t,e,r),getCancelSignal:Z0e.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Hxe=(t,e,r)=>({sendMessage:Nk.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Uxe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:zxe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as Vxt}from"child_process";import{PassThrough as Hxt,Readable as Gxt,Writable as Wxt,Duplex as Yxt}from"stream";var Gxe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{MK(n);let a=new Vxt;Kxt(a,n),Object.assign(a,{readable:Jxt,writable:Zxt,duplex:Xxt});let c=ay({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=Qxt(c,o,i);return{subprocess:a,promise:l}},Kxt=(t,e)=>{let r=qw(),n=qw(),i=qw(),s=Array.from({length:e.length-3},qw),o=qw(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},qw=()=>{let t=new Hxt;return t.end(),t},Jxt=()=>new Gxt({read(){}}),Zxt=()=>new Wxt({write(){}}),Xxt=()=>new Yxt({read(){},write(){}}),Qxt=async(t,e,r)=>cy(t,e,r);import{createReadStream as Wxe,createWriteStream as Yxe}from"fs";import{Buffer as eCt}from"buffer";import{Readable as Bw,Writable as tCt,Duplex as rCt}from"stream";var Jxe=(t,e)=>Wk(nCt,t,e,!1),Vw=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${pd[t]}.`)},Kxe={fileNumber:Vw,generator:BK,asyncGenerator:BK,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:rCt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},nCt={input:{...Kxe,fileUrl:({value:t})=>({stream:Wxe(t)}),filePath:({value:{file:t}})=>({stream:Wxe(t)}),webStream:({value:t})=>({stream:Bw.fromWeb(t)}),iterable:({value:t})=>({stream:Bw.from(t)}),asyncIterable:({value:t})=>({stream:Bw.from(t)}),string:({value:t})=>({stream:Bw.from(t)}),uint8Array:({value:t})=>({stream:Bw.from(eCt.from(t))})},output:{...Kxe,fileUrl:({value:t})=>({stream:Yxe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Yxe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:tCt.fromWeb(t)}),iterable:Vw,asyncIterable:Vw,string:Vw,uint8Array:Vw}};import{on as iCt,once as Zxe}from"events";import{PassThrough as sCt,getDefaultHighWaterMark as oCt}from"stream";import{finished as eCe}from"stream/promises";function Bp(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)KK(i);let e=t.some(({readableObjectMode:i})=>i),r=aCt(t,e),n=new YK({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var aCt=(t,e)=>{if(t.length===0)return oCt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},YK=class extends sCt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(KK(e),this.#e.has(e))return;this.#e.add(e),this.#n??=cCt(this,this.#e,this.#s);let r=dCt({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#s});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(KK(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},cCt=async(t,e,r)=>{e$(t,Xxe);let n=new AbortController;try{await Promise.race([lCt(t,n),uCt(t,e,r,n)])}finally{n.abort(),e$(t,-Xxe)}},lCt=async(t,{signal:e})=>{try{await eCe(t,{signal:e,cleanup:!0})}catch(r){throw tCe(t,r),r}},uCt=async(t,e,r,{signal:n})=>{for await(let[i]of iCt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},KK=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},dCt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{e$(t,Qxe);let a=new AbortController;try{await Promise.race([fCt(s,e,a),pCt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),hCt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),e$(t,-Qxe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?JK(t):mCt(t))},fCt=async(t,e,{signal:r})=>{try{await t,r.aborted||JK(e)}catch(n){r.aborted||tCe(e,n)}},pCt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await eCe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;rCe(o)?i.add(e):nCe(t,o)}},hCt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Zxe(t,i,{signal:s}),!t.readable)return Zxe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},mCt=t=>{t.writable&&t.end()},tCe=(t,e)=>{rCe(e)?JK(t):nCe(t,e)},rCe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",JK=t=>{(t.readable||t.writable)&&t.destroy()},nCe=(t,e)=>{t.destroyed||(t.once("error",gCt),t.destroy(e))},gCt=()=>{},e$=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Xxe=2,Qxe=1;import{finished as iCe}from"stream/promises";var uy=(t,e)=>{t.pipe(e),_Ct(t,e),yCt(t,e)},_Ct=async(t,e)=>{if(!(ko(t)||ko(e))){try{await iCe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}ZK(e)}},ZK=t=>{t.writable&&t.end()},yCt=async(t,e)=>{if(!(ko(t)||ko(e))){try{await iCe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}XK(t)}},XK=t=>{t.readable&&t.destroy()};var sCe=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:s,direction:o}]of Object.entries(e)){for(let{stream:a}of s.filter(({type:c})=>to.has(c)))SCt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!to.has(c)))vCt({subprocess:t,stream:a,direction:o,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,s]of n.entries()){let o=s.length===1?s[0]:Bp(s);uy(o,i)}},SCt=(t,e,r,n)=>{r==="output"?uy(t.stdio[n],e):uy(e,t.stdio[n]);let i=ECt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},ECt=["stdin","stdout","stderr"],vCt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;bCt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},bCt=(t,{signal:e})=>{ko(t)&&Fp(t,TCt,e)},TCt=2;import{addAbortListener as ACt}from"events";var Vp=[];Vp.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Vp.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Vp.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var t$=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",QK=Symbol.for("signal-exit emitter"),e5=globalThis,wCt=Object.defineProperty.bind(Object),t5=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(e5[QK])return e5[QK];wCt(e5,QK,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let s of this.listeners[e])i=s(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},r$=class{},RCt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),r5=class extends r${onExit(){return()=>{}}load(){}unload(){}},n5=class extends r${#e=i5.platform==="win32"?"SIGINT":"SIGHUP";#r=new t5;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Vp)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),n.length===i){this.unload();let o=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;o||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!t$(this.#t))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#r.count+=1;for(let e of Vp)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#o&&(this.#o=!1,Vp.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#s,this.#r.count-=1)}#a(e){return t$(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#s.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&t$(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},i5=globalThis.process,{onExit:oCe,load:pwr,unload:hwr}=RCt(t$(i5)?new n5(i5):new r5);var aCe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=oCe(()=>{t.kill()});ACt(n,()=>{i()})};var lCe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=pk(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=xCt(r,n,i),{sourceStream:d,sourceError:f}=PCt(t,l),{options:p,fileDescriptors:h}=Ma.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},xCt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=CCt(t,e,...r),a=Tk(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},CCt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(cCe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||WY(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,s,o]=nk(r,...n);return{destination:e(cCe)(i,s,o),pipeOptions:o}}if(Ma.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},cCe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),PCt=(t,e)=>{try{return{sourceStream:ny(t,e)}}catch(r){return{sourceError:r}}};var dCe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=ICt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw s5({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},ICt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return XK(t),n;if(e!==void 0)return ZK(r),e},s5=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>ay({error:t,command:uCe,escapedCommand:uCe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),uCe="source.pipe(destination)";var fCe=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:s,value:o=s}]=await t;if(o.pipedFrom.includes(n)||o.pipedFrom.push(n),i==="rejected")throw o;if(e==="rejected")throw n;return o};import{finished as OCt}from"stream/promises";var pCe=(t,e,r)=>{let n=n$.has(e)?kCt(t,e):NCt(t,e);return Fp(t,LCt,r.signal),Fp(e,DCt,r.signal),$Ct(e),n},NCt=(t,e)=>{let r=Bp([t]);return uy(r,e),n$.set(e,r),r},kCt=(t,e)=>{let r=n$.get(e);return r.add(t),r},$Ct=async t=>{try{await OCt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}n$.delete(t)},n$=new WeakMap,LCt=2,DCt=1;import{aborted as MCt}from"util";var hCe=(t,e)=>t===void 0?[]:[UCt(t,e)],UCt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await MCt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw s5({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var i$=(t,...e)=>{if(Fr(e[0]))return i$.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=lCe(t,...e),i=FCt({...n,destination:r});return i.pipe=i$.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},FCt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=jCt(t,i);dCe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=pCe(e,s,d);return await Promise.race([fCe(u),...hCe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},jCt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as WCt}from"timers/promises";import{on as zCt}from"events";import{getDefaultHighWaterMark as qCt}from"stream";var s$=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return BCt(e,o),gCe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},BCt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},o5=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;VCt(e,o,t);let a=t.readableObjectMode&&!s;return gCe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},VCt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},gCe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=zCt(t,"data",{signal:e.signal,highWaterMark:mCe,highWatermark:mCe});return HCt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},a5=qCt(!0),mCe=a5,HCt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=GCt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*qp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*zw(a)}},GCt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Kk(t,r,!e),Yk(t,i,!n,{})].filter(Boolean);var _Ce=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=YCt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([KCt(t),d]);return}let f=UK(c,r),p=o5({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([JCt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},YCt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!Xk({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=o5({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Cxe(a,t,r,s)},KCt=async t=>{await WCt(),t.readableFlowing===null&&t.resume()},JCt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await Fk(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await jk(r,{maxBuffer:s})):await oy(r,{maxBuffer:s})}catch(a){return yCe(CAe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},c5=async t=>{try{return await t}catch(e){return yCe(e)}},yCe=({bufferedData:t})=>Vwe(t)?new Uint8Array(t):t;import{finished as ZCt}from"stream/promises";var Hw=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=XCt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],ZCt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||tPt(a,e,r,n)}finally{o.abort()}},XCt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&QCt(t,r,n),n},QCt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{ePt(e,r),n.call(t,...i)}},ePt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},tPt=(t,e,r,n)=>{if(!rPt(t,e,r,n))throw t},rPt=(t,e,r,n=!0)=>r.propagating?SCe(t)||o$(t):(r.propagating=!0,l5(r,e)===n?SCe(t):o$(t)),l5=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",o$=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",SCe=t=>t?.code==="EPIPE";var ECe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>u5({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),u5=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=Hw(t,e,l);if(l5(l,e)){await u;return}let[d]=await Promise.all([_Ce({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var vCe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Bp([t,e].filter(Boolean)):void 0,bCe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>u5({...nPt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:iPt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),nPt=({stdout:t,stderr:e,all:r},[,n,i])=>{let s=n||i;return s?n?i?{stream:r,buffer:s}:{stream:t,buffer:s}:{stream:e,buffer:s}:{stream:r,buffer:s}},iPt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as sPt}from"events";var TCe=t=>X_(t,"ipc"),wCe=(t,e)=>{let r=fk(t);La({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var RCe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=TCe(s),a=ll(e,"ipc"),c=ll(r,"ipc");for await(let l of WK({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(PAe(t,i,c),i.push(l)),o&&wCe(l,s);return i},ACe=async(t,e)=>(await Promise.allSettled([t]),e);var xCe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:y})=>{let E=kxe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:E,propagating:!1},g=ECe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),b=bCe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),w=[],R=RCe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:w,verboseInfo:p}),T=oPt(m,t,S),C=aPt(h,S);try{return await Promise.race([Promise.all([{},Lxe(E),Promise.all(g),b,R,aAe(t,d),...T,...C]),_,cPt(t,y),...rAe(t,s,f,y),...T0e({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...eAe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(N){return f.terminationReason??="other",Promise.all([{error:N},E,Promise.all(g.map(A=>c5(A))),c5(b),ACe(R,w),Promise.allSettled(T),Promise.allSettled(C)])}},oPt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:Hw(n,i,r)),aPt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Do(s,{checkOpen:!1})&&!ko(s)).map(({type:i,value:s,stream:o=s})=>Hw(o,n,e,{isSameDirection:to.has(i),stopOnExit:i==="native"}))),cPt=async(t,{signal:e})=>{let[r]=await sPt(t,"error",{signal:e});throw r};var CCe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),Gw=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Da();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},dy=async({resolve:t,promises:e},r)=>{t();let[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...e])]);return!n};import{Readable as lPt}from"stream";import{callbackify as uPt}from"util";import{finished as PCe}from"stream/promises";var d5=async t=>{if(t!==void 0)try{await f5(t)}catch{}},ICe=async t=>{if(t!==void 0)try{await p5(t)}catch{}},f5=async t=>{await PCe(t,{cleanup:!0,readable:!1,writable:!0})},p5=async t=>{await PCe(t,{cleanup:!0,readable:!0,writable:!1})},a$=async(t,e)=>{if(await t,e)throw e},c$=(t,e,r)=>{r&&!o$(r)?t.destroy(r):e&&t.destroy()};var OCe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||ys.has(r),{subprocessStdout:a,waitReadableDestroy:c}=h5(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=m5(a,o),{read:f,onStdoutDataDone:p}=g5({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new lPt({read:f,destroy:uPt(y5.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return _5({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},h5=(t,e,r)=>{let n=ny(t,e),i=Gw(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},m5=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:a5},g5=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Da(),o=s$({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){dPt(this,o,s)},onStdoutDataDone:s}},dPt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},_5=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await p5(t),await n,await d5(i),await e,r.readable&&r.push(null)}catch(s){await d5(i),NCe(r,s)}},y5=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await dy(r,e)&&(NCe(t,n),await a$(e,n))},NCe=(t,e)=>{c$(t,t.readable,e)};import{Writable as fPt}from"stream";import{callbackify as kCe}from"util";var $Ce=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=S5(t,r,e),o=new fPt({...E5(n,t,i),destroy:kCe(b5.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return v5(n,o),o},S5=(t,e,r)=>{let n=Tk(t,e),i=Gw(r,n,"writableFinal"),s=Gw(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},E5=(t,e,r)=>({write:pPt.bind(void 0,t),final:kCe(hPt.bind(void 0,t,e,r))}),pPt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},hPt=async(t,e,r)=>{await dy(r,e)&&(t.writable&&t.end(),await e)},v5=async(t,e,r)=>{try{await f5(t),e.writable&&e.end()}catch(n){await ICe(r),LCe(e,n)}},b5=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await dy(r,e),await dy(n,e)&&(LCe(t,i),await a$(e,i))},LCe=(t,e)=>{c$(t,t.writable,e)};import{Duplex as mPt}from"stream";import{callbackify as gPt}from"util";var DCe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ys.has(r),{subprocessStdout:c,waitReadableDestroy:l}=h5(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=S5(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=m5(c,a),{read:_,onStdoutDataDone:y}=g5({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),E=new mPt({read:_,...E5(u,t,d),destroy:gPt(_Pt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return _5({subprocessStdout:c,onStdoutDataDone:y,readable:E,subprocess:t,subprocessStdin:u}),v5(u,E,c),E},_Pt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([y5({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),b5({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var T5=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||ys.has(e),o=ny(t,r),a=s$({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return yPt(a,o,t)},yPt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var MCe=(t,{encoding:e})=>{let r=CCe();t.readable=OCe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=$Ce.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=DCe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=T5.bind(void 0,t,e),t[Symbol.asyncIterator]=T5.bind(void 0,t,e,{})};var UCe=(t,e)=>{for(let[r,n]of EPt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},SPt=(async()=>{})().constructor.prototype,EPt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(SPt,t)]);var FCe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=TPt(t,e,r),{subprocess:f,promise:p}=RPt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=i$.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),UCe(f,p),Ma.set(f,{options:u,fileDescriptors:d}),f},TPt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=hk(t,e,r),{file:a,commandArguments:c,options:l}=$k(t,e,r),u=wPt(l),d=Jxe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},wPt=({timeout:t,signal:e,...r})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:t}},RPt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=bPt(...Lk(t,e,r))}catch(h){return Gxe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;vPt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];sCe(c,a,l),aCe(c,r,l);let d={},f=Da();c.kill=v0e.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=vCe(c,r),MCe(c,r),Bxe(c,r);let p=APt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:s,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},APt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,_]=await xCe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let y=h.map((g,b)=>dl(g,e,b)),E=dl(m,e,"all"),S=xPt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:E,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return cy(S,n,e)},xPt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?jw({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ua,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):Bk({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var l$=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,CPt(n,t[n],i)]));return{...t,...r}},CPt=(t,e,r)=>PPt.has(t)&&Fr(e)&&Fr(r)?{...e,...r}:r,PPt=new Set(["env",...QY]);var hd=(t,e,r,n)=>{let i=(o,a,c)=>hd(o,a,r,c),s=(...o)=>IPt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},IPt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Fr(s))return i(t,l$(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=OPt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?Mxe(a,c,l):FCe(a,c,l,i)},OPt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=Jwe(e)?Zwe(e,r):[e,...r],[o,a,c]=nk(...s),l=l$(l$(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var jCe=({file:t,commandArguments:e})=>qCe(t,e),zCe=({file:t,commandArguments:e})=>({...qCe(t,e),isSync:!0}),qCe=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);let[r,...n]=NPt(t);return{file:r,commandArguments:n}},NPt=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);let e=t.trim();if(e==="")return[];let r=[];for(let n of e.split(kPt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},kPt=/ +/g;var BCe=(t,e,r)=>{t.sync=e($Pt,r),t.s=t.sync},VCe=({options:t})=>HCe(t),$Pt=({options:t})=>({...HCe(t),isSync:!0}),HCe=t=>({options:{...LPt(t),...t}}),LPt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},GCe={preferLocal:!0};var WCe=hd(()=>({})),nAr=hd(()=>({isSync:!0})),YCe=hd(jCe),iAr=hd(zCe),sAr=hd(iAe),oAr=hd(VCe,{},GCe,BCe),{sendMessage:aAr,getOneMessage:cAr,getEachMessage:lAr,getCancelSignal:uAr}=Vxe();import{Transform as DPt}from"stream";var MPt=["NETLIFY_AI_GATEWAY_KEY"];function UPt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...MPt])]}function FPt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function jPt(){let e=UPt().map(r=>process.env[r]).filter(r=>!(!r||FPt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Xi(t){if(typeof t!="string")return t;let e=jPt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(zPt(n),"g");r=r.replace(i,"******")}),r}function zPt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Ww=class extends DPt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Xi(i);n(null,s)}},u$=Symbol("maskedWrite");function KCe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[u$]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Xi(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[u$]=!0,process.stdout.write=r}if(!process.stderr.write[u$]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Xi(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[u$]=!0,process.stderr.write=r}}}var JCe=!1,ZCe,XCe=t=>{JCe=!0,ZCe??=t},Ss=()=>JCe,QCe=()=>ZCe;var Yw=null,ePe=t=>(Yw&&Yw.destroy(),Yw=new ja({totalAllowedTime:t}),Yw),tPe=()=>Yw;var ja=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&Ss())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await XN({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{oe.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var rPe={name:"@netlify/agent-runner-cli",type:"module",version:"1.179.1-cancel-fields.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.6","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.1","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.153.4","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.1",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var HPt=BPt(import.meta.url),GPt=fl.dirname(HPt),WPt=VPt(import.meta.url),fy=pe("shell"),w5=new Set,nPe={preferLocal:!0},hr=(t,e,r)=>{let[n,i]=YPt(e,r),s={...nPe,...i},o=WCe(t,n,s);sPe(o,s),cPe(o);let a=r?.idleTimeout;return a&&a>0&&aPe(o,a),o},iPe=(t,e)=>{let r={...nPe,...e},n=YCe(t,r);return sPe(n,r),cPe(n),e?.idleTimeout&&e.idleTimeout>0&&aPe(n,e.idleTimeout),n},YPt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},sPe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||za.env.NETLIFY_LOCAL_QUIET==="true")return;if(za.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Ww).pipe(za.stdout),t.stderr?.pipe(new Ww).pipe(za.stderr);return}t.stdout?.pipe(za.stdout),t.stderr?.pipe(za.stderr)},R5=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(za.kill(-t.pid,e),fy.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return fy.error("Error killing process:",r),!1}},oPe=t=>R5(t,"SIGKILL"),aPe=(t,e)=>{let r=null,n=()=>{fy.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),R5(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(fy.log(`Force killing idle process ${t.pid}`),oPe(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let s=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",s),t.on("error",s)},cPe=t=>{w5.add(t);let e=tPe();if(e){let r=e.onTimesUp(()=>{fy.log(`Global timer expired, killing process ${t.pid}`),R5(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(fy.log(`Force killing process ${t.pid} after timeout`),oPe(t))},5e3)});t.on("exit",()=>{w5.delete(t),r()}),t.on("error",()=>{w5.delete(t),r()})}};function qa(t,e){if(!za.env.NETLIFY_LOCAL_MODE)try{let i=WPt.resolve(rPe.name),s=fl.dirname(i);for(;s!==fl.dirname(s);){let o=fl.dirname(s);if(fl.basename(o)==="node_modules"){let a=fl.join(o,".bin",e);if(d$.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(za.env.NODE_PATH){let i=fl.join(za.env.NODE_PATH,".bin",e);if(d$.existsSync(i))return i}let r=fl.join(t,"node_modules",".bin",e);if(d$.existsSync(r))return r;let n=fl.join(GPt,"..","node_modules",".bin",e);if(d$.existsSync(n))return n}import $1 from"process";import{fileURLToPath as T2t}from"url";import{createRequire as w2t}from"module";import G0 from"path";import{readFileSync as R2t}from"fs";var KPt="__netlify__getTracer",JPt="__netlify__shutdownTracers",Pt=(t,e)=>globalThis[KPt]?.(t,e),lPe=async()=>globalThis[JPt]?.();function Kw(t,e,r,n,i){let s=typeof n=="function"?n:typeof r=="function"?r:i;if(!s)throw new Error("function to execute with active span is missing");return t?t.withActiveSpan(e,r,n,s):s()}import{setTimeout as g2t}from"timers/promises";Le();import ZOt from"process";Le();var EIt=(t,e)=>{e.recordException(t),e.setStatus({code:ai.ERROR})};var ml=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=rIe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>nIe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=rIe(r,n,i),c=this._tracer.startSpan(e,s,o);return nIe(c,s,a)}};function rIe(t,e,r){let n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??tr.active(),{opts:n,ctx:i,fn:s}}function nIe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:EIt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}Le();var Sy=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var s9=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=pIe(e),n._asyncAttributesPending=e.filter(([i,s])=>Sy(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(Sy(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=pIe(this._rawAttributes),this._schemaUrl=vIt(r?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[r,n]=this._rawAttributes[e];this._rawAttributes[e]=[r,Sy(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&ce.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(Sy(n)){ce.debug(`Unsettled resource attribute ${r} skipped`);continue}n!=null&&(e[r]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(e){if(e==null)return this;let r=bIt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function o9(t,e){return s9.FromAttributeList(Object.entries(t),e)}function pIe(t){return t.map(([e,r])=>Sy(r)?[e,r.catch(n=>{ce.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function vIt(t){if(typeof t=="string"||t===void 0)return t;ce.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function bIt(t,e){let r=t?.schemaUrl,n=e?.schemaUrl,i=r===void 0||r==="",s=n===void 0||n==="";if(i)return n;if(s||r===n)return r;ce.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Le();var aR=class{emit(e){}enabled(){return!1}},hIe=new aR;var cR=Symbol.for("io.opentelemetry.js.api.logs"),Ey=globalThis;function mIe(t,e,r){return n=>n===t?e:r}var a9=1;var c9=class{getLogger(e,r,n){return new aR}},$$=new c9;var L$=class{constructor(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):hIe}};var lR=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new L$(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:$$}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(e,r,n)}};var D$=class t{constructor(){this._proxyLoggerProvider=new lR}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return Ey[cR]?this.getLoggerProvider():(Ey[cR]=mIe(a9,e,$$),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=Ey[cR])===null||e===void 0?void 0:e.call(Ey,a9))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete Ey[cR],this._proxyLoggerProvider=new lR}};var gIe=D$.getInstance();function _Ie(t,e,r,n){for(let i=0,s=t.length;i<s;i++){let o=t[i];e&&o.setTracerProvider(e),r&&o.setMeterProvider(r),n&&o.setLoggerProvider&&o.setLoggerProvider(n),o.getConfig().enabled||o.enable()}}function yIe(t){t.forEach(e=>e.disable())}function l9(t){let e=t.tracerProvider||jt.getTracerProvider(),r=t.meterProvider||oR.getMeterProvider(),n=t.loggerProvider||gIe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return _Ie(i,e,r,n),()=>{yIe(i)}}Le();var TIt=_n("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function SIe(t){return t.getValue(TIt)===!0}var vy;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(vy||(vy={}));Le();var u9="[_0-9a-z-*/]",wIt=`[a-z]${u9}{0,255}`,RIt=`[a-z0-9]${u9}{0,240}@[a-z]${u9}{0,13}`,AIt=new RegExp(`^(?:${wIt}|${RIt})$`),xIt=/^[ -~]{0,255}[!-~]$/,CIt=/,|=/;function d9(t){return AIt.test(t)}function f9(t){return xIt.test(t)&&!CIt.test(t)}var PIt=32,EIe=512,vIe=",",bIe="=",M$=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!d9(e)||!f9(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>EIe)return this;let o=new Map(n);return o.delete(e),o.set(e,r),this._fromState(o,s)}unset(e){let r=this._getState(),n=r.get(e);if(typeof n!="string")return this;let i=this._length-(e.length+n.length+1);r.size>1&&(i=i-1);let s=new Map(r);return s.delete(e),this._fromState(s,i)}get(e){return this._getState().get(e)}serialize(){let e="",r=0;for(let n of this._getState())r>0&&(e=vIe+e),e=`${n[0]}${bIe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(vIe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(bIe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!d9(a)||!f9(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>EIe)&&(r.set(a,c),n=l,r.size>=PIt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var U$="traceparent",F$="tracestate",IIt="00",OIt="(?!ff)[\\da-f]{2}",NIt="(?![0]{32})[\\da-f]{32}",kIt="(?![0]{16})[\\da-f]{16}",$It="[\\da-f]{2}",LIt=new RegExp(`^\\s?(${OIt})-(${NIt})-(${kIt})-(${$It})(-.*)?\\s?$`);function TIe(t){let e=LIt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var _d=class{inject(e,r,n){let i=jt.getSpanContext(e);if(!i||SIe(e)||!Qi(i))return;let s=`${IIt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||Pr.NONE).toString(16)}`;n.set(r,U$,s),i.traceState&&n.set(r,F$,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,U$);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=TIe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,F$);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new M$(typeof c=="string"?c:void 0)}return jt.setSpanContext(e,o)}fields(){return[U$,F$]}};var j$=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var uR=class{_isCalled=!1;_deferred=new j$;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var OL=Pn(Z9(),1);Le();var ske=t=>{throw TypeError(t)},t8=(t,e,r)=>e.has(t)||ske("Cannot "+r),IL=(t,e,r)=>(t8(t,e,"read from private field"),r?r.call(t):e.get(t)),X9=(t,e,r)=>e.has(t)?ske("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),rke=(t,e,r,n)=>(t8(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),JOt=(t,e,r)=>(t8(t,e,"access private method"),r),nke="__netlify__getTracer",XOt="__netlify__shutdownTracers",QOt="__nfOTLPTrace",RR,AR,e8,oke,eNt=class{constructor(){X9(this,e8),X9(this,RR),X9(this,AR),rke(this,RR,new uR(JOt(this,e8,oke),this)),rke(this,AR,ce.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(IL(this,AR).debug(`export ${t.length.toString()} spans`),IL(this,RR).isCalled){e({code:vy.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(QOt,JSON.stringify(tNt(t))),e({code:vy.SUCCESS})}shutdown(){return IL(this,RR).call()}};RR=new WeakMap;AR=new WeakMap;e8=new WeakSet;oke=function(){return IL(this,AR).debug("Shutting down"),Promise.resolve()};function tNt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:PL(e.resource.attributes),droppedAttributesCount:e.droppedAttributesCount},scopeSpans:[{scope:{name:e.instrumentationScope.name,version:e.instrumentationScope.version},spans:[{traceId:r.traceId,spanId:r.spanId,parentSpanId:e.parentSpanContext?.spanId,name:e.name,kind:e.kind||Mo.SERVER,startTimeUnixNano:Q9(e.startTime),endTimeUnixNano:Q9(e.endTime),attributes:PL(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:Q9(n.time),attributes:PL(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedEventsCount:e.droppedEventsCount,status:{code:e.status.code,message:e.status.message},links:e.links.map(n=>({spanId:n.context.spanId,traceId:n.context.traceId,attributes:PL(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function PL(t){return Object.keys(t).map(e=>ake(e,t[e]))}function ake(t,e){return{key:t,value:cke(e)}}function cke(t){let e=typeof t;return e==="string"?{stringValue:t}:e==="number"?Number.isInteger(t)?{intValue:t}:{doubleValue:t}:e==="boolean"?{boolValue:t}:t instanceof Uint8Array?{bytesValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(cke)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>ake(r,n))}}:{}}function Q9(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var ike={name:"@netlify/otel",version:"6.0.6",type:"module",engines:{node:"^18.14.0 || >=20.6.1"},main:"./dist/main.cjs",module:"./dist/main.js",types:"./dist/main.d.ts",exports:{".":{require:{types:"./dist/main.d.cts",default:"./dist/main.cjs"},import:{types:"./dist/main.d.ts",default:"./dist/main.js"},default:{types:"./dist/main.d.ts",default:"./dist/main.js"}},"./package.json":"./package.json","./bootstrap":{require:{types:"./dist/bootstrap/main.d.cts",default:"./dist/bootstrap/main.cjs"},import:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"},default:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"}},"./exporter-netlify":{require:{types:"./dist/exporters/netlify.d.cts",default:"./dist/exporters/netlify.cjs"},import:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"},default:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"}},"./instrumentation-fetch":{require:{types:"./dist/instrumentations/fetch.d.cts",default:"./dist/instrumentations/fetch.cjs"},import:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"},default:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"}},"./instrumentation-http":{require:{types:"./dist/instrumentations/http.d.cts",default:"./dist/instrumentations/http.cjs"},import:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"},default:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"}},"./opentelemetry":{require:{types:"./dist/opentelemetry.d.cts",default:"./dist/opentelemetry.cjs"},import:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"},default:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"}}},files:["dist/**/*"],scripts:{build:"tsup-node",dev:"tsup-node --watch",prepack:"npm run build",test:"run-s build test:ci","test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"vitest","test:dev:vitest:watch":"vitest watch","test:ci:vitest":"vitest run",publint:"npx -y publint --strict"},keywords:["netlify","cdn"],license:"MIT",repository:{type:"git",url:"https://github.com/netlify/primitives.git",directory:"packages/otel"},bugs:{url:"https://github.com/netlify/primitives/issues"},author:"Netlify Inc.",devDependencies:{"@netlify/dev-utils":"^5.0.0",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.8.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/resources":"2.9.0","@opentelemetry/sdk-trace-node":"2.9.0"}},lke=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,nke))return;let e=ZOt.version.slice(1),r=o9({"service.name":t.serviceName,"service.version":t.serviceVersion,"process.runtime.name":"nodejs","process.runtime.version":e,"deployment.environment":t.deploymentEnvironment,"http.url":t.siteUrl,"netlify.site.id":t.siteId,"netlify.site.name":t.siteName}),n=t.spanProcessors??[rNt()],i=new OL.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new _d});let s=t.instrumentations??[];l9({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,nke,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new ml(jt.getTracer(a,c)):new ml(jt.getTracer(ike.name,ike.version))}}),Object.defineProperty(globalThis,XOt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},rNt=()=>new OL.SimpleSpanProcessor(new eNt);Le();var xR=Pn(Z9(),1);Le();import*as NL from"diagnostics_channel";var uke=class{constructor(t={}){this.instrumentationName="@netlify/otel/instrumentation-fetch",this.instrumentationVersion="1.0.0",this._recordFromReq=new WeakMap,this.config=t,this._channelSubs=[]}getConfig(){return this.config}setConfig(){}setMeterProvider(){}setTracerProvider(t){this.provider=t}getTracerProvider(){return this.provider}annotateFromRequest(t,e){let r=this.config.getRequestAttributes?.(e)??{},n=new URL(e.path,e.origin);t.setAttributes({...r,"http.request.method":e.method,"url.full":n.href,"url.host":n.host,"url.scheme":n.protocol.slice(0,-1),"server.address":n.hostname,"server.port":n.port,...this.prepareHeaders("request",e.headers)})}annotateFromResponse(t,e){let r=this.config.getResponseAttributes?.(e)??{};t.setAttributes({...r,"http.response.status_code":e.statusCode,...this.prepareHeaders("response",e.headers)}),t.setStatus({code:e.statusCode>=400?ai.ERROR:ai.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof ml?t:new ml(t)}enable(){this._channelSubs.length>0||(this.subscribe("undici:request:create",this.onRequestCreate.bind(this)),this.subscribe("undici:request:headers",this.onRequestHeaders.bind(this)),this.subscribe("undici:request:trailers",this.onRequestEnd.bind(this)),this.subscribe("undici:request:error",this.onRequestError.bind(this)))}subscribe(t,e){NL.subscribe(t,e);let r=()=>NL.unsubscribe(t,e);this._channelSubs.push({name:t,unsubscribe:r})}disable(){this._channelSubs.forEach(t=>{t.unsubscribe()}),this._channelSubs.length=0}onRequestCreate({request:t}){try{let e=this.getTracer(),r=new URL(t.path,t.origin);if(!e||t.method==="CONNECT"||this.config.skipURLs?.some(i=>typeof i=="string"?r.href.startsWith(i):i.test(r.href)))return;let n=e.startSpan(this.getRequestMethod(t.method),{kind:Mo.CLIENT},tr.active());this.annotateFromRequest(n,t),this._recordFromReq.set(t,n)}catch{}}onRequestHeaders({request:t,response:e}){try{let r=this._recordFromReq.get(t);if(!r)return;this.annotateFromResponse(r,e)}catch{}}onRequestError({request:t,error:e}){try{let r=this._recordFromReq.get(t);if(!r)return;r.recordException(e),r.setStatus({code:ai.ERROR,message:e.message}),r.end(),this._recordFromReq.delete(t)}catch{}}onRequestEnd({request:t}){try{let e=this._recordFromReq.get(t);if(!e)return;e.end(),this._recordFromReq.delete(t)}catch{}}};var $je=Pn(Nje(),1);var N1=pe("tracing"),kje=8e3,_2t=5e3,H0=async(t=_2t)=>{try{await Promise.race([lPe(),g2t(t)])}catch(e){N1.warn("Failed to flush tracers on shutdown",e)}},Lje=async(t,e,r)=>{if(!Pt()){let n=[new xR.SimpleSpanProcessor(new rQ),new xR.SimpleSpanProcessor(new $je.OTLPTraceExporter({url:r.exporterUrl}))];await lke({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new uke({skipHeaders:!0})]})}return r.traceparent?(Pi.setGlobalPropagator(new _d),Pi.extract(tr.active(),{traceparent:r.traceparent,isRemote:!0})):tr.active()};function ir(t,e,r){return N1.log(`\u23F3 TRACE: ${e} starting...`),Kw(t,e,r)}var rQ=class{export(e,r){for(let n of e)this.logSpan(n);r({code:1})}async shutdown(){}forceFlush(){return Promise.resolve()}logSpan(e){let r=(e.endTime[0]-e.startTime[0])*1e3+(e.endTime[1]-e.startTime[1])/1e6,n=e.attributes,i=[];for(let[a,c]of Object.entries(n))a.includes("duration")&&typeof c=="number"?i.push(`${a}=${c.toFixed(2)}ms`):i.push(`${a}=${c}`);let s=e.status?.code===2?"\u274C":"\u2705",o=i.length>0?` [${i.join(", ")}]`:"";N1.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&N1.log(` \u274C Error: ${e.status.message}`)}};function nQ(){return Ze().captureLlmContentEnabled}function Dje(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function k1(t,e,r){let n={role:t,parts:[{type:"text",content:Xi(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var y2t=new Set([Q.Task,Q.RunCommand,Q.Explore,Q.FileRead,Q.FileWrite,Q.Notebook,Q.Web,Q.Todo,Q.Skill,Q.Tool,Q.Memorize,Q.Deployment,Q.SiteGeneration]);function Mje(t,e,r,n){if(!t.length)return;let i=Pt();if(!i)return;let s=nQ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&y2t.has(a.category),f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,_=a.message?a.message.length>kje?`${a.message.slice(0,kje)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Xi(_)}:{"gen_ai.output.messages":k1("assistant",_)}:{}}}).end(u)})}import{readdir as S2t,rm as E2t}from"fs/promises";import{join as v2t}from"path";async function Uje(t,e=[]){let n=(await S2t(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>E2t(v2t(t,i),{recursive:!0,force:!0})))}var b2t=300,Ih=t=>Ze().budgetCreditThresholds[t.mode]?.[t.runner]??b2t,Oh=({mode:t,sessionCreditLimit:e},r)=>t==="create"&&e!=null&&e<=r;var iQ=t=>{let e=Ih(t);if(!Oh(t,e))return"default";let r=Ze();return r.createAskFirstEnabled&&r.questionsEnabled?"ask_first":r.creditWrapUpEnabled?"budget_constrained":"default"},Fje=t=>{let e=iQ(t),r=Ih(t);return{budget_eligible:Oh(t,r),budget_constrained:e==="budget_constrained",ask_first:e==="ask_first"}};var A2t=G0.dirname(T2t(import.meta.url)),jje=w2t(import.meta.url),x2t=G0.resolve(A2t,"scripts/scaffold.js"),C2t="scripts/scaffold.js",P2t=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,sQ=t=>{if(t.length>=2){let e=t[0],r=t[t.length-1];if(e==='"'&&r==='"'||e==="'"&&r==="'")return t.slice(1,-1)}return t},I2t=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),O2t=t=>{let e=sQ(t);return e==="node"||e.endsWith("/node")},Fl=t=>{if(typeof t!="string")return!1;let e=t.match(P2t)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&I2t(sQ(e[r]));)r+=1;if(r>=e.length||!O2t(e[r]))return!1;let n=e[r+1];return n?sQ(n).includes(C2t):!1},Nh=pe("create_stage"),oQ="Do not run local validation or dev-server commands to check your work \u2014 specifically `tsc`, `npx tsc`, `vite build`, `vite dev`, or any equivalent build/start/test command. The build pipeline installs and validates the project automatically after your edits. Verify your changes by reading the files you edited.",N2t=`${oQ}
635
635
 
636
636
  Commands that generate or modify project files are fine to run when the task requires them \u2014 for example \`drizzle-kit generate\` to write a database migration after a schema change, or other code-generation utilities documented in the skills.`,k2t=`${oQ}
637
637
 
@@ -1036,7 +1036,7 @@ Preview deploy created successfully:`,{deployId:p.deploy_id,deployUrl:p.deploy_u
1036
1036
 
1037
1037
  ${nt.error}
1038
1038
 
1039
- Please fix the issue and do NOT run \`drizzle-kit generate\` yourself \u2014 it will be run automatically after you're done.`]);let le=await E.generateMigrations(),xt=le.error?"unresolved":le.skipped?"skipped":"resolved";le.error?(ln.warn("drizzle-kit generate still failing after the fix turn",{error:le.error}),A?.setAttributes({"db_migrations.generate_fix_unresolved":!0})):ln.log("drizzle-kit generate recovered after the fix turn",{outcome:xt}),oe.inc("db_migrations.generate_fix",1,{outcome:xt})}let Mt=await E.hasDatabase(),Be=nt.reason==="no_module"||Mt===!1?{}:await E.verifyMigrations(),sr=0;for(let le=1;Be.error&&le<=gie;le++){let xt=Be.error;sr=le,ln.log("Migration drift detected, running inference to fix",{attempt:le,maxAttempts:gie}),oe.inc("db_migrations.drift_fix_attempt",1,{attempt:String(le)});let ua=le===1?"inference-migration-drift-fix":`inference-migration-drift-fix-${le}`;if(await ne(ua,[xt]),Be=await E.verifyMigrations(),!Be.error){ln.log("Migration drift resolved by fix turn",{attempt:le}),oe.inc("db_migrations.drift_resolved",1,{attempt:String(le)}),A?.setAttributes({"db_migrations.drift_resolved":!0});break}if(Be.error===xt){ln.warn("Migration drift unchanged after fix attempt; not retrying",{attempt:le}),oe.inc("db_migrations.drift_no_progress",1,{attempt:String(le)}),A?.setAttributes({"db_migrations.drift_no_progress":!0});break}}if(Be.error){let le=`${sr} fix attempt${sr===1?"":"s"}`;if(ln.warn("Migration drift persists after fix attempts",{attempts:sr,maxAttempts:gie}),oe.inc("db_migrations.drift_unresolved",1),A?.setAttributes({"db_migrations.drift_unresolved":!0}),Ze().migrationDriftBlocksDeployEnabled)throw new Error(`Migration drift persists after ${le}; refusing to deploy a tree the platform will reject.`)}if(Ze().aiFnV1GuardrailEnabled&&n&&!V)try{let le=await gU(n);le.v1>0&&(ln.log(`Detected ${le.v1} v1 AI function(s), running inference to fix`),await ne("inference-ai-fn-v1-fix",[sWe(le.v1Files)]))}catch(le){if(xc(le))throw le;ln.warn("ai_fn_v1_guardrail failed",{err:le})}let mt=await y("deploy",()=>KA({cliPath:r,config:t,result:z.result,filter:i,isRetry:!1,deploySubdomain:Z})),lt=mt.hasChanges?mt:void 0,$e=z;mt.deployError&&oe.inc("deploy.failed",1,{attempt:1});let gt=[],Re;if(mt.hasChanges&&mt.deployError){gt.push(mqe(mt.deployError));let le=1,xt=!1;for(;le<=av&&!mt.previewInfo&&!xt;)ln.log(`Deploy attempt had errors. Retrying. ${le}/${av}`),await Kw(Pt(),"deploy-stage",async ua=>{ua?.setAttributes({"stage.attempt":le});let or;try{_=h;let Qr=await E.currentContext();or=(await we.runFixTurn(()=>y(`inference-retry-${le}`,()=>bf({cliPath:r,config:t,context:I,runner:B,persistSteps:F,aiGateway:U,buildErrors:gt,additionalContext:Qr,priorAgentSessionId:z.agentSessionId,answerFold:se})))).runnerResult}catch(Qr){if(xc(Qr))throw Qr;ln.warn(`Inference retry ${le} failed, stopping deploy retries:`,Qr),xt=!0;return}if(Ie)throw Object.assign(Ie,{agentSessionId:or.agentSessionId??z.agentSessionId}),Ie;$e=ST($e,or),await E.generateMigrations(),mt=await y(`deploy-retry-${le}`,()=>KA({cliPath:r,config:t,result:or.result,filter:i,isRetry:!0,deploySubdomain:Z})),mt.hasChanges&&(lt=mt),mt.deployError&&(oe.inc("deploy.failed",1,{attempt:le+1}),gt.push(mt.deployError)),le++});le>av&&!mt.previewInfo&&(oe.inc("deploy.retries_exhausted",1),t.mode==="create"?(console.warn(`Deploy still failing after ${av} retries, failing the create run`),Re=new Error(`Deploy failed after ${av} retries`)):console.warn(`Deploy still failing after ${av} retries, completing run without a preview`))}let Oe=mt.previewInfo||mt.hasChanges?mt:lt??mt,{diff:Xr,resultDiff:Ot,previewInfo:_i,diffBinary:lv,resultDiffBinary:Ui,hasNetlifyForm:Fi,hasNetlifyIdentity:Cf}=Oe;Oe.hasChanges&&QN({previewDeployed:!!Oe.previewInfo,hadFailedAttempts:gt.length>0}),await c?.stop(),A?.setAttributes(_qe($e,c?.getCreditsCost())),f=$e.resolvedModel,p=$e.effort??p;let Nr=$e.agentSessionId??z.agentSessionId;await w({...Re?{outcome:"deploy-failed",error:Re}:{outcome:"completed",pipelineSpan:A},artifacts:{diff:Xr,result:$e.result,duration:$e.duration,resultDiff:Ot,diffBinary:lv,resultDiffBinary:Ui,previewInfo:_i,isProdDeploy:Ue,hasNetlifyForm:Fi,hasNetlifyIdentity:Cf,nativeSessionId:Nr,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h}});let _r=await E.hasDatabase();typeof _r=="boolean"&&A?.setAttributes({"actual.has_db":_r}),await Mqe({config:t,hasDb:_r,pipelineSpan:A,resolvedModel:$e.resolvedModel??z.resolvedModel,cliVersion:xf.version})})}catch(A){if(xc(A)){u="gracefulError",ln.info("Agent run terminated gracefully",{statusCode:A.statusCode,reason:A.message}),await c?.stop();let U=A.isCreditLimitExceeded?"credit-limit":"graceful-error";await w({outcome:U,error:A,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h});return}throw ln.error("Got error while running pipeline",A),await c?.stop(),u=Ss()?"interrupted":"error",await w({outcome:u,error:A}),A}finally{E.revokeAskAccess(),m&&dWe(m,c?.getCreditsCost(),_),tWe({isHotFollowUp:s,startedAt:l,outcome:u,nativeResume:d,isAnswerResume:N,creditsCost:c?.getCreditsCost(),model:f,effort:p}),nWe({agentRunnerId:t.id,sessionId:t.sessionId,devServerId:process.env.NETLIFY_DEV_SERVER_ID,agent:t.runner,mode:t.mode,outcome:u,finalizationOutcome:g,stopReason:QCe(),version:xf.version,startedAt:l,model:f,effort:p,creditsCost:c?.getCreditsCost(),nativeResume:d,isAnswerResume:N,isHotFollowUp:s})}};var Sie=pe("session_manager"),Sm=null,Eie={},PWe,bie,IWe=0,OWe,vie,lx=class extends Error{constructor(){super("A session is already running"),this.name="SessionAlreadyRunningError"}},NWe=t=>{Eie=t},YF=t=>{if(Sm)throw new lx;let e={...Eie,...t,tracing:{...Eie.tracing,...t.tracing}};return uj(e.config.sessionId),Sie.log(`start agent=${e.config.runner} mode=${e.config.mode}`),e.isHotFollowUp&&!e.config.answeredInteraction&&IWe++,Sm=CWe(e).finally(()=>{uj(void 0),Sm=null,PWe=e.config.runner,vie=Date.now(),OWe??=vie}),Sm},_ie=()=>PWe,bWe=()=>Sm!==null,TWe=()=>IWe,wWe=()=>vie,RWe=()=>OWe,yie=async(t,e)=>{if(!Ze().idleTimeoutEnabled||!t||t===e)return;let r=PE[t];if(r)try{await r.clean(),Sie.info(`Wiped previous agent state (${t}) on switch to ${e}`)}catch(n){Sie.warn(`Failed to clean previous agent ${t} on switch`,{error:n?.message||n})}finally{bie=void 0}},ax=t=>{bie=t};var VGe=t=>{let e=t.previousSession?.nativeSessionId;return!!e&&e===bie},AWe=async()=>{if(Sm)try{await Sm}catch{}};var Tie=pe("server"),kWe=8888,vXt={type:"object",required:["prompt","sessionId","sha","mode","context"],properties:{prompt:{type:"string"},sessionId:{type:"string"},sha:{type:"string"},mode:{type:"string",enum:fx},context:{type:"array",items:{type:"object"}},enforcedAICreditsRemaining:{type:"integer"},agent:{type:"string",enum:cee},model:{type:"string"},effort:{type:"string",enum:[...dv,dn]},enqueuedAt:{type:"integer"},assetMap:{type:"object",additionalProperties:{type:"array",items:{type:"string"}}},previousSession:{type:"object",required:["nativeSessionId","agent"],properties:{nativeSessionId:{type:"string"},agent:{type:"string",enum:cee},mode:{type:"string"}}},answeredInteraction:{type:"object",required:["refId","questions","responses"],properties:{refId:{type:"string"},questions:{type:"array",items:{type:"object"}},responses:{type:"array",items:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}},{type:"null"}]}},instruction:{type:"string"},authorization:{type:"object",required:["granted"],properties:{service:{type:"string"},granted:{type:"boolean"}}}}},pendingUndeployedChanges:{type:"boolean"}}},bXt=async(t,e)=>{Ss()&&e.code(503).send({error:"shutdown",message:"Server is shutting down"})},TXt=async()=>({ok:!0}),wXt=async(t,e)=>{try{let r=Jie(t.body),n=typeof t.headers.traceparent=="string"?{traceparent:t.headers.traceparent}:void 0;return YF({config:r,tracing:n,isHotFollowUp:!0,enqueuedAt:t.body.enqueuedAt}).catch(i=>{Tie.error("Background session failed",i)}),{ok:!0,sessionId:t.body.sessionId}}catch(r){return r instanceof lx?e.code(409).send({error:"session_already_running",message:r.message}):(VF(hx(r)?r.reason:"unknown"),Tie.error("Error handling POST /sessions",r),e.code(500).send({error:"internal_server_error",message:"Internal server error"}))}},RXt=()=>{let t=(0,$We.default)({logger:!1});return t.addHook("onRequest",bXt),t.get("/health",TXt),t.post("/sessions",{schema:{body:vXt}},wXt),t},LWe=async()=>{let t=RXt();return await t.listen({port:kWe,host:"0.0.0.0"}),Tie.info(`HTTP server listening on port ${kWe}`),t};var AXt=2,KF=pe("bin_cmd"),cv=(0,DWe.default)(wie.argv.slice(2),{string:["auth","cwd","cli-path","filter","trace-exporter-url","traceparent"]}),ux=null;try{let t=await Yie(),e={apiToken:cv.auth,cwd:cv.cwd,cliPath:cv["cli-path"],filter:cv.filter,tracing:{exporterUrl:cv["trace-exporter-url"]}};NWe(e);let r=YF({config:t,...e,tracing:{...e.tracing,traceparent:cv.traceparent}});Ze().idleTimeoutEnabled&&(ux=await LWe()),EWe(ux),await r,KF.info("Finished agent"),ux||(await H0(),wie.exit(0))}catch(t){if(Ss())KF.info("Pipeline interrupted by shutdown signal");else{if(VF(hx(t)?t.reason:cj(t)?"provider":"unknown"),KF.error("Error running agent pipeline:",t),ux)try{await ux.close()}catch(e){KF.error("Error closing server during failure exit",e)}await H0(),wie.exit(cj(t)?AXt:1)}}
1039
+ Please fix the issue and do NOT run \`drizzle-kit generate\` yourself \u2014 it will be run automatically after you're done.`]);let le=await E.generateMigrations(),xt=le.error?"unresolved":le.skipped?"skipped":"resolved";le.error?(ln.warn("drizzle-kit generate still failing after the fix turn",{error:le.error}),A?.setAttributes({"db_migrations.generate_fix_unresolved":!0})):ln.log("drizzle-kit generate recovered after the fix turn",{outcome:xt}),oe.inc("db_migrations.generate_fix",1,{outcome:xt})}let Mt=await E.hasDatabase(),Be=nt.reason==="no_module"||Mt===!1?{}:await E.verifyMigrations(),sr=0;for(let le=1;Be.error&&le<=gie;le++){let xt=Be.error;sr=le,ln.log("Migration drift detected, running inference to fix",{attempt:le,maxAttempts:gie}),oe.inc("db_migrations.drift_fix_attempt",1,{attempt:String(le)});let ua=le===1?"inference-migration-drift-fix":`inference-migration-drift-fix-${le}`;if(await ne(ua,[xt]),Be=await E.verifyMigrations(),!Be.error){ln.log("Migration drift resolved by fix turn",{attempt:le}),oe.inc("db_migrations.drift_resolved",1,{attempt:String(le)}),A?.setAttributes({"db_migrations.drift_resolved":!0});break}if(Be.error===xt){ln.warn("Migration drift unchanged after fix attempt; not retrying",{attempt:le}),oe.inc("db_migrations.drift_no_progress",1,{attempt:String(le)}),A?.setAttributes({"db_migrations.drift_no_progress":!0});break}}if(Be.error){let le=`${sr} fix attempt${sr===1?"":"s"}`;if(ln.warn("Migration drift persists after fix attempts",{attempts:sr,maxAttempts:gie}),oe.inc("db_migrations.drift_unresolved",1),A?.setAttributes({"db_migrations.drift_unresolved":!0}),Ze().migrationDriftBlocksDeployEnabled)throw new Error(`Migration drift persists after ${le}; refusing to deploy a tree the platform will reject.`)}if(Ze().aiFnV1GuardrailEnabled&&n&&!V)try{let le=await gU(n);le.v1>0&&(ln.log(`Detected ${le.v1} v1 AI function(s), running inference to fix`),await ne("inference-ai-fn-v1-fix",[sWe(le.v1Files)]))}catch(le){if(xc(le))throw le;ln.warn("ai_fn_v1_guardrail failed",{err:le})}let mt=await y("deploy",()=>KA({cliPath:r,config:t,result:z.result,filter:i,isRetry:!1,deploySubdomain:Z})),lt=mt.hasChanges?mt:void 0,$e=z;mt.deployError&&oe.inc("deploy.failed",1,{attempt:1});let gt=[],Re;if(mt.hasChanges&&mt.deployError){gt.push(mqe(mt.deployError));let le=1,xt=!1;for(;le<=av&&!mt.previewInfo&&!xt;)ln.log(`Deploy attempt had errors. Retrying. ${le}/${av}`),await Kw(Pt(),"deploy-stage",async ua=>{ua?.setAttributes({"stage.attempt":le});let or;try{_=h;let Qr=await E.currentContext();or=(await we.runFixTurn(()=>y(`inference-retry-${le}`,()=>bf({cliPath:r,config:t,context:I,runner:B,persistSteps:F,aiGateway:U,buildErrors:gt,additionalContext:Qr,priorAgentSessionId:z.agentSessionId,answerFold:se})))).runnerResult}catch(Qr){if(xc(Qr))throw Qr;ln.warn(`Inference retry ${le} failed, stopping deploy retries:`,Qr),xt=!0;return}if(Ie)throw Object.assign(Ie,{agentSessionId:or.agentSessionId??z.agentSessionId}),Ie;$e=ST($e,or),await E.generateMigrations(),mt=await y(`deploy-retry-${le}`,()=>KA({cliPath:r,config:t,result:or.result,filter:i,isRetry:!0,deploySubdomain:Z})),mt.hasChanges&&(lt=mt),mt.deployError&&(oe.inc("deploy.failed",1,{attempt:le+1}),gt.push(mt.deployError)),le++});le>av&&!mt.previewInfo&&(oe.inc("deploy.retries_exhausted",1),t.mode==="create"?(console.warn(`Deploy still failing after ${av} retries, failing the create run`),Re=new Error(`Deploy failed after ${av} retries`)):console.warn(`Deploy still failing after ${av} retries, completing run without a preview`))}let Oe=mt.previewInfo||mt.hasChanges?mt:lt??mt,{diff:Xr,resultDiff:Ot,previewInfo:_i,diffBinary:lv,resultDiffBinary:Ui,hasNetlifyForm:Fi,hasNetlifyIdentity:Cf}=Oe;Oe.hasChanges&&QN({previewDeployed:!!Oe.previewInfo,hadFailedAttempts:gt.length>0}),await c?.stop(),A?.setAttributes(_qe($e,c?.getCreditsCost())),f=$e.resolvedModel,p=$e.effort??p;let Nr=$e.agentSessionId??z.agentSessionId;await w({...Re?{outcome:"deploy-failed",error:Re}:{outcome:"completed",pipelineSpan:A},artifacts:{diff:Xr,result:$e.result,duration:$e.duration,resultDiff:Ot,diffBinary:lv,resultDiffBinary:Ui,previewInfo:_i,isProdDeploy:Ue,hasNetlifyForm:Fi,hasNetlifyIdentity:Cf,nativeSessionId:Nr,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h}});let _r=await E.hasDatabase();typeof _r=="boolean"&&A?.setAttributes({"actual.has_db":_r}),await Mqe({config:t,hasDb:_r,pipelineSpan:A,resolvedModel:$e.resolvedModel??z.resolvedModel,cliVersion:xf.version})})}catch(A){if(xc(A)){u="gracefulError",ln.info("Agent run terminated gracefully",{statusCode:A.statusCode,reason:A.message}),await c?.stop();let U=A.isCreditLimitExceeded?"credit-limit":"graceful-error";await w({outcome:U,error:A,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h});return}throw ln.error("Got error while running pipeline",A),await c?.stop(),u=Ss()?"interrupted":"error",await w({outcome:u,error:A}),A}finally{E.revokeAskAccess(),m&&dWe(m,c?.getCreditsCost(),_),tWe({isHotFollowUp:s,startedAt:l,outcome:u,nativeResume:d,isAnswerResume:N,creditsCost:c?.getCreditsCost(),model:f,effort:p}),nWe({agentRunnerId:t.id,sessionId:t.sessionId,devServerId:process.env.NETLIFY_DEV_SERVER_ID,agent:t.runner,mode:t.mode,outcome:u,finalizationOutcome:g,stopReason:QCe(),version:xf.version,startedAt:l,model:f??t.model,effort:p??t.effort,creditsCost:c?.getCreditsCost(),nativeResume:d,isAnswerResume:N,isHotFollowUp:s})}};var Sie=pe("session_manager"),Sm=null,Eie={},PWe,bie,IWe=0,OWe,vie,lx=class extends Error{constructor(){super("A session is already running"),this.name="SessionAlreadyRunningError"}},NWe=t=>{Eie=t},YF=t=>{if(Sm)throw new lx;let e={...Eie,...t,tracing:{...Eie.tracing,...t.tracing}};return uj(e.config.sessionId),Sie.log(`start agent=${e.config.runner} mode=${e.config.mode}`),e.isHotFollowUp&&!e.config.answeredInteraction&&IWe++,Sm=CWe(e).finally(()=>{uj(void 0),Sm=null,PWe=e.config.runner,vie=Date.now(),OWe??=vie}),Sm},_ie=()=>PWe,bWe=()=>Sm!==null,TWe=()=>IWe,wWe=()=>vie,RWe=()=>OWe,yie=async(t,e)=>{if(!Ze().idleTimeoutEnabled||!t||t===e)return;let r=PE[t];if(r)try{await r.clean(),Sie.info(`Wiped previous agent state (${t}) on switch to ${e}`)}catch(n){Sie.warn(`Failed to clean previous agent ${t} on switch`,{error:n?.message||n})}finally{bie=void 0}},ax=t=>{bie=t};var VGe=t=>{let e=t.previousSession?.nativeSessionId;return!!e&&e===bie},AWe=async()=>{if(Sm)try{await Sm}catch{}};var Tie=pe("server"),kWe=8888,vXt={type:"object",required:["prompt","sessionId","sha","mode","context"],properties:{prompt:{type:"string"},sessionId:{type:"string"},sha:{type:"string"},mode:{type:"string",enum:fx},context:{type:"array",items:{type:"object"}},enforcedAICreditsRemaining:{type:"integer"},agent:{type:"string",enum:cee},model:{type:"string"},effort:{type:"string",enum:[...dv,dn]},enqueuedAt:{type:"integer"},assetMap:{type:"object",additionalProperties:{type:"array",items:{type:"string"}}},previousSession:{type:"object",required:["nativeSessionId","agent"],properties:{nativeSessionId:{type:"string"},agent:{type:"string",enum:cee},mode:{type:"string"}}},answeredInteraction:{type:"object",required:["refId","questions","responses"],properties:{refId:{type:"string"},questions:{type:"array",items:{type:"object"}},responses:{type:"array",items:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}},{type:"null"}]}},instruction:{type:"string"},authorization:{type:"object",required:["granted"],properties:{service:{type:"string"},granted:{type:"boolean"}}}}},pendingUndeployedChanges:{type:"boolean"}}},bXt=async(t,e)=>{Ss()&&e.code(503).send({error:"shutdown",message:"Server is shutting down"})},TXt=async()=>({ok:!0}),wXt=async(t,e)=>{try{let r=Jie(t.body),n=typeof t.headers.traceparent=="string"?{traceparent:t.headers.traceparent}:void 0;return YF({config:r,tracing:n,isHotFollowUp:!0,enqueuedAt:t.body.enqueuedAt}).catch(i=>{Tie.error("Background session failed",i)}),{ok:!0,sessionId:t.body.sessionId}}catch(r){return r instanceof lx?e.code(409).send({error:"session_already_running",message:r.message}):(VF(hx(r)?r.reason:"unknown"),Tie.error("Error handling POST /sessions",r),e.code(500).send({error:"internal_server_error",message:"Internal server error"}))}},RXt=()=>{let t=(0,$We.default)({logger:!1});return t.addHook("onRequest",bXt),t.get("/health",TXt),t.post("/sessions",{schema:{body:vXt}},wXt),t},LWe=async()=>{let t=RXt();return await t.listen({port:kWe,host:"0.0.0.0"}),Tie.info(`HTTP server listening on port ${kWe}`),t};var AXt=2,KF=pe("bin_cmd"),cv=(0,DWe.default)(wie.argv.slice(2),{string:["auth","cwd","cli-path","filter","trace-exporter-url","traceparent"]}),ux=null;try{let t=await Yie(),e={apiToken:cv.auth,cwd:cv.cwd,cliPath:cv["cli-path"],filter:cv.filter,tracing:{exporterUrl:cv["trace-exporter-url"]}};NWe(e);let r=YF({config:t,...e,tracing:{...e.tracing,traceparent:cv.traceparent}});Ze().idleTimeoutEnabled&&(ux=await LWe()),EWe(ux),await r,KF.info("Finished agent"),ux||(await H0(),wie.exit(0))}catch(t){if(Ss())KF.info("Pipeline interrupted by shutdown signal");else{if(VF(hx(t)?t.reason:cj(t)?"provider":"unknown"),KF.error("Error running agent pipeline:",t),ux)try{await ux.close()}catch(e){KF.error("Error closing server during failure exit",e)}await H0(),wie.exit(cj(t)?AXt:1)}}
1040
1040
  /*! Bundled license information:
1041
1041
 
1042
1042
  toad-cache/dist/toad-cache.cjs:
package/dist/index.js CHANGED
@@ -140,7 +140,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
140
140
  `,LF:`
141
141
  `,concatBytes:Wz},r6e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},n6e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:r6e};import{Buffer as i6e}from"buffer";var lue=(t,e)=>t?void 0:o6e.bind(void 0,e),o6e=function*(t,e){if(typeof e!="string"&&!Er(e)&&!i6e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},uue=(t,e)=>t?s6e.bind(void 0,e):a6e.bind(void 0,e),s6e=function*(t,e){due(t,e),yield e},a6e=function*(t,e){if(due(t,e),typeof e!="string"&&!Er(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},due=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
142
142
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
143
- if (condition) { yield value; }`)};import{Buffer as c6e}from"buffer";import{StringDecoder as l6e}from"string_decoder";var yC=(t,e,r)=>{if(r)return;if(t)return{transform:u6e.bind(void 0,new TextEncoder)};let n=new l6e(e);return{transform:d6e.bind(void 0,n),final:f6e.bind(void 0,n)}},u6e=function*(t,e){c6e.isBuffer(e)?yield Ma(e):typeof e=="string"?yield t.encode(e):yield e},d6e=function*(t,e){yield Er(e)?t.write(e):e},f6e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as fue}from"util";var Kz=fue(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),SC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=h6e}=e[r];for await(let i of n(t))yield*SC(i,e,r+1)},pue=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*p6e(r,Number(e),t)},p6e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*SC(n,r,e+1)},hue=fue(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),h6e=function*(t){yield t};var Zz=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},mue=(t,e)=>[...e.flatMap(r=>[...Ed(r,t,0)]),...gE(t)],Ed=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=g6e}=e[r];for(let i of n(t))yield*Ed(i,e,r+1)},gE=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*m6e(r,Number(e),t)},m6e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ed(n,r,e+1)},g6e=function*(t){yield t};var Jz=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=_ue(t,s,o),l=Sd(e),u=Sd(r),d=l?Kz.bind(void 0,SC,a):Zz.bind(void 0,Ed),f=l||u?Kz.bind(void 0,pue,a):Zz.bind(void 0,gE),p=l||u?hue.bind(void 0,a):void 0;return{stream:new _6e({writableObjectMode:n,writableHighWaterMark:gue(n),readableObjectMode:i,readableHighWaterMark:gue(i),transform(m,g,_){d([m,c,0],this,_)},flush(m){f([c],this,m)},destroy:p})}},EC=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=_ue(s,r,a);t=mue(c,t)}return t},_ue=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:lue(n,a)},yC(r,s,n),_C(r,o,n,c),{transform:t,final:e},{transform:uue(i,a)},cue({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var yue=(t,e)=>{for(let r of y6e(t))S6e(t,r,e)},y6e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),S6e=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${al[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>E6e(a,n));r.input=sE(s)},E6e=(t,e)=>{let r=EC(t,e,"utf8",!0);return v6e(r),sE(r)},v6e=t=>{let e=t.find(r=>typeof r!="string"&&!Er(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as A6e,appendFileSync as x6e}from"fs";var vC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&bh(r,n)&&!vi.has(e)&&b6e(n)&&(t.some(({type:i,value:o})=>i==="native"&&T6e.has(o))||t.every(({type:i})=>Zi.has(i))),b6e=t=>t===1||t===2,T6e=new Set(["pipe","overlapped"]),Sue=async(t,e,r,n)=>{for await(let i of t)w6e(e)||vue(i,r,n)},Eue=(t,e,r)=>{for(let n of t)vue(n,e,r)},w6e=t=>t._readableState.pipes.length>0,vue=(t,e,r)=>{let n=$0(t);xs({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var bue=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>R6e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},R6e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=Tle(t,o,d),p=Ma(f),{stdioItems:h,objectMode:m}=e[r],g=C6e([p],h,c,n),{serializedResult:_,finalResult:v=_}=I6e({chunks:g,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});P6e({serializedResult:_,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let w=a[r]?v:void 0;try{return n.error===void 0&&O6e(_,h,i),w}catch(b){return n.error=b,w}},C6e=(t,e,r,n)=>{try{return EC(t,e,r,!1)}catch(i){return n.error=i,t}},I6e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:sE(t)};let s=Lse(t,r);return n[o]?{serializedResult:s,finalResult:Yz(s,!i[o],e)}:{serializedResult:s}},P6e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!vC({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=Yz(t,!1,s);try{Eue(a,e,n)}catch(c){r.error??=c}},O6e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>mC.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?x6e(n,t):(r.add(o),A6e(n,t))}};var Tue=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,La(e,r,"all")]:Array.isArray(e)?[La(t,r,"all"),...e]:Er(t)&&Er(e)?nz([t,e]):`${t}${e}`};import{once as Xz}from"events";var wue=async(t,e)=>{let[r,n]=await N6e(t);return e.isForcefullyTerminated??=!1,[r,n]},N6e=async t=>{let[e,r]=await Promise.allSettled([Xz(t,"spawn"),Xz(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Aue(t):r.value},Aue=async t=>{try{return await Xz(t,"exit")}catch{return Aue(t)}},xue=async t=>{let[e,r]=await t;if(!k6e(e,r)&&Qz(e,r))throw new Mo;return[e,r]},k6e=(t,e)=>t===void 0&&e===void 0,Qz=(t,e)=>t!==0||e!==null;var Rue=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=M6e(t,e,r),s=o?.code==="ETIMEDOUT",a=ble(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},M6e=(t,e,r)=>t!==void 0?t:Qz(e,r)?new Mo:void 0;var Cue=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=D6e(t,e,r),d=F6e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Nh(d,c,l)},D6e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=L0(t,e,r),a=L6e(r),{file:c,commandArguments:l,options:u}=nC(t,e,a);U6e(u);let d=iue(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},L6e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,U6e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&bC("ipcInput"),t&&bC("ipc: true"),r&&bC("detached: true"),n&&bC("cancelSignal")},bC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},F6e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=z6e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Rue(c,r),{output:h,error:m=l}=bue({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),g=h.map((v,w)=>La(v,r,w)),_=La(Tue(h,r),r,"all");return B6e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:_,options:r,command:n,escapedCommand:i,startTime:a})},z6e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{yue(o,r);let a=j6e(r);return $6e(...iC(t,e,a))}catch(a){return Oh({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},j6e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:dC(e)}),B6e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?fC({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):mE({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as IWe}from"events";import{spawn as PWe}from"child_process";import kue from"process";import{once as ej,on as q6e}from"events";var Iue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Ah({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:J0(t)}),V6e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),V6e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{W0(e,i);let o=sl(t,e,r),s=new AbortController;try{return await Promise.race([G6e(o,n,s),H6e(o,r,s),W6e(o,r,s)])}catch(a){throw xh(t),a}finally{s.abort(),Y0(e,i)}},G6e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await ej(t,"message",{signal:r});return n}for await(let[n]of q6e(t,"message",{signal:r}))if(e(n))return n},H6e=async(t,e,{signal:r})=>{await ej(t,"disconnect",{signal:r}),mce(e)},W6e=async(t,e,{signal:r})=>{let[n]=await ej(t,"strict:error",{signal:r});throw V0(n,e)};import{once as Oue,on as Y6e}from"events";var Nue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>tj({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),tj=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Ah({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:J0(t)}),W0(e,o);let s=sl(t,e,r),a=new AbortController,c={};return K6e(t,s,a),Z6e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),J6e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},K6e=async(t,e,r)=>{try{await Oue(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},Z6e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Oue(t,"strict:error",{signal:r.signal});n.error=V0(i,e),r.abort()}catch{}},J6e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of Y6e(r,"message",{signal:o.signal}))Pue(s),yield c}catch{Pue(s)}finally{o.abort(),Y0(e,a),n||xh(t),i&&await t}},Pue=({error:t})=>{if(t)throw t};var Mue=(t,{ipc:e})=>{Object.assign(t,Due(t,!1,e))},$ue=()=>{let t=kue,e=!0,r=kue.channel!==void 0;return{...Due(t,e,r),getCancelSignal:Bce.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Due=(t,e,r)=>({sendMessage:tC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Iue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Nue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as X6e}from"child_process";import{PassThrough as Q6e,Readable as e3e,Writable as t3e,Duplex as r3e}from"stream";var Lue=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{Gz(n);let a=new X6e;n3e(a,n),Object.assign(a,{readable:i3e,writable:o3e,duplex:s3e});let c=Oh({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=a3e(c,s,i);return{subprocess:a,promise:l}},n3e=(t,e)=>{let r=_E(),n=_E(),i=_E(),o=Array.from({length:e.length-3},_E),s=_E(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},_E=()=>{let t=new Q6e;return t.end(),t},i3e=()=>new e3e({read(){}}),o3e=()=>new t3e({write(){}}),s3e=()=>new r3e({read(){},write(){}}),a3e=async(t,e,r)=>Nh(t,e,r);import{createReadStream as Uue,createWriteStream as Fue}from"fs";import{Buffer as c3e}from"buffer";import{Readable as yE,Writable as l3e,Duplex as u3e}from"stream";var jue=(t,e)=>gC(d3e,t,e,!1),SE=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${al[t]}.`)},zue={fileNumber:SE,generator:Jz,asyncGenerator:Jz,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:u3e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},d3e={input:{...zue,fileUrl:({value:t})=>({stream:Uue(t)}),filePath:({value:{file:t}})=>({stream:Uue(t)}),webStream:({value:t})=>({stream:yE.fromWeb(t)}),iterable:({value:t})=>({stream:yE.from(t)}),asyncIterable:({value:t})=>({stream:yE.from(t)}),string:({value:t})=>({stream:yE.from(t)}),uint8Array:({value:t})=>({stream:yE.from(c3e.from(t))})},output:{...zue,fileUrl:({value:t})=>({stream:Fue(t)}),filePath:({value:{file:t,append:e}})=>({stream:Fue(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:l3e.fromWeb(t)}),iterable:SE,asyncIterable:SE,string:SE,uint8Array:SE}};import{on as f3e,once as Bue}from"events";import{PassThrough as p3e,getDefaultHighWaterMark as h3e}from"stream";import{finished as Gue}from"stream/promises";function vd(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)nj(i);let e=t.some(({readableObjectMode:i})=>i),r=m3e(t,e),n=new rj({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var m3e=(t,e)=>{if(t.length===0)return h3e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},rj=class extends p3e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(nj(e),this.#e.has(e))return;this.#e.add(e),this.#n??=g3e(this,this.#e,this.#o);let r=S3e({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(nj(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},g3e=async(t,e,r)=>{TC(t,que);let n=new AbortController;try{await Promise.race([_3e(t,n),y3e(t,e,r,n)])}finally{n.abort(),TC(t,-que)}},_3e=async(t,{signal:e})=>{try{await Gue(t,{signal:e,cleanup:!0})}catch(r){throw Hue(t,r),r}},y3e=async(t,e,r,{signal:n})=>{for await(let[i]of f3e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},nj=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},S3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{TC(t,Vue);let a=new AbortController;try{await Promise.race([E3e(o,e,a),v3e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),b3e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),TC(t,-Vue)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?ij(t):T3e(t))},E3e=async(t,e,{signal:r})=>{try{await t,r.aborted||ij(e)}catch(n){r.aborted||Hue(e,n)}},v3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await Gue(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;Wue(s)?i.add(e):Yue(t,s)}},b3e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await Bue(t,i,{signal:o}),!t.readable)return Bue(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},T3e=t=>{t.writable&&t.end()},Hue=(t,e)=>{Wue(e)?ij(t):Yue(t,e)},Wue=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",ij=t=>{(t.readable||t.writable)&&t.destroy()},Yue=(t,e)=>{t.destroyed||(t.once("error",w3e),t.destroy(e))},w3e=()=>{},TC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},que=2,Vue=1;import{finished as Kue}from"stream/promises";var Mh=(t,e)=>{t.pipe(e),A3e(t,e),x3e(t,e)},A3e=async(t,e)=>{if(!(ko(t)||ko(e))){try{await Kue(t,{cleanup:!0,readable:!0,writable:!1})}catch{}oj(e)}},oj=t=>{t.writable&&t.end()},x3e=async(t,e)=>{if(!(ko(t)||ko(e))){try{await Kue(e,{cleanup:!0,readable:!1,writable:!0})}catch{}sj(t)}},sj=t=>{t.readable&&t.destroy()};var Zue=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Zi.has(c)))R3e(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Zi.has(c)))I3e({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:vd(o);Mh(s,i)}},R3e=(t,e,r,n)=>{r==="output"?Mh(t.stdio[n],e):Mh(e,t.stdio[n]);let i=C3e[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},C3e=["stdin","stdout","stderr"],I3e=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;P3e(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},P3e=(t,{signal:e})=>{ko(t)&&_d(t,O3e,e)},O3e=2;import{addAbortListener as M3e}from"events";var bd=[];bd.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&bd.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&bd.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var wC=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",aj=Symbol.for("signal-exit emitter"),cj=globalThis,N3e=Object.defineProperty.bind(Object),lj=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(cj[aj])return cj[aj];N3e(cj,aj,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},AC=class{},k3e=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),uj=class extends AC{onExit(){return()=>{}}load(){}unload(){}},dj=class extends AC{#e=fj.platform==="win32"?"SIGINT":"SIGHUP";#r=new lj;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of bd)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!wC(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of bd)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,bd.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return wC(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&wC(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},fj=globalThis.process,{onExit:Jue,load:Qzt,unload:ejt}=k3e(wC(fj)?new dj(fj):new uj);var Xue=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Jue(()=>{t.kill()});M3e(n,()=>{i()})};var ede=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=D0(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=$3e(r,n,i),{sourceStream:d,sourceError:f}=L3e(t,l),{options:p,fileDescriptors:h}=Cs.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},$3e=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=D3e(t,e,...r),a=H0(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},D3e=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Que,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||tz(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=x0(r,...n);return{destination:e(Que)(i,o,s),pipeOptions:s}}if(Cs.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},Que=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),L3e=(t,e)=>{try{return{sourceStream:Rh(t,e)}}catch(r){return{sourceError:r}}};var rde=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=U3e({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw pj({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},U3e=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return sj(t),n;if(e!==void 0)return oj(r),e},pj=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Oh({error:t,command:tde,escapedCommand:tde,fileDescriptors:e,options:r,startTime:n,isSync:!1}),tde="source.pipe(destination)";var nde=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as F3e}from"stream/promises";var ide=(t,e,r)=>{let n=xC.has(e)?j3e(t,e):z3e(t,e);return _d(t,q3e,r.signal),_d(e,V3e,r.signal),B3e(e),n},z3e=(t,e)=>{let r=vd([t]);return Mh(r,e),xC.set(e,r),r},j3e=(t,e)=>{let r=xC.get(e);return r.add(t),r},B3e=async t=>{try{await F3e(t,{cleanup:!0,readable:!1,writable:!0})}catch{}xC.delete(t)},xC=new WeakMap,q3e=2,V3e=1;import{aborted as G3e}from"util";var ode=(t,e)=>t===void 0?[]:[H3e(t,e)],H3e=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await G3e(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw pj({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var RC=(t,...e)=>{if(cr(e[0]))return RC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=ede(t,...e),i=W3e({...n,destination:r});return i.pipe=RC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},W3e=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=Y3e(t,i);rde({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=ide(e,o,d);return await Promise.race([nde(u),...ode(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},Y3e=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as tWe}from"timers/promises";import{on as K3e}from"events";import{getDefaultHighWaterMark as Z3e}from"stream";var CC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return J3e(e,s),ade({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},J3e=async(t,e)=>{try{await t}catch{}finally{e.abort()}},hj=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;X3e(e,s,t);let a=t.readableObjectMode&&!o;return ade({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},X3e=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},ade=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=K3e(t,"data",{signal:e.signal,highWaterMark:sde,highWatermark:sde});return Q3e({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},mj=Z3e(!0),sde=mj,Q3e=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=eWe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ed(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*gE(a)}},eWe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[yC(t,r,!e),_C(t,i,!n,{})].filter(Boolean);var cde=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=rWe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([nWe(t),d]);return}let f=Hz(c,r),p=hj({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([iWe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},rWe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!vC({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=hj({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Sue(a,t,r,o)},nWe=async t=>{await tWe(),t.readableFlowing===null&&t.resume()},iWe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await cC(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await lC(r,{maxBuffer:o})):await Ph(r,{maxBuffer:o})}catch(a){return lde(Sle({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},gj=async t=>{try{return await t}catch(e){return lde(e)}},lde=({bufferedData:t})=>$se(t)?new Uint8Array(t):t;import{finished as oWe}from"stream/promises";var EE=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=sWe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],oWe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||lWe(a,e,r,n)}finally{s.abort()}},sWe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&aWe(t,r,n),n},aWe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{cWe(e,r),n.call(t,...i)}},cWe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},lWe=(t,e,r,n)=>{if(!uWe(t,e,r,n))throw t},uWe=(t,e,r,n=!0)=>r.propagating?ude(t)||IC(t):(r.propagating=!0,_j(r,e)===n?ude(t):IC(t)),_j=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",IC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",ude=t=>t?.code==="EPIPE";var dde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>yj({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),yj=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=EE(t,e,l);if(_j(l,e)){await u;return}let[d]=await Promise.all([cde({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var fde=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?vd([t,e].filter(Boolean)):void 0,pde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>yj({...dWe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:fWe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),dWe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},fWe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as pWe}from"events";var hde=t=>bh(t,"ipc"),mde=(t,e)=>{let r=$0(t);xs({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var gde=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=hde(o),a=$a(e,"ipc"),c=$a(r,"ipc");for await(let l of tj({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Ele(t,i,c),i.push(l)),s&&mde(l,o);return i},_de=async(t,e)=>(await Promise.allSettled([t]),e);var yde=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:g,controller:_})=>{let v=wue(t,f),w={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},b=dde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),T=pde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),A=[],I=gde({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:A,verboseInfo:p}),O=hWe(m,t,w),M=mWe(h,w);try{return await Promise.race([Promise.all([{},xue(v),Promise.all(b),T,I,Xce(t,d),...O,...M]),g,gWe(t,_),...Wce(t,o,f,_),...hce({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:_}),...Gce({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:_})])}catch(j){return f.terminationReason??="other",Promise.all([{error:j},v,Promise.all(b.map(y=>gj(y))),gj(T),_de(I,A),Promise.allSettled(O),Promise.allSettled(M)])}},hWe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:EE(n,i,r)),mWe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Do(o,{checkOpen:!1})&&!ko(o)).map(({type:i,value:o,stream:s=o})=>EE(s,n,e,{isSameDirection:Zi.has(i),stopOnExit:i==="native"}))),gWe=async(t,{signal:e})=>{let[r]=await pWe(t,"error",{signal:e});throw r};var Sde=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),vE=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=Rs();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},$h=async({resolve:t,promises:e},r)=>{t();let[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...e])]);return!n};import{Readable as _We}from"stream";import{callbackify as yWe}from"util";import{finished as Ede}from"stream/promises";var Sj=async t=>{if(t!==void 0)try{await Ej(t)}catch{}},vde=async t=>{if(t!==void 0)try{await vj(t)}catch{}},Ej=async t=>{await Ede(t,{cleanup:!0,readable:!1,writable:!0})},vj=async t=>{await Ede(t,{cleanup:!0,readable:!0,writable:!1})},PC=async(t,e)=>{if(await t,e)throw e},OC=(t,e,r)=>{r&&!IC(r)?t.destroy(r):e&&t.destroy()};var bde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||vi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=bj(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=Tj(a,s),{read:f,onStdoutDataDone:p}=wj({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new _We({read:f,destroy:yWe(xj.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return Aj({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},bj=(t,e,r)=>{let n=Rh(t,e),i=vE(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},Tj=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:mj},wj=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=Rs(),s=CC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){SWe(this,s,o)},onStdoutDataDone:o}},SWe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},Aj=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await vj(t),await n,await Sj(i),await e,r.readable&&r.push(null)}catch(o){await Sj(i),Tde(r,o)}},xj=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await $h(r,e)&&(Tde(t,n),await PC(e,n))},Tde=(t,e)=>{OC(t,t.readable,e)};import{Writable as EWe}from"stream";import{callbackify as wde}from"util";var Ade=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=Rj(t,r,e),s=new EWe({...Cj(n,t,i),destroy:wde(Pj.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return Ij(n,s),s},Rj=(t,e,r)=>{let n=H0(t,e),i=vE(r,n,"writableFinal"),o=vE(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},Cj=(t,e,r)=>({write:vWe.bind(void 0,t),final:wde(bWe.bind(void 0,t,e,r))}),vWe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},bWe=async(t,e,r)=>{await $h(r,e)&&(t.writable&&t.end(),await e)},Ij=async(t,e,r)=>{try{await Ej(t),e.writable&&e.end()}catch(n){await vde(r),xde(e,n)}},Pj=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await $h(r,e),await $h(n,e)&&(xde(t,i),await PC(e,i))},xde=(t,e)=>{OC(t,t.writable,e)};import{Duplex as TWe}from"stream";import{callbackify as wWe}from"util";var Rde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||vi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=bj(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=Rj(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=Tj(c,a),{read:g,onStdoutDataDone:_}=wj({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),v=new TWe({read:g,...Cj(u,t,d),destroy:wWe(AWe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return Aj({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:t,subprocessStdin:u}),Ij(u,v,c),v},AWe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([xj({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),Pj({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var Oj=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||vi.has(e),s=Rh(t,r),a=CC({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return xWe(a,s,t)},xWe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Cde=(t,{encoding:e})=>{let r=Sde();t.readable=bde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Ade.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Rde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=Oj.bind(void 0,t,e),t[Symbol.asyncIterator]=Oj.bind(void 0,t,e,{})};var Ide=(t,e)=>{for(let[r,n]of CWe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},RWe=(async()=>{})().constructor.prototype,CWe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(RWe,t)]);var Pde=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=OWe(t,e,r),{subprocess:f,promise:p}=kWe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=RC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Ide(f,p),Cs.set(f,{options:u,fileDescriptors:d}),f},OWe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=L0(t,e,r),{file:a,commandArguments:c,options:l}=nC(t,e,r),u=NWe(l),d=jue(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},NWe=({timeout:t,signal:e,...r})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:t}},kWe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=PWe(...iC(t,e,r))}catch(h){return Lue({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;IWe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Zue(c,a,l),Xue(c,r,l);let d={},f=Rs();c.kill=fce.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=fde(c,r),Cde(c,r),Mue(c,r);let p=MWe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},MWe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,g]=await yde({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let _=h.map((b,T)=>La(b,e,T)),v=La(m,e,"all"),w=$We({errorInfo:d,exitCode:f,signal:p,stdio:_,all:v,ipcOutput:g,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Nh(w,n,e)},$We=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?mE({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Is,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):fC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var NC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,DWe(n,t[n],i)]));return{...t,...r}},DWe=(t,e,r)=>LWe.has(t)&&cr(e)&&cr(r)?{...e,...r}:r,LWe=new Set(["env",...az]);var cl=(t,e,r,n)=>{let i=(s,a,c)=>cl(s,a,r,c),o=(...s)=>UWe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},UWe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(cr(o))return i(t,NC(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=FWe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Cue(a,c,l):Pde(a,c,l,i)},FWe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=jse(e)?Bse(e,r):[e,...r],[s,a,c]=x0(...o),l=NC(NC(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Ode=({file:t,commandArguments:e})=>kde(t,e),Nde=({file:t,commandArguments:e})=>({...kde(t,e),isSync:!0}),kde=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);let[r,...n]=zWe(t);return{file:r,commandArguments:n}},zWe=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);let e=t.trim();if(e==="")return[];let r=[];for(let n of e.split(jWe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},jWe=/ +/g;var Mde=(t,e,r)=>{t.sync=e(BWe,r),t.s=t.sync},$de=({options:t})=>Dde(t),BWe=({options:t})=>({...Dde(t),isSync:!0}),Dde=t=>({options:{...qWe(t),...t}}),qWe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},Lde={preferLocal:!0};var Ude=cl(()=>({})),q2t=cl(()=>({isSync:!0})),Fde=cl(Ode),V2t=cl(Nde),G2t=cl(Kce),H2t=cl($de,{},Lde,Mde),{sendMessage:W2t,getOneMessage:Y2t,getEachMessage:K2t,getCancelSignal:Z2t}=$ue();var zde=!1,jde,Bde=t=>{zde=!0,jde??=t},Ua=()=>zde,qde=()=>jde;var bE=null,Vde=t=>(bE&&bE.destroy(),bE=new Os({totalAllowedTime:t}),bE),Gde=()=>bE;var Os=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&Ua())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await h0({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Z.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var Hde={name:"@netlify/agent-runner-cli",type:"module",version:"1.179.0-cancel-fields.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.6","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.1","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.153.4","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.1",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var WWe=GWe(import.meta.url),YWe=Fa.dirname(WWe),KWe=HWe(import.meta.url),Dh=oe("shell"),Nj=new Set,Wde={preferLocal:!0},Vt=(t,e,r)=>{let[n,i]=ZWe(e,r),o={...Wde,...i},s=Ude(t,n,o);Kde(s,o),Xde(s);let a=r?.idleTimeout;return a&&a>0&&Jde(s,a),s},Yde=(t,e)=>{let r={...Wde,...e},n=Fde(t,r);return Kde(n,r),Xde(n),e?.idleTimeout&&e.idleTimeout>0&&Jde(n,e.idleTimeout),n},ZWe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Kde=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Ns.env.NETLIFY_LOCAL_QUIET==="true")return;if(Ns.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new JS).pipe(Ns.stdout),t.stderr?.pipe(new JS).pipe(Ns.stderr);return}t.stdout?.pipe(Ns.stdout),t.stderr?.pipe(Ns.stderr)},kj=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ns.kill(-t.pid,e),Dh.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Dh.error("Error killing process:",r),!1}},Zde=t=>kj(t,"SIGKILL"),Jde=(t,e)=>{let r=null,n=()=>{Dh.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),kj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dh.log(`Force killing idle process ${t.pid}`),Zde(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},Xde=t=>{Nj.add(t);let e=Gde();if(e){let r=e.onTimesUp(()=>{Dh.log(`Global timer expired, killing process ${t.pid}`),kj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dh.log(`Force killing process ${t.pid} after timeout`),Zde(t))},5e3)});t.on("exit",()=>{Nj.delete(t),r()}),t.on("error",()=>{Nj.delete(t),r()})}};function ks(t,e){if(!Ns.env.NETLIFY_LOCAL_MODE)try{let i=KWe.resolve(Hde.name),o=Fa.dirname(i);for(;o!==Fa.dirname(o);){let s=Fa.dirname(o);if(Fa.basename(s)==="node_modules"){let a=Fa.join(s,".bin",e);if(kC.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ns.env.NODE_PATH){let i=Fa.join(Ns.env.NODE_PATH,".bin",e);if(kC.existsSync(i))return i}let r=Fa.join(t,"node_modules",".bin",e);if(kC.existsSync(r))return r;let n=Fa.join(YWe,"..","node_modules",".bin",e);if(kC.existsSync(n))return n}var Qde=oe("repo"),ife="runner-diffs-",ofe=t=>`${ife}${t}-`,sfe=async t=>{let e=nfe.tmpdir(),r;try{r=await MC.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(ife)&&!n.startsWith(ofe(t))).map(n=>MC.rm($C.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},pn=(t,e={})=>Vt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),DC=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Qde.info("Getting runner diffs");let n=await eYe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=iYe(o);await oYe(h,r)}Qde.info("Changes after processing"),await $j(r);let s=await Lj(o,r);if(await Mj(s,r),i=await tYe(r),!i)return{hasChanges:!1,ignored:s};await pn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await MC.mkdtemp($C.join(nfe.tmpdir(),ofe(t.sessionId))),c=async({from:h,to:m,fileName:g,binary:_})=>{let v=$C.join(a,g);await pn([..._?["diff",h,m,"--binary"]:["diff",h,m],`--output=${v}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:b}=await MC.stat(v);return{path:v,size:b}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await rfe(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await tfe(d,h)||(f=h)}await rfe(r),Z.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await tfe(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},efe=async t=>{let e=JWe("sha256");for await(let r of XWe(t))e.update(r);return e.digest("hex")},tfe=async(t,e)=>t.size===e.size&&await efe(t.path)===await efe(e.path),rfe=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await pn(["reset","--soft","HEAD~1"],{cwd:t})},Mj=async(t=[],e=process.cwd())=>{await pn(["add",".",...t],{cwd:e})},$j=async(t=process.cwd())=>{let e=await pn(["status","-s"],{cwd:t});return String(e.stdout??"")},afe=/.. (.+)?\.log$/,QWe=[afe],eYe=async(t=process.cwd())=>{let e=await $j(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
143
+ if (condition) { yield value; }`)};import{Buffer as c6e}from"buffer";import{StringDecoder as l6e}from"string_decoder";var yC=(t,e,r)=>{if(r)return;if(t)return{transform:u6e.bind(void 0,new TextEncoder)};let n=new l6e(e);return{transform:d6e.bind(void 0,n),final:f6e.bind(void 0,n)}},u6e=function*(t,e){c6e.isBuffer(e)?yield Ma(e):typeof e=="string"?yield t.encode(e):yield e},d6e=function*(t,e){yield Er(e)?t.write(e):e},f6e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as fue}from"util";var Kz=fue(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),SC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=h6e}=e[r];for await(let i of n(t))yield*SC(i,e,r+1)},pue=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*p6e(r,Number(e),t)},p6e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*SC(n,r,e+1)},hue=fue(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),h6e=function*(t){yield t};var Zz=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},mue=(t,e)=>[...e.flatMap(r=>[...Ed(r,t,0)]),...gE(t)],Ed=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=g6e}=e[r];for(let i of n(t))yield*Ed(i,e,r+1)},gE=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*m6e(r,Number(e),t)},m6e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ed(n,r,e+1)},g6e=function*(t){yield t};var Jz=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=_ue(t,s,o),l=Sd(e),u=Sd(r),d=l?Kz.bind(void 0,SC,a):Zz.bind(void 0,Ed),f=l||u?Kz.bind(void 0,pue,a):Zz.bind(void 0,gE),p=l||u?hue.bind(void 0,a):void 0;return{stream:new _6e({writableObjectMode:n,writableHighWaterMark:gue(n),readableObjectMode:i,readableHighWaterMark:gue(i),transform(m,g,_){d([m,c,0],this,_)},flush(m){f([c],this,m)},destroy:p})}},EC=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=_ue(s,r,a);t=mue(c,t)}return t},_ue=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:lue(n,a)},yC(r,s,n),_C(r,o,n,c),{transform:t,final:e},{transform:uue(i,a)},cue({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var yue=(t,e)=>{for(let r of y6e(t))S6e(t,r,e)},y6e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),S6e=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${al[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>E6e(a,n));r.input=sE(s)},E6e=(t,e)=>{let r=EC(t,e,"utf8",!0);return v6e(r),sE(r)},v6e=t=>{let e=t.find(r=>typeof r!="string"&&!Er(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as A6e,appendFileSync as x6e}from"fs";var vC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&bh(r,n)&&!vi.has(e)&&b6e(n)&&(t.some(({type:i,value:o})=>i==="native"&&T6e.has(o))||t.every(({type:i})=>Zi.has(i))),b6e=t=>t===1||t===2,T6e=new Set(["pipe","overlapped"]),Sue=async(t,e,r,n)=>{for await(let i of t)w6e(e)||vue(i,r,n)},Eue=(t,e,r)=>{for(let n of t)vue(n,e,r)},w6e=t=>t._readableState.pipes.length>0,vue=(t,e,r)=>{let n=$0(t);xs({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var bue=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>R6e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},R6e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=Tle(t,o,d),p=Ma(f),{stdioItems:h,objectMode:m}=e[r],g=C6e([p],h,c,n),{serializedResult:_,finalResult:v=_}=I6e({chunks:g,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});P6e({serializedResult:_,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let w=a[r]?v:void 0;try{return n.error===void 0&&O6e(_,h,i),w}catch(b){return n.error=b,w}},C6e=(t,e,r,n)=>{try{return EC(t,e,r,!1)}catch(i){return n.error=i,t}},I6e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:sE(t)};let s=Lse(t,r);return n[o]?{serializedResult:s,finalResult:Yz(s,!i[o],e)}:{serializedResult:s}},P6e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!vC({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=Yz(t,!1,s);try{Eue(a,e,n)}catch(c){r.error??=c}},O6e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>mC.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?x6e(n,t):(r.add(o),A6e(n,t))}};var Tue=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,La(e,r,"all")]:Array.isArray(e)?[La(t,r,"all"),...e]:Er(t)&&Er(e)?nz([t,e]):`${t}${e}`};import{once as Xz}from"events";var wue=async(t,e)=>{let[r,n]=await N6e(t);return e.isForcefullyTerminated??=!1,[r,n]},N6e=async t=>{let[e,r]=await Promise.allSettled([Xz(t,"spawn"),Xz(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Aue(t):r.value},Aue=async t=>{try{return await Xz(t,"exit")}catch{return Aue(t)}},xue=async t=>{let[e,r]=await t;if(!k6e(e,r)&&Qz(e,r))throw new Mo;return[e,r]},k6e=(t,e)=>t===void 0&&e===void 0,Qz=(t,e)=>t!==0||e!==null;var Rue=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=M6e(t,e,r),s=o?.code==="ETIMEDOUT",a=ble(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},M6e=(t,e,r)=>t!==void 0?t:Qz(e,r)?new Mo:void 0;var Cue=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=D6e(t,e,r),d=F6e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Nh(d,c,l)},D6e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=L0(t,e,r),a=L6e(r),{file:c,commandArguments:l,options:u}=nC(t,e,a);U6e(u);let d=iue(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},L6e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,U6e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&bC("ipcInput"),t&&bC("ipc: true"),r&&bC("detached: true"),n&&bC("cancelSignal")},bC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},F6e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=z6e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Rue(c,r),{output:h,error:m=l}=bue({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),g=h.map((v,w)=>La(v,r,w)),_=La(Tue(h,r),r,"all");return B6e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:_,options:r,command:n,escapedCommand:i,startTime:a})},z6e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{yue(o,r);let a=j6e(r);return $6e(...iC(t,e,a))}catch(a){return Oh({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},j6e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:dC(e)}),B6e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?fC({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):mE({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as IWe}from"events";import{spawn as PWe}from"child_process";import kue from"process";import{once as ej,on as q6e}from"events";var Iue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Ah({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:J0(t)}),V6e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),V6e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{W0(e,i);let o=sl(t,e,r),s=new AbortController;try{return await Promise.race([G6e(o,n,s),H6e(o,r,s),W6e(o,r,s)])}catch(a){throw xh(t),a}finally{s.abort(),Y0(e,i)}},G6e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await ej(t,"message",{signal:r});return n}for await(let[n]of q6e(t,"message",{signal:r}))if(e(n))return n},H6e=async(t,e,{signal:r})=>{await ej(t,"disconnect",{signal:r}),mce(e)},W6e=async(t,e,{signal:r})=>{let[n]=await ej(t,"strict:error",{signal:r});throw V0(n,e)};import{once as Oue,on as Y6e}from"events";var Nue=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>tj({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),tj=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Ah({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:J0(t)}),W0(e,o);let s=sl(t,e,r),a=new AbortController,c={};return K6e(t,s,a),Z6e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),J6e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},K6e=async(t,e,r)=>{try{await Oue(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},Z6e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Oue(t,"strict:error",{signal:r.signal});n.error=V0(i,e),r.abort()}catch{}},J6e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of Y6e(r,"message",{signal:o.signal}))Pue(s),yield c}catch{Pue(s)}finally{o.abort(),Y0(e,a),n||xh(t),i&&await t}},Pue=({error:t})=>{if(t)throw t};var Mue=(t,{ipc:e})=>{Object.assign(t,Due(t,!1,e))},$ue=()=>{let t=kue,e=!0,r=kue.channel!==void 0;return{...Due(t,e,r),getCancelSignal:Bce.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Due=(t,e,r)=>({sendMessage:tC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Iue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Nue.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as X6e}from"child_process";import{PassThrough as Q6e,Readable as e3e,Writable as t3e,Duplex as r3e}from"stream";var Lue=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{Gz(n);let a=new X6e;n3e(a,n),Object.assign(a,{readable:i3e,writable:o3e,duplex:s3e});let c=Oh({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=a3e(c,s,i);return{subprocess:a,promise:l}},n3e=(t,e)=>{let r=_E(),n=_E(),i=_E(),o=Array.from({length:e.length-3},_E),s=_E(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},_E=()=>{let t=new Q6e;return t.end(),t},i3e=()=>new e3e({read(){}}),o3e=()=>new t3e({write(){}}),s3e=()=>new r3e({read(){},write(){}}),a3e=async(t,e,r)=>Nh(t,e,r);import{createReadStream as Uue,createWriteStream as Fue}from"fs";import{Buffer as c3e}from"buffer";import{Readable as yE,Writable as l3e,Duplex as u3e}from"stream";var jue=(t,e)=>gC(d3e,t,e,!1),SE=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${al[t]}.`)},zue={fileNumber:SE,generator:Jz,asyncGenerator:Jz,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:u3e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},d3e={input:{...zue,fileUrl:({value:t})=>({stream:Uue(t)}),filePath:({value:{file:t}})=>({stream:Uue(t)}),webStream:({value:t})=>({stream:yE.fromWeb(t)}),iterable:({value:t})=>({stream:yE.from(t)}),asyncIterable:({value:t})=>({stream:yE.from(t)}),string:({value:t})=>({stream:yE.from(t)}),uint8Array:({value:t})=>({stream:yE.from(c3e.from(t))})},output:{...zue,fileUrl:({value:t})=>({stream:Fue(t)}),filePath:({value:{file:t,append:e}})=>({stream:Fue(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:l3e.fromWeb(t)}),iterable:SE,asyncIterable:SE,string:SE,uint8Array:SE}};import{on as f3e,once as Bue}from"events";import{PassThrough as p3e,getDefaultHighWaterMark as h3e}from"stream";import{finished as Gue}from"stream/promises";function vd(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)nj(i);let e=t.some(({readableObjectMode:i})=>i),r=m3e(t,e),n=new rj({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var m3e=(t,e)=>{if(t.length===0)return h3e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},rj=class extends p3e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(nj(e),this.#e.has(e))return;this.#e.add(e),this.#n??=g3e(this,this.#e,this.#o);let r=S3e({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(nj(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},g3e=async(t,e,r)=>{TC(t,que);let n=new AbortController;try{await Promise.race([_3e(t,n),y3e(t,e,r,n)])}finally{n.abort(),TC(t,-que)}},_3e=async(t,{signal:e})=>{try{await Gue(t,{signal:e,cleanup:!0})}catch(r){throw Hue(t,r),r}},y3e=async(t,e,r,{signal:n})=>{for await(let[i]of f3e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},nj=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},S3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{TC(t,Vue);let a=new AbortController;try{await Promise.race([E3e(o,e,a),v3e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),b3e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),TC(t,-Vue)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?ij(t):T3e(t))},E3e=async(t,e,{signal:r})=>{try{await t,r.aborted||ij(e)}catch(n){r.aborted||Hue(e,n)}},v3e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await Gue(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;Wue(s)?i.add(e):Yue(t,s)}},b3e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await Bue(t,i,{signal:o}),!t.readable)return Bue(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},T3e=t=>{t.writable&&t.end()},Hue=(t,e)=>{Wue(e)?ij(t):Yue(t,e)},Wue=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",ij=t=>{(t.readable||t.writable)&&t.destroy()},Yue=(t,e)=>{t.destroyed||(t.once("error",w3e),t.destroy(e))},w3e=()=>{},TC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},que=2,Vue=1;import{finished as Kue}from"stream/promises";var Mh=(t,e)=>{t.pipe(e),A3e(t,e),x3e(t,e)},A3e=async(t,e)=>{if(!(ko(t)||ko(e))){try{await Kue(t,{cleanup:!0,readable:!0,writable:!1})}catch{}oj(e)}},oj=t=>{t.writable&&t.end()},x3e=async(t,e)=>{if(!(ko(t)||ko(e))){try{await Kue(e,{cleanup:!0,readable:!1,writable:!0})}catch{}sj(t)}},sj=t=>{t.readable&&t.destroy()};var Zue=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Zi.has(c)))R3e(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Zi.has(c)))I3e({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:vd(o);Mh(s,i)}},R3e=(t,e,r,n)=>{r==="output"?Mh(t.stdio[n],e):Mh(e,t.stdio[n]);let i=C3e[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},C3e=["stdin","stdout","stderr"],I3e=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;P3e(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},P3e=(t,{signal:e})=>{ko(t)&&_d(t,O3e,e)},O3e=2;import{addAbortListener as M3e}from"events";var bd=[];bd.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&bd.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&bd.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var wC=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",aj=Symbol.for("signal-exit emitter"),cj=globalThis,N3e=Object.defineProperty.bind(Object),lj=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(cj[aj])return cj[aj];N3e(cj,aj,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},AC=class{},k3e=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),uj=class extends AC{onExit(){return()=>{}}load(){}unload(){}},dj=class extends AC{#e=fj.platform==="win32"?"SIGINT":"SIGHUP";#r=new lj;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of bd)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!wC(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of bd)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,bd.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return wC(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&wC(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},fj=globalThis.process,{onExit:Jue,load:Qzt,unload:ejt}=k3e(wC(fj)?new dj(fj):new uj);var Xue=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Jue(()=>{t.kill()});M3e(n,()=>{i()})};var ede=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=D0(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=$3e(r,n,i),{sourceStream:d,sourceError:f}=L3e(t,l),{options:p,fileDescriptors:h}=Cs.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},$3e=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=D3e(t,e,...r),a=H0(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},D3e=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Que,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||tz(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=x0(r,...n);return{destination:e(Que)(i,o,s),pipeOptions:s}}if(Cs.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},Que=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),L3e=(t,e)=>{try{return{sourceStream:Rh(t,e)}}catch(r){return{sourceError:r}}};var rde=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=U3e({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw pj({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},U3e=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return sj(t),n;if(e!==void 0)return oj(r),e},pj=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Oh({error:t,command:tde,escapedCommand:tde,fileDescriptors:e,options:r,startTime:n,isSync:!1}),tde="source.pipe(destination)";var nde=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as F3e}from"stream/promises";var ide=(t,e,r)=>{let n=xC.has(e)?j3e(t,e):z3e(t,e);return _d(t,q3e,r.signal),_d(e,V3e,r.signal),B3e(e),n},z3e=(t,e)=>{let r=vd([t]);return Mh(r,e),xC.set(e,r),r},j3e=(t,e)=>{let r=xC.get(e);return r.add(t),r},B3e=async t=>{try{await F3e(t,{cleanup:!0,readable:!1,writable:!0})}catch{}xC.delete(t)},xC=new WeakMap,q3e=2,V3e=1;import{aborted as G3e}from"util";var ode=(t,e)=>t===void 0?[]:[H3e(t,e)],H3e=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await G3e(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw pj({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var RC=(t,...e)=>{if(cr(e[0]))return RC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=ede(t,...e),i=W3e({...n,destination:r});return i.pipe=RC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},W3e=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=Y3e(t,i);rde({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=ide(e,o,d);return await Promise.race([nde(u),...ode(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},Y3e=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as tWe}from"timers/promises";import{on as K3e}from"events";import{getDefaultHighWaterMark as Z3e}from"stream";var CC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return J3e(e,s),ade({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},J3e=async(t,e)=>{try{await t}catch{}finally{e.abort()}},hj=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;X3e(e,s,t);let a=t.readableObjectMode&&!o;return ade({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},X3e=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},ade=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=K3e(t,"data",{signal:e.signal,highWaterMark:sde,highWatermark:sde});return Q3e({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},mj=Z3e(!0),sde=mj,Q3e=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=eWe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ed(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*gE(a)}},eWe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[yC(t,r,!e),_C(t,i,!n,{})].filter(Boolean);var cde=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=rWe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([nWe(t),d]);return}let f=Hz(c,r),p=hj({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([iWe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},rWe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!vC({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=hj({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Sue(a,t,r,o)},nWe=async t=>{await tWe(),t.readableFlowing===null&&t.resume()},iWe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await cC(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await lC(r,{maxBuffer:o})):await Ph(r,{maxBuffer:o})}catch(a){return lde(Sle({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},gj=async t=>{try{return await t}catch(e){return lde(e)}},lde=({bufferedData:t})=>$se(t)?new Uint8Array(t):t;import{finished as oWe}from"stream/promises";var EE=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=sWe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],oWe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||lWe(a,e,r,n)}finally{s.abort()}},sWe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&aWe(t,r,n),n},aWe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{cWe(e,r),n.call(t,...i)}},cWe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},lWe=(t,e,r,n)=>{if(!uWe(t,e,r,n))throw t},uWe=(t,e,r,n=!0)=>r.propagating?ude(t)||IC(t):(r.propagating=!0,_j(r,e)===n?ude(t):IC(t)),_j=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",IC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",ude=t=>t?.code==="EPIPE";var dde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>yj({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),yj=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=EE(t,e,l);if(_j(l,e)){await u;return}let[d]=await Promise.all([cde({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var fde=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?vd([t,e].filter(Boolean)):void 0,pde=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>yj({...dWe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:fWe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),dWe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},fWe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as pWe}from"events";var hde=t=>bh(t,"ipc"),mde=(t,e)=>{let r=$0(t);xs({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var gde=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=hde(o),a=$a(e,"ipc"),c=$a(r,"ipc");for await(let l of tj({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Ele(t,i,c),i.push(l)),s&&mde(l,o);return i},_de=async(t,e)=>(await Promise.allSettled([t]),e);var yde=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:g,controller:_})=>{let v=wue(t,f),w={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},b=dde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),T=pde({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),A=[],I=gde({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:A,verboseInfo:p}),O=hWe(m,t,w),M=mWe(h,w);try{return await Promise.race([Promise.all([{},xue(v),Promise.all(b),T,I,Xce(t,d),...O,...M]),g,gWe(t,_),...Wce(t,o,f,_),...hce({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:_}),...Gce({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:_})])}catch(j){return f.terminationReason??="other",Promise.all([{error:j},v,Promise.all(b.map(y=>gj(y))),gj(T),_de(I,A),Promise.allSettled(O),Promise.allSettled(M)])}},hWe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:EE(n,i,r)),mWe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Do(o,{checkOpen:!1})&&!ko(o)).map(({type:i,value:o,stream:s=o})=>EE(s,n,e,{isSameDirection:Zi.has(i),stopOnExit:i==="native"}))),gWe=async(t,{signal:e})=>{let[r]=await pWe(t,"error",{signal:e});throw r};var Sde=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),vE=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=Rs();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},$h=async({resolve:t,promises:e},r)=>{t();let[n]=await Promise.race([Promise.allSettled([!0,r]),Promise.all([!1,...e])]);return!n};import{Readable as _We}from"stream";import{callbackify as yWe}from"util";import{finished as Ede}from"stream/promises";var Sj=async t=>{if(t!==void 0)try{await Ej(t)}catch{}},vde=async t=>{if(t!==void 0)try{await vj(t)}catch{}},Ej=async t=>{await Ede(t,{cleanup:!0,readable:!1,writable:!0})},vj=async t=>{await Ede(t,{cleanup:!0,readable:!0,writable:!1})},PC=async(t,e)=>{if(await t,e)throw e},OC=(t,e,r)=>{r&&!IC(r)?t.destroy(r):e&&t.destroy()};var bde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||vi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=bj(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=Tj(a,s),{read:f,onStdoutDataDone:p}=wj({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new _We({read:f,destroy:yWe(xj.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return Aj({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},bj=(t,e,r)=>{let n=Rh(t,e),i=vE(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},Tj=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:mj},wj=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=Rs(),s=CC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){SWe(this,s,o)},onStdoutDataDone:o}},SWe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},Aj=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await vj(t),await n,await Sj(i),await e,r.readable&&r.push(null)}catch(o){await Sj(i),Tde(r,o)}},xj=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await $h(r,e)&&(Tde(t,n),await PC(e,n))},Tde=(t,e)=>{OC(t,t.readable,e)};import{Writable as EWe}from"stream";import{callbackify as wde}from"util";var Ade=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=Rj(t,r,e),s=new EWe({...Cj(n,t,i),destroy:wde(Pj.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return Ij(n,s),s},Rj=(t,e,r)=>{let n=H0(t,e),i=vE(r,n,"writableFinal"),o=vE(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},Cj=(t,e,r)=>({write:vWe.bind(void 0,t),final:wde(bWe.bind(void 0,t,e,r))}),vWe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},bWe=async(t,e,r)=>{await $h(r,e)&&(t.writable&&t.end(),await e)},Ij=async(t,e,r)=>{try{await Ej(t),e.writable&&e.end()}catch(n){await vde(r),xde(e,n)}},Pj=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await $h(r,e),await $h(n,e)&&(xde(t,i),await PC(e,i))},xde=(t,e)=>{OC(t,t.writable,e)};import{Duplex as TWe}from"stream";import{callbackify as wWe}from"util";var Rde=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||vi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=bj(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=Rj(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=Tj(c,a),{read:g,onStdoutDataDone:_}=wj({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),v=new TWe({read:g,...Cj(u,t,d),destroy:wWe(AWe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return Aj({subprocessStdout:c,onStdoutDataDone:_,readable:v,subprocess:t,subprocessStdin:u}),Ij(u,v,c),v},AWe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([xj({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),Pj({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var Oj=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||vi.has(e),s=Rh(t,r),a=CC({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return xWe(a,s,t)},xWe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Cde=(t,{encoding:e})=>{let r=Sde();t.readable=bde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Ade.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Rde.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=Oj.bind(void 0,t,e),t[Symbol.asyncIterator]=Oj.bind(void 0,t,e,{})};var Ide=(t,e)=>{for(let[r,n]of CWe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},RWe=(async()=>{})().constructor.prototype,CWe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(RWe,t)]);var Pde=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=OWe(t,e,r),{subprocess:f,promise:p}=kWe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=RC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Ide(f,p),Cs.set(f,{options:u,fileDescriptors:d}),f},OWe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=L0(t,e,r),{file:a,commandArguments:c,options:l}=nC(t,e,r),u=NWe(l),d=jue(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},NWe=({timeout:t,signal:e,...r})=>{if(e!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...r,timeoutDuration:t}},kWe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=PWe(...iC(t,e,r))}catch(h){return Lue({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;IWe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Zue(c,a,l),Xue(c,r,l);let d={},f=Rs();c.kill=fce.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=fde(c,r),Cde(c,r),Mue(c,r);let p=MWe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},MWe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,g]=await yde({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let _=h.map((b,T)=>La(b,e,T)),v=La(m,e,"all"),w=$We({errorInfo:d,exitCode:f,signal:p,stdio:_,all:v,ipcOutput:g,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Nh(w,n,e)},$We=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?mE({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Is,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):fC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var NC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,DWe(n,t[n],i)]));return{...t,...r}},DWe=(t,e,r)=>LWe.has(t)&&cr(e)&&cr(r)?{...e,...r}:r,LWe=new Set(["env",...az]);var cl=(t,e,r,n)=>{let i=(s,a,c)=>cl(s,a,r,c),o=(...s)=>UWe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},UWe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(cr(o))return i(t,NC(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=FWe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Cue(a,c,l):Pde(a,c,l,i)},FWe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=jse(e)?Bse(e,r):[e,...r],[s,a,c]=x0(...o),l=NC(NC(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Ode=({file:t,commandArguments:e})=>kde(t,e),Nde=({file:t,commandArguments:e})=>({...kde(t,e),isSync:!0}),kde=(t,e)=>{if(e.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${t} ${e}.`);let[r,...n]=zWe(t);return{file:r,commandArguments:n}},zWe=t=>{if(typeof t!="string")throw new TypeError(`The command must be a string: ${String(t)}.`);let e=t.trim();if(e==="")return[];let r=[];for(let n of e.split(jWe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},jWe=/ +/g;var Mde=(t,e,r)=>{t.sync=e(BWe,r),t.s=t.sync},$de=({options:t})=>Dde(t),BWe=({options:t})=>({...Dde(t),isSync:!0}),Dde=t=>({options:{...qWe(t),...t}}),qWe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},Lde={preferLocal:!0};var Ude=cl(()=>({})),q2t=cl(()=>({isSync:!0})),Fde=cl(Ode),V2t=cl(Nde),G2t=cl(Kce),H2t=cl($de,{},Lde,Mde),{sendMessage:W2t,getOneMessage:Y2t,getEachMessage:K2t,getCancelSignal:Z2t}=$ue();var zde=!1,jde,Bde=t=>{zde=!0,jde??=t},Ua=()=>zde,qde=()=>jde;var bE=null,Vde=t=>(bE&&bE.destroy(),bE=new Os({totalAllowedTime:t}),bE),Gde=()=>bE;var Os=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&Ua())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await h0({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Z.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var Hde={name:"@netlify/agent-runner-cli",type:"module",version:"1.179.1-cancel-fields.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.6","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.1","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.153.4","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.1",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var WWe=GWe(import.meta.url),YWe=Fa.dirname(WWe),KWe=HWe(import.meta.url),Dh=oe("shell"),Nj=new Set,Wde={preferLocal:!0},Vt=(t,e,r)=>{let[n,i]=ZWe(e,r),o={...Wde,...i},s=Ude(t,n,o);Kde(s,o),Xde(s);let a=r?.idleTimeout;return a&&a>0&&Jde(s,a),s},Yde=(t,e)=>{let r={...Wde,...e},n=Fde(t,r);return Kde(n,r),Xde(n),e?.idleTimeout&&e.idleTimeout>0&&Jde(n,e.idleTimeout),n},ZWe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Kde=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Ns.env.NETLIFY_LOCAL_QUIET==="true")return;if(Ns.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new JS).pipe(Ns.stdout),t.stderr?.pipe(new JS).pipe(Ns.stderr);return}t.stdout?.pipe(Ns.stdout),t.stderr?.pipe(Ns.stderr)},kj=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ns.kill(-t.pid,e),Dh.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Dh.error("Error killing process:",r),!1}},Zde=t=>kj(t,"SIGKILL"),Jde=(t,e)=>{let r=null,n=()=>{Dh.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),kj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dh.log(`Force killing idle process ${t.pid}`),Zde(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},Xde=t=>{Nj.add(t);let e=Gde();if(e){let r=e.onTimesUp(()=>{Dh.log(`Global timer expired, killing process ${t.pid}`),kj(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dh.log(`Force killing process ${t.pid} after timeout`),Zde(t))},5e3)});t.on("exit",()=>{Nj.delete(t),r()}),t.on("error",()=>{Nj.delete(t),r()})}};function ks(t,e){if(!Ns.env.NETLIFY_LOCAL_MODE)try{let i=KWe.resolve(Hde.name),o=Fa.dirname(i);for(;o!==Fa.dirname(o);){let s=Fa.dirname(o);if(Fa.basename(s)==="node_modules"){let a=Fa.join(s,".bin",e);if(kC.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ns.env.NODE_PATH){let i=Fa.join(Ns.env.NODE_PATH,".bin",e);if(kC.existsSync(i))return i}let r=Fa.join(t,"node_modules",".bin",e);if(kC.existsSync(r))return r;let n=Fa.join(YWe,"..","node_modules",".bin",e);if(kC.existsSync(n))return n}var Qde=oe("repo"),ife="runner-diffs-",ofe=t=>`${ife}${t}-`,sfe=async t=>{let e=nfe.tmpdir(),r;try{r=await MC.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(ife)&&!n.startsWith(ofe(t))).map(n=>MC.rm($C.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},pn=(t,e={})=>Vt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),DC=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Qde.info("Getting runner diffs");let n=await eYe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=iYe(o);await oYe(h,r)}Qde.info("Changes after processing"),await $j(r);let s=await Lj(o,r);if(await Mj(s,r),i=await tYe(r),!i)return{hasChanges:!1,ignored:s};await pn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await MC.mkdtemp($C.join(nfe.tmpdir(),ofe(t.sessionId))),c=async({from:h,to:m,fileName:g,binary:_})=>{let v=$C.join(a,g);await pn([..._?["diff",h,m,"--binary"]:["diff",h,m],`--output=${v}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:b}=await MC.stat(v);return{path:v,size:b}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await rfe(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await tfe(d,h)||(f=h)}await rfe(r),Z.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await tfe(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},efe=async t=>{let e=JWe("sha256");for await(let r of XWe(t))e.update(r);return e.digest("hex")},tfe=async(t,e)=>t.size===e.size&&await efe(t.path)===await efe(e.path),rfe=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await pn(["reset","--soft","HEAD~1"],{cwd:t})},Mj=async(t=[],e=process.cwd())=>{await pn(["add",".",...t],{cwd:e})},$j=async(t=process.cwd())=>{let e=await pn(["status","-s"],{cwd:t});return String(e.stdout??"")},afe=/.. (.+)?\.log$/,QWe=[afe],eYe=async(t=process.cwd())=>{let e=await $j(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
144
144
  `).filter(i=>QWe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},tYe=async(t=process.cwd())=>{try{return await pn(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},Dj=async(t=process.cwd())=>{let{stdout:e}=await pn(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},rYe=1,nYe=async t=>{try{return await pn(["rev-parse","--verify","--quiet","HEAD"],{cwd:t}),!0}catch(e){if(e.exitCode===rYe)return!1;throw e}},cfe=async(t=process.cwd())=>{if(!await nYe(t))return!0;let{stdout:e}=await pn(["ls-tree","--name-only","HEAD"],{cwd:t});return String(e??"").trim().length===0},lfe=async(t=process.cwd())=>{let{stdout:e}=await pn(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},Lj=async(t,e=process.cwd())=>{t||=await $j(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
145
145
  `).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${$C.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(afe)?.[1];o&&n.push(`:!${o}.log`)}),n},ufe=async(t=process.cwd())=>{await pn(["reset","--hard","HEAD"],{cwd:t})},dfe=async(t=process.cwd())=>{let e=await pn(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
146
146
  `).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},iYe=t=>{let e=t.split(`
@@ -660,7 +660,7 @@ Preview deploy created successfully:`,{deployId:p.deploy_id,deployUrl:p.deploy_u
660
660
 
661
661
  ${bt.error}
662
662
 
663
- Please fix the issue and do NOT run \`drizzle-kit generate\` yourself \u2014 it will be run automatically after you're done.`]);let Re=await v.generateMigrations(),Mt=Re.error?"unresolved":Re.skipped?"skipped":"resolved";Re.error?(Ar.warn("drizzle-kit generate still failing after the fix turn",{error:Re.error}),y?.setAttributes({"db_migrations.generate_fix_unresolved":!0})):Ar.log("drizzle-kit generate recovered after the fix turn",{outcome:Mt}),Z.inc("db_migrations.generate_fix",1,{outcome:Mt})}let xr=await v.hasDatabase(),_t=bt.reason==="no_module"||xr===!1?{}:await v.verifyMigrations(),wn=0;for(let Re=1;_t.error&&Re<=fZ;Re++){let Mt=_t.error;wn=Re,Ar.log("Migration drift detected, running inference to fix",{attempt:Re,maxAttempts:fZ}),Z.inc("db_migrations.drift_fix_attempt",1,{attempt:String(Re)});let Qo=Re===1?"inference-migration-drift-fix":`inference-migration-drift-fix-${Re}`;if(await de(Qo,[Mt]),_t=await v.verifyMigrations(),!_t.error){Ar.log("Migration drift resolved by fix turn",{attempt:Re}),Z.inc("db_migrations.drift_resolved",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_resolved":!0});break}if(_t.error===Mt){Ar.warn("Migration drift unchanged after fix attempt; not retrying",{attempt:Re}),Z.inc("db_migrations.drift_no_progress",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_no_progress":!0});break}}if(_t.error){let Re=`${wn} fix attempt${wn===1?"":"s"}`;if(Ar.warn("Migration drift persists after fix attempts",{attempts:wn,maxAttempts:fZ}),Z.inc("db_migrations.drift_unresolved",1),y?.setAttributes({"db_migrations.drift_unresolved":!0}),Ye().migrationDriftBlocksDeployEnabled)throw new Error(`Migration drift persists after ${Re}; refusing to deploy a tree the platform will reject.`)}if(Ye().aiFnV1GuardrailEnabled&&n&&!V)try{let Re=await p0(n);Re.v1>0&&(Ar.log(`Detected ${Re.v1} v1 AI function(s), running inference to fix`),await de("inference-ai-fn-v1-fix",[oIe(Re.v1Files)]))}catch(Re){if(Na(Re))throw Re;Ar.warn("ai_fn_v1_guardrail failed",{err:Re})}let at=await _("deploy",()=>PT({cliPath:r,config:t,result:U.result,filter:i,isRetry:!1,deploySubdomain:ce})),ft=at.hasChanges?at:void 0,we=U;at.deployError&&Z.inc("deploy.failed",1,{attempt:1});let rt=[],Ie;if(at.hasChanges&&at.deployError){rt.push(rse(at.deployError));let Re=1,Mt=!1;for(;Re<=K_&&!at.previewInfo&&!Mt;)Ar.log(`Deploy attempt had errors. Retrying. ${Re}/${K_}`),await Py(pt(),"deploy-stage",async Qo=>{Qo?.setAttributes({"stage.attempt":Re});let fi;try{g=h;let J_=await v.currentContext();fi=(await Ne.runFixTurn(()=>_(`inference-retry-${Re}`,()=>vu({cliPath:r,config:t,context:$,runner:K,persistSteps:ne,aiGateway:te,buildErrors:rt,additionalContext:J_,priorAgentSessionId:U.agentSessionId,answerFold:Fe})))).runnerResult}catch(J_){if(Na(J_))throw J_;Ar.warn(`Inference retry ${Re} failed, stopping deploy retries:`,J_),Mt=!0;return}if(ve)throw Object.assign(ve,{agentSessionId:fi.agentSessionId??U.agentSessionId}),ve;we=WE(we,fi),await v.generateMigrations(),at=await _(`deploy-retry-${Re}`,()=>PT({cliPath:r,config:t,result:fi.result,filter:i,isRetry:!0,deploySubdomain:ce})),at.hasChanges&&(ft=at),at.deployError&&(Z.inc("deploy.failed",1,{attempt:Re+1}),rt.push(at.deployError)),Re++});Re>K_&&!at.previewInfo&&(Z.inc("deploy.retries_exhausted",1),t.mode==="create"?(console.warn(`Deploy still failing after ${K_} retries, failing the create run`),Ie=new Error(`Deploy failed after ${K_} retries`)):console.warn(`Deploy still failing after ${K_} retries, completing run without a preview`))}let be=at.previewInfo||at.hasChanges?at:ft??at,{diff:ln,resultDiff:na,previewInfo:iM,diffBinary:Z_,resultDiffBinary:oM,hasNetlifyForm:Jf,hasNetlifyIdentity:Ru}=be;be.hasChanges&&m0({previewDeployed:!!be.previewInfo,hadFailedAttempts:rt.length>0}),await c?.stop(),y?.setAttributes(ise(we,c?.getCreditsCost())),f=we.resolvedModel,p=we.effort??p;let Xf=we.agentSessionId??U.agentSessionId;await A({...Ie?{outcome:"deploy-failed",error:Ie}:{outcome:"completed",pipelineSpan:y},artifacts:{diff:ln,result:we.result,duration:we.duration,resultDiff:na,diffBinary:Z_,resultDiffBinary:oM,previewInfo:iM,isProdDeploy:ke,hasNetlifyForm:Jf,hasNetlifyIdentity:Ru,nativeSessionId:Xf,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h}});let Yt=await v.hasDatabase();typeof Yt=="boolean"&&y?.setAttributes({"actual.has_db":Yt}),await Rse({config:t,hasDb:Yt,pipelineSpan:y,resolvedModel:we.resolvedModel??U.resolvedModel,cliVersion:xu.version})})}catch(y){if(Na(y)){u="gracefulError",Ar.info("Agent run terminated gracefully",{statusCode:y.statusCode,reason:y.message}),await c?.stop();let te=y.isCreditLimitExceeded?"credit-limit":"graceful-error";await A({outcome:te,error:y,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h});return}throw Ar.error("Got error while running pipeline",y),await c?.stop(),u=Ua()?"interrupted":"error",await A({outcome:u,error:y}),y}finally{v.revokeAskAccess(),m&&dIe(m,c?.getCreditsCost(),g),tIe({isHotFollowUp:o,startedAt:l,outcome:u,nativeResume:d,isAnswerResume:j,creditsCost:c?.getCreditsCost(),model:f,effort:p}),nIe({agentRunnerId:t.id,sessionId:t.sessionId,devServerId:process.env.NETLIFY_DEV_SERVER_ID,agent:t.runner,mode:t.mode,outcome:u,finalizationOutcome:b,stopReason:qde(),version:xu.version,startedAt:l,model:f,effort:p,creditsCost:c?.getCreditsCost(),nativeResume:d,isAnswerResume:j,isHotFollowUp:o})}};export{ist as runPipeline};
663
+ Please fix the issue and do NOT run \`drizzle-kit generate\` yourself \u2014 it will be run automatically after you're done.`]);let Re=await v.generateMigrations(),Mt=Re.error?"unresolved":Re.skipped?"skipped":"resolved";Re.error?(Ar.warn("drizzle-kit generate still failing after the fix turn",{error:Re.error}),y?.setAttributes({"db_migrations.generate_fix_unresolved":!0})):Ar.log("drizzle-kit generate recovered after the fix turn",{outcome:Mt}),Z.inc("db_migrations.generate_fix",1,{outcome:Mt})}let xr=await v.hasDatabase(),_t=bt.reason==="no_module"||xr===!1?{}:await v.verifyMigrations(),wn=0;for(let Re=1;_t.error&&Re<=fZ;Re++){let Mt=_t.error;wn=Re,Ar.log("Migration drift detected, running inference to fix",{attempt:Re,maxAttempts:fZ}),Z.inc("db_migrations.drift_fix_attempt",1,{attempt:String(Re)});let Qo=Re===1?"inference-migration-drift-fix":`inference-migration-drift-fix-${Re}`;if(await de(Qo,[Mt]),_t=await v.verifyMigrations(),!_t.error){Ar.log("Migration drift resolved by fix turn",{attempt:Re}),Z.inc("db_migrations.drift_resolved",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_resolved":!0});break}if(_t.error===Mt){Ar.warn("Migration drift unchanged after fix attempt; not retrying",{attempt:Re}),Z.inc("db_migrations.drift_no_progress",1,{attempt:String(Re)}),y?.setAttributes({"db_migrations.drift_no_progress":!0});break}}if(_t.error){let Re=`${wn} fix attempt${wn===1?"":"s"}`;if(Ar.warn("Migration drift persists after fix attempts",{attempts:wn,maxAttempts:fZ}),Z.inc("db_migrations.drift_unresolved",1),y?.setAttributes({"db_migrations.drift_unresolved":!0}),Ye().migrationDriftBlocksDeployEnabled)throw new Error(`Migration drift persists after ${Re}; refusing to deploy a tree the platform will reject.`)}if(Ye().aiFnV1GuardrailEnabled&&n&&!V)try{let Re=await p0(n);Re.v1>0&&(Ar.log(`Detected ${Re.v1} v1 AI function(s), running inference to fix`),await de("inference-ai-fn-v1-fix",[oIe(Re.v1Files)]))}catch(Re){if(Na(Re))throw Re;Ar.warn("ai_fn_v1_guardrail failed",{err:Re})}let at=await _("deploy",()=>PT({cliPath:r,config:t,result:U.result,filter:i,isRetry:!1,deploySubdomain:ce})),ft=at.hasChanges?at:void 0,we=U;at.deployError&&Z.inc("deploy.failed",1,{attempt:1});let rt=[],Ie;if(at.hasChanges&&at.deployError){rt.push(rse(at.deployError));let Re=1,Mt=!1;for(;Re<=K_&&!at.previewInfo&&!Mt;)Ar.log(`Deploy attempt had errors. Retrying. ${Re}/${K_}`),await Py(pt(),"deploy-stage",async Qo=>{Qo?.setAttributes({"stage.attempt":Re});let fi;try{g=h;let J_=await v.currentContext();fi=(await Ne.runFixTurn(()=>_(`inference-retry-${Re}`,()=>vu({cliPath:r,config:t,context:$,runner:K,persistSteps:ne,aiGateway:te,buildErrors:rt,additionalContext:J_,priorAgentSessionId:U.agentSessionId,answerFold:Fe})))).runnerResult}catch(J_){if(Na(J_))throw J_;Ar.warn(`Inference retry ${Re} failed, stopping deploy retries:`,J_),Mt=!0;return}if(ve)throw Object.assign(ve,{agentSessionId:fi.agentSessionId??U.agentSessionId}),ve;we=WE(we,fi),await v.generateMigrations(),at=await _(`deploy-retry-${Re}`,()=>PT({cliPath:r,config:t,result:fi.result,filter:i,isRetry:!0,deploySubdomain:ce})),at.hasChanges&&(ft=at),at.deployError&&(Z.inc("deploy.failed",1,{attempt:Re+1}),rt.push(at.deployError)),Re++});Re>K_&&!at.previewInfo&&(Z.inc("deploy.retries_exhausted",1),t.mode==="create"?(console.warn(`Deploy still failing after ${K_} retries, failing the create run`),Ie=new Error(`Deploy failed after ${K_} retries`)):console.warn(`Deploy still failing after ${K_} retries, completing run without a preview`))}let be=at.previewInfo||at.hasChanges?at:ft??at,{diff:ln,resultDiff:na,previewInfo:iM,diffBinary:Z_,resultDiffBinary:oM,hasNetlifyForm:Jf,hasNetlifyIdentity:Ru}=be;be.hasChanges&&m0({previewDeployed:!!be.previewInfo,hadFailedAttempts:rt.length>0}),await c?.stop(),y?.setAttributes(ise(we,c?.getCreditsCost())),f=we.resolvedModel,p=we.effort??p;let Xf=we.agentSessionId??U.agentSessionId;await A({...Ie?{outcome:"deploy-failed",error:Ie}:{outcome:"completed",pipelineSpan:y},artifacts:{diff:ln,result:we.result,duration:we.duration,resultDiff:na,diffBinary:Z_,resultDiffBinary:oM,previewInfo:iM,isProdDeploy:ke,hasNetlifyForm:Jf,hasNetlifyIdentity:Ru,nativeSessionId:Xf,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h}});let Yt=await v.hasDatabase();typeof Yt=="boolean"&&y?.setAttributes({"actual.has_db":Yt}),await Rse({config:t,hasDb:Yt,pipelineSpan:y,resolvedModel:we.resolvedModel??U.resolvedModel,cliVersion:xu.version})})}catch(y){if(Na(y)){u="gracefulError",Ar.info("Agent run terminated gracefully",{statusCode:y.statusCode,reason:y.message}),await c?.stop();let te=y.isCreditLimitExceeded?"credit-limit":"graceful-error";await A({outcome:te,error:y,finalAgentConfig:{agent:t.runner,model:f,effort:p},creditWrapUp:h});return}throw Ar.error("Got error while running pipeline",y),await c?.stop(),u=Ua()?"interrupted":"error",await A({outcome:u,error:y}),y}finally{v.revokeAskAccess(),m&&dIe(m,c?.getCreditsCost(),g),tIe({isHotFollowUp:o,startedAt:l,outcome:u,nativeResume:d,isAnswerResume:j,creditsCost:c?.getCreditsCost(),model:f,effort:p}),nIe({agentRunnerId:t.id,sessionId:t.sessionId,devServerId:process.env.NETLIFY_DEV_SERVER_ID,agent:t.runner,mode:t.mode,outcome:u,finalizationOutcome:b,stopReason:qde(),version:xu.version,startedAt:l,model:f??t.model,effort:p??t.effort,creditsCost:c?.getCreditsCost(),nativeResume:d,isAnswerResume:j,isHotFollowUp:o})}};export{ist as runPipeline};
664
664
  /*! Bundled license information:
665
665
 
666
666
  long/umd/index.js:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@netlify/agent-runner-cli",
3
3
  "type": "module",
4
- "version": "1.179.0-cancel-fields.0",
4
+ "version": "1.179.1-cancel-fields.0",
5
5
  "description": "CLI tool for running Netlify agents",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",