@netlify/agent-runner-cli 1.146.0 → 1.147.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
@@ -99,7 +99,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
99
99
  `,LF:`
100
100
  `,concatBytes:xD},vNe=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},bNe={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:vNe};import{Buffer as TNe}from"buffer";var ZQ=(t,e)=>t?void 0:xNe.bind(void 0,e),xNe=function*(t,e){if(typeof e!="string"&&!Ft(e)&&!TNe.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},JQ=(t,e)=>t?wNe.bind(void 0,e):ANe.bind(void 0,e),wNe=function*(t,e){XQ(t,e),yield e},ANe=function*(t,e){if(XQ(t,e),typeof e!="string"&&!Ft(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},XQ=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
101
101
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
102
- if (condition) { yield value; }`)};import{Buffer as RNe}from"buffer";import{StringDecoder as INe}from"string_decoder";var Tx=(t,e,r)=>{if(r)return;if(t)return{transform:CNe.bind(void 0,new TextEncoder)};let n=new INe(e);return{transform:PNe.bind(void 0,n),final:ONe.bind(void 0,n)}},CNe=function*(t,e){RNe.isBuffer(e)?yield ds(e):typeof e=="string"?yield t.encode(e):yield e},PNe=function*(t,e){yield Ft(e)?t.write(e):e},ONe=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as QQ}from"util";var AD=QQ(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),xx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=kNe}=e[r];for await(let i of n(t))yield*xx(i,e,r+1)},e7=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*NNe(r,Number(e),t)},NNe=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*xx(n,r,e+1)},t7=QQ(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),kNe=function*(t){yield t};var RD=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},r7=(t,e)=>[...e.flatMap(r=>[...Tl(r,t,0)]),...r_(t)],Tl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=DNe}=e[r];for(let i of n(t))yield*Tl(i,e,r+1)},r_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*MNe(r,Number(e),t)},MNe=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Tl(n,r,e+1)},DNe=function*(t){yield t};var ID=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=i7(t,s,o),l=bl(e),u=bl(r),d=l?AD.bind(void 0,xx,a):RD.bind(void 0,Tl),f=l||u?AD.bind(void 0,e7,a):RD.bind(void 0,r_),p=l||u?t7.bind(void 0,a):void 0;return{stream:new LNe({writableObjectMode:n,writableHighWaterMark:n7(n),readableObjectMode:i,readableHighWaterMark:n7(i),transform(m,S,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},wx=(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=i7(s,r,a);t=r7(c,t)}return t},i7=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:ZQ(n,a)},Tx(r,s,n),bx(r,o,n,c),{transform:t,final:e},{transform:JQ(i,a)},KQ({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var o7=(t,e)=>{for(let r of $Ne(t))UNe(t,r,e)},$Ne=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),UNe=(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 ${Ca[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>FNe(a,n));r.input=Hg(s)},FNe=(t,e)=>{let r=wx(t,e,"utf8",!0);return BNe(r),Hg(r)},BNe=t=>{let e=t.find(r=>typeof r!="string"&&!Ft(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 VNe,appendFileSync as qNe}from"fs";var Ax=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Fd(r,n)&&!gn.has(e)&&jNe(n)&&(t.some(({type:i,value:o})=>i==="native"&&zNe.has(o))||t.every(({type:i})=>Hn.has(i))),jNe=t=>t===1||t===2,zNe=new Set(["pipe","overlapped"]),s7=async(t,e,r,n)=>{for await(let i of t)GNe(e)||c7(i,r,n)},a7=(t,e,r)=>{for(let n of t)c7(n,e,r)},GNe=t=>t._readableState.pipes.length>0,c7=(t,e,r)=>{let n=BT(t);lo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var l7=({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)=>HNe({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},HNe=({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=uQ(t,o,d),p=ds(f),{stdioItems:h,objectMode:m}=e[r],S=WNe([p],h,c,n),{serializedResult:E,finalResult:T=E}=YNe({chunks:S,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});KNe({serializedResult:E,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?T:void 0;try{return n.error===void 0&&ZNe(E,h,i),x}catch(_){return n.error=_,x}},WNe=(t,e,r,n)=>{try{return wx(t,e,r,!1)}catch(i){return n.error=i,t}},YNe=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Hg(t)};let s=x9(t,r);return n[o]?{serializedResult:s,finalResult:wD(s,!i[o],e)}:{serializedResult:s}},KNe=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Ax({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=wD(t,!1,s);try{a7(a,e,n)}catch(c){r.error??=c}},ZNe=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Ex.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?qNe(n,t):(r.add(o),VNe(n,t))}};var u7=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,hs(e,r,"all")]:Array.isArray(e)?[hs(t,r,"all"),...e]:Ft(t)&&Ft(e)?MM([t,e]):`${t}${e}`};import{once as CD}from"events";var d7=async(t,e)=>{let[r,n]=await JNe(t);return e.isForcefullyTerminated??=!1,[r,n]},JNe=async t=>{let[e,r]=await Promise.allSettled([CD(t,"spawn"),CD(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?f7(t):r.value},f7=async t=>{try{return await CD(t,"exit")}catch{return f7(t)}},p7=async t=>{let[e,r]=await t;if(!XNe(e,r)&&PD(e,r))throw new xi;return[e,r]},XNe=(t,e)=>t===void 0&&e===void 0,PD=(t,e)=>t!==0||e!==null;var h7=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=QNe(t,e,r),s=o?.code==="ETIMEDOUT",a=lQ(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},QNe=(t,e,r)=>t!==void 0?t:PD(e,r)?new xi:void 0;var m7=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=tke(t,e,r),d=ike({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Kd(d,c,l)},tke=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=zT(t,e,r),a=rke(r),{file:c,commandArguments:l,options:u}=cx(t,e,a);nke(u);let d=qQ(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},rke=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,nke=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Rx("ipcInput"),t&&Rx("ipc: true"),r&&Rx("detached: true"),n&&Rx("cancelSignal")},Rx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},ike=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=oke({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}=h7(c,r),{output:h,error:m=l}=l7({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),S=h.map((T,x)=>hs(T,r,x)),E=hs(u7(h,r),r,"all");return ake({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:S,all:E,options:r,command:n,escapedCommand:i,startTime:a})},oke=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{o7(o,r);let a=ske(r);return eke(...lx(t,e,a))}catch(a){return Yd({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},ske=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:gx(e)}),ake=({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?_x({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):t_({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 YMe}from"events";import{spawn as KMe}from"child_process";import E7 from"process";import{once as OD,on as cke}from"events";var g7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(zd({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:rx(t)}),lke({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),lke=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{XT(e,i);let o=Ia(t,e,r),s=new AbortController;try{return await Promise.race([uke(o,n,s),dke(o,r,s),fke(o,r,s)])}catch(a){throw Gd(t),a}finally{s.abort(),QT(e,i)}},uke=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await OD(t,"message",{signal:r});return n}for await(let[n]of cke(t,"message",{signal:r}))if(e(n))return n},dke=async(t,e,{signal:r})=>{await OD(t,"disconnect",{signal:r}),rX(e)},fke=async(t,e,{signal:r})=>{let[n]=await OD(t,"strict:error",{signal:r});throw KT(n,e)};import{once as y7,on as pke}from"events";var S7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>ND({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),ND=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{zd({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:rx(t)}),XT(e,o);let s=Ia(t,e,r),a=new AbortController,c={};return hke(t,s,a),mke({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),gke({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},hke=async(t,e,r)=>{try{await y7(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},mke=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await y7(t,"strict:error",{signal:r.signal});n.error=KT(i,e),r.abort()}catch{}},gke=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of pke(r,"message",{signal:o.signal}))_7(s),yield c}catch{_7(s)}finally{o.abort(),QT(e,a),n||Gd(t),i&&await t}},_7=({error:t})=>{if(t)throw t};var v7=(t,{ipc:e})=>{Object.assign(t,T7(t,!1,e))},b7=()=>{let t=E7,e=!0,r=E7.channel!==void 0;return{...T7(t,e,r),getCancelSignal:CX.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},T7=(t,e,r)=>({sendMessage:sx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:g7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:S7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as _ke}from"child_process";import{PassThrough as yke,Readable as Ske,Writable as Eke,Duplex as vke}from"stream";var x7=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{bD(n);let a=new _ke;bke(a,n),Object.assign(a,{readable:Tke,writable:xke,duplex:wke});let c=Yd({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=Ake(c,s,i);return{subprocess:a,promise:l}},bke=(t,e)=>{let r=n_(),n=n_(),i=n_(),o=Array.from({length:e.length-3},n_),s=n_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},n_=()=>{let t=new yke;return t.end(),t},Tke=()=>new Ske({read(){}}),xke=()=>new Eke({write(){}}),wke=()=>new vke({read(){},write(){}}),Ake=async(t,e,r)=>Kd(t,e,r);import{createReadStream as w7,createWriteStream as A7}from"fs";import{Buffer as Rke}from"buffer";import{Readable as i_,Writable as Ike,Duplex as Cke}from"stream";var I7=(t,e)=>vx(Pke,t,e,!1),o_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ca[t]}.`)},R7={fileNumber:o_,generator:ID,asyncGenerator:ID,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:Cke.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Pke={input:{...R7,fileUrl:({value:t})=>({stream:w7(t)}),filePath:({value:{file:t}})=>({stream:w7(t)}),webStream:({value:t})=>({stream:i_.fromWeb(t)}),iterable:({value:t})=>({stream:i_.from(t)}),asyncIterable:({value:t})=>({stream:i_.from(t)}),string:({value:t})=>({stream:i_.from(t)}),uint8Array:({value:t})=>({stream:i_.from(Rke.from(t))})},output:{...R7,fileUrl:({value:t})=>({stream:A7(t)}),filePath:({value:{file:t,append:e}})=>({stream:A7(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:Ike.fromWeb(t)}),iterable:o_,asyncIterable:o_,string:o_,uint8Array:o_}};import{on as Oke,once as C7}from"events";import{PassThrough as Nke,getDefaultHighWaterMark as kke}from"stream";import{finished as N7}from"stream/promises";function xl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)MD(i);let e=t.some(({readableObjectMode:i})=>i),r=Mke(t,e),n=new kD({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Mke=(t,e)=>{if(t.length===0)return kke(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},kD=class extends Nke{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(MD(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Dke(this,this.#e,this.#o);let r=Uke({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(MD(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)}},Dke=async(t,e,r)=>{Ix(t,P7);let n=new AbortController;try{await Promise.race([Lke(t,n),$ke(t,e,r,n)])}finally{n.abort(),Ix(t,-P7)}},Lke=async(t,{signal:e})=>{try{await N7(t,{signal:e,cleanup:!0})}catch(r){throw k7(t,r),r}},$ke=async(t,e,r,{signal:n})=>{for await(let[i]of Oke(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},MD=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},Uke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Ix(t,O7);let a=new AbortController;try{await Promise.race([Fke(o,e,a),Bke({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),jke({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Ix(t,-O7)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?DD(t):zke(t))},Fke=async(t,e,{signal:r})=>{try{await t,r.aborted||DD(e)}catch(n){r.aborted||k7(e,n)}},Bke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await N7(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;M7(s)?i.add(e):D7(t,s)}},jke=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await C7(t,i,{signal:o}),!t.readable)return C7(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},zke=t=>{t.writable&&t.end()},k7=(t,e)=>{M7(e)?DD(t):D7(t,e)},M7=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",DD=t=>{(t.readable||t.writable)&&t.destroy()},D7=(t,e)=>{t.destroyed||(t.once("error",Gke),t.destroy(e))},Gke=()=>{},Ix=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},P7=2,O7=1;import{finished as L7}from"stream/promises";var Jd=(t,e)=>{t.pipe(e),Vke(t,e),qke(t,e)},Vke=async(t,e)=>{if(!(Ti(t)||Ti(e))){try{await L7(t,{cleanup:!0,readable:!0,writable:!1})}catch{}LD(e)}},LD=t=>{t.writable&&t.end()},qke=async(t,e)=>{if(!(Ti(t)||Ti(e))){try{await L7(e,{cleanup:!0,readable:!1,writable:!0})}catch{}$D(t)}},$D=t=>{t.readable&&t.destroy()};var $7=(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})=>Hn.has(c)))Hke(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Hn.has(c)))Yke({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]:xl(o);Jd(s,i)}},Hke=(t,e,r,n)=>{r==="output"?Jd(t.stdio[n],e):Jd(e,t.stdio[n]);let i=Wke[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Wke=["stdin","stdout","stderr"],Yke=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;Kke(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},Kke=(t,{signal:e})=>{Ti(t)&&El(t,Zke,e)},Zke=2;import{addAbortListener as Qke}from"events";var wl=[];wl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&wl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&wl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Cx=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",UD=Symbol.for("signal-exit emitter"),FD=globalThis,Jke=Object.defineProperty.bind(Object),BD=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(FD[UD])return FD[UD];Jke(FD,UD,{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}},Px=class{},Xke=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),jD=class extends Px{onExit(){return()=>{}}load(){}unload(){}},zD=class extends Px{#e=GD.platform==="win32"?"SIGINT":"SIGHUP";#r=new BD;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of wl)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(!Cx(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 wl)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,wl.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 Cx(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"&&Cx(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)}},GD=globalThis.process,{onExit:U7,load:Npt,unload:kpt}=Xke(Cx(GD)?new zD(GD):new jD);var F7=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=U7(()=>{t.kill()});Qke(n,()=>{i()})};var j7=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=jT(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=eMe(r,n,i),{sourceStream:d,sourceError:f}=rMe(t,l),{options:p,fileDescriptors:h}=fo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},eMe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=tMe(t,e,...r),a=JT(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},tMe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(B7,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||NM(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]=OT(r,...n);return{destination:e(B7)(i,o,s),pipeOptions:s}}if(fo.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}`)},B7=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),rMe=(t,e)=>{try{return{sourceStream:Vd(t,e)}}catch(r){return{sourceError:r}}};var G7=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=nMe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw VD({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},nMe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return $D(t),n;if(e!==void 0)return LD(r),e},VD=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Yd({error:t,command:z7,escapedCommand:z7,fileDescriptors:e,options:r,startTime:n,isSync:!1}),z7="source.pipe(destination)";var V7=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 iMe}from"stream/promises";var q7=(t,e,r)=>{let n=Ox.has(e)?sMe(t,e):oMe(t,e);return El(t,cMe,r.signal),El(e,lMe,r.signal),aMe(e),n},oMe=(t,e)=>{let r=xl([t]);return Jd(r,e),Ox.set(e,r),r},sMe=(t,e)=>{let r=Ox.get(e);return r.add(t),r},aMe=async t=>{try{await iMe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ox.delete(t)},Ox=new WeakMap,cMe=2,lMe=1;import{aborted as uMe}from"util";var H7=(t,e)=>t===void 0?[]:[dMe(t,e)],dMe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await uMe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw VD({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Nx=(t,...e)=>{if(It(e[0]))return Nx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=j7(t,...e),i=fMe({...n,destination:r});return i.pipe=Nx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},fMe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=pMe(t,i);G7({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=q7(e,o,d);return await Promise.race([V7(u),...H7(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},pMe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as EMe}from"timers/promises";import{on as hMe}from"events";import{getDefaultHighWaterMark as mMe}from"stream";var kx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return gMe(e,s),Y7({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},gMe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},qD=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;_Me(e,s,t);let a=t.readableObjectMode&&!o;return Y7({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},_Me=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},Y7=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=hMe(t,"data",{signal:e.signal,highWaterMark:W7,highWatermark:W7});return yMe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},HD=mMe(!0),W7=HD,yMe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=SMe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Tl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*r_(a)}},SMe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Tx(t,r,!e),bx(t,i,!n,{})].filter(Boolean);var K7=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=vMe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([bMe(t),d]);return}let f=TD(c,r),p=qD({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([TMe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},vMe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Ax({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=qD({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await s7(a,t,r,o)},bMe=async t=>{await EMe(),t.readableFlowing===null&&t.resume()},TMe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await px(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await hx(r,{maxBuffer:o})):await Wd(r,{maxBuffer:o})}catch(a){return Z7(sQ({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},WD=async t=>{try{return await t}catch(e){return Z7(e)}},Z7=({bufferedData:t})=>b9(t)?new Uint8Array(t):t;import{finished as xMe}from"stream/promises";var s_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=wMe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],xMe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||IMe(a,e,r,n)}finally{s.abort()}},wMe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&AMe(t,r,n),n},AMe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{RMe(e,r),n.call(t,...i)}},RMe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},IMe=(t,e,r,n)=>{if(!CMe(t,e,r,n))throw t},CMe=(t,e,r,n=!0)=>r.propagating?J7(t)||Mx(t):(r.propagating=!0,YD(r,e)===n?J7(t):Mx(t)),YD=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Mx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",J7=t=>t?.code==="EPIPE";var X7=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>KD({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),KD=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=s_(t,e,l);if(YD(l,e)){await u;return}let[d]=await Promise.all([K7({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 Q7=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?xl([t,e].filter(Boolean)):void 0,eee=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>KD({...PMe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:OMe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),PMe=({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}},OMe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as NMe}from"events";var tee=t=>Fd(t,"ipc"),ree=(t,e)=>{let r=BT(t);lo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var nee=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=tee(o),a=fs(e,"ipc"),c=fs(r,"ipc");for await(let l of ND({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(aQ(t,i,c),i.push(l)),s&&ree(l,o);return i},iee=async(t,e)=>(await Promise.allSettled([t]),e);var oee=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:S,controller:E})=>{let T=d7(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:T,propagating:!1},_=X7({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),A=eee({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),R=[],P=nee({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:R,verboseInfo:p}),C=kMe(m,t,x),M=MMe(h,x);try{return await Promise.race([Promise.all([{},p7(T),Promise.all(_),A,P,FX(t,d),...C,...M]),S,DMe(t,E),...MX(t,o,f,E),...tX({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...NX({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch(B){return f.terminationReason??="other",Promise.all([{error:B},T,Promise.all(_.map(y=>WD(y))),WD(A),iee(P,R),Promise.allSettled(C),Promise.allSettled(M)])}},kMe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:s_(n,i,r)),MMe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ai(o,{checkOpen:!1})&&!Ti(o)).map(({type:i,value:o,stream:s=o})=>s_(s,n,e,{isSameDirection:Hn.has(i),stopOnExit:i==="native"}))),DMe=async(t,{signal:e})=>{let[r]=await NMe(t,"error",{signal:e});throw r};var see=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),a_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=uo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Xd=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 LMe}from"stream";import{callbackify as $Me}from"util";import{finished as aee}from"stream/promises";var ZD=async t=>{if(t!==void 0)try{await JD(t)}catch{}},cee=async t=>{if(t!==void 0)try{await XD(t)}catch{}},JD=async t=>{await aee(t,{cleanup:!0,readable:!1,writable:!0})},XD=async t=>{await aee(t,{cleanup:!0,readable:!0,writable:!1})},Dx=async(t,e)=>{if(await t,e)throw e},Lx=(t,e,r)=>{r&&!Mx(r)?t.destroy(r):e&&t.destroy()};var lee=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||gn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=QD(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=eL(a,s),{read:f,onStdoutDataDone:p}=tL({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new LMe({read:f,destroy:$Me(nL.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return rL({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},QD=(t,e,r)=>{let n=Vd(t,e),i=a_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},eL=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:HD},tL=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=uo(),s=kx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){UMe(this,s,o)},onStdoutDataDone:o}},UMe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},rL=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await XD(t),await n,await ZD(i),await e,r.readable&&r.push(null)}catch(o){await ZD(i),uee(r,o)}},nL=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Xd(r,e)&&(uee(t,n),await Dx(e,n))},uee=(t,e)=>{Lx(t,t.readable,e)};import{Writable as FMe}from"stream";import{callbackify as dee}from"util";var fee=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=iL(t,r,e),s=new FMe({...oL(n,t,i),destroy:dee(aL.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return sL(n,s),s},iL=(t,e,r)=>{let n=JT(t,e),i=a_(r,n,"writableFinal"),o=a_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},oL=(t,e,r)=>({write:BMe.bind(void 0,t),final:dee(jMe.bind(void 0,t,e,r))}),BMe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},jMe=async(t,e,r)=>{await Xd(r,e)&&(t.writable&&t.end(),await e)},sL=async(t,e,r)=>{try{await JD(t),e.writable&&e.end()}catch(n){await cee(r),pee(e,n)}},aL=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Xd(r,e),await Xd(n,e)&&(pee(t,i),await Dx(e,i))},pee=(t,e)=>{Lx(t,t.writable,e)};import{Duplex as zMe}from"stream";import{callbackify as GMe}from"util";var hee=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||gn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=QD(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=iL(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=eL(c,a),{read:S,onStdoutDataDone:E}=tL({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),T=new zMe({read:S,...oL(u,t,d),destroy:GMe(VMe.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 rL({subprocessStdout:c,onStdoutDataDone:E,readable:T,subprocess:t,subprocessStdin:u}),sL(u,T,c),T},VMe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([nL({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),aL({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var cL=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||gn.has(e),s=Vd(t,r),a=kx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return qMe(a,s,t)},qMe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var mee=(t,{encoding:e})=>{let r=see();t.readable=lee.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=fee.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=hee.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=cL.bind(void 0,t,e),t[Symbol.asyncIterator]=cL.bind(void 0,t,e,{})};var gee=(t,e)=>{for(let[r,n]of WMe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},HMe=(async()=>{})().constructor.prototype,WMe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(HMe,t)]);var _ee=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=ZMe(t,e,r),{subprocess:f,promise:p}=XMe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Nx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),gee(f,p),fo.set(f,{options:u,fileDescriptors:d}),f},ZMe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=zT(t,e,r),{file:a,commandArguments:c,options:l}=cx(t,e,r),u=JMe(l),d=I7(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},JMe=({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}},XMe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=KMe(...lx(t,e,r))}catch(h){return x7({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;YMe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];$7(c,a,l),F7(c,r,l);let d={},f=uo();c.kill=QJ.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Q7(c,r),mee(c,r),v7(c,r);let p=QMe({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}},QMe=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,S]=await oee({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((_,A)=>hs(_,e,A)),T=hs(m,e,"all"),x=eDe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:T,ipcOutput:S,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Kd(x,n,e)},eDe=({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?t_({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 po,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):_x({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var $x=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,tDe(n,t[n],i)]));return{...t,...r}},tDe=(t,e,r)=>rDe.has(t)&&It(e)&&It(r)?{...e,...r}:r,rDe=new Set(["env",...UM]);var Pa=(t,e,r,n)=>{let i=(s,a,c)=>Pa(s,a,r,c),o=(...s)=>nDe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},nDe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(It(o))return i(t,$x(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=iDe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?m7(a,c,l):_ee(a,c,l,i)},iDe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=I9(e)?C9(e,r):[e,...r],[s,a,c]=OT(...o),l=$x($x(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 yee=({file:t,commandArguments:e})=>Eee(t,e),See=({file:t,commandArguments:e})=>({...Eee(t,e),isSync:!0}),Eee=(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]=oDe(t);return{file:r,commandArguments:n}},oDe=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(sDe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},sDe=/ +/g;var vee=(t,e,r)=>{t.sync=e(aDe,r),t.s=t.sync},bee=({options:t})=>Tee(t),aDe=({options:t})=>({...Tee(t),isSync:!0}),Tee=t=>({options:{...cDe(t),...t}}),cDe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},xee={preferLocal:!0};var wee=Pa(()=>({})),bgt=Pa(()=>({isSync:!0})),Aee=Pa(yee),Tgt=Pa(See),xgt=Pa(LX),wgt=Pa(bee,{},xee,vee),{sendMessage:Agt,getOneMessage:Rgt,getEachMessage:Igt,getCancelSignal:Cgt}=b7();var Ree=!1,Iee=()=>{Ree=!0},mo=()=>Ree;var c_=null,Cee=t=>(c_&&c_.destroy(),c_=new ms({totalAllowedTime:t}),c_),Pee=()=>c_;var ms=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&&mo())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 xT({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Ee.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 Oee={name:"@netlify/agent-runner-cli",type:"module",version:"1.146.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:{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: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.2","@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.197","@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.1.5","@netlify/otel":"^6.0.3","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var fDe=uDe(import.meta.url),pDe=gs.dirname(fDe),hDe=dDe(import.meta.url),Qd=Se("shell"),lL=new Set,Nee={preferLocal:!0},sr=(t,e,r)=>{let[n,i]=mDe(e,r),o={...Nee,...i},s=wee(t,n,o);Mee(s,o),$ee(s);let a=r?.idleTimeout;return a&&a>0&&Lee(s,a),s},kee=(t,e)=>{let r={...Nee,...e},n=Aee(t,r);return Mee(n,r),$ee(n),e?.idleTimeout&&e.idleTimeout>0&&Lee(n,e.idleTimeout),n},mDe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Mee=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(_s.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Ug).pipe(_s.stdout),t.stderr?.pipe(new Ug).pipe(_s.stderr);return}t.stdout?.pipe(_s.stdout),t.stderr?.pipe(_s.stderr)},uL=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(_s.kill(-t.pid,e),Qd.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Qd.error("Error killing process:",r),!1}},Dee=t=>uL(t,"SIGKILL"),Lee=(t,e)=>{let r=null,n=()=>{Qd.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),uL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qd.log(`Force killing idle process ${t.pid}`),Dee(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)},$ee=t=>{lL.add(t);let e=Pee();if(e){let r=e.onTimesUp(()=>{Qd.log(`Global timer expired, killing process ${t.pid}`),uL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qd.log(`Force killing process ${t.pid} after timeout`),Dee(t))},5e3)});t.on("exit",()=>{lL.delete(t),r()}),t.on("error",()=>{lL.delete(t),r()})}};function Fx(t,e){return!!Ri(t,e)}function Ri(t,e){if(!_s.env.NETLIFY_LOCAL_MODE)try{let i=hDe.resolve(Oee.name),o=gs.dirname(i);for(;o!==gs.dirname(o);){let s=gs.dirname(o);if(gs.basename(s)==="node_modules"){let a=gs.join(s,".bin",e);if(Ux.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(_s.env.NODE_PATH){let i=gs.join(_s.env.NODE_PATH,".bin",e);if(Ux.existsSync(i))return i}let r=gs.join(t,"node_modules",".bin",e);if(Ux.existsSync(r))return r;let n=gs.join(pDe,"..","node_modules",".bin",e);if(Ux.existsSync(n))return n}var gDe=Se("utils"),_De=t=>new Promise(e=>{setTimeout(e,t)});var Bx=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await _De(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Oa=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},Uee=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):gDe.error("Could not parse JSON",n))}},yDe=t=>t.charAt(0).toUpperCase()+t.slice(1),go=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():yDe(e)).join(" ");function ys(t,e){e&&t.log(`Skill invoked: ${e}`)}var jx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Fee=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var dL=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},SDe=1e4,fL=(t,e=SDe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{Buffer as Bee}from"buffer";import EDe from"path";var jee=Se("repo"),Kr=(t,e={})=>sr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),zx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{jee.info("Getting runner diffs");let n=await bDe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let m=xDe(o);await wDe(m,r)}jee.info("Changes after processing"),await hL(r);let s=await mL(o,r);if(await pL(s,r),i=await TDe(r),!i)return{hasChanges:!1,ignored:s};await Kr(["commit","-m","Agent runner"],{cwd:r});let a={stdio:["ignore","pipe","pipe"],cwd:r},c=await Kr(["diff",t.runSha,"HEAD"],a),l=String(c.stdout??"");if(i=!!l,!i)return await zee(r),{hasChanges:!1,ignored:s};let u=await Kr(["diff",t.runSha,"HEAD","--binary"],a),d=String(u.stdout??""),f,p;if(t.sha){let m=await Kr(["diff",t.sha,"HEAD"],a);f=String(m.stdout??"");let S=await Kr(["diff",t.sha,"HEAD","--binary"],a),E=String(S.stdout??"");f!==E&&(p=Bee.from(E).toString("base64"))}await zee(r);let h={hasChanges:!0,diff:l,resultDiff:f,ignored:s};return l!==d&&(h.diffBinary=Bee.from(d).toString("base64")),p&&(h.resultDiffBinary=p),h},zee=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Kr(["reset","--soft","HEAD~1"],{cwd:t})},pL=async(t=[],e=process.cwd())=>{await Kr(["add",".",...t],{cwd:e})},hL=async(t=process.cwd())=>{let e=await Kr(["status","-s"],{cwd:t});return String(e.stdout??"")},Gee=/.. (.+)?\.log$/,vDe=[Gee],bDe=async(t=process.cwd())=>{let e=await hL(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
102
+ if (condition) { yield value; }`)};import{Buffer as RNe}from"buffer";import{StringDecoder as INe}from"string_decoder";var Tx=(t,e,r)=>{if(r)return;if(t)return{transform:CNe.bind(void 0,new TextEncoder)};let n=new INe(e);return{transform:PNe.bind(void 0,n),final:ONe.bind(void 0,n)}},CNe=function*(t,e){RNe.isBuffer(e)?yield ds(e):typeof e=="string"?yield t.encode(e):yield e},PNe=function*(t,e){yield Ft(e)?t.write(e):e},ONe=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as QQ}from"util";var AD=QQ(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),xx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=kNe}=e[r];for await(let i of n(t))yield*xx(i,e,r+1)},e7=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*NNe(r,Number(e),t)},NNe=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*xx(n,r,e+1)},t7=QQ(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),kNe=function*(t){yield t};var RD=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},r7=(t,e)=>[...e.flatMap(r=>[...Tl(r,t,0)]),...r_(t)],Tl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=DNe}=e[r];for(let i of n(t))yield*Tl(i,e,r+1)},r_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*MNe(r,Number(e),t)},MNe=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Tl(n,r,e+1)},DNe=function*(t){yield t};var ID=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=i7(t,s,o),l=bl(e),u=bl(r),d=l?AD.bind(void 0,xx,a):RD.bind(void 0,Tl),f=l||u?AD.bind(void 0,e7,a):RD.bind(void 0,r_),p=l||u?t7.bind(void 0,a):void 0;return{stream:new LNe({writableObjectMode:n,writableHighWaterMark:n7(n),readableObjectMode:i,readableHighWaterMark:n7(i),transform(m,S,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},wx=(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=i7(s,r,a);t=r7(c,t)}return t},i7=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:ZQ(n,a)},Tx(r,s,n),bx(r,o,n,c),{transform:t,final:e},{transform:JQ(i,a)},KQ({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var o7=(t,e)=>{for(let r of $Ne(t))UNe(t,r,e)},$Ne=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),UNe=(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 ${Ca[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>FNe(a,n));r.input=Hg(s)},FNe=(t,e)=>{let r=wx(t,e,"utf8",!0);return BNe(r),Hg(r)},BNe=t=>{let e=t.find(r=>typeof r!="string"&&!Ft(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 VNe,appendFileSync as qNe}from"fs";var Ax=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Fd(r,n)&&!gn.has(e)&&jNe(n)&&(t.some(({type:i,value:o})=>i==="native"&&zNe.has(o))||t.every(({type:i})=>Hn.has(i))),jNe=t=>t===1||t===2,zNe=new Set(["pipe","overlapped"]),s7=async(t,e,r,n)=>{for await(let i of t)GNe(e)||c7(i,r,n)},a7=(t,e,r)=>{for(let n of t)c7(n,e,r)},GNe=t=>t._readableState.pipes.length>0,c7=(t,e,r)=>{let n=BT(t);lo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var l7=({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)=>HNe({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},HNe=({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=uQ(t,o,d),p=ds(f),{stdioItems:h,objectMode:m}=e[r],S=WNe([p],h,c,n),{serializedResult:E,finalResult:T=E}=YNe({chunks:S,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});KNe({serializedResult:E,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?T:void 0;try{return n.error===void 0&&ZNe(E,h,i),x}catch(_){return n.error=_,x}},WNe=(t,e,r,n)=>{try{return wx(t,e,r,!1)}catch(i){return n.error=i,t}},YNe=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Hg(t)};let s=x9(t,r);return n[o]?{serializedResult:s,finalResult:wD(s,!i[o],e)}:{serializedResult:s}},KNe=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Ax({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=wD(t,!1,s);try{a7(a,e,n)}catch(c){r.error??=c}},ZNe=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Ex.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?qNe(n,t):(r.add(o),VNe(n,t))}};var u7=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,hs(e,r,"all")]:Array.isArray(e)?[hs(t,r,"all"),...e]:Ft(t)&&Ft(e)?MM([t,e]):`${t}${e}`};import{once as CD}from"events";var d7=async(t,e)=>{let[r,n]=await JNe(t);return e.isForcefullyTerminated??=!1,[r,n]},JNe=async t=>{let[e,r]=await Promise.allSettled([CD(t,"spawn"),CD(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?f7(t):r.value},f7=async t=>{try{return await CD(t,"exit")}catch{return f7(t)}},p7=async t=>{let[e,r]=await t;if(!XNe(e,r)&&PD(e,r))throw new xi;return[e,r]},XNe=(t,e)=>t===void 0&&e===void 0,PD=(t,e)=>t!==0||e!==null;var h7=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=QNe(t,e,r),s=o?.code==="ETIMEDOUT",a=lQ(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},QNe=(t,e,r)=>t!==void 0?t:PD(e,r)?new xi:void 0;var m7=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=tke(t,e,r),d=ike({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Kd(d,c,l)},tke=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=zT(t,e,r),a=rke(r),{file:c,commandArguments:l,options:u}=cx(t,e,a);nke(u);let d=qQ(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},rke=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,nke=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Rx("ipcInput"),t&&Rx("ipc: true"),r&&Rx("detached: true"),n&&Rx("cancelSignal")},Rx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},ike=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=oke({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}=h7(c,r),{output:h,error:m=l}=l7({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),S=h.map((T,x)=>hs(T,r,x)),E=hs(u7(h,r),r,"all");return ake({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:S,all:E,options:r,command:n,escapedCommand:i,startTime:a})},oke=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{o7(o,r);let a=ske(r);return eke(...lx(t,e,a))}catch(a){return Yd({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},ske=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:gx(e)}),ake=({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?_x({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):t_({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 YMe}from"events";import{spawn as KMe}from"child_process";import E7 from"process";import{once as OD,on as cke}from"events";var g7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(zd({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:rx(t)}),lke({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),lke=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{XT(e,i);let o=Ia(t,e,r),s=new AbortController;try{return await Promise.race([uke(o,n,s),dke(o,r,s),fke(o,r,s)])}catch(a){throw Gd(t),a}finally{s.abort(),QT(e,i)}},uke=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await OD(t,"message",{signal:r});return n}for await(let[n]of cke(t,"message",{signal:r}))if(e(n))return n},dke=async(t,e,{signal:r})=>{await OD(t,"disconnect",{signal:r}),rX(e)},fke=async(t,e,{signal:r})=>{let[n]=await OD(t,"strict:error",{signal:r});throw KT(n,e)};import{once as y7,on as pke}from"events";var S7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>ND({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),ND=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{zd({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:rx(t)}),XT(e,o);let s=Ia(t,e,r),a=new AbortController,c={};return hke(t,s,a),mke({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),gke({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},hke=async(t,e,r)=>{try{await y7(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},mke=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await y7(t,"strict:error",{signal:r.signal});n.error=KT(i,e),r.abort()}catch{}},gke=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of pke(r,"message",{signal:o.signal}))_7(s),yield c}catch{_7(s)}finally{o.abort(),QT(e,a),n||Gd(t),i&&await t}},_7=({error:t})=>{if(t)throw t};var v7=(t,{ipc:e})=>{Object.assign(t,T7(t,!1,e))},b7=()=>{let t=E7,e=!0,r=E7.channel!==void 0;return{...T7(t,e,r),getCancelSignal:CX.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},T7=(t,e,r)=>({sendMessage:sx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:g7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:S7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as _ke}from"child_process";import{PassThrough as yke,Readable as Ske,Writable as Eke,Duplex as vke}from"stream";var x7=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{bD(n);let a=new _ke;bke(a,n),Object.assign(a,{readable:Tke,writable:xke,duplex:wke});let c=Yd({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=Ake(c,s,i);return{subprocess:a,promise:l}},bke=(t,e)=>{let r=n_(),n=n_(),i=n_(),o=Array.from({length:e.length-3},n_),s=n_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},n_=()=>{let t=new yke;return t.end(),t},Tke=()=>new Ske({read(){}}),xke=()=>new Eke({write(){}}),wke=()=>new vke({read(){},write(){}}),Ake=async(t,e,r)=>Kd(t,e,r);import{createReadStream as w7,createWriteStream as A7}from"fs";import{Buffer as Rke}from"buffer";import{Readable as i_,Writable as Ike,Duplex as Cke}from"stream";var I7=(t,e)=>vx(Pke,t,e,!1),o_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ca[t]}.`)},R7={fileNumber:o_,generator:ID,asyncGenerator:ID,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:Cke.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Pke={input:{...R7,fileUrl:({value:t})=>({stream:w7(t)}),filePath:({value:{file:t}})=>({stream:w7(t)}),webStream:({value:t})=>({stream:i_.fromWeb(t)}),iterable:({value:t})=>({stream:i_.from(t)}),asyncIterable:({value:t})=>({stream:i_.from(t)}),string:({value:t})=>({stream:i_.from(t)}),uint8Array:({value:t})=>({stream:i_.from(Rke.from(t))})},output:{...R7,fileUrl:({value:t})=>({stream:A7(t)}),filePath:({value:{file:t,append:e}})=>({stream:A7(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:Ike.fromWeb(t)}),iterable:o_,asyncIterable:o_,string:o_,uint8Array:o_}};import{on as Oke,once as C7}from"events";import{PassThrough as Nke,getDefaultHighWaterMark as kke}from"stream";import{finished as N7}from"stream/promises";function xl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)MD(i);let e=t.some(({readableObjectMode:i})=>i),r=Mke(t,e),n=new kD({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Mke=(t,e)=>{if(t.length===0)return kke(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},kD=class extends Nke{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(MD(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Dke(this,this.#e,this.#o);let r=Uke({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(MD(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)}},Dke=async(t,e,r)=>{Ix(t,P7);let n=new AbortController;try{await Promise.race([Lke(t,n),$ke(t,e,r,n)])}finally{n.abort(),Ix(t,-P7)}},Lke=async(t,{signal:e})=>{try{await N7(t,{signal:e,cleanup:!0})}catch(r){throw k7(t,r),r}},$ke=async(t,e,r,{signal:n})=>{for await(let[i]of Oke(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},MD=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},Uke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Ix(t,O7);let a=new AbortController;try{await Promise.race([Fke(o,e,a),Bke({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),jke({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Ix(t,-O7)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?DD(t):zke(t))},Fke=async(t,e,{signal:r})=>{try{await t,r.aborted||DD(e)}catch(n){r.aborted||k7(e,n)}},Bke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await N7(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;M7(s)?i.add(e):D7(t,s)}},jke=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await C7(t,i,{signal:o}),!t.readable)return C7(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},zke=t=>{t.writable&&t.end()},k7=(t,e)=>{M7(e)?DD(t):D7(t,e)},M7=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",DD=t=>{(t.readable||t.writable)&&t.destroy()},D7=(t,e)=>{t.destroyed||(t.once("error",Gke),t.destroy(e))},Gke=()=>{},Ix=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},P7=2,O7=1;import{finished as L7}from"stream/promises";var Jd=(t,e)=>{t.pipe(e),Vke(t,e),qke(t,e)},Vke=async(t,e)=>{if(!(Ti(t)||Ti(e))){try{await L7(t,{cleanup:!0,readable:!0,writable:!1})}catch{}LD(e)}},LD=t=>{t.writable&&t.end()},qke=async(t,e)=>{if(!(Ti(t)||Ti(e))){try{await L7(e,{cleanup:!0,readable:!1,writable:!0})}catch{}$D(t)}},$D=t=>{t.readable&&t.destroy()};var $7=(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})=>Hn.has(c)))Hke(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Hn.has(c)))Yke({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]:xl(o);Jd(s,i)}},Hke=(t,e,r,n)=>{r==="output"?Jd(t.stdio[n],e):Jd(e,t.stdio[n]);let i=Wke[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Wke=["stdin","stdout","stderr"],Yke=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;Kke(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},Kke=(t,{signal:e})=>{Ti(t)&&El(t,Zke,e)},Zke=2;import{addAbortListener as Qke}from"events";var wl=[];wl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&wl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&wl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Cx=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",UD=Symbol.for("signal-exit emitter"),FD=globalThis,Jke=Object.defineProperty.bind(Object),BD=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(FD[UD])return FD[UD];Jke(FD,UD,{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}},Px=class{},Xke=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),jD=class extends Px{onExit(){return()=>{}}load(){}unload(){}},zD=class extends Px{#e=GD.platform==="win32"?"SIGINT":"SIGHUP";#r=new BD;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of wl)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(!Cx(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 wl)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,wl.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 Cx(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"&&Cx(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)}},GD=globalThis.process,{onExit:U7,load:Npt,unload:kpt}=Xke(Cx(GD)?new zD(GD):new jD);var F7=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=U7(()=>{t.kill()});Qke(n,()=>{i()})};var j7=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=jT(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=eMe(r,n,i),{sourceStream:d,sourceError:f}=rMe(t,l),{options:p,fileDescriptors:h}=fo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},eMe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=tMe(t,e,...r),a=JT(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},tMe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(B7,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||NM(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]=OT(r,...n);return{destination:e(B7)(i,o,s),pipeOptions:s}}if(fo.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}`)},B7=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),rMe=(t,e)=>{try{return{sourceStream:Vd(t,e)}}catch(r){return{sourceError:r}}};var G7=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=nMe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw VD({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},nMe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return $D(t),n;if(e!==void 0)return LD(r),e},VD=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Yd({error:t,command:z7,escapedCommand:z7,fileDescriptors:e,options:r,startTime:n,isSync:!1}),z7="source.pipe(destination)";var V7=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 iMe}from"stream/promises";var q7=(t,e,r)=>{let n=Ox.has(e)?sMe(t,e):oMe(t,e);return El(t,cMe,r.signal),El(e,lMe,r.signal),aMe(e),n},oMe=(t,e)=>{let r=xl([t]);return Jd(r,e),Ox.set(e,r),r},sMe=(t,e)=>{let r=Ox.get(e);return r.add(t),r},aMe=async t=>{try{await iMe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ox.delete(t)},Ox=new WeakMap,cMe=2,lMe=1;import{aborted as uMe}from"util";var H7=(t,e)=>t===void 0?[]:[dMe(t,e)],dMe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await uMe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw VD({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Nx=(t,...e)=>{if(It(e[0]))return Nx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=j7(t,...e),i=fMe({...n,destination:r});return i.pipe=Nx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},fMe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=pMe(t,i);G7({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=q7(e,o,d);return await Promise.race([V7(u),...H7(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},pMe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as EMe}from"timers/promises";import{on as hMe}from"events";import{getDefaultHighWaterMark as mMe}from"stream";var kx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return gMe(e,s),Y7({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},gMe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},qD=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;_Me(e,s,t);let a=t.readableObjectMode&&!o;return Y7({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},_Me=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},Y7=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=hMe(t,"data",{signal:e.signal,highWaterMark:W7,highWatermark:W7});return yMe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},HD=mMe(!0),W7=HD,yMe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=SMe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Tl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*r_(a)}},SMe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Tx(t,r,!e),bx(t,i,!n,{})].filter(Boolean);var K7=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=vMe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([bMe(t),d]);return}let f=TD(c,r),p=qD({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([TMe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},vMe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Ax({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=qD({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await s7(a,t,r,o)},bMe=async t=>{await EMe(),t.readableFlowing===null&&t.resume()},TMe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await px(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await hx(r,{maxBuffer:o})):await Wd(r,{maxBuffer:o})}catch(a){return Z7(sQ({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},WD=async t=>{try{return await t}catch(e){return Z7(e)}},Z7=({bufferedData:t})=>b9(t)?new Uint8Array(t):t;import{finished as xMe}from"stream/promises";var s_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=wMe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],xMe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||IMe(a,e,r,n)}finally{s.abort()}},wMe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&AMe(t,r,n),n},AMe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{RMe(e,r),n.call(t,...i)}},RMe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},IMe=(t,e,r,n)=>{if(!CMe(t,e,r,n))throw t},CMe=(t,e,r,n=!0)=>r.propagating?J7(t)||Mx(t):(r.propagating=!0,YD(r,e)===n?J7(t):Mx(t)),YD=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Mx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",J7=t=>t?.code==="EPIPE";var X7=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>KD({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),KD=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=s_(t,e,l);if(YD(l,e)){await u;return}let[d]=await Promise.all([K7({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 Q7=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?xl([t,e].filter(Boolean)):void 0,eee=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>KD({...PMe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:OMe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),PMe=({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}},OMe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as NMe}from"events";var tee=t=>Fd(t,"ipc"),ree=(t,e)=>{let r=BT(t);lo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var nee=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=tee(o),a=fs(e,"ipc"),c=fs(r,"ipc");for await(let l of ND({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(aQ(t,i,c),i.push(l)),s&&ree(l,o);return i},iee=async(t,e)=>(await Promise.allSettled([t]),e);var oee=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:S,controller:E})=>{let T=d7(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:T,propagating:!1},_=X7({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),A=eee({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),R=[],P=nee({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:R,verboseInfo:p}),C=kMe(m,t,x),M=MMe(h,x);try{return await Promise.race([Promise.all([{},p7(T),Promise.all(_),A,P,FX(t,d),...C,...M]),S,DMe(t,E),...MX(t,o,f,E),...tX({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...NX({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch(B){return f.terminationReason??="other",Promise.all([{error:B},T,Promise.all(_.map(y=>WD(y))),WD(A),iee(P,R),Promise.allSettled(C),Promise.allSettled(M)])}},kMe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:s_(n,i,r)),MMe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ai(o,{checkOpen:!1})&&!Ti(o)).map(({type:i,value:o,stream:s=o})=>s_(s,n,e,{isSameDirection:Hn.has(i),stopOnExit:i==="native"}))),DMe=async(t,{signal:e})=>{let[r]=await NMe(t,"error",{signal:e});throw r};var see=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),a_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=uo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Xd=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 LMe}from"stream";import{callbackify as $Me}from"util";import{finished as aee}from"stream/promises";var ZD=async t=>{if(t!==void 0)try{await JD(t)}catch{}},cee=async t=>{if(t!==void 0)try{await XD(t)}catch{}},JD=async t=>{await aee(t,{cleanup:!0,readable:!1,writable:!0})},XD=async t=>{await aee(t,{cleanup:!0,readable:!0,writable:!1})},Dx=async(t,e)=>{if(await t,e)throw e},Lx=(t,e,r)=>{r&&!Mx(r)?t.destroy(r):e&&t.destroy()};var lee=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||gn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=QD(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=eL(a,s),{read:f,onStdoutDataDone:p}=tL({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new LMe({read:f,destroy:$Me(nL.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return rL({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},QD=(t,e,r)=>{let n=Vd(t,e),i=a_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},eL=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:HD},tL=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=uo(),s=kx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){UMe(this,s,o)},onStdoutDataDone:o}},UMe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},rL=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await XD(t),await n,await ZD(i),await e,r.readable&&r.push(null)}catch(o){await ZD(i),uee(r,o)}},nL=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Xd(r,e)&&(uee(t,n),await Dx(e,n))},uee=(t,e)=>{Lx(t,t.readable,e)};import{Writable as FMe}from"stream";import{callbackify as dee}from"util";var fee=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=iL(t,r,e),s=new FMe({...oL(n,t,i),destroy:dee(aL.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return sL(n,s),s},iL=(t,e,r)=>{let n=JT(t,e),i=a_(r,n,"writableFinal"),o=a_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},oL=(t,e,r)=>({write:BMe.bind(void 0,t),final:dee(jMe.bind(void 0,t,e,r))}),BMe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},jMe=async(t,e,r)=>{await Xd(r,e)&&(t.writable&&t.end(),await e)},sL=async(t,e,r)=>{try{await JD(t),e.writable&&e.end()}catch(n){await cee(r),pee(e,n)}},aL=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Xd(r,e),await Xd(n,e)&&(pee(t,i),await Dx(e,i))},pee=(t,e)=>{Lx(t,t.writable,e)};import{Duplex as zMe}from"stream";import{callbackify as GMe}from"util";var hee=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||gn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=QD(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=iL(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=eL(c,a),{read:S,onStdoutDataDone:E}=tL({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),T=new zMe({read:S,...oL(u,t,d),destroy:GMe(VMe.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 rL({subprocessStdout:c,onStdoutDataDone:E,readable:T,subprocess:t,subprocessStdin:u}),sL(u,T,c),T},VMe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([nL({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),aL({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var cL=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||gn.has(e),s=Vd(t,r),a=kx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return qMe(a,s,t)},qMe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var mee=(t,{encoding:e})=>{let r=see();t.readable=lee.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=fee.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=hee.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=cL.bind(void 0,t,e),t[Symbol.asyncIterator]=cL.bind(void 0,t,e,{})};var gee=(t,e)=>{for(let[r,n]of WMe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},HMe=(async()=>{})().constructor.prototype,WMe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(HMe,t)]);var _ee=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=ZMe(t,e,r),{subprocess:f,promise:p}=XMe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Nx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),gee(f,p),fo.set(f,{options:u,fileDescriptors:d}),f},ZMe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=zT(t,e,r),{file:a,commandArguments:c,options:l}=cx(t,e,r),u=JMe(l),d=I7(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},JMe=({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}},XMe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=KMe(...lx(t,e,r))}catch(h){return x7({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;YMe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];$7(c,a,l),F7(c,r,l);let d={},f=uo();c.kill=QJ.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Q7(c,r),mee(c,r),v7(c,r);let p=QMe({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}},QMe=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,S]=await oee({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((_,A)=>hs(_,e,A)),T=hs(m,e,"all"),x=eDe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:T,ipcOutput:S,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Kd(x,n,e)},eDe=({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?t_({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 po,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):_x({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var $x=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,tDe(n,t[n],i)]));return{...t,...r}},tDe=(t,e,r)=>rDe.has(t)&&It(e)&&It(r)?{...e,...r}:r,rDe=new Set(["env",...UM]);var Pa=(t,e,r,n)=>{let i=(s,a,c)=>Pa(s,a,r,c),o=(...s)=>nDe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},nDe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(It(o))return i(t,$x(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=iDe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?m7(a,c,l):_ee(a,c,l,i)},iDe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=I9(e)?C9(e,r):[e,...r],[s,a,c]=OT(...o),l=$x($x(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 yee=({file:t,commandArguments:e})=>Eee(t,e),See=({file:t,commandArguments:e})=>({...Eee(t,e),isSync:!0}),Eee=(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]=oDe(t);return{file:r,commandArguments:n}},oDe=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(sDe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},sDe=/ +/g;var vee=(t,e,r)=>{t.sync=e(aDe,r),t.s=t.sync},bee=({options:t})=>Tee(t),aDe=({options:t})=>({...Tee(t),isSync:!0}),Tee=t=>({options:{...cDe(t),...t}}),cDe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},xee={preferLocal:!0};var wee=Pa(()=>({})),bgt=Pa(()=>({isSync:!0})),Aee=Pa(yee),Tgt=Pa(See),xgt=Pa(LX),wgt=Pa(bee,{},xee,vee),{sendMessage:Agt,getOneMessage:Rgt,getEachMessage:Igt,getCancelSignal:Cgt}=b7();var Ree=!1,Iee=()=>{Ree=!0},mo=()=>Ree;var c_=null,Cee=t=>(c_&&c_.destroy(),c_=new ms({totalAllowedTime:t}),c_),Pee=()=>c_;var ms=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&&mo())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 xT({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Ee.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 Oee={name:"@netlify/agent-runner-cli",type:"module",version:"1.147.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:{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: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.2","@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.197","@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.1.5","@netlify/otel":"^6.0.3","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var fDe=uDe(import.meta.url),pDe=gs.dirname(fDe),hDe=dDe(import.meta.url),Qd=Se("shell"),lL=new Set,Nee={preferLocal:!0},sr=(t,e,r)=>{let[n,i]=mDe(e,r),o={...Nee,...i},s=wee(t,n,o);Mee(s,o),$ee(s);let a=r?.idleTimeout;return a&&a>0&&Lee(s,a),s},kee=(t,e)=>{let r={...Nee,...e},n=Aee(t,r);return Mee(n,r),$ee(n),e?.idleTimeout&&e.idleTimeout>0&&Lee(n,e.idleTimeout),n},mDe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Mee=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(_s.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Ug).pipe(_s.stdout),t.stderr?.pipe(new Ug).pipe(_s.stderr);return}t.stdout?.pipe(_s.stdout),t.stderr?.pipe(_s.stderr)},uL=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(_s.kill(-t.pid,e),Qd.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Qd.error("Error killing process:",r),!1}},Dee=t=>uL(t,"SIGKILL"),Lee=(t,e)=>{let r=null,n=()=>{Qd.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),uL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qd.log(`Force killing idle process ${t.pid}`),Dee(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)},$ee=t=>{lL.add(t);let e=Pee();if(e){let r=e.onTimesUp(()=>{Qd.log(`Global timer expired, killing process ${t.pid}`),uL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qd.log(`Force killing process ${t.pid} after timeout`),Dee(t))},5e3)});t.on("exit",()=>{lL.delete(t),r()}),t.on("error",()=>{lL.delete(t),r()})}};function Fx(t,e){return!!Ri(t,e)}function Ri(t,e){if(!_s.env.NETLIFY_LOCAL_MODE)try{let i=hDe.resolve(Oee.name),o=gs.dirname(i);for(;o!==gs.dirname(o);){let s=gs.dirname(o);if(gs.basename(s)==="node_modules"){let a=gs.join(s,".bin",e);if(Ux.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(_s.env.NODE_PATH){let i=gs.join(_s.env.NODE_PATH,".bin",e);if(Ux.existsSync(i))return i}let r=gs.join(t,"node_modules",".bin",e);if(Ux.existsSync(r))return r;let n=gs.join(pDe,"..","node_modules",".bin",e);if(Ux.existsSync(n))return n}var gDe=Se("utils"),_De=t=>new Promise(e=>{setTimeout(e,t)});var Bx=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await _De(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Oa=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},Uee=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):gDe.error("Could not parse JSON",n))}},yDe=t=>t.charAt(0).toUpperCase()+t.slice(1),go=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():yDe(e)).join(" ");function ys(t,e){e&&t.log(`Skill invoked: ${e}`)}var jx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Fee=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var dL=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},SDe=1e4,fL=(t,e=SDe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{Buffer as Bee}from"buffer";import EDe from"path";var jee=Se("repo"),Kr=(t,e={})=>sr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),zx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{jee.info("Getting runner diffs");let n=await bDe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let m=xDe(o);await wDe(m,r)}jee.info("Changes after processing"),await hL(r);let s=await mL(o,r);if(await pL(s,r),i=await TDe(r),!i)return{hasChanges:!1,ignored:s};await Kr(["commit","-m","Agent runner"],{cwd:r});let a={stdio:["ignore","pipe","pipe"],cwd:r},c=await Kr(["diff",t.runSha,"HEAD"],a),l=String(c.stdout??"");if(i=!!l,!i)return await zee(r),{hasChanges:!1,ignored:s};let u=await Kr(["diff",t.runSha,"HEAD","--binary"],a),d=String(u.stdout??""),f,p;if(t.sha){let m=await Kr(["diff",t.sha,"HEAD"],a);f=String(m.stdout??"");let S=await Kr(["diff",t.sha,"HEAD","--binary"],a),E=String(S.stdout??"");f!==E&&(p=Bee.from(E).toString("base64"))}await zee(r);let h={hasChanges:!0,diff:l,resultDiff:f,ignored:s};return l!==d&&(h.diffBinary=Bee.from(d).toString("base64")),p&&(h.resultDiffBinary=p),h},zee=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Kr(["reset","--soft","HEAD~1"],{cwd:t})},pL=async(t=[],e=process.cwd())=>{await Kr(["add",".",...t],{cwd:e})},hL=async(t=process.cwd())=>{let e=await Kr(["status","-s"],{cwd:t});return String(e.stdout??"")},Gee=/.. (.+)?\.log$/,vDe=[Gee],bDe=async(t=process.cwd())=>{let e=await hL(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
103
103
  `).filter(i=>vDe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},TDe=async(t=process.cwd())=>{try{return await Kr(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},l_=async(t=process.cwd())=>{let{stdout:e}=await Kr(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},Vee=async(t=process.cwd())=>{let{stdout:e}=await Kr(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},mL=async(t,e=process.cwd())=>{t||=await hL(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(`
104
104
  `).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${EDe.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(Gee)?.[1];o&&n.push(`:!${o}.log`)}),n},gL=async(t=process.cwd())=>{await Kr(["reset","--hard","HEAD"],{cwd:t})},qee=async(t=process.cwd())=>{let e=await Kr(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
105
105
  `).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},xDe=t=>{let e=t.split(`
@@ -320,7 +320,7 @@ ${s.trim()}
320
320
  \`\`\``),{title:n,message:s,category:i}};import _u from"fs/promises";import By from"os";import yc from"path";import oh from"process";import IBe from"readline";import Uy from"fs/promises";import xBe from"os";import LR from"path";var tse=Se("gemini_session"),wBe=t=>t instanceof Error?t.message:String(t),ABe=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},RBe=async t=>{let r=(await Uy.readFile(t,"utf8")).split(`
321
321
  `),n=!1,i=r.map(o=>{if(!o.trim())return o;let s;try{s=JSON.parse(o)}catch{return o}return ABe(s)?(n=!0,JSON.stringify(s)):o});return n&&await Uy.writeFile(t,i.join(`
322
322
  `),"utf8"),n},V2=async(t,e=LR.join(xBe.homedir(),".gemini"))=>{let r=LR.join(e,"tmp"),n=t.slice(0,8),i;try{i=await Uy.readdir(r)}catch{return}for(let o of i){let s=LR.join(r,o,"chats"),a;try{a=await Uy.readdir(s)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let l=LR.join(s,c);try{let u=(await Uy.readFile(l,"utf8")).split(`
323
- `,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},Fy=async t=>{try{let e=await V2(t);return e?(await RBe(e),!0):(tse.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return tse.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:wBe(e)}),!1}};var An=Se("runner_gemini"),q2="Gemini CLI",sh="gemini-3.5-flash",CBe=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(An.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(An.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(An.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),rse={list_directory:{name:"List directory",category:K.Explore},read_file:{name:"Read file",category:K.FileRead},write_file:{name:"Edit file",category:K.FileWrite},glob:{name:"Find files",category:K.Explore},search_file_content:{name:"Search files",category:K.Explore},replace:{name:"Edit file",category:K.FileWrite},run_shell_command:{name:"Run command",category:K.RunCommand},web_fetch:{name:"Fetch web",category:K.Web},web_search:{name:"Search web",category:K.Web},google_web_search:{name:"Search web",category:K.Web},update_topic:{name:"Update topic",category:K.Plan},read_many_files:{name:"Read files",category:K.FileRead},save_memory:{name:"Memorize",category:K.Memorize},activate_skill:{name:"Use Skill",category:K.Skill},grep_search:{name:"Search files",category:K.Explore}},PBe=async()=>{let t=yc.join(By.homedir(),".gemini"),e=yc.join(t,"settings.json");try{await _u.mkdir(t,{recursive:!0});let r={};try{let n=await _u.readFile(e,"utf-8");r=JSON.parse(n)}catch{An.log("Creating new Gemini CLI settings file")}r.general||(r.general={}),r.general.previewFeatures||(r.general.previewFeatures=!0),r.model||(r.model={}),r.model.compressionThreshold!==.3&&(r.model.compressionThreshold=.3),r.skills||(r.skills={}),r.skills.enabled=!0,r.context||(r.context={}),r.context.fileName=["GEMINI.md","AGENTS.md"],await _u.writeFile(e,JSON.stringify(r,null,2),"utf-8"),An.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(r){An.error("Failed to ensure Gemini CLI settings",{error:r.message}),Ee.inc("context.degraded",1,{component:"agent_config"})}},OBe=t=>{t?.category===K.Skill&&t.type&&ys(An,go(t.type))};async function H2({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=oh.cwd(),abortSignal:c=void 0,onSessionId:l=void 0}){let{accountType:u,prompt:d,modelVersionOverrides:f}=t,{model:p}=t;if(await PBe(),i){let{token:le,url:pe}=i;if(!le||!pe)throw new Error("No token or url provided from AI Gateway");if(f?.gemini){let ce=f?.gemini?.[u];if(ce){if(!await i.isModelAvailableForProvider("gemini",ce))throw new Error(`Model override '${ce}' is not available for gemini provider`);p=ce}}if(!p)!!sh&&await i.isModelAvailableForProvider("gemini",sh)?(p=sh,An.log(`Using default model: ${sh}`)):sh&&An.log(`Default model ${sh} is not available, proceeding without model specification`);else if(p&&!f?.gemini?.[u]&&!await i.isModelAvailableForProvider("gemini",p))throw new Error(`Model '${p}' is not available for gemini provider`);oh.env.GEMINI_API_KEY=le,oh.env.GOOGLE_GEMINI_BASE_URL=pe}else if(!oh.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided");let h=[],m=[],S=[],E={},T=0,x=0,_,A,R,P,C=!!(o&&s),M=!1;C&&(M=await Fy(s)),C&&!M&&(An.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),Ee.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let B=t.mode==="ask",y;B&&(y=yc.join(By.homedir(),".gemini","ask-policy.toml"),await _u.mkdir(yc.dirname(y),{recursive:!0}),await _u.writeFile(y,`[[rule]]
323
+ `,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},Fy=async t=>{try{let e=await V2(t);return e?(await RBe(e),!0):(tse.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return tse.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:wBe(e)}),!1}};var An=Se("runner_gemini"),q2="Gemini CLI",sh="gemini-3.6-flash",CBe=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(An.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(An.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(An.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),rse={list_directory:{name:"List directory",category:K.Explore},read_file:{name:"Read file",category:K.FileRead},write_file:{name:"Edit file",category:K.FileWrite},glob:{name:"Find files",category:K.Explore},search_file_content:{name:"Search files",category:K.Explore},replace:{name:"Edit file",category:K.FileWrite},run_shell_command:{name:"Run command",category:K.RunCommand},web_fetch:{name:"Fetch web",category:K.Web},web_search:{name:"Search web",category:K.Web},google_web_search:{name:"Search web",category:K.Web},update_topic:{name:"Update topic",category:K.Plan},read_many_files:{name:"Read files",category:K.FileRead},save_memory:{name:"Memorize",category:K.Memorize},activate_skill:{name:"Use Skill",category:K.Skill},grep_search:{name:"Search files",category:K.Explore}},PBe=async()=>{let t=yc.join(By.homedir(),".gemini"),e=yc.join(t,"settings.json");try{await _u.mkdir(t,{recursive:!0});let r={};try{let n=await _u.readFile(e,"utf-8");r=JSON.parse(n)}catch{An.log("Creating new Gemini CLI settings file")}r.general||(r.general={}),r.general.previewFeatures||(r.general.previewFeatures=!0),r.model||(r.model={}),r.model.compressionThreshold!==.3&&(r.model.compressionThreshold=.3),r.skills||(r.skills={}),r.skills.enabled=!0,r.context||(r.context={}),r.context.fileName=["GEMINI.md","AGENTS.md"],await _u.writeFile(e,JSON.stringify(r,null,2),"utf-8"),An.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(r){An.error("Failed to ensure Gemini CLI settings",{error:r.message}),Ee.inc("context.degraded",1,{component:"agent_config"})}},OBe=t=>{t?.category===K.Skill&&t.type&&ys(An,go(t.type))};async function H2({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=oh.cwd(),abortSignal:c=void 0,onSessionId:l=void 0}){let{accountType:u,prompt:d,modelVersionOverrides:f}=t,{model:p}=t;if(await PBe(),i){let{token:le,url:pe}=i;if(!le||!pe)throw new Error("No token or url provided from AI Gateway");if(f?.gemini){let ce=f?.gemini?.[u];if(ce){if(!await i.isModelAvailableForProvider("gemini",ce))throw new Error(`Model override '${ce}' is not available for gemini provider`);p=ce}}if(!p)!!sh&&await i.isModelAvailableForProvider("gemini",sh)?(p=sh,An.log(`Using default model: ${sh}`)):sh&&An.log(`Default model ${sh} is not available, proceeding without model specification`);else if(p&&!f?.gemini?.[u]&&!await i.isModelAvailableForProvider("gemini",p))throw new Error(`Model '${p}' is not available for gemini provider`);oh.env.GEMINI_API_KEY=le,oh.env.GOOGLE_GEMINI_BASE_URL=pe}else if(!oh.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided");let h=[],m=[],S=[],E={},T=0,x=0,_,A,R,P,C=!!(o&&s),M=!1;C&&(M=await Fy(s)),C&&!M&&(An.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),Ee.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let B=t.mode==="ask",y;B&&(y=yc.join(By.homedir(),".gemini","ask-policy.toml"),await _u.mkdir(yc.dirname(y),{recursive:!0}),await _u.writeFile(y,`[[rule]]
324
324
  toolName = "web_fetch"
325
325
  decision = "allow"
326
326
  priority = 10
package/dist/bin.js CHANGED
@@ -578,7 +578,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
578
578
  `,LF:`
579
579
  `,concatBytes:h6},gmt=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},_mt={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:gmt};import{Buffer as ymt}from"buffer";var qve=(t,e)=>t?void 0:Smt.bind(void 0,e),Smt=function*(t,e){if(typeof e!="string"&&!Ir(e)&&!ymt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Bve=(t,e)=>t?Emt.bind(void 0,e):vmt.bind(void 0,e),Emt=function*(t,e){zve(t,e),yield e},vmt=function*(t,e){if(zve(t,e),typeof e!="string"&&!Ir(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},zve=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
580
580
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
581
- if (condition) { yield value; }`)};import{Buffer as bmt}from"buffer";import{StringDecoder as Tmt}from"string_decoder";var VO=(t,e,r)=>{if(r)return;if(t)return{transform:wmt.bind(void 0,new TextEncoder)};let n=new Tmt(e);return{transform:Rmt.bind(void 0,n),final:Amt.bind(void 0,n)}},wmt=function*(t,e){bmt.isBuffer(e)?yield yc(e):typeof e=="string"?yield t.encode(e):yield e},Rmt=function*(t,e){yield Ir(e)?t.write(e):e},Amt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Vve}from"util";var g6=Vve(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),HO=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Imt}=e[r];for await(let i of n(t))yield*HO(i,e,r+1)},Hve=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*xmt(r,Number(e),t)},xmt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*HO(n,r,e+1)},Gve=Vve(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Imt=function*(t){yield t};var _6=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Wve=(t,e)=>[...e.flatMap(r=>[...Lf(r,t,0)]),...Tb(t)],Lf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Omt}=e[r];for(let i of n(t))yield*Lf(i,e,r+1)},Tb=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Pmt(r,Number(e),t)},Pmt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Lf(n,r,e+1)},Omt=function*(t){yield t};var y6=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Kve(t,o,s),l=$f(e),u=$f(r),d=l?g6.bind(void 0,HO,a):_6.bind(void 0,Lf),f=l||u?g6.bind(void 0,Hve,a):_6.bind(void 0,Tb),p=l||u?Gve.bind(void 0,a):void 0;return{stream:new Cmt({writableObjectMode:n,writableHighWaterMark:Yve(n),readableObjectMode:i,readableHighWaterMark:Yve(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},GO=(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=Kve(o,r,a);t=Wve(c,t)}return t},Kve=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:qve(n,a)},VO(r,o,n),zO(r,s,n,c),{transform:t,final:e},{transform:Bve(i,a)},jve({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var Jve=(t,e)=>{for(let r of Nmt(t))kmt(t,r,e)},Nmt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),kmt=(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 ${yu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>$mt(a,n));r.input=pb(o)},$mt=(t,e)=>{let r=GO(t,e,"utf8",!0);return Lmt(r),pb(r)},Lmt=t=>{let e=t.find(r=>typeof r!="string"&&!Ir(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 Fmt,appendFileSync as jmt}from"fs";var WO=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&bg(r,n)&&!$i.has(e)&&Dmt(n)&&(t.some(({type:i,value:s})=>i==="native"&&Mmt.has(s))||t.every(({type:i})=>Es.has(i))),Dmt=t=>t===1||t===2,Mmt=new Set(["pipe","overlapped"]),Zve=async(t,e,r,n)=>{for await(let i of t)Umt(e)||Qve(i,r,n)},Xve=(t,e,r)=>{for(let n of t)Qve(n,e,r)},Umt=t=>t._readableState.pipes.length>0,Qve=(t,e,r)=>{let n=aO(t);Xo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var ebe=({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)=>qmt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},qmt=({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=tve(t,s,d),p=yc(f),{stdioItems:h,objectMode:m}=e[r],_=Bmt([p],h,c,n),{serializedResult:y,finalResult:v=y}=zmt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});Vmt({serializedResult:y,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let S=a[r]?v:void 0;try{return n.error===void 0&&Hmt(y,h,i),S}catch(g){return n.error=g,S}},Bmt=(t,e,r,n)=>{try{return GO(t,e,r,!1)}catch(i){return n.error=i,t}},zmt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:pb(t)};let o=mye(t,r);return n[s]?{serializedResult:o,finalResult:m6(o,!i[s],e)}:{serializedResult:o}},Vmt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!WO({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=m6(t,!1,o);try{Xve(a,e,n)}catch(c){r.error??=c}},Hmt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>qO.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?jmt(n,t):(r.add(s),Fmt(n,t))}};var tbe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,vc(e,r,"all")]:Array.isArray(e)?[vc(t,r,"all"),...e]:Ir(t)&&Ir(e)?wG([t,e]):`${t}${e}`};import{once as S6}from"events";var rbe=async(t,e)=>{let[r,n]=await Gmt(t);return e.isForcefullyTerminated??=!1,[r,n]},Gmt=async t=>{let[e,r]=await Promise.allSettled([S6(t,"spawn"),S6(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?nbe(t):r.value},nbe=async t=>{try{return await S6(t,"exit")}catch{return nbe(t)}},ibe=async t=>{let[e,r]=await t;if(!Wmt(e,r)&&E6(e,r))throw new Zs;return[e,r]},Wmt=(t,e)=>t===void 0&&e===void 0,E6=(t,e)=>t!==0||e!==null;var sbe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=Ymt(t,e,r),o=s?.code==="ETIMEDOUT",a=eve(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},Ymt=(t,e,r)=>t!==void 0?t:E6(e,r)?new Zs:void 0;var obe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=Jmt(t,e,r),d=Qmt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Ng(d,c,l)},Jmt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=lO(t,e,r),a=Zmt(r),{file:c,commandArguments:l,options:u}=PO(t,e,a);Xmt(u);let d=Dve(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Zmt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Xmt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&YO("ipcInput"),t&&YO("ipc: true"),r&&YO("detached: true"),n&&YO("cancelSignal")},YO=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},Qmt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=egt({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}=sbe(c,r),{output:h,error:m=l}=ebe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>vc(v,r,S)),y=vc(tbe(h,r),r,"all");return rgt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},egt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Jve(s,r);let a=tgt(r);return Kmt(...OO(t,e,a))}catch(a){return Cg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},tgt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:MO(e)}),rgt=({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?UO({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):bb({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 z_t}from"events";import{spawn as V_t}from"child_process";import dbe from"process";import{once as v6,on as ngt}from"events";var abe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Rg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:TO(t)}),igt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),igt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{SO(e,i);let s=_u(t,e,r),o=new AbortController;try{return await Promise.race([sgt(s,n,o),ogt(s,r,o),agt(s,r,o)])}catch(a){throw Ag(t),a}finally{o.abort(),EO(e,i)}},sgt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await v6(t,"message",{signal:r});return n}for await(let[n]of ngt(t,"message",{signal:r}))if(e(n))return n},ogt=async(t,e,{signal:r})=>{await v6(t,"disconnect",{signal:r}),WSe(e)},agt=async(t,e,{signal:r})=>{let[n]=await v6(t,"strict:error",{signal:r});throw gO(n,e)};import{once as lbe,on as cgt}from"events";var ube=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>b6({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),b6=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Rg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:TO(t)}),SO(e,s);let o=_u(t,e,r),a=new AbortController,c={};return lgt(t,o,a),ugt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),dgt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},lgt=async(t,e,r)=>{try{await lbe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},ugt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await lbe(t,"strict:error",{signal:r.signal});n.error=gO(i,e),r.abort()}catch{}},dgt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of cgt(r,"message",{signal:s.signal}))cbe(o),yield c}catch{cbe(o)}finally{s.abort(),EO(e,a),n||Ag(t),i&&await t}},cbe=({error:t})=>{if(t)throw t};var fbe=(t,{ipc:e})=>{Object.assign(t,hbe(t,!1,e))},pbe=()=>{let t=dbe,e=!0,r=dbe.channel!==void 0;return{...hbe(t,e,r),getCancelSignal:EEe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},hbe=(t,e,r)=>({sendMessage:xO.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:abe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:ube.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as fgt}from"child_process";import{PassThrough as pgt,Readable as hgt,Writable as mgt,Duplex as ggt}from"stream";var mbe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{f6(n);let a=new fgt;_gt(a,n),Object.assign(a,{readable:ygt,writable:Sgt,duplex:Egt});let c=Cg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=vgt(c,o,i);return{subprocess:a,promise:l}},_gt=(t,e)=>{let r=wb(),n=wb(),i=wb(),s=Array.from({length:e.length-3},wb),o=wb(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},wb=()=>{let t=new pgt;return t.end(),t},ygt=()=>new hgt({read(){}}),Sgt=()=>new mgt({write(){}}),Egt=()=>new ggt({read(){},write(){}}),vgt=async(t,e,r)=>Ng(t,e,r);import{createReadStream as gbe,createWriteStream as _be}from"fs";import{Buffer as bgt}from"buffer";import{Readable as Rb,Writable as Tgt,Duplex as wgt}from"stream";var Sbe=(t,e)=>BO(Rgt,t,e,!1),Ab=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${yu[t]}.`)},ybe={fileNumber:Ab,generator:y6,asyncGenerator:y6,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:wgt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Rgt={input:{...ybe,fileUrl:({value:t})=>({stream:gbe(t)}),filePath:({value:{file:t}})=>({stream:gbe(t)}),webStream:({value:t})=>({stream:Rb.fromWeb(t)}),iterable:({value:t})=>({stream:Rb.from(t)}),asyncIterable:({value:t})=>({stream:Rb.from(t)}),string:({value:t})=>({stream:Rb.from(t)}),uint8Array:({value:t})=>({stream:Rb.from(bgt.from(t))})},output:{...ybe,fileUrl:({value:t})=>({stream:_be(t)}),filePath:({value:{file:t,append:e}})=>({stream:_be(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:Tgt.fromWeb(t)}),iterable:Ab,asyncIterable:Ab,string:Ab,uint8Array:Ab}};import{on as Agt,once as Ebe}from"events";import{PassThrough as xgt,getDefaultHighWaterMark as Igt}from"stream";import{finished as Tbe}from"stream/promises";function Df(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)w6(i);let e=t.some(({readableObjectMode:i})=>i),r=Pgt(t,e),n=new T6({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Pgt=(t,e)=>{if(t.length===0)return Igt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},T6=class extends xgt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(w6(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Ogt(this,this.#e,this.#s);let r=kgt({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(w6(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)}},Ogt=async(t,e,r)=>{KO(t,vbe);let n=new AbortController;try{await Promise.race([Cgt(t,n),Ngt(t,e,r,n)])}finally{n.abort(),KO(t,-vbe)}},Cgt=async(t,{signal:e})=>{try{await Tbe(t,{signal:e,cleanup:!0})}catch(r){throw wbe(t,r),r}},Ngt=async(t,e,r,{signal:n})=>{for await(let[i]of Agt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},w6=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},kgt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{KO(t,bbe);let a=new AbortController;try{await Promise.race([$gt(s,e,a),Lgt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Dgt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),KO(t,-bbe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?R6(t):Mgt(t))},$gt=async(t,e,{signal:r})=>{try{await t,r.aborted||R6(e)}catch(n){r.aborted||wbe(e,n)}},Lgt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await Tbe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Rbe(o)?i.add(e):Abe(t,o)}},Dgt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Ebe(t,i,{signal:s}),!t.readable)return Ebe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Mgt=t=>{t.writable&&t.end()},wbe=(t,e)=>{Rbe(e)?R6(t):Abe(t,e)},Rbe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",R6=t=>{(t.readable||t.writable)&&t.destroy()},Abe=(t,e)=>{t.destroyed||(t.once("error",Ugt),t.destroy(e))},Ugt=()=>{},KO=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},vbe=2,bbe=1;import{finished as xbe}from"stream/promises";var $g=(t,e)=>{t.pipe(e),Fgt(t,e),jgt(t,e)},Fgt=async(t,e)=>{if(!(Js(t)||Js(e))){try{await xbe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}A6(e)}},A6=t=>{t.writable&&t.end()},jgt=async(t,e)=>{if(!(Js(t)||Js(e))){try{await xbe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}x6(t)}},x6=t=>{t.readable&&t.destroy()};var Ibe=(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})=>Es.has(c)))qgt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Es.has(c)))zgt({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]:Df(s);$g(o,i)}},qgt=(t,e,r,n)=>{r==="output"?$g(t.stdio[n],e):$g(e,t.stdio[n]);let i=Bgt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Bgt=["stdin","stdout","stderr"],zgt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;Vgt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},Vgt=(t,{signal:e})=>{Js(t)&&Nf(t,Hgt,e)},Hgt=2;import{addAbortListener as Ygt}from"events";var Mf=[];Mf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Mf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Mf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var JO=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",I6=Symbol.for("signal-exit emitter"),P6=globalThis,Ggt=Object.defineProperty.bind(Object),O6=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(P6[I6])return P6[I6];Ggt(P6,I6,{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}},ZO=class{},Wgt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),C6=class extends ZO{onExit(){return()=>{}}load(){}unload(){}},N6=class extends ZO{#e=k6.platform==="win32"?"SIGINT":"SIGHUP";#r=new O6;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Mf)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(!JO(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 Mf)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,Mf.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 JO(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"&&JO(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)}},k6=globalThis.process,{onExit:Pbe,load:dir,unload:fir}=Wgt(JO(k6)?new N6(k6):new C6);var Obe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Pbe(()=>{t.kill()});Ygt(n,()=>{i()})};var Nbe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=cO(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=Kgt(r,n,i),{sourceStream:d,sourceError:f}=Zgt(t,l),{options:p,fileDescriptors:h}=ea.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},Kgt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=Jgt(t,e,...r),a=yO(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},Jgt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Cbe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||bG(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]=XP(r,...n);return{destination:e(Cbe)(i,s,o),pipeOptions:o}}if(ea.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}`)},Cbe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Zgt=(t,e)=>{try{return{sourceStream:xg(t,e)}}catch(r){return{sourceError:r}}};var $be=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Xgt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw $6({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Xgt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return x6(t),n;if(e!==void 0)return A6(r),e},$6=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Cg({error:t,command:kbe,escapedCommand:kbe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),kbe="source.pipe(destination)";var Lbe=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 Qgt}from"stream/promises";var Dbe=(t,e,r)=>{let n=XO.has(e)?t_t(t,e):e_t(t,e);return Nf(t,n_t,r.signal),Nf(e,i_t,r.signal),r_t(e),n},e_t=(t,e)=>{let r=Df([t]);return $g(r,e),XO.set(e,r),r},t_t=(t,e)=>{let r=XO.get(e);return r.add(t),r},r_t=async t=>{try{await Qgt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}XO.delete(t)},XO=new WeakMap,n_t=2,i_t=1;import{aborted as s_t}from"util";var Mbe=(t,e)=>t===void 0?[]:[o_t(t,e)],o_t=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await s_t(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw $6({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var QO=(t,...e)=>{if(gr(e[0]))return QO.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Nbe(t,...e),i=a_t({...n,destination:r});return i.pipe=QO.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},a_t=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=c_t(t,i);$be({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Dbe(e,s,d);return await Promise.race([Lbe(u),...Mbe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},c_t=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as m_t}from"timers/promises";import{on as l_t}from"events";import{getDefaultHighWaterMark as u_t}from"stream";var eC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return d_t(e,o),Fbe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},d_t=async(t,e)=>{try{await t}catch{}finally{e.abort()}},L6=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;f_t(e,o,t);let a=t.readableObjectMode&&!s;return Fbe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},f_t=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},Fbe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=l_t(t,"data",{signal:e.signal,highWaterMark:Ube,highWatermark:Ube});return p_t({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},D6=u_t(!0),Ube=D6,p_t=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=h_t({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*Lf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Tb(a)}},h_t=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[VO(t,r,!e),zO(t,i,!n,{})].filter(Boolean);var jbe=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=g_t({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([__t(t),d]);return}let f=p6(c,r),p=L6({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([y_t({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},g_t=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!WO({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=L6({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Zve(a,t,r,s)},__t=async t=>{await m_t(),t.readableFlowing===null&&t.resume()},y_t=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await $O(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await LO(r,{maxBuffer:s})):await Og(r,{maxBuffer:s})}catch(a){return qbe(ZEe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},M6=async t=>{try{return await t}catch(e){return qbe(e)}},qbe=({bufferedData:t})=>pye(t)?new Uint8Array(t):t;import{finished as S_t}from"stream/promises";var xb=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=E_t(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],S_t(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||T_t(a,e,r,n)}finally{o.abort()}},E_t=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&v_t(t,r,n),n},v_t=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{b_t(e,r),n.call(t,...i)}},b_t=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},T_t=(t,e,r,n)=>{if(!w_t(t,e,r,n))throw t},w_t=(t,e,r,n=!0)=>r.propagating?Bbe(t)||tC(t):(r.propagating=!0,U6(r,e)===n?Bbe(t):tC(t)),U6=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",tC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Bbe=t=>t?.code==="EPIPE";var zbe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>F6({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),F6=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=xb(t,e,l);if(U6(l,e)){await u;return}let[d]=await Promise.all([jbe({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 Vbe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Df([t,e].filter(Boolean)):void 0,Hbe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>F6({...R_t(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:A_t(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),R_t=({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}},A_t=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as x_t}from"events";var Gbe=t=>bg(t,"ipc"),Wbe=(t,e)=>{let r=aO(t);Xo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Ybe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Gbe(s),a=Sc(e,"ipc"),c=Sc(r,"ipc");for await(let l of b6({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(XEe(t,i,c),i.push(l)),o&&Wbe(l,s);return i},Kbe=async(t,e)=>(await Promise.allSettled([t]),e);var Jbe=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 v=rbe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=zbe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),w=Hbe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),P=[],x=Ybe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),R=I_t(m,t,S),O=P_t(h,S);try{return await Promise.race([Promise.all([{},ibe(v),Promise.all(g),w,x,OEe(t,d),...R,...O]),_,O_t(t,y),...REe(t,s,f,y),...GSe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...TEe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(A){return f.terminationReason??="other",Promise.all([{error:A},v,Promise.all(g.map(b=>M6(b))),M6(w),Kbe(x,P),Promise.allSettled(R),Promise.allSettled(O)])}},I_t=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:xb(n,i,r)),P_t=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Qs(s,{checkOpen:!1})&&!Js(s)).map(({type:i,value:s,stream:o=s})=>xb(o,n,e,{isSameDirection:Es.has(i),stopOnExit:i==="native"}))),O_t=async(t,{signal:e})=>{let[r]=await x_t(t,"error",{signal:e});throw r};var Zbe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),Ib=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Qo();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Lg=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 C_t}from"stream";import{callbackify as N_t}from"util";import{finished as Xbe}from"stream/promises";var j6=async t=>{if(t!==void 0)try{await q6(t)}catch{}},Qbe=async t=>{if(t!==void 0)try{await B6(t)}catch{}},q6=async t=>{await Xbe(t,{cleanup:!0,readable:!1,writable:!0})},B6=async t=>{await Xbe(t,{cleanup:!0,readable:!0,writable:!1})},rC=async(t,e)=>{if(await t,e)throw e},nC=(t,e,r)=>{r&&!tC(r)?t.destroy(r):e&&t.destroy()};var eTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||$i.has(r),{subprocessStdout:a,waitReadableDestroy:c}=z6(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=V6(a,o),{read:f,onStdoutDataDone:p}=H6({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new C_t({read:f,destroy:N_t(W6.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return G6({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},z6=(t,e,r)=>{let n=xg(t,e),i=Ib(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},V6=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:D6},H6=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Qo(),o=eC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){k_t(this,o,s)},onStdoutDataDone:s}},k_t=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},G6=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await B6(t),await n,await j6(i),await e,r.readable&&r.push(null)}catch(s){await j6(i),tTe(r,s)}},W6=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Lg(r,e)&&(tTe(t,n),await rC(e,n))},tTe=(t,e)=>{nC(t,t.readable,e)};import{Writable as $_t}from"stream";import{callbackify as rTe}from"util";var nTe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=Y6(t,r,e),o=new $_t({...K6(n,t,i),destroy:rTe(Z6.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return J6(n,o),o},Y6=(t,e,r)=>{let n=yO(t,e),i=Ib(r,n,"writableFinal"),s=Ib(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},K6=(t,e,r)=>({write:L_t.bind(void 0,t),final:rTe(D_t.bind(void 0,t,e,r))}),L_t=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},D_t=async(t,e,r)=>{await Lg(r,e)&&(t.writable&&t.end(),await e)},J6=async(t,e,r)=>{try{await q6(t),e.writable&&e.end()}catch(n){await Qbe(r),iTe(e,n)}},Z6=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Lg(r,e),await Lg(n,e)&&(iTe(t,i),await rC(e,i))},iTe=(t,e)=>{nC(t,t.writable,e)};import{Duplex as M_t}from"stream";import{callbackify as U_t}from"util";var sTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||$i.has(r),{subprocessStdout:c,waitReadableDestroy:l}=z6(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=Y6(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=V6(c,a),{read:_,onStdoutDataDone:y}=H6({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new M_t({read:_,...K6(u,t,d),destroy:U_t(F_t.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 G6({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),J6(u,v,c),v},F_t=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([W6({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),Z6({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var X6=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||$i.has(e),o=xg(t,r),a=eC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return j_t(a,o,t)},j_t=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var oTe=(t,{encoding:e})=>{let r=Zbe();t.readable=eTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=nTe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=sTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=X6.bind(void 0,t,e),t[Symbol.asyncIterator]=X6.bind(void 0,t,e,{})};var aTe=(t,e)=>{for(let[r,n]of B_t){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},q_t=(async()=>{})().constructor.prototype,B_t=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(q_t,t)]);var cTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=H_t(t,e,r),{subprocess:f,promise:p}=W_t({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=QO.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),aTe(f,p),ea.set(f,{options:u,fileDescriptors:d}),f},H_t=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=lO(t,e,r),{file:a,commandArguments:c,options:l}=PO(t,e,r),u=G_t(l),d=Sbe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},G_t=({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}},W_t=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=V_t(...OO(t,e,r))}catch(h){return mbe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;z_t(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Ibe(c,a,l),Obe(c,r,l);let d={},f=Qo();c.kill=VSe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Vbe(c,r),oTe(c,r),fbe(c,r);let p=Y_t({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}},Y_t=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 Jbe({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,w)=>vc(g,e,w)),v=vc(m,e,"all"),S=K_t({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Ng(S,n,e)},K_t=({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?bb({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 ta,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):UO({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var iC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,J_t(n,t[n],i)]));return{...t,...r}},J_t=(t,e,r)=>Z_t.has(t)&&gr(e)&&gr(r)?{...e,...r}:r,Z_t=new Set(["env",...IG]);var Su=(t,e,r,n)=>{let i=(o,a,c)=>Su(o,a,r,c),s=(...o)=>X_t({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},X_t=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(gr(s))return i(t,iC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Q_t({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?obe(a,c,l):cTe(a,c,l,i)},Q_t=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=Sye(e)?Eye(e,r):[e,...r],[o,a,c]=XP(...s),l=iC(iC(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 lTe=({file:t,commandArguments:e})=>dTe(t,e),uTe=({file:t,commandArguments:e})=>({...dTe(t,e),isSync:!0}),dTe=(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]=eyt(t);return{file:r,commandArguments:n}},eyt=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(tyt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},tyt=/ +/g;var fTe=(t,e,r)=>{t.sync=e(ryt,r),t.s=t.sync},pTe=({options:t})=>hTe(t),ryt=({options:t})=>({...hTe(t),isSync:!0}),hTe=t=>({options:{...nyt(t),...t}}),nyt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},mTe={preferLocal:!0};var gTe=Su(()=>({})),rar=Su(()=>({isSync:!0})),_Te=Su(lTe),nar=Su(uTe),iar=Su(xEe),sar=Su(pTe,{},mTe,fTe),{sendMessage:oar,getOneMessage:aar,getEachMessage:car,getCancelSignal:lar}=pbe();import{Transform as iyt}from"stream";var syt=["NETLIFY_AI_GATEWAY_KEY"];function oyt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...syt])]}function ayt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function cyt(){let e=oyt().map(r=>process.env[r]).filter(r=>!(!r||ayt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function vs(t){if(typeof t!="string")return t;let e=cyt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(lyt(n),"g");r=r.replace(i,"******")}),r}function lyt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Pb=class extends iyt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=vs(i);n(null,s)}},sC=Symbol("maskedWrite");function yTe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[sC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?vs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[sC]=!0,process.stdout.write=r}if(!process.stderr.write[sC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?vs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[sC]=!0,process.stderr.write=r}}}var STe=!1,ETe=()=>{STe=!0},hi=()=>STe;var Ob=null,vTe=t=>(Ob&&Ob.destroy(),Ob=new bc({totalAllowedTime:t}),Ob),bTe=()=>Ob;var bc=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&&hi())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 JP({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{xe.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 TTe={name:"@netlify/agent-runner-cli",type:"module",version:"1.146.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:{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: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.2","@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.197","@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.1.5","@netlify/otel":"^6.0.3","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var pyt=dyt(import.meta.url),hyt=Tc.dirname(pyt),myt=fyt(import.meta.url),Dg=ve("shell"),Q6=new Set,wTe={preferLocal:!0},Hn=(t,e,r)=>{let[n,i]=gyt(e,r),s={...wTe,...i},o=gTe(t,n,s);ATe(o,s),PTe(o);let a=r?.idleTimeout;return a&&a>0&&ITe(o,a),o},RTe=(t,e)=>{let r={...wTe,...e},n=_Te(t,r);return ATe(n,r),PTe(n),e?.idleTimeout&&e.idleTimeout>0&&ITe(n,e.idleTimeout),n},gyt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},ATe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(wc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Pb).pipe(wc.stdout),t.stderr?.pipe(new Pb).pipe(wc.stderr);return}t.stdout?.pipe(wc.stdout),t.stderr?.pipe(wc.stderr)},e3=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(wc.kill(-t.pid,e),Dg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Dg.error("Error killing process:",r),!1}},xTe=t=>e3(t,"SIGKILL"),ITe=(t,e)=>{let r=null,n=()=>{Dg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),e3(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dg.log(`Force killing idle process ${t.pid}`),xTe(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)},PTe=t=>{Q6.add(t);let e=bTe();if(e){let r=e.onTimesUp(()=>{Dg.log(`Global timer expired, killing process ${t.pid}`),e3(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dg.log(`Force killing process ${t.pid} after timeout`),xTe(t))},5e3)});t.on("exit",()=>{Q6.delete(t),r()}),t.on("error",()=>{Q6.delete(t),r()})}};function na(t,e){if(!wc.env.NETLIFY_LOCAL_MODE)try{let i=myt.resolve(TTe.name),s=Tc.dirname(i);for(;s!==Tc.dirname(s);){let o=Tc.dirname(s);if(Tc.basename(o)==="node_modules"){let a=Tc.join(o,".bin",e);if(oC.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(wc.env.NODE_PATH){let i=Tc.join(wc.env.NODE_PATH,".bin",e);if(oC.existsSync(i))return i}let r=Tc.join(t,"node_modules",".bin",e);if(oC.existsSync(r))return r;let n=Tc.join(hyt,"..","node_modules",".bin",e);if(oC.existsSync(n))return n}import uL from"process";import{fileURLToPath as sCt}from"url";import{createRequire as oCt}from"module";import dL from"path";var _yt="__netlify__getTracer",yyt="__netlify__shutdownTracers",ft=(t,e)=>globalThis[_yt]?.(t,e),OTe=async()=>globalThis[yyt]?.();function Uf(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 QOt}from"timers/promises";import hEt from"process";var CTe=typeof globalThis=="object"?globalThis:global;var Rc="1.9.0";var NTe=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function Syt(t){var e=new Set([t]),r=new Set,n=t.match(NTe);if(!n)return function(){return!1};var i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null)return function(c){return c===t};function s(a){return r.add(a),!1}function o(a){return e.add(a),!0}return function(c){if(e.has(c))return!0;if(r.has(c))return!1;var l=c.match(NTe);if(!l)return s(c);var u={major:+l[1],minor:+l[2],patch:+l[3],prerelease:l[4]};return u.prerelease!=null||i.major!==u.major?s(c):i.major===0?i.minor===u.minor&&i.patch<=u.patch?o(c):s(c):i.minor<=u.minor?o(c):s(c)}}var kTe=Syt(Rc);var Eyt=Rc.split(".")[0],Cb=Symbol.for("opentelemetry.js.api."+Eyt),Nb=CTe;function Eu(t,e,r,n){var i;n===void 0&&(n=!1);var s=Nb[Cb]=(i=Nb[Cb])!==null&&i!==void 0?i:{version:Rc};if(!n&&s[t]){var o=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+t);return r.error(o.stack||o.message),!1}if(s.version!==Rc){var o=new Error("@opentelemetry/api: Registration of version v"+s.version+" for "+t+" does not match previously registered API v"+Rc);return r.error(o.stack||o.message),!1}return s[t]=e,r.debug("@opentelemetry/api: Registered a global for "+t+" v"+Rc+"."),!0}function eo(t){var e,r,n=(e=Nb[Cb])===null||e===void 0?void 0:e.version;if(!(!n||!kTe(n)))return(r=Nb[Cb])===null||r===void 0?void 0:r[t]}function vu(t,e){e.debug("@opentelemetry/api: Unregistering a global for "+t+" v"+Rc+".");var r=Nb[Cb];r&&delete r[t]}var vyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},byt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},$Te=(function(){function t(e){this._namespace=e.namespace||"DiagComponentLogger"}return t.prototype.debug=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("debug",this._namespace,e)},t.prototype.error=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("error",this._namespace,e)},t.prototype.info=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("info",this._namespace,e)},t.prototype.warn=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("warn",this._namespace,e)},t.prototype.verbose=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("verbose",this._namespace,e)},t})();function kb(t,e,r){var n=eo("diag");if(n)return r.unshift(e),n[t].apply(n,byt([],vyt(r),!1))}var Gn;(function(t){t[t.NONE=0]="NONE",t[t.ERROR=30]="ERROR",t[t.WARN=50]="WARN",t[t.INFO=60]="INFO",t[t.DEBUG=70]="DEBUG",t[t.VERBOSE=80]="VERBOSE",t[t.ALL=9999]="ALL"})(Gn||(Gn={}));function LTe(t,e){t<Gn.NONE?t=Gn.NONE:t>Gn.ALL&&(t=Gn.ALL),e=e||{};function r(n,i){var s=e[n];return typeof s=="function"&&t>=i?s.bind(e):function(){}}return{error:r("error",Gn.ERROR),warn:r("warn",Gn.WARN),info:r("info",Gn.INFO),debug:r("debug",Gn.DEBUG),verbose:r("verbose",Gn.VERBOSE)}}var Tyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},wyt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},Ryt="diag",Li=(function(){function t(){function e(i){return function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];var a=eo("diag");if(a)return a[i].apply(a,wyt([],Tyt(s),!1))}}var r=this,n=function(i,s){var o,a,c;if(s===void 0&&(s={logLevel:Gn.INFO}),i===r){var l=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return r.error((o=l.stack)!==null&&o!==void 0?o:l.message),!1}typeof s=="number"&&(s={logLevel:s});var u=eo("diag"),d=LTe((a=s.logLevel)!==null&&a!==void 0?a:Gn.INFO,i);if(u&&!s.suppressOverrideMessage){var f=(c=new Error().stack)!==null&&c!==void 0?c:"<failed to generate stacktrace>";u.warn("Current logger will be overwritten from "+f),d.warn("Current logger will overwrite one already registered from "+f)}return Eu("diag",d,r,!0)};r.setLogger=n,r.disable=function(){vu(Ryt,r)},r.createComponentLogger=function(i){return new $Te(i)},r.verbose=e("verbose"),r.debug=e("debug"),r.info=e("info"),r.warn=e("warn"),r.error=e("error")}return t.instance=function(){return this._instance||(this._instance=new t),this._instance},t})();var Ayt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},xyt=function(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},DTe=(function(){function t(e){this._entries=e?new Map(e):new Map}return t.prototype.getEntry=function(e){var r=this._entries.get(e);if(r)return Object.assign({},r)},t.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(e){var r=Ayt(e,2),n=r[0],i=r[1];return[n,i]})},t.prototype.setEntry=function(e,r){var n=new t(this._entries);return n._entries.set(e,r),n},t.prototype.removeEntry=function(e){var r=new t(this._entries);return r._entries.delete(e),r},t.prototype.removeEntries=function(){for(var e,r,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var s=new t(this._entries);try{for(var o=xyt(n),a=o.next();!a.done;a=o.next()){var c=a.value;s._entries.delete(c)}}catch(l){e={error:l}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}return s},t.prototype.clear=function(){return new t},t})();var Qar=Li.instance();function MTe(t){return t===void 0&&(t={}),new DTe(new Map(Object.entries(t)))}function aC(t){return Symbol.for(t)}var Iyt=(function(){function t(e){var r=this;r._currentContext=e?new Map(e):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,i){var s=new t(r._currentContext);return s._currentContext.set(n,i),s},r.deleteValue=function(n){var i=new t(r._currentContext);return i._currentContext.delete(n),i}}return t})(),UTe=new Iyt;var FTe={get:function(t,e){if(t!=null)return t[e]},keys:function(t){return t==null?[]:Object.keys(t)}},jTe={set:function(t,e,r){t!=null&&(t[e]=r)}};var Pyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},Oyt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},qTe=(function(){function t(){}return t.prototype.active=function(){return UTe},t.prototype.with=function(e,r,n){for(var i=[],s=3;s<arguments.length;s++)i[s-3]=arguments[s];return r.call.apply(r,Oyt([n],Pyt(i),!1))},t.prototype.bind=function(e,r){return r},t.prototype.enable=function(){return this},t.prototype.disable=function(){return this},t})();var Cyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},Nyt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},t3="context",kyt=new qTe,bu=(function(){function t(){}return t.getInstance=function(){return this._instance||(this._instance=new t),this._instance},t.prototype.setGlobalContextManager=function(e){return Eu(t3,e,Li.instance())},t.prototype.active=function(){return this._getContextManager().active()},t.prototype.with=function(e,r,n){for(var i,s=[],o=3;o<arguments.length;o++)s[o-3]=arguments[o];return(i=this._getContextManager()).with.apply(i,Nyt([e,r,n],Cyt(s),!1))},t.prototype.bind=function(e,r){return this._getContextManager().bind(e,r)},t.prototype._getContextManager=function(){return eo(t3)||kyt},t.prototype.disable=function(){this._getContextManager().disable(),vu(t3,Li.instance())},t})();var cC;(function(t){t[t.NONE=0]="NONE",t[t.SAMPLED=1]="SAMPLED"})(cC||(cC={}));var r3="0000000000000000",n3="00000000000000000000000000000000",BTe={traceId:n3,spanId:r3,traceFlags:cC.NONE};var Tu=(function(){function t(e){e===void 0&&(e=BTe),this._spanContext=e}return t.prototype.spanContext=function(){return this._spanContext},t.prototype.setAttribute=function(e,r){return this},t.prototype.setAttributes=function(e){return this},t.prototype.addEvent=function(e,r){return this},t.prototype.addLink=function(e){return this},t.prototype.addLinks=function(e){return this},t.prototype.setStatus=function(e){return this},t.prototype.updateName=function(e){return this},t.prototype.end=function(e){},t.prototype.isRecording=function(){return!1},t.prototype.recordException=function(e,r){},t})();var i3=aC("OpenTelemetry Context Key SPAN");function lC(t){return t.getValue(i3)||void 0}function zTe(){return lC(bu.getInstance().active())}function $b(t,e){return t.setValue(i3,e)}function VTe(t){return t.deleteValue(i3)}function HTe(t,e){return $b(t,new Tu(e))}function uC(t){var e;return(e=lC(t))===null||e===void 0?void 0:e.spanContext()}var $yt=/^([0-9a-f]{32})$/i,Lyt=/^[0-9a-f]{16}$/i;function Dyt(t){return $yt.test(t)&&t!==n3}function Myt(t){return Lyt.test(t)&&t!==r3}function dC(t){return Dyt(t.traceId)&&Myt(t.spanId)}function GTe(t){return new Tu(t)}var s3=bu.getInstance(),fC=(function(){function t(){}return t.prototype.startSpan=function(e,r,n){n===void 0&&(n=s3.active());var i=!!r?.root;if(i)return new Tu;var s=n&&uC(n);return Uyt(s)&&dC(s)?new Tu(s):new Tu},t.prototype.startActiveSpan=function(e,r,n,i){var s,o,a;if(!(arguments.length<2)){arguments.length===2?a=r:arguments.length===3?(s=r,a=n):(s=r,o=n,a=i);var c=o??s3.active(),l=this.startSpan(e,s,c),u=$b(c,l);return s3.with(u,a,void 0,l)}},t})();function Uyt(t){return typeof t=="object"&&typeof t.spanId=="string"&&typeof t.traceId=="string"&&typeof t.traceFlags=="number"}var Fyt=new fC,WTe=(function(){function t(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}return t.prototype.startSpan=function(e,r,n){return this._getTracer().startSpan(e,r,n)},t.prototype.startActiveSpan=function(e,r,n,i){var s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)},t.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):Fyt},t})();var YTe=(function(){function t(){}return t.prototype.getTracer=function(e,r,n){return new fC},t})();var jyt=new YTe,o3=(function(){function t(){}return t.prototype.getTracer=function(e,r,n){var i;return(i=this.getDelegateTracer(e,r,n))!==null&&i!==void 0?i:new WTe(this,e,r,n)},t.prototype.getDelegate=function(){var e;return(e=this._delegate)!==null&&e!==void 0?e:jyt},t.prototype.setDelegate=function(e){this._delegate=e},t.prototype.getDelegateTracer=function(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(e,r,n)},t})();var wu;(function(t){t[t.INTERNAL=0]="INTERNAL",t[t.SERVER=1]="SERVER",t[t.CLIENT=2]="CLIENT",t[t.PRODUCER=3]="PRODUCER",t[t.CONSUMER=4]="CONSUMER"})(wu||(wu={}));var ia;(function(t){t[t.UNSET=0]="UNSET",t[t.OK=1]="OK",t[t.ERROR=2]="ERROR"})(ia||(ia={}));var Ac=bu.getInstance();var a3=Li.instance();var KTe=(function(){function t(){}return t.prototype.inject=function(e,r){},t.prototype.extract=function(e,r){return e},t.prototype.fields=function(){return[]},t})();var c3=aC("OpenTelemetry Baggage Key");function l3(t){return t.getValue(c3)||void 0}function JTe(){return l3(bu.getInstance().active())}function ZTe(t,e){return t.setValue(c3,e)}function XTe(t){return t.deleteValue(c3)}var u3="propagation",qyt=new KTe,QTe=(function(){function t(){this.createBaggage=MTe,this.getBaggage=l3,this.getActiveBaggage=JTe,this.setBaggage=ZTe,this.deleteBaggage=XTe}return t.getInstance=function(){return this._instance||(this._instance=new t),this._instance},t.prototype.setGlobalPropagator=function(e){return Eu(u3,e,Li.instance())},t.prototype.inject=function(e,r,n){return n===void 0&&(n=jTe),this._getGlobalPropagator().inject(e,r,n)},t.prototype.extract=function(e,r,n){return n===void 0&&(n=FTe),this._getGlobalPropagator().extract(e,r,n)},t.prototype.fields=function(){return this._getGlobalPropagator().fields()},t.prototype.disable=function(){vu(u3,Li.instance())},t.prototype._getGlobalPropagator=function(){return eo(u3)||qyt},t})();var Lb=QTe.getInstance();var d3="trace",ewe=(function(){function t(){this._proxyTracerProvider=new o3,this.wrapSpanContext=GTe,this.isSpanContextValid=dC,this.deleteSpan=VTe,this.getSpan=lC,this.getActiveSpan=zTe,this.getSpanContext=uC,this.setSpan=$b,this.setSpanContext=HTe}return t.getInstance=function(){return this._instance||(this._instance=new t),this._instance},t.prototype.setGlobalTracerProvider=function(e){var r=Eu(d3,this._proxyTracerProvider,Li.instance());return r&&this._proxyTracerProvider.setDelegate(e),r},t.prototype.getTracerProvider=function(){return eo(d3)||this._proxyTracerProvider},t.prototype.getTracer=function(e,r){return this.getTracerProvider().getTracer(e,r)},t.prototype.disable=function(){vu(d3,Li.instance()),this._proxyTracerProvider=new o3},t})();var Db=ewe.getInstance();var zyt=function(t,e){e.recordException(t),e.setStatus({code:ia.ERROR})};var Ff=(function(){function t(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}return t.prototype.withActiveSpan=function(e,r,n,i){var s=twe(r,n,i),o=s.opts,a=s.ctx,c=s.fn;return this._tracer.startActiveSpan(e,o,a,function(l){return rwe(l,o,c)})},t.prototype.withSpan=function(e,r,n,i){var s=twe(r,n,i),o=s.opts,a=s.ctx,c=s.fn,l=this._tracer.startSpan(e,o,a);return rwe(l,o,c)},t})();function twe(t,e,r){var n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??Ac.active(),{opts:n,ctx:i,fn:s}}function rwe(t,e,r){var n,i=(n=e.onException)!==null&&n!==void 0?n:zyt,s=function(a){throw i(a,t),t.end(),a};try{var o=r(t);return typeof o?.then=="function"?o.then(function(a){return t.end(),a},s):(t.end(),o)}catch(a){throw s(a)}}cW();Qe();var aT=class{emit(e){}enabled(){return!1}},mRe=new aT;var cT=Symbol.for("io.opentelemetry.js.api.logs"),Gg=globalThis;function gRe(t,e,r){return n=>n===t?e:r}var lW=1;var uW=class{getLogger(e,r,n){return new aT}},nN=new uW;var iN=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):mRe}};var lT=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new iN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:nN}_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 sN=class t{constructor(){this._proxyLoggerProvider=new lT}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return Gg[cT]?this.getLoggerProvider():(Gg[cT]=gRe(lW,e,nN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=Gg[cT])===null||e===void 0?void 0:e.call(Gg,lW))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete Gg[cT],this._proxyLoggerProvider=new lT}};var _Re=sN.getInstance();function yRe(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 SRe(t){t.forEach(e=>e.disable())}function dW(t){let e=t.tracerProvider||Pr.getTracerProvider(),r=t.meterProvider||Wb.getMeterProvider(),n=t.loggerProvider||_Re.getLoggerProvider(),i=t.instrumentations?.flat()??[];return yRe(i,e,r,n),()=>{SRe(i)}}cr();var xN=$n(xW(),1);cr();var XRe=t=>{throw TypeError(t)},CW=(t,e,r)=>e.has(t)||XRe("Cannot "+r),AN=(t,e,r)=>(CW(t,e,"read from private field"),r?r.call(t):e.get(t)),IW=(t,e,r)=>e.has(t)?XRe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),KRe=(t,e,r,n)=>(CW(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),pEt=(t,e,r)=>(CW(t,e,"access private method"),r),JRe="__netlify__getTracer",mEt="__netlify__shutdownTracers",gEt="__nfOTLPTrace",dT,fT,OW,QRe,_Et=class{constructor(){IW(this,OW),IW(this,dT),IW(this,fT),KRe(this,dT,new da(pEt(this,OW,QRe),this)),KRe(this,fT,a3.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(AN(this,fT).debug(`export ${t.length.toString()} spans`),AN(this,dT).isCalled){e({code:Yt.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(gEt,JSON.stringify(yEt(t))),e({code:Yt.SUCCESS})}shutdown(){return AN(this,dT).call()}};dT=new WeakMap;fT=new WeakMap;OW=new WeakSet;QRe=function(){return AN(this,fT).debug("Shutting down"),Promise.resolve()};function yEt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:RN(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||wu.SERVER,startTimeUnixNano:PW(e.startTime),endTimeUnixNano:PW(e.endTime),attributes:RN(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:PW(n.time),attributes:RN(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:RN(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function RN(t){return Object.keys(t).map(e=>eAe(e,t[e]))}function eAe(t,e){return{key:t,value:tAe(e)}}function tAe(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(tAe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>eAe(r,n))}}:{}}function PW(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var ZRe={name:"@netlify/otel",version:"6.0.3",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":"^4.4.6",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.0","@opentelemetry/core":"2.7.1","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/resources":"2.7.1","@opentelemetry/sdk-trace-node":"2.7.1"}},rAe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,JRe))return;let e=hEt.version.slice(1),r=rN({"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??[SEt()],i=new xN.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Cc});let s=t.instrumentations??[];dW({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,JRe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new Ff(Db.getTracer(a,c)):new Ff(Db.getTracer(ZRe.name,ZRe.version))}}),Object.defineProperty(globalThis,mEt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},SEt=()=>new xN.SimpleSpanProcessor(new _Et);cr();var pT=$n(xW(),1);import*as IN from"diagnostics_channel";var nAe=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?ia.ERROR:ia.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 Ff?t:new Ff(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){IN.subscribe(t,e);let r=()=>IN.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:wu.CLIENT},Ac.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:ia.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 mke=$n(pke(),1);var cL=ve("tracing"),hke=8e3,eCt=5e3,Aw=async(t=eCt)=>{try{await Promise.race([OTe(),QOt(t)])}catch(e){cL.warn("Failed to flush tracers on shutdown",e)}},gke=async(t,e,r)=>{if(!ft()){let n=[new pT.SimpleSpanProcessor(new m9),new pT.SimpleSpanProcessor(new mke.OTLPTraceExporter({url:r.exporterUrl}))];await rAe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new nAe({skipHeaders:!0})]})}return r.traceparent?(Lb.setGlobalPropagator(new Cc),Lb.extract(Ac.active(),{traceparent:r.traceparent,isRemote:!0})):Ac.active()};function jt(t,e,r){return cL.log(`\u23F3 TRACE: ${e} starting...`),Uf(t,e,r)}var m9=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(", ")}]`:"";cL.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&cL.log(` \u274C Error: ${e.status.message}`)}};function g9(){return lt().captureLlmContentEnabled}function _ke(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function lL(t,e,r){let n={role:t,parts:[{type:"text",content:vs(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}function yke(t,e,r,n){if(!t.length)return;let i=ft();if(!i)return;let s=g9(),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.title||a.type||`step-${a.id??c}`,f=a.type==="tool_use"||a.type==="tool_result",p=a.message?a.message.length>hke?`${a.message.slice(0,hke)}\u2026`:a.message:void 0;i.startSpan(d,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":d,"gen_ai.operation.name":f?"execute_tool":"chat",...f?{"gen_ai.tool.name":d}:{},"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&&p?f?{"gen_ai.tool.call.result":vs(p)}:{"gen_ai.output.messages":lL("assistant",p)}:{}}}).end(u)})}import{readdir as tCt,rm as rCt}from"fs/promises";import{join as nCt}from"path";async function Ske(t,e=[]){let n=(await tCt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>rCt(nCt(t,i),{recursive:!0,force:!0})))}var iCt=700,Eke=t=>t.mode==="create"&&(t.accountType===El||t.enforcedAICreditsRemaining!=null&&t.enforcedAICreditsRemaining<=iCt);var aCt=dL.dirname(sCt(import.meta.url)),vke=oCt(import.meta.url),cCt=dL.resolve(aCt,"scripts/scaffold.js"),lCt="scripts/scaffold.js",uCt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,_9=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},dCt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),fCt=t=>{let e=_9(t);return e==="node"||e.endsWith("/node")},Xc=t=>{if(typeof t!="string")return!1;let e=t.match(uCt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&dCt(_9(e[r]));)r+=1;if(r>=e.length||!fCt(e[r]))return!1;let n=e[r+1];return n?_9(n).includes(lCt):!1},z_=ve("create_stage"),bke="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.",pCt=`${bke}
581
+ if (condition) { yield value; }`)};import{Buffer as bmt}from"buffer";import{StringDecoder as Tmt}from"string_decoder";var VO=(t,e,r)=>{if(r)return;if(t)return{transform:wmt.bind(void 0,new TextEncoder)};let n=new Tmt(e);return{transform:Rmt.bind(void 0,n),final:Amt.bind(void 0,n)}},wmt=function*(t,e){bmt.isBuffer(e)?yield yc(e):typeof e=="string"?yield t.encode(e):yield e},Rmt=function*(t,e){yield Ir(e)?t.write(e):e},Amt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Vve}from"util";var g6=Vve(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),HO=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Imt}=e[r];for await(let i of n(t))yield*HO(i,e,r+1)},Hve=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*xmt(r,Number(e),t)},xmt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*HO(n,r,e+1)},Gve=Vve(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Imt=function*(t){yield t};var _6=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Wve=(t,e)=>[...e.flatMap(r=>[...Lf(r,t,0)]),...Tb(t)],Lf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Omt}=e[r];for(let i of n(t))yield*Lf(i,e,r+1)},Tb=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Pmt(r,Number(e),t)},Pmt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Lf(n,r,e+1)},Omt=function*(t){yield t};var y6=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Kve(t,o,s),l=$f(e),u=$f(r),d=l?g6.bind(void 0,HO,a):_6.bind(void 0,Lf),f=l||u?g6.bind(void 0,Hve,a):_6.bind(void 0,Tb),p=l||u?Gve.bind(void 0,a):void 0;return{stream:new Cmt({writableObjectMode:n,writableHighWaterMark:Yve(n),readableObjectMode:i,readableHighWaterMark:Yve(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},GO=(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=Kve(o,r,a);t=Wve(c,t)}return t},Kve=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:qve(n,a)},VO(r,o,n),zO(r,s,n,c),{transform:t,final:e},{transform:Bve(i,a)},jve({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var Jve=(t,e)=>{for(let r of Nmt(t))kmt(t,r,e)},Nmt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),kmt=(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 ${yu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>$mt(a,n));r.input=pb(o)},$mt=(t,e)=>{let r=GO(t,e,"utf8",!0);return Lmt(r),pb(r)},Lmt=t=>{let e=t.find(r=>typeof r!="string"&&!Ir(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 Fmt,appendFileSync as jmt}from"fs";var WO=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&bg(r,n)&&!$i.has(e)&&Dmt(n)&&(t.some(({type:i,value:s})=>i==="native"&&Mmt.has(s))||t.every(({type:i})=>Es.has(i))),Dmt=t=>t===1||t===2,Mmt=new Set(["pipe","overlapped"]),Zve=async(t,e,r,n)=>{for await(let i of t)Umt(e)||Qve(i,r,n)},Xve=(t,e,r)=>{for(let n of t)Qve(n,e,r)},Umt=t=>t._readableState.pipes.length>0,Qve=(t,e,r)=>{let n=aO(t);Xo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var ebe=({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)=>qmt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},qmt=({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=tve(t,s,d),p=yc(f),{stdioItems:h,objectMode:m}=e[r],_=Bmt([p],h,c,n),{serializedResult:y,finalResult:v=y}=zmt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});Vmt({serializedResult:y,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let S=a[r]?v:void 0;try{return n.error===void 0&&Hmt(y,h,i),S}catch(g){return n.error=g,S}},Bmt=(t,e,r,n)=>{try{return GO(t,e,r,!1)}catch(i){return n.error=i,t}},zmt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:pb(t)};let o=mye(t,r);return n[s]?{serializedResult:o,finalResult:m6(o,!i[s],e)}:{serializedResult:o}},Vmt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!WO({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=m6(t,!1,o);try{Xve(a,e,n)}catch(c){r.error??=c}},Hmt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>qO.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?jmt(n,t):(r.add(s),Fmt(n,t))}};var tbe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,vc(e,r,"all")]:Array.isArray(e)?[vc(t,r,"all"),...e]:Ir(t)&&Ir(e)?wG([t,e]):`${t}${e}`};import{once as S6}from"events";var rbe=async(t,e)=>{let[r,n]=await Gmt(t);return e.isForcefullyTerminated??=!1,[r,n]},Gmt=async t=>{let[e,r]=await Promise.allSettled([S6(t,"spawn"),S6(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?nbe(t):r.value},nbe=async t=>{try{return await S6(t,"exit")}catch{return nbe(t)}},ibe=async t=>{let[e,r]=await t;if(!Wmt(e,r)&&E6(e,r))throw new Zs;return[e,r]},Wmt=(t,e)=>t===void 0&&e===void 0,E6=(t,e)=>t!==0||e!==null;var sbe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=Ymt(t,e,r),o=s?.code==="ETIMEDOUT",a=eve(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},Ymt=(t,e,r)=>t!==void 0?t:E6(e,r)?new Zs:void 0;var obe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=Jmt(t,e,r),d=Qmt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Ng(d,c,l)},Jmt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=lO(t,e,r),a=Zmt(r),{file:c,commandArguments:l,options:u}=PO(t,e,a);Xmt(u);let d=Dve(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Zmt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Xmt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&YO("ipcInput"),t&&YO("ipc: true"),r&&YO("detached: true"),n&&YO("cancelSignal")},YO=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},Qmt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=egt({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}=sbe(c,r),{output:h,error:m=l}=ebe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>vc(v,r,S)),y=vc(tbe(h,r),r,"all");return rgt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},egt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Jve(s,r);let a=tgt(r);return Kmt(...OO(t,e,a))}catch(a){return Cg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},tgt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:MO(e)}),rgt=({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?UO({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):bb({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 z_t}from"events";import{spawn as V_t}from"child_process";import dbe from"process";import{once as v6,on as ngt}from"events";var abe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Rg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:TO(t)}),igt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),igt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{SO(e,i);let s=_u(t,e,r),o=new AbortController;try{return await Promise.race([sgt(s,n,o),ogt(s,r,o),agt(s,r,o)])}catch(a){throw Ag(t),a}finally{o.abort(),EO(e,i)}},sgt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await v6(t,"message",{signal:r});return n}for await(let[n]of ngt(t,"message",{signal:r}))if(e(n))return n},ogt=async(t,e,{signal:r})=>{await v6(t,"disconnect",{signal:r}),WSe(e)},agt=async(t,e,{signal:r})=>{let[n]=await v6(t,"strict:error",{signal:r});throw gO(n,e)};import{once as lbe,on as cgt}from"events";var ube=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>b6({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),b6=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Rg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:TO(t)}),SO(e,s);let o=_u(t,e,r),a=new AbortController,c={};return lgt(t,o,a),ugt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),dgt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},lgt=async(t,e,r)=>{try{await lbe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},ugt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await lbe(t,"strict:error",{signal:r.signal});n.error=gO(i,e),r.abort()}catch{}},dgt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of cgt(r,"message",{signal:s.signal}))cbe(o),yield c}catch{cbe(o)}finally{s.abort(),EO(e,a),n||Ag(t),i&&await t}},cbe=({error:t})=>{if(t)throw t};var fbe=(t,{ipc:e})=>{Object.assign(t,hbe(t,!1,e))},pbe=()=>{let t=dbe,e=!0,r=dbe.channel!==void 0;return{...hbe(t,e,r),getCancelSignal:EEe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},hbe=(t,e,r)=>({sendMessage:xO.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:abe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:ube.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as fgt}from"child_process";import{PassThrough as pgt,Readable as hgt,Writable as mgt,Duplex as ggt}from"stream";var mbe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{f6(n);let a=new fgt;_gt(a,n),Object.assign(a,{readable:ygt,writable:Sgt,duplex:Egt});let c=Cg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=vgt(c,o,i);return{subprocess:a,promise:l}},_gt=(t,e)=>{let r=wb(),n=wb(),i=wb(),s=Array.from({length:e.length-3},wb),o=wb(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},wb=()=>{let t=new pgt;return t.end(),t},ygt=()=>new hgt({read(){}}),Sgt=()=>new mgt({write(){}}),Egt=()=>new ggt({read(){},write(){}}),vgt=async(t,e,r)=>Ng(t,e,r);import{createReadStream as gbe,createWriteStream as _be}from"fs";import{Buffer as bgt}from"buffer";import{Readable as Rb,Writable as Tgt,Duplex as wgt}from"stream";var Sbe=(t,e)=>BO(Rgt,t,e,!1),Ab=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${yu[t]}.`)},ybe={fileNumber:Ab,generator:y6,asyncGenerator:y6,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:wgt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Rgt={input:{...ybe,fileUrl:({value:t})=>({stream:gbe(t)}),filePath:({value:{file:t}})=>({stream:gbe(t)}),webStream:({value:t})=>({stream:Rb.fromWeb(t)}),iterable:({value:t})=>({stream:Rb.from(t)}),asyncIterable:({value:t})=>({stream:Rb.from(t)}),string:({value:t})=>({stream:Rb.from(t)}),uint8Array:({value:t})=>({stream:Rb.from(bgt.from(t))})},output:{...ybe,fileUrl:({value:t})=>({stream:_be(t)}),filePath:({value:{file:t,append:e}})=>({stream:_be(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:Tgt.fromWeb(t)}),iterable:Ab,asyncIterable:Ab,string:Ab,uint8Array:Ab}};import{on as Agt,once as Ebe}from"events";import{PassThrough as xgt,getDefaultHighWaterMark as Igt}from"stream";import{finished as Tbe}from"stream/promises";function Df(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)w6(i);let e=t.some(({readableObjectMode:i})=>i),r=Pgt(t,e),n=new T6({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Pgt=(t,e)=>{if(t.length===0)return Igt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},T6=class extends xgt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(w6(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Ogt(this,this.#e,this.#s);let r=kgt({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(w6(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)}},Ogt=async(t,e,r)=>{KO(t,vbe);let n=new AbortController;try{await Promise.race([Cgt(t,n),Ngt(t,e,r,n)])}finally{n.abort(),KO(t,-vbe)}},Cgt=async(t,{signal:e})=>{try{await Tbe(t,{signal:e,cleanup:!0})}catch(r){throw wbe(t,r),r}},Ngt=async(t,e,r,{signal:n})=>{for await(let[i]of Agt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},w6=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},kgt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{KO(t,bbe);let a=new AbortController;try{await Promise.race([$gt(s,e,a),Lgt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Dgt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),KO(t,-bbe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?R6(t):Mgt(t))},$gt=async(t,e,{signal:r})=>{try{await t,r.aborted||R6(e)}catch(n){r.aborted||wbe(e,n)}},Lgt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await Tbe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Rbe(o)?i.add(e):Abe(t,o)}},Dgt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Ebe(t,i,{signal:s}),!t.readable)return Ebe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Mgt=t=>{t.writable&&t.end()},wbe=(t,e)=>{Rbe(e)?R6(t):Abe(t,e)},Rbe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",R6=t=>{(t.readable||t.writable)&&t.destroy()},Abe=(t,e)=>{t.destroyed||(t.once("error",Ugt),t.destroy(e))},Ugt=()=>{},KO=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},vbe=2,bbe=1;import{finished as xbe}from"stream/promises";var $g=(t,e)=>{t.pipe(e),Fgt(t,e),jgt(t,e)},Fgt=async(t,e)=>{if(!(Js(t)||Js(e))){try{await xbe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}A6(e)}},A6=t=>{t.writable&&t.end()},jgt=async(t,e)=>{if(!(Js(t)||Js(e))){try{await xbe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}x6(t)}},x6=t=>{t.readable&&t.destroy()};var Ibe=(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})=>Es.has(c)))qgt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Es.has(c)))zgt({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]:Df(s);$g(o,i)}},qgt=(t,e,r,n)=>{r==="output"?$g(t.stdio[n],e):$g(e,t.stdio[n]);let i=Bgt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Bgt=["stdin","stdout","stderr"],zgt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;Vgt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},Vgt=(t,{signal:e})=>{Js(t)&&Nf(t,Hgt,e)},Hgt=2;import{addAbortListener as Ygt}from"events";var Mf=[];Mf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Mf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Mf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var JO=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",I6=Symbol.for("signal-exit emitter"),P6=globalThis,Ggt=Object.defineProperty.bind(Object),O6=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(P6[I6])return P6[I6];Ggt(P6,I6,{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}},ZO=class{},Wgt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),C6=class extends ZO{onExit(){return()=>{}}load(){}unload(){}},N6=class extends ZO{#e=k6.platform==="win32"?"SIGINT":"SIGHUP";#r=new O6;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Mf)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(!JO(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 Mf)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,Mf.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 JO(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"&&JO(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)}},k6=globalThis.process,{onExit:Pbe,load:dir,unload:fir}=Wgt(JO(k6)?new N6(k6):new C6);var Obe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Pbe(()=>{t.kill()});Ygt(n,()=>{i()})};var Nbe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=cO(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=Kgt(r,n,i),{sourceStream:d,sourceError:f}=Zgt(t,l),{options:p,fileDescriptors:h}=ea.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},Kgt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=Jgt(t,e,...r),a=yO(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},Jgt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Cbe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||bG(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]=XP(r,...n);return{destination:e(Cbe)(i,s,o),pipeOptions:o}}if(ea.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}`)},Cbe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Zgt=(t,e)=>{try{return{sourceStream:xg(t,e)}}catch(r){return{sourceError:r}}};var $be=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Xgt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw $6({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Xgt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return x6(t),n;if(e!==void 0)return A6(r),e},$6=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Cg({error:t,command:kbe,escapedCommand:kbe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),kbe="source.pipe(destination)";var Lbe=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 Qgt}from"stream/promises";var Dbe=(t,e,r)=>{let n=XO.has(e)?t_t(t,e):e_t(t,e);return Nf(t,n_t,r.signal),Nf(e,i_t,r.signal),r_t(e),n},e_t=(t,e)=>{let r=Df([t]);return $g(r,e),XO.set(e,r),r},t_t=(t,e)=>{let r=XO.get(e);return r.add(t),r},r_t=async t=>{try{await Qgt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}XO.delete(t)},XO=new WeakMap,n_t=2,i_t=1;import{aborted as s_t}from"util";var Mbe=(t,e)=>t===void 0?[]:[o_t(t,e)],o_t=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await s_t(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw $6({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var QO=(t,...e)=>{if(gr(e[0]))return QO.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Nbe(t,...e),i=a_t({...n,destination:r});return i.pipe=QO.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},a_t=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=c_t(t,i);$be({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Dbe(e,s,d);return await Promise.race([Lbe(u),...Mbe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},c_t=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as m_t}from"timers/promises";import{on as l_t}from"events";import{getDefaultHighWaterMark as u_t}from"stream";var eC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return d_t(e,o),Fbe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},d_t=async(t,e)=>{try{await t}catch{}finally{e.abort()}},L6=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;f_t(e,o,t);let a=t.readableObjectMode&&!s;return Fbe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},f_t=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},Fbe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=l_t(t,"data",{signal:e.signal,highWaterMark:Ube,highWatermark:Ube});return p_t({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},D6=u_t(!0),Ube=D6,p_t=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=h_t({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*Lf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Tb(a)}},h_t=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[VO(t,r,!e),zO(t,i,!n,{})].filter(Boolean);var jbe=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=g_t({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([__t(t),d]);return}let f=p6(c,r),p=L6({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([y_t({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},g_t=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!WO({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=L6({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Zve(a,t,r,s)},__t=async t=>{await m_t(),t.readableFlowing===null&&t.resume()},y_t=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await $O(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await LO(r,{maxBuffer:s})):await Og(r,{maxBuffer:s})}catch(a){return qbe(ZEe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},M6=async t=>{try{return await t}catch(e){return qbe(e)}},qbe=({bufferedData:t})=>pye(t)?new Uint8Array(t):t;import{finished as S_t}from"stream/promises";var xb=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=E_t(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],S_t(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||T_t(a,e,r,n)}finally{o.abort()}},E_t=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&v_t(t,r,n),n},v_t=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{b_t(e,r),n.call(t,...i)}},b_t=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},T_t=(t,e,r,n)=>{if(!w_t(t,e,r,n))throw t},w_t=(t,e,r,n=!0)=>r.propagating?Bbe(t)||tC(t):(r.propagating=!0,U6(r,e)===n?Bbe(t):tC(t)),U6=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",tC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Bbe=t=>t?.code==="EPIPE";var zbe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>F6({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),F6=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=xb(t,e,l);if(U6(l,e)){await u;return}let[d]=await Promise.all([jbe({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 Vbe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Df([t,e].filter(Boolean)):void 0,Hbe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>F6({...R_t(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:A_t(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),R_t=({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}},A_t=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as x_t}from"events";var Gbe=t=>bg(t,"ipc"),Wbe=(t,e)=>{let r=aO(t);Xo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Ybe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Gbe(s),a=Sc(e,"ipc"),c=Sc(r,"ipc");for await(let l of b6({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(XEe(t,i,c),i.push(l)),o&&Wbe(l,s);return i},Kbe=async(t,e)=>(await Promise.allSettled([t]),e);var Jbe=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 v=rbe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=zbe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),w=Hbe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),P=[],x=Ybe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),R=I_t(m,t,S),O=P_t(h,S);try{return await Promise.race([Promise.all([{},ibe(v),Promise.all(g),w,x,OEe(t,d),...R,...O]),_,O_t(t,y),...REe(t,s,f,y),...GSe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...TEe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(A){return f.terminationReason??="other",Promise.all([{error:A},v,Promise.all(g.map(b=>M6(b))),M6(w),Kbe(x,P),Promise.allSettled(R),Promise.allSettled(O)])}},I_t=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:xb(n,i,r)),P_t=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Qs(s,{checkOpen:!1})&&!Js(s)).map(({type:i,value:s,stream:o=s})=>xb(o,n,e,{isSameDirection:Es.has(i),stopOnExit:i==="native"}))),O_t=async(t,{signal:e})=>{let[r]=await x_t(t,"error",{signal:e});throw r};var Zbe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),Ib=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Qo();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Lg=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 C_t}from"stream";import{callbackify as N_t}from"util";import{finished as Xbe}from"stream/promises";var j6=async t=>{if(t!==void 0)try{await q6(t)}catch{}},Qbe=async t=>{if(t!==void 0)try{await B6(t)}catch{}},q6=async t=>{await Xbe(t,{cleanup:!0,readable:!1,writable:!0})},B6=async t=>{await Xbe(t,{cleanup:!0,readable:!0,writable:!1})},rC=async(t,e)=>{if(await t,e)throw e},nC=(t,e,r)=>{r&&!tC(r)?t.destroy(r):e&&t.destroy()};var eTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||$i.has(r),{subprocessStdout:a,waitReadableDestroy:c}=z6(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=V6(a,o),{read:f,onStdoutDataDone:p}=H6({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new C_t({read:f,destroy:N_t(W6.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return G6({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},z6=(t,e,r)=>{let n=xg(t,e),i=Ib(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},V6=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:D6},H6=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Qo(),o=eC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){k_t(this,o,s)},onStdoutDataDone:s}},k_t=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},G6=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await B6(t),await n,await j6(i),await e,r.readable&&r.push(null)}catch(s){await j6(i),tTe(r,s)}},W6=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Lg(r,e)&&(tTe(t,n),await rC(e,n))},tTe=(t,e)=>{nC(t,t.readable,e)};import{Writable as $_t}from"stream";import{callbackify as rTe}from"util";var nTe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=Y6(t,r,e),o=new $_t({...K6(n,t,i),destroy:rTe(Z6.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return J6(n,o),o},Y6=(t,e,r)=>{let n=yO(t,e),i=Ib(r,n,"writableFinal"),s=Ib(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},K6=(t,e,r)=>({write:L_t.bind(void 0,t),final:rTe(D_t.bind(void 0,t,e,r))}),L_t=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},D_t=async(t,e,r)=>{await Lg(r,e)&&(t.writable&&t.end(),await e)},J6=async(t,e,r)=>{try{await q6(t),e.writable&&e.end()}catch(n){await Qbe(r),iTe(e,n)}},Z6=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Lg(r,e),await Lg(n,e)&&(iTe(t,i),await rC(e,i))},iTe=(t,e)=>{nC(t,t.writable,e)};import{Duplex as M_t}from"stream";import{callbackify as U_t}from"util";var sTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||$i.has(r),{subprocessStdout:c,waitReadableDestroy:l}=z6(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=Y6(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=V6(c,a),{read:_,onStdoutDataDone:y}=H6({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new M_t({read:_,...K6(u,t,d),destroy:U_t(F_t.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 G6({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),J6(u,v,c),v},F_t=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([W6({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),Z6({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var X6=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||$i.has(e),o=xg(t,r),a=eC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return j_t(a,o,t)},j_t=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var oTe=(t,{encoding:e})=>{let r=Zbe();t.readable=eTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=nTe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=sTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=X6.bind(void 0,t,e),t[Symbol.asyncIterator]=X6.bind(void 0,t,e,{})};var aTe=(t,e)=>{for(let[r,n]of B_t){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},q_t=(async()=>{})().constructor.prototype,B_t=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(q_t,t)]);var cTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=H_t(t,e,r),{subprocess:f,promise:p}=W_t({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=QO.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),aTe(f,p),ea.set(f,{options:u,fileDescriptors:d}),f},H_t=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=lO(t,e,r),{file:a,commandArguments:c,options:l}=PO(t,e,r),u=G_t(l),d=Sbe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},G_t=({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}},W_t=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=V_t(...OO(t,e,r))}catch(h){return mbe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;z_t(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Ibe(c,a,l),Obe(c,r,l);let d={},f=Qo();c.kill=VSe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Vbe(c,r),oTe(c,r),fbe(c,r);let p=Y_t({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}},Y_t=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 Jbe({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,w)=>vc(g,e,w)),v=vc(m,e,"all"),S=K_t({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Ng(S,n,e)},K_t=({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?bb({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 ta,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):UO({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var iC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,J_t(n,t[n],i)]));return{...t,...r}},J_t=(t,e,r)=>Z_t.has(t)&&gr(e)&&gr(r)?{...e,...r}:r,Z_t=new Set(["env",...IG]);var Su=(t,e,r,n)=>{let i=(o,a,c)=>Su(o,a,r,c),s=(...o)=>X_t({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},X_t=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(gr(s))return i(t,iC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Q_t({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?obe(a,c,l):cTe(a,c,l,i)},Q_t=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=Sye(e)?Eye(e,r):[e,...r],[o,a,c]=XP(...s),l=iC(iC(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 lTe=({file:t,commandArguments:e})=>dTe(t,e),uTe=({file:t,commandArguments:e})=>({...dTe(t,e),isSync:!0}),dTe=(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]=eyt(t);return{file:r,commandArguments:n}},eyt=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(tyt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},tyt=/ +/g;var fTe=(t,e,r)=>{t.sync=e(ryt,r),t.s=t.sync},pTe=({options:t})=>hTe(t),ryt=({options:t})=>({...hTe(t),isSync:!0}),hTe=t=>({options:{...nyt(t),...t}}),nyt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},mTe={preferLocal:!0};var gTe=Su(()=>({})),rar=Su(()=>({isSync:!0})),_Te=Su(lTe),nar=Su(uTe),iar=Su(xEe),sar=Su(pTe,{},mTe,fTe),{sendMessage:oar,getOneMessage:aar,getEachMessage:car,getCancelSignal:lar}=pbe();import{Transform as iyt}from"stream";var syt=["NETLIFY_AI_GATEWAY_KEY"];function oyt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...syt])]}function ayt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function cyt(){let e=oyt().map(r=>process.env[r]).filter(r=>!(!r||ayt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function vs(t){if(typeof t!="string")return t;let e=cyt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(lyt(n),"g");r=r.replace(i,"******")}),r}function lyt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Pb=class extends iyt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=vs(i);n(null,s)}},sC=Symbol("maskedWrite");function yTe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[sC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?vs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[sC]=!0,process.stdout.write=r}if(!process.stderr.write[sC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?vs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[sC]=!0,process.stderr.write=r}}}var STe=!1,ETe=()=>{STe=!0},hi=()=>STe;var Ob=null,vTe=t=>(Ob&&Ob.destroy(),Ob=new bc({totalAllowedTime:t}),Ob),bTe=()=>Ob;var bc=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&&hi())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 JP({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{xe.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 TTe={name:"@netlify/agent-runner-cli",type:"module",version:"1.147.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:{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: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.2","@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.197","@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.1.5","@netlify/otel":"^6.0.3","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var pyt=dyt(import.meta.url),hyt=Tc.dirname(pyt),myt=fyt(import.meta.url),Dg=ve("shell"),Q6=new Set,wTe={preferLocal:!0},Hn=(t,e,r)=>{let[n,i]=gyt(e,r),s={...wTe,...i},o=gTe(t,n,s);ATe(o,s),PTe(o);let a=r?.idleTimeout;return a&&a>0&&ITe(o,a),o},RTe=(t,e)=>{let r={...wTe,...e},n=_Te(t,r);return ATe(n,r),PTe(n),e?.idleTimeout&&e.idleTimeout>0&&ITe(n,e.idleTimeout),n},gyt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},ATe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(wc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Pb).pipe(wc.stdout),t.stderr?.pipe(new Pb).pipe(wc.stderr);return}t.stdout?.pipe(wc.stdout),t.stderr?.pipe(wc.stderr)},e3=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(wc.kill(-t.pid,e),Dg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Dg.error("Error killing process:",r),!1}},xTe=t=>e3(t,"SIGKILL"),ITe=(t,e)=>{let r=null,n=()=>{Dg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),e3(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dg.log(`Force killing idle process ${t.pid}`),xTe(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)},PTe=t=>{Q6.add(t);let e=bTe();if(e){let r=e.onTimesUp(()=>{Dg.log(`Global timer expired, killing process ${t.pid}`),e3(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Dg.log(`Force killing process ${t.pid} after timeout`),xTe(t))},5e3)});t.on("exit",()=>{Q6.delete(t),r()}),t.on("error",()=>{Q6.delete(t),r()})}};function na(t,e){if(!wc.env.NETLIFY_LOCAL_MODE)try{let i=myt.resolve(TTe.name),s=Tc.dirname(i);for(;s!==Tc.dirname(s);){let o=Tc.dirname(s);if(Tc.basename(o)==="node_modules"){let a=Tc.join(o,".bin",e);if(oC.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(wc.env.NODE_PATH){let i=Tc.join(wc.env.NODE_PATH,".bin",e);if(oC.existsSync(i))return i}let r=Tc.join(t,"node_modules",".bin",e);if(oC.existsSync(r))return r;let n=Tc.join(hyt,"..","node_modules",".bin",e);if(oC.existsSync(n))return n}import uL from"process";import{fileURLToPath as sCt}from"url";import{createRequire as oCt}from"module";import dL from"path";var _yt="__netlify__getTracer",yyt="__netlify__shutdownTracers",ft=(t,e)=>globalThis[_yt]?.(t,e),OTe=async()=>globalThis[yyt]?.();function Uf(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 QOt}from"timers/promises";import hEt from"process";var CTe=typeof globalThis=="object"?globalThis:global;var Rc="1.9.0";var NTe=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function Syt(t){var e=new Set([t]),r=new Set,n=t.match(NTe);if(!n)return function(){return!1};var i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null)return function(c){return c===t};function s(a){return r.add(a),!1}function o(a){return e.add(a),!0}return function(c){if(e.has(c))return!0;if(r.has(c))return!1;var l=c.match(NTe);if(!l)return s(c);var u={major:+l[1],minor:+l[2],patch:+l[3],prerelease:l[4]};return u.prerelease!=null||i.major!==u.major?s(c):i.major===0?i.minor===u.minor&&i.patch<=u.patch?o(c):s(c):i.minor<=u.minor?o(c):s(c)}}var kTe=Syt(Rc);var Eyt=Rc.split(".")[0],Cb=Symbol.for("opentelemetry.js.api."+Eyt),Nb=CTe;function Eu(t,e,r,n){var i;n===void 0&&(n=!1);var s=Nb[Cb]=(i=Nb[Cb])!==null&&i!==void 0?i:{version:Rc};if(!n&&s[t]){var o=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+t);return r.error(o.stack||o.message),!1}if(s.version!==Rc){var o=new Error("@opentelemetry/api: Registration of version v"+s.version+" for "+t+" does not match previously registered API v"+Rc);return r.error(o.stack||o.message),!1}return s[t]=e,r.debug("@opentelemetry/api: Registered a global for "+t+" v"+Rc+"."),!0}function eo(t){var e,r,n=(e=Nb[Cb])===null||e===void 0?void 0:e.version;if(!(!n||!kTe(n)))return(r=Nb[Cb])===null||r===void 0?void 0:r[t]}function vu(t,e){e.debug("@opentelemetry/api: Unregistering a global for "+t+" v"+Rc+".");var r=Nb[Cb];r&&delete r[t]}var vyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},byt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},$Te=(function(){function t(e){this._namespace=e.namespace||"DiagComponentLogger"}return t.prototype.debug=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("debug",this._namespace,e)},t.prototype.error=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("error",this._namespace,e)},t.prototype.info=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("info",this._namespace,e)},t.prototype.warn=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("warn",this._namespace,e)},t.prototype.verbose=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return kb("verbose",this._namespace,e)},t})();function kb(t,e,r){var n=eo("diag");if(n)return r.unshift(e),n[t].apply(n,byt([],vyt(r),!1))}var Gn;(function(t){t[t.NONE=0]="NONE",t[t.ERROR=30]="ERROR",t[t.WARN=50]="WARN",t[t.INFO=60]="INFO",t[t.DEBUG=70]="DEBUG",t[t.VERBOSE=80]="VERBOSE",t[t.ALL=9999]="ALL"})(Gn||(Gn={}));function LTe(t,e){t<Gn.NONE?t=Gn.NONE:t>Gn.ALL&&(t=Gn.ALL),e=e||{};function r(n,i){var s=e[n];return typeof s=="function"&&t>=i?s.bind(e):function(){}}return{error:r("error",Gn.ERROR),warn:r("warn",Gn.WARN),info:r("info",Gn.INFO),debug:r("debug",Gn.DEBUG),verbose:r("verbose",Gn.VERBOSE)}}var Tyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},wyt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},Ryt="diag",Li=(function(){function t(){function e(i){return function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];var a=eo("diag");if(a)return a[i].apply(a,wyt([],Tyt(s),!1))}}var r=this,n=function(i,s){var o,a,c;if(s===void 0&&(s={logLevel:Gn.INFO}),i===r){var l=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return r.error((o=l.stack)!==null&&o!==void 0?o:l.message),!1}typeof s=="number"&&(s={logLevel:s});var u=eo("diag"),d=LTe((a=s.logLevel)!==null&&a!==void 0?a:Gn.INFO,i);if(u&&!s.suppressOverrideMessage){var f=(c=new Error().stack)!==null&&c!==void 0?c:"<failed to generate stacktrace>";u.warn("Current logger will be overwritten from "+f),d.warn("Current logger will overwrite one already registered from "+f)}return Eu("diag",d,r,!0)};r.setLogger=n,r.disable=function(){vu(Ryt,r)},r.createComponentLogger=function(i){return new $Te(i)},r.verbose=e("verbose"),r.debug=e("debug"),r.info=e("info"),r.warn=e("warn"),r.error=e("error")}return t.instance=function(){return this._instance||(this._instance=new t),this._instance},t})();var Ayt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},xyt=function(t){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},DTe=(function(){function t(e){this._entries=e?new Map(e):new Map}return t.prototype.getEntry=function(e){var r=this._entries.get(e);if(r)return Object.assign({},r)},t.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(e){var r=Ayt(e,2),n=r[0],i=r[1];return[n,i]})},t.prototype.setEntry=function(e,r){var n=new t(this._entries);return n._entries.set(e,r),n},t.prototype.removeEntry=function(e){var r=new t(this._entries);return r._entries.delete(e),r},t.prototype.removeEntries=function(){for(var e,r,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var s=new t(this._entries);try{for(var o=xyt(n),a=o.next();!a.done;a=o.next()){var c=a.value;s._entries.delete(c)}}catch(l){e={error:l}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}return s},t.prototype.clear=function(){return new t},t})();var Qar=Li.instance();function MTe(t){return t===void 0&&(t={}),new DTe(new Map(Object.entries(t)))}function aC(t){return Symbol.for(t)}var Iyt=(function(){function t(e){var r=this;r._currentContext=e?new Map(e):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,i){var s=new t(r._currentContext);return s._currentContext.set(n,i),s},r.deleteValue=function(n){var i=new t(r._currentContext);return i._currentContext.delete(n),i}}return t})(),UTe=new Iyt;var FTe={get:function(t,e){if(t!=null)return t[e]},keys:function(t){return t==null?[]:Object.keys(t)}},jTe={set:function(t,e,r){t!=null&&(t[e]=r)}};var Pyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},Oyt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},qTe=(function(){function t(){}return t.prototype.active=function(){return UTe},t.prototype.with=function(e,r,n){for(var i=[],s=3;s<arguments.length;s++)i[s-3]=arguments[s];return r.call.apply(r,Oyt([n],Pyt(i),!1))},t.prototype.bind=function(e,r){return r},t.prototype.enable=function(){return this},t.prototype.disable=function(){return this},t})();var Cyt=function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return s},Nyt=function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return t.concat(s||Array.prototype.slice.call(e))},t3="context",kyt=new qTe,bu=(function(){function t(){}return t.getInstance=function(){return this._instance||(this._instance=new t),this._instance},t.prototype.setGlobalContextManager=function(e){return Eu(t3,e,Li.instance())},t.prototype.active=function(){return this._getContextManager().active()},t.prototype.with=function(e,r,n){for(var i,s=[],o=3;o<arguments.length;o++)s[o-3]=arguments[o];return(i=this._getContextManager()).with.apply(i,Nyt([e,r,n],Cyt(s),!1))},t.prototype.bind=function(e,r){return this._getContextManager().bind(e,r)},t.prototype._getContextManager=function(){return eo(t3)||kyt},t.prototype.disable=function(){this._getContextManager().disable(),vu(t3,Li.instance())},t})();var cC;(function(t){t[t.NONE=0]="NONE",t[t.SAMPLED=1]="SAMPLED"})(cC||(cC={}));var r3="0000000000000000",n3="00000000000000000000000000000000",BTe={traceId:n3,spanId:r3,traceFlags:cC.NONE};var Tu=(function(){function t(e){e===void 0&&(e=BTe),this._spanContext=e}return t.prototype.spanContext=function(){return this._spanContext},t.prototype.setAttribute=function(e,r){return this},t.prototype.setAttributes=function(e){return this},t.prototype.addEvent=function(e,r){return this},t.prototype.addLink=function(e){return this},t.prototype.addLinks=function(e){return this},t.prototype.setStatus=function(e){return this},t.prototype.updateName=function(e){return this},t.prototype.end=function(e){},t.prototype.isRecording=function(){return!1},t.prototype.recordException=function(e,r){},t})();var i3=aC("OpenTelemetry Context Key SPAN");function lC(t){return t.getValue(i3)||void 0}function zTe(){return lC(bu.getInstance().active())}function $b(t,e){return t.setValue(i3,e)}function VTe(t){return t.deleteValue(i3)}function HTe(t,e){return $b(t,new Tu(e))}function uC(t){var e;return(e=lC(t))===null||e===void 0?void 0:e.spanContext()}var $yt=/^([0-9a-f]{32})$/i,Lyt=/^[0-9a-f]{16}$/i;function Dyt(t){return $yt.test(t)&&t!==n3}function Myt(t){return Lyt.test(t)&&t!==r3}function dC(t){return Dyt(t.traceId)&&Myt(t.spanId)}function GTe(t){return new Tu(t)}var s3=bu.getInstance(),fC=(function(){function t(){}return t.prototype.startSpan=function(e,r,n){n===void 0&&(n=s3.active());var i=!!r?.root;if(i)return new Tu;var s=n&&uC(n);return Uyt(s)&&dC(s)?new Tu(s):new Tu},t.prototype.startActiveSpan=function(e,r,n,i){var s,o,a;if(!(arguments.length<2)){arguments.length===2?a=r:arguments.length===3?(s=r,a=n):(s=r,o=n,a=i);var c=o??s3.active(),l=this.startSpan(e,s,c),u=$b(c,l);return s3.with(u,a,void 0,l)}},t})();function Uyt(t){return typeof t=="object"&&typeof t.spanId=="string"&&typeof t.traceId=="string"&&typeof t.traceFlags=="number"}var Fyt=new fC,WTe=(function(){function t(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}return t.prototype.startSpan=function(e,r,n){return this._getTracer().startSpan(e,r,n)},t.prototype.startActiveSpan=function(e,r,n,i){var s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)},t.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):Fyt},t})();var YTe=(function(){function t(){}return t.prototype.getTracer=function(e,r,n){return new fC},t})();var jyt=new YTe,o3=(function(){function t(){}return t.prototype.getTracer=function(e,r,n){var i;return(i=this.getDelegateTracer(e,r,n))!==null&&i!==void 0?i:new WTe(this,e,r,n)},t.prototype.getDelegate=function(){var e;return(e=this._delegate)!==null&&e!==void 0?e:jyt},t.prototype.setDelegate=function(e){this._delegate=e},t.prototype.getDelegateTracer=function(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(e,r,n)},t})();var wu;(function(t){t[t.INTERNAL=0]="INTERNAL",t[t.SERVER=1]="SERVER",t[t.CLIENT=2]="CLIENT",t[t.PRODUCER=3]="PRODUCER",t[t.CONSUMER=4]="CONSUMER"})(wu||(wu={}));var ia;(function(t){t[t.UNSET=0]="UNSET",t[t.OK=1]="OK",t[t.ERROR=2]="ERROR"})(ia||(ia={}));var Ac=bu.getInstance();var a3=Li.instance();var KTe=(function(){function t(){}return t.prototype.inject=function(e,r){},t.prototype.extract=function(e,r){return e},t.prototype.fields=function(){return[]},t})();var c3=aC("OpenTelemetry Baggage Key");function l3(t){return t.getValue(c3)||void 0}function JTe(){return l3(bu.getInstance().active())}function ZTe(t,e){return t.setValue(c3,e)}function XTe(t){return t.deleteValue(c3)}var u3="propagation",qyt=new KTe,QTe=(function(){function t(){this.createBaggage=MTe,this.getBaggage=l3,this.getActiveBaggage=JTe,this.setBaggage=ZTe,this.deleteBaggage=XTe}return t.getInstance=function(){return this._instance||(this._instance=new t),this._instance},t.prototype.setGlobalPropagator=function(e){return Eu(u3,e,Li.instance())},t.prototype.inject=function(e,r,n){return n===void 0&&(n=jTe),this._getGlobalPropagator().inject(e,r,n)},t.prototype.extract=function(e,r,n){return n===void 0&&(n=FTe),this._getGlobalPropagator().extract(e,r,n)},t.prototype.fields=function(){return this._getGlobalPropagator().fields()},t.prototype.disable=function(){vu(u3,Li.instance())},t.prototype._getGlobalPropagator=function(){return eo(u3)||qyt},t})();var Lb=QTe.getInstance();var d3="trace",ewe=(function(){function t(){this._proxyTracerProvider=new o3,this.wrapSpanContext=GTe,this.isSpanContextValid=dC,this.deleteSpan=VTe,this.getSpan=lC,this.getActiveSpan=zTe,this.getSpanContext=uC,this.setSpan=$b,this.setSpanContext=HTe}return t.getInstance=function(){return this._instance||(this._instance=new t),this._instance},t.prototype.setGlobalTracerProvider=function(e){var r=Eu(d3,this._proxyTracerProvider,Li.instance());return r&&this._proxyTracerProvider.setDelegate(e),r},t.prototype.getTracerProvider=function(){return eo(d3)||this._proxyTracerProvider},t.prototype.getTracer=function(e,r){return this.getTracerProvider().getTracer(e,r)},t.prototype.disable=function(){vu(d3,Li.instance()),this._proxyTracerProvider=new o3},t})();var Db=ewe.getInstance();var zyt=function(t,e){e.recordException(t),e.setStatus({code:ia.ERROR})};var Ff=(function(){function t(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}return t.prototype.withActiveSpan=function(e,r,n,i){var s=twe(r,n,i),o=s.opts,a=s.ctx,c=s.fn;return this._tracer.startActiveSpan(e,o,a,function(l){return rwe(l,o,c)})},t.prototype.withSpan=function(e,r,n,i){var s=twe(r,n,i),o=s.opts,a=s.ctx,c=s.fn,l=this._tracer.startSpan(e,o,a);return rwe(l,o,c)},t})();function twe(t,e,r){var n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??Ac.active(),{opts:n,ctx:i,fn:s}}function rwe(t,e,r){var n,i=(n=e.onException)!==null&&n!==void 0?n:zyt,s=function(a){throw i(a,t),t.end(),a};try{var o=r(t);return typeof o?.then=="function"?o.then(function(a){return t.end(),a},s):(t.end(),o)}catch(a){throw s(a)}}cW();Qe();var aT=class{emit(e){}enabled(){return!1}},mRe=new aT;var cT=Symbol.for("io.opentelemetry.js.api.logs"),Gg=globalThis;function gRe(t,e,r){return n=>n===t?e:r}var lW=1;var uW=class{getLogger(e,r,n){return new aT}},nN=new uW;var iN=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):mRe}};var lT=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new iN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:nN}_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 sN=class t{constructor(){this._proxyLoggerProvider=new lT}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return Gg[cT]?this.getLoggerProvider():(Gg[cT]=gRe(lW,e,nN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=Gg[cT])===null||e===void 0?void 0:e.call(Gg,lW))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete Gg[cT],this._proxyLoggerProvider=new lT}};var _Re=sN.getInstance();function yRe(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 SRe(t){t.forEach(e=>e.disable())}function dW(t){let e=t.tracerProvider||Pr.getTracerProvider(),r=t.meterProvider||Wb.getMeterProvider(),n=t.loggerProvider||_Re.getLoggerProvider(),i=t.instrumentations?.flat()??[];return yRe(i,e,r,n),()=>{SRe(i)}}cr();var xN=$n(xW(),1);cr();var XRe=t=>{throw TypeError(t)},CW=(t,e,r)=>e.has(t)||XRe("Cannot "+r),AN=(t,e,r)=>(CW(t,e,"read from private field"),r?r.call(t):e.get(t)),IW=(t,e,r)=>e.has(t)?XRe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),KRe=(t,e,r,n)=>(CW(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),pEt=(t,e,r)=>(CW(t,e,"access private method"),r),JRe="__netlify__getTracer",mEt="__netlify__shutdownTracers",gEt="__nfOTLPTrace",dT,fT,OW,QRe,_Et=class{constructor(){IW(this,OW),IW(this,dT),IW(this,fT),KRe(this,dT,new da(pEt(this,OW,QRe),this)),KRe(this,fT,a3.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(AN(this,fT).debug(`export ${t.length.toString()} spans`),AN(this,dT).isCalled){e({code:Yt.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(gEt,JSON.stringify(yEt(t))),e({code:Yt.SUCCESS})}shutdown(){return AN(this,dT).call()}};dT=new WeakMap;fT=new WeakMap;OW=new WeakSet;QRe=function(){return AN(this,fT).debug("Shutting down"),Promise.resolve()};function yEt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:RN(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||wu.SERVER,startTimeUnixNano:PW(e.startTime),endTimeUnixNano:PW(e.endTime),attributes:RN(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:PW(n.time),attributes:RN(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:RN(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function RN(t){return Object.keys(t).map(e=>eAe(e,t[e]))}function eAe(t,e){return{key:t,value:tAe(e)}}function tAe(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(tAe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>eAe(r,n))}}:{}}function PW(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var ZRe={name:"@netlify/otel",version:"6.0.3",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":"^4.4.6",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.0","@opentelemetry/core":"2.7.1","@opentelemetry/instrumentation":"^0.217.0","@opentelemetry/resources":"2.7.1","@opentelemetry/sdk-trace-node":"2.7.1"}},rAe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,JRe))return;let e=hEt.version.slice(1),r=rN({"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??[SEt()],i=new xN.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Cc});let s=t.instrumentations??[];dW({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,JRe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new Ff(Db.getTracer(a,c)):new Ff(Db.getTracer(ZRe.name,ZRe.version))}}),Object.defineProperty(globalThis,mEt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},SEt=()=>new xN.SimpleSpanProcessor(new _Et);cr();var pT=$n(xW(),1);import*as IN from"diagnostics_channel";var nAe=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?ia.ERROR:ia.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 Ff?t:new Ff(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){IN.subscribe(t,e);let r=()=>IN.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:wu.CLIENT},Ac.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:ia.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 mke=$n(pke(),1);var cL=ve("tracing"),hke=8e3,eCt=5e3,Aw=async(t=eCt)=>{try{await Promise.race([OTe(),QOt(t)])}catch(e){cL.warn("Failed to flush tracers on shutdown",e)}},gke=async(t,e,r)=>{if(!ft()){let n=[new pT.SimpleSpanProcessor(new m9),new pT.SimpleSpanProcessor(new mke.OTLPTraceExporter({url:r.exporterUrl}))];await rAe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new nAe({skipHeaders:!0})]})}return r.traceparent?(Lb.setGlobalPropagator(new Cc),Lb.extract(Ac.active(),{traceparent:r.traceparent,isRemote:!0})):Ac.active()};function jt(t,e,r){return cL.log(`\u23F3 TRACE: ${e} starting...`),Uf(t,e,r)}var m9=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(", ")}]`:"";cL.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&cL.log(` \u274C Error: ${e.status.message}`)}};function g9(){return lt().captureLlmContentEnabled}function _ke(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function lL(t,e,r){let n={role:t,parts:[{type:"text",content:vs(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}function yke(t,e,r,n){if(!t.length)return;let i=ft();if(!i)return;let s=g9(),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.title||a.type||`step-${a.id??c}`,f=a.type==="tool_use"||a.type==="tool_result",p=a.message?a.message.length>hke?`${a.message.slice(0,hke)}\u2026`:a.message:void 0;i.startSpan(d,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":d,"gen_ai.operation.name":f?"execute_tool":"chat",...f?{"gen_ai.tool.name":d}:{},"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&&p?f?{"gen_ai.tool.call.result":vs(p)}:{"gen_ai.output.messages":lL("assistant",p)}:{}}}).end(u)})}import{readdir as tCt,rm as rCt}from"fs/promises";import{join as nCt}from"path";async function Ske(t,e=[]){let n=(await tCt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>rCt(nCt(t,i),{recursive:!0,force:!0})))}var iCt=700,Eke=t=>t.mode==="create"&&(t.accountType===El||t.enforcedAICreditsRemaining!=null&&t.enforcedAICreditsRemaining<=iCt);var aCt=dL.dirname(sCt(import.meta.url)),vke=oCt(import.meta.url),cCt=dL.resolve(aCt,"scripts/scaffold.js"),lCt="scripts/scaffold.js",uCt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,_9=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},dCt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),fCt=t=>{let e=_9(t);return e==="node"||e.endsWith("/node")},Xc=t=>{if(typeof t!="string")return!1;let e=t.match(uCt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&dCt(_9(e[r]));)r+=1;if(r>=e.length||!fCt(e[r]))return!1;let n=e[r+1];return n?_9(n).includes(lCt):!1},z_=ve("create_stage"),bke="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.",pCt=`${bke}
582
582
 
583
583
  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.`,hCt=`${bke}
584
584
 
@@ -691,7 +691,7 @@ ${o.trim()}
691
691
  \`\`\``),{title:n,message:o,category:i}};import Wp from"fs/promises";import e0 from"os";import md from"path";import jy from"process";import lkt from"readline";import Xw from"fs/promises";import skt from"os";import zL from"path";var D$e=ve("gemini_session"),okt=t=>t instanceof Error?t.message:String(t),akt=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},ckt=async t=>{let r=(await Xw.readFile(t,"utf8")).split(`
692
692
  `),n=!1,i=r.map(s=>{if(!s.trim())return s;let o;try{o=JSON.parse(s)}catch{return s}return akt(o)?(n=!0,JSON.stringify(o)):s});return n&&await Xw.writeFile(t,i.join(`
693
693
  `),"utf8"),n},lJ=async(t,e=zL.join(skt.homedir(),".gemini"))=>{let r=zL.join(e,"tmp"),n=t.slice(0,8),i;try{i=await Xw.readdir(r)}catch{return}for(let s of i){let o=zL.join(r,s,"chats"),a;try{a=await Xw.readdir(o)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let l=zL.join(o,c);try{let u=(await Xw.readFile(l,"utf8")).split(`
694
- `,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},Qw=async t=>{try{let e=await lJ(t);return e?(await ckt(e),!0):(D$e.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return D$e.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:okt(e)}),!1}};var Ki=ve("runner_gemini"),uJ="Gemini CLI",qy="gemini-3.5-flash",ukt=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(Ki.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(Ki.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(Ki.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),M$e={list_directory:{name:"List directory",category:ne.Explore},read_file:{name:"Read file",category:ne.FileRead},write_file:{name:"Edit file",category:ne.FileWrite},glob:{name:"Find files",category:ne.Explore},search_file_content:{name:"Search files",category:ne.Explore},replace:{name:"Edit file",category:ne.FileWrite},run_shell_command:{name:"Run command",category:ne.RunCommand},web_fetch:{name:"Fetch web",category:ne.Web},web_search:{name:"Search web",category:ne.Web},google_web_search:{name:"Search web",category:ne.Web},update_topic:{name:"Update topic",category:ne.Plan},read_many_files:{name:"Read files",category:ne.FileRead},save_memory:{name:"Memorize",category:ne.Memorize},activate_skill:{name:"Use Skill",category:ne.Skill},grep_search:{name:"Search files",category:ne.Explore}},dkt=async()=>{let t=md.join(e0.homedir(),".gemini"),e=md.join(t,"settings.json");try{await Wp.mkdir(t,{recursive:!0});let r={};try{let n=await Wp.readFile(e,"utf-8");r=JSON.parse(n)}catch{Ki.log("Creating new Gemini CLI settings file")}r.general||(r.general={}),r.general.previewFeatures||(r.general.previewFeatures=!0),r.model||(r.model={}),r.model.compressionThreshold!==.3&&(r.model.compressionThreshold=.3),r.skills||(r.skills={}),r.skills.enabled=!0,r.context||(r.context={}),r.context.fileName=["GEMINI.md","AGENTS.md"],await Wp.writeFile(e,JSON.stringify(r,null,2),"utf-8"),Ki.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(r){Ki.error("Failed to ensure Gemini CLI settings",{error:r.message}),xe.inc("context.degraded",1,{component:"agent_config"})}},fkt=t=>{t?.category===ne.Skill&&t.type&&Va(Ki,No(t.type))};async function dJ({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:s=!1,priorAgentSessionId:o=void 0,cwd:a=jy.cwd(),abortSignal:c=void 0,onSessionId:l=void 0}){let{accountType:u,prompt:d,modelVersionOverrides:f}=t,{model:p}=t;if(await dkt(),i){let{token:X,url:re}=i;if(!X||!re)throw new Error("No token or url provided from AI Gateway");if(f?.gemini){let fe=f?.gemini?.[u];if(fe){if(!await i.isModelAvailableForProvider("gemini",fe))throw new Error(`Model override '${fe}' is not available for gemini provider`);p=fe}}if(!p)!!qy&&await i.isModelAvailableForProvider("gemini",qy)?(p=qy,Ki.log(`Using default model: ${qy}`)):qy&&Ki.log(`Default model ${qy} is not available, proceeding without model specification`);else if(p&&!f?.gemini?.[u]&&!await i.isModelAvailableForProvider("gemini",p))throw new Error(`Model '${p}' is not available for gemini provider`);jy.env.GEMINI_API_KEY=X,jy.env.GOOGLE_GEMINI_BASE_URL=re}else if(!jy.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided");let h=[],m=[],_=[],y={},v=0,S=0,g,w,P,x,R=!!(s&&o),O=!1;R&&(O=await Qw(o)),R&&!O&&(Ki.log(`Gemini resume requested for session ${o} but it was not resumable; starting a fresh session`),xe.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let A=t.mode==="ask",b;A&&(b=md.join(e0.homedir(),".gemini","ask-policy.toml"),await Wp.mkdir(md.dirname(b),{recursive:!0}),await Wp.writeFile(b,`[[rule]]
694
+ `,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},Qw=async t=>{try{let e=await lJ(t);return e?(await ckt(e),!0):(D$e.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return D$e.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:okt(e)}),!1}};var Ki=ve("runner_gemini"),uJ="Gemini CLI",qy="gemini-3.6-flash",ukt=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(Ki.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(Ki.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(Ki.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),M$e={list_directory:{name:"List directory",category:ne.Explore},read_file:{name:"Read file",category:ne.FileRead},write_file:{name:"Edit file",category:ne.FileWrite},glob:{name:"Find files",category:ne.Explore},search_file_content:{name:"Search files",category:ne.Explore},replace:{name:"Edit file",category:ne.FileWrite},run_shell_command:{name:"Run command",category:ne.RunCommand},web_fetch:{name:"Fetch web",category:ne.Web},web_search:{name:"Search web",category:ne.Web},google_web_search:{name:"Search web",category:ne.Web},update_topic:{name:"Update topic",category:ne.Plan},read_many_files:{name:"Read files",category:ne.FileRead},save_memory:{name:"Memorize",category:ne.Memorize},activate_skill:{name:"Use Skill",category:ne.Skill},grep_search:{name:"Search files",category:ne.Explore}},dkt=async()=>{let t=md.join(e0.homedir(),".gemini"),e=md.join(t,"settings.json");try{await Wp.mkdir(t,{recursive:!0});let r={};try{let n=await Wp.readFile(e,"utf-8");r=JSON.parse(n)}catch{Ki.log("Creating new Gemini CLI settings file")}r.general||(r.general={}),r.general.previewFeatures||(r.general.previewFeatures=!0),r.model||(r.model={}),r.model.compressionThreshold!==.3&&(r.model.compressionThreshold=.3),r.skills||(r.skills={}),r.skills.enabled=!0,r.context||(r.context={}),r.context.fileName=["GEMINI.md","AGENTS.md"],await Wp.writeFile(e,JSON.stringify(r,null,2),"utf-8"),Ki.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(r){Ki.error("Failed to ensure Gemini CLI settings",{error:r.message}),xe.inc("context.degraded",1,{component:"agent_config"})}},fkt=t=>{t?.category===ne.Skill&&t.type&&Va(Ki,No(t.type))};async function dJ({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:s=!1,priorAgentSessionId:o=void 0,cwd:a=jy.cwd(),abortSignal:c=void 0,onSessionId:l=void 0}){let{accountType:u,prompt:d,modelVersionOverrides:f}=t,{model:p}=t;if(await dkt(),i){let{token:X,url:re}=i;if(!X||!re)throw new Error("No token or url provided from AI Gateway");if(f?.gemini){let fe=f?.gemini?.[u];if(fe){if(!await i.isModelAvailableForProvider("gemini",fe))throw new Error(`Model override '${fe}' is not available for gemini provider`);p=fe}}if(!p)!!qy&&await i.isModelAvailableForProvider("gemini",qy)?(p=qy,Ki.log(`Using default model: ${qy}`)):qy&&Ki.log(`Default model ${qy} is not available, proceeding without model specification`);else if(p&&!f?.gemini?.[u]&&!await i.isModelAvailableForProvider("gemini",p))throw new Error(`Model '${p}' is not available for gemini provider`);jy.env.GEMINI_API_KEY=X,jy.env.GOOGLE_GEMINI_BASE_URL=re}else if(!jy.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided");let h=[],m=[],_=[],y={},v=0,S=0,g,w,P,x,R=!!(s&&o),O=!1;R&&(O=await Qw(o)),R&&!O&&(Ki.log(`Gemini resume requested for session ${o} but it was not resumable; starting a fresh session`),xe.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let A=t.mode==="ask",b;A&&(b=md.join(e0.homedir(),".gemini","ask-policy.toml"),await Wp.mkdir(md.dirname(b),{recursive:!0}),await Wp.writeFile(b,`[[rule]]
695
695
  toolName = "web_fetch"
696
696
  decision = "allow"
697
697
  priority = 10
package/dist/index.js CHANGED
@@ -98,7 +98,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
98
98
  `,LF:`
99
99
  `,concatBytes:yD},oNe=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},sNe={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:oNe};import{Buffer as aNe}from"buffer";var FQ=(t,e)=>t?void 0:cNe.bind(void 0,e),cNe=function*(t,e){if(typeof e!="string"&&!Ft(e)&&!aNe.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},BQ=(t,e)=>t?lNe.bind(void 0,e):uNe.bind(void 0,e),lNe=function*(t,e){jQ(t,e),yield e},uNe=function*(t,e){if(jQ(t,e),typeof e!="string"&&!Ft(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},jQ=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
100
100
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
101
- if (condition) { yield value; }`)};import{Buffer as dNe}from"buffer";import{StringDecoder as fNe}from"string_decoder";var yx=(t,e,r)=>{if(r)return;if(t)return{transform:pNe.bind(void 0,new TextEncoder)};let n=new fNe(e);return{transform:hNe.bind(void 0,n),final:mNe.bind(void 0,n)}},pNe=function*(t,e){dNe.isBuffer(e)?yield cs(e):typeof e=="string"?yield t.encode(e):yield e},hNe=function*(t,e){yield Ft(e)?t.write(e):e},mNe=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as zQ}from"util";var ED=zQ(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Sx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=_Ne}=e[r];for await(let i of n(t))yield*Sx(i,e,r+1)},GQ=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*gNe(r,Number(e),t)},gNe=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Sx(n,r,e+1)},VQ=zQ(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),_Ne=function*(t){yield t};var vD=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},qQ=(t,e)=>[...e.flatMap(r=>[...El(r,t,0)]),...Qg(t)],El=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=SNe}=e[r];for(let i of n(t))yield*El(i,e,r+1)},Qg=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*yNe(r,Number(e),t)},yNe=function*(t,e,r){if(t!==void 0)for(let n of t())yield*El(n,r,e+1)},SNe=function*(t){yield t};var bD=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=WQ(t,s,o),l=Sl(e),u=Sl(r),d=l?ED.bind(void 0,Sx,a):vD.bind(void 0,El),f=l||u?ED.bind(void 0,GQ,a):vD.bind(void 0,Qg),p=l||u?VQ.bind(void 0,a):void 0;return{stream:new ENe({writableObjectMode:n,writableHighWaterMark:HQ(n),readableObjectMode:i,readableHighWaterMark:HQ(i),transform(m,y,v){d([m,c,0],this,v)},flush(m){f([c],this,m)},destroy:p})}},Ex=(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=WQ(s,r,a);t=qQ(c,t)}return t},WQ=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:FQ(n,a)},yx(r,s,n),_x(r,o,n,c),{transform:t,final:e},{transform:BQ(i,a)},UQ({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var YQ=(t,e)=>{for(let r of vNe(t))bNe(t,r,e)},vNe=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),bNe=(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 ${Aa[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>TNe(a,n));r.input=Gg(s)},TNe=(t,e)=>{let r=Ex(t,e,"utf8",!0);return xNe(r),Gg(r)},xNe=t=>{let e=t.find(r=>typeof r!="string"&&!Ft(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 INe,appendFileSync as CNe}from"fs";var vx=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Ld(r,n)&&!hn.has(e)&&wNe(n)&&(t.some(({type:i,value:o})=>i==="native"&&ANe.has(o))||t.every(({type:i})=>Gn.has(i))),wNe=t=>t===1||t===2,ANe=new Set(["pipe","overlapped"]),KQ=async(t,e,r,n)=>{for await(let i of t)RNe(e)||JQ(i,r,n)},ZQ=(t,e,r)=>{for(let n of t)JQ(n,e,r)},RNe=t=>t._readableState.pipes.length>0,JQ=(t,e,r)=>{let n=DT(t);oo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var XQ=({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)=>PNe({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},PNe=({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=QX(t,o,d),p=cs(f),{stdioItems:h,objectMode:m}=e[r],y=ONe([p],h,c,n),{serializedResult:v,finalResult:T=v}=NNe({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});kNe({serializedResult:v,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?T:void 0;try{return n.error===void 0&&MNe(v,h,i),x}catch(E){return n.error=E,x}},ONe=(t,e,r,n)=>{try{return Ex(t,e,r,!1)}catch(i){return n.error=i,t}},NNe=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Gg(t)};let s=p9(t,r);return n[o]?{serializedResult:s,finalResult:SD(s,!i[o],e)}:{serializedResult:s}},kNe=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!vx({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=SD(t,!1,s);try{ZQ(a,e,n)}catch(c){r.error??=c}},MNe=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>mx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?CNe(n,t):(r.add(o),INe(n,t))}};var QQ=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,ds(e,r,"all")]:Array.isArray(e)?[ds(t,r,"all"),...e]:Ft(t)&&Ft(e)?IM([t,e]):`${t}${e}`};import{once as TD}from"events";var e7=async(t,e)=>{let[r,n]=await DNe(t);return e.isForcefullyTerminated??=!1,[r,n]},DNe=async t=>{let[e,r]=await Promise.allSettled([TD(t,"spawn"),TD(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?t7(t):r.value},t7=async t=>{try{return await TD(t,"exit")}catch{return t7(t)}},r7=async t=>{let[e,r]=await t;if(!LNe(e,r)&&xD(e,r))throw new vi;return[e,r]},LNe=(t,e)=>t===void 0&&e===void 0,xD=(t,e)=>t!==0||e!==null;var n7=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=$Ne(t,e,r),s=o?.code==="ETIMEDOUT",a=XX(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},$Ne=(t,e,r)=>t!==void 0?t:xD(e,r)?new vi:void 0;var i7=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=FNe(t,e,r),d=zNe({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Hd(d,c,l)},FNe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=$T(t,e,r),a=BNe(r),{file:c,commandArguments:l,options:u}=nx(t,e,a);jNe(u);let d=MQ(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},BNe=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,jNe=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&bx("ipcInput"),t&&bx("ipc: true"),r&&bx("detached: true"),n&&bx("cancelSignal")},bx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},zNe=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=GNe({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}=n7(c,r),{output:h,error:m=l}=XQ({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((T,x)=>ds(T,r,x)),v=ds(QQ(h,r),r,"all");return qNe({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:v,options:r,command:n,escapedCommand:i,startTime:a})},GNe=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{YQ(o,r);let a=VNe(r);return UNe(...ix(t,e,a))}catch(a){return qd({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},VNe=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:dx(e)}),qNe=({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?fx({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):Xg({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 NMe}from"events";import{spawn as kMe}from"child_process";import l7 from"process";import{once as wD,on as HNe}from"events";var o7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Fd({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:JT(t)}),WNe({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),WNe=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{WT(e,i);let o=wa(t,e,r),s=new AbortController;try{return await Promise.race([YNe(o,n,s),KNe(o,r,s),ZNe(o,r,s)])}catch(a){throw Bd(t),a}finally{s.abort(),YT(e,i)}},YNe=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await wD(t,"message",{signal:r});return n}for await(let[n]of HNe(t,"message",{signal:r}))if(e(n))return n},KNe=async(t,e,{signal:r})=>{await wD(t,"disconnect",{signal:r}),qJ(e)},ZNe=async(t,e,{signal:r})=>{let[n]=await wD(t,"strict:error",{signal:r});throw VT(n,e)};import{once as a7,on as JNe}from"events";var c7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>AD({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),AD=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Fd({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:JT(t)}),WT(e,o);let s=wa(t,e,r),a=new AbortController,c={};return XNe(t,s,a),QNe({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),eke({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},XNe=async(t,e,r)=>{try{await a7(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},QNe=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await a7(t,"strict:error",{signal:r.signal});n.error=VT(i,e),r.abort()}catch{}},eke=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of JNe(r,"message",{signal:o.signal}))s7(s),yield c}catch{s7(s)}finally{o.abort(),YT(e,a),n||Bd(t),i&&await t}},s7=({error:t})=>{if(t)throw t};var u7=(t,{ipc:e})=>{Object.assign(t,f7(t,!1,e))},d7=()=>{let t=l7,e=!0,r=l7.channel!==void 0;return{...f7(t,e,r),getCancelSignal:yX.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},f7=(t,e,r)=>({sendMessage:tx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:o7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:c7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as tke}from"child_process";import{PassThrough as rke,Readable as nke,Writable as ike,Duplex as oke}from"stream";var p7=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{gD(n);let a=new tke;ske(a,n),Object.assign(a,{readable:ake,writable:cke,duplex:lke});let c=qd({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=uke(c,s,i);return{subprocess:a,promise:l}},ske=(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 rke;return t.end(),t},ake=()=>new nke({read(){}}),cke=()=>new ike({write(){}}),lke=()=>new oke({read(){},write(){}}),uke=async(t,e,r)=>Hd(t,e,r);import{createReadStream as h7,createWriteStream as m7}from"fs";import{Buffer as dke}from"buffer";import{Readable as t_,Writable as fke,Duplex as pke}from"stream";var _7=(t,e)=>gx(hke,t,e,!1),r_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Aa[t]}.`)},g7={fileNumber:r_,generator:bD,asyncGenerator:bD,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:pke.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},hke={input:{...g7,fileUrl:({value:t})=>({stream:h7(t)}),filePath:({value:{file:t}})=>({stream:h7(t)}),webStream:({value:t})=>({stream:t_.fromWeb(t)}),iterable:({value:t})=>({stream:t_.from(t)}),asyncIterable:({value:t})=>({stream:t_.from(t)}),string:({value:t})=>({stream:t_.from(t)}),uint8Array:({value:t})=>({stream:t_.from(dke.from(t))})},output:{...g7,fileUrl:({value:t})=>({stream:m7(t)}),filePath:({value:{file:t,append:e}})=>({stream:m7(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:fke.fromWeb(t)}),iterable:r_,asyncIterable:r_,string:r_,uint8Array:r_}};import{on as mke,once as y7}from"events";import{PassThrough as gke,getDefaultHighWaterMark as _ke}from"stream";import{finished as v7}from"stream/promises";function vl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)ID(i);let e=t.some(({readableObjectMode:i})=>i),r=yke(t,e),n=new RD({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var yke=(t,e)=>{if(t.length===0)return _ke(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},RD=class extends gke{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(ID(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Ske(this,this.#e,this.#o);let r=bke({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(ID(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)}},Ske=async(t,e,r)=>{Tx(t,S7);let n=new AbortController;try{await Promise.race([Eke(t,n),vke(t,e,r,n)])}finally{n.abort(),Tx(t,-S7)}},Eke=async(t,{signal:e})=>{try{await v7(t,{signal:e,cleanup:!0})}catch(r){throw b7(t,r),r}},vke=async(t,e,r,{signal:n})=>{for await(let[i]of mke(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},ID=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},bke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Tx(t,E7);let a=new AbortController;try{await Promise.race([Tke(o,e,a),xke({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),wke({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Tx(t,-E7)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?CD(t):Ake(t))},Tke=async(t,e,{signal:r})=>{try{await t,r.aborted||CD(e)}catch(n){r.aborted||b7(e,n)}},xke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await v7(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;T7(s)?i.add(e):x7(t,s)}},wke=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await y7(t,i,{signal:o}),!t.readable)return y7(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},Ake=t=>{t.writable&&t.end()},b7=(t,e)=>{T7(e)?CD(t):x7(t,e)},T7=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",CD=t=>{(t.readable||t.writable)&&t.destroy()},x7=(t,e)=>{t.destroyed||(t.once("error",Rke),t.destroy(e))},Rke=()=>{},Tx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},S7=2,E7=1;import{finished as w7}from"stream/promises";var Yd=(t,e)=>{t.pipe(e),Ike(t,e),Cke(t,e)},Ike=async(t,e)=>{if(!(Ei(t)||Ei(e))){try{await w7(t,{cleanup:!0,readable:!0,writable:!1})}catch{}PD(e)}},PD=t=>{t.writable&&t.end()},Cke=async(t,e)=>{if(!(Ei(t)||Ei(e))){try{await w7(e,{cleanup:!0,readable:!1,writable:!0})}catch{}OD(t)}},OD=t=>{t.readable&&t.destroy()};var A7=(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})=>Gn.has(c)))Pke(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Gn.has(c)))Nke({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]:vl(o);Yd(s,i)}},Pke=(t,e,r,n)=>{r==="output"?Yd(t.stdio[n],e):Yd(e,t.stdio[n]);let i=Oke[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Oke=["stdin","stdout","stderr"],Nke=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;kke(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},kke=(t,{signal:e})=>{Ei(t)&&_l(t,Mke,e)},Mke=2;import{addAbortListener as $ke}from"events";var bl=[];bl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&bl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&bl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var xx=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",ND=Symbol.for("signal-exit emitter"),kD=globalThis,Dke=Object.defineProperty.bind(Object),MD=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(kD[ND])return kD[ND];Dke(kD,ND,{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}},wx=class{},Lke=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),DD=class extends wx{onExit(){return()=>{}}load(){}unload(){}},LD=class extends wx{#e=$D.platform==="win32"?"SIGINT":"SIGHUP";#r=new MD;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of bl)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(!xx(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 bl)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,bl.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 xx(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"&&xx(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)}},$D=globalThis.process,{onExit:R7,load:mpt,unload:gpt}=Lke(xx($D)?new LD($D):new DD);var I7=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=R7(()=>{t.kill()});$ke(n,()=>{i()})};var P7=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=LT(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=Uke(r,n,i),{sourceStream:d,sourceError:f}=Bke(t,l),{options:p,fileDescriptors:h}=ao.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},Uke=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=Fke(t,e,...r),a=HT(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},Fke=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(C7,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||AM(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]=AT(r,...n);return{destination:e(C7)(i,o,s),pipeOptions:s}}if(ao.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}`)},C7=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Bke=(t,e)=>{try{return{sourceStream:jd(t,e)}}catch(r){return{sourceError:r}}};var N7=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=jke({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw UD({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},jke=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return OD(t),n;if(e!==void 0)return PD(r),e},UD=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>qd({error:t,command:O7,escapedCommand:O7,fileDescriptors:e,options:r,startTime:n,isSync:!1}),O7="source.pipe(destination)";var k7=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 zke}from"stream/promises";var M7=(t,e,r)=>{let n=Ax.has(e)?Vke(t,e):Gke(t,e);return _l(t,Hke,r.signal),_l(e,Wke,r.signal),qke(e),n},Gke=(t,e)=>{let r=vl([t]);return Yd(r,e),Ax.set(e,r),r},Vke=(t,e)=>{let r=Ax.get(e);return r.add(t),r},qke=async t=>{try{await zke(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ax.delete(t)},Ax=new WeakMap,Hke=2,Wke=1;import{aborted as Yke}from"util";var D7=(t,e)=>t===void 0?[]:[Kke(t,e)],Kke=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await Yke(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw UD({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Rx=(t,...e)=>{if(It(e[0]))return Rx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=P7(t,...e),i=Zke({...n,destination:r});return i.pipe=Rx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Zke=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=Jke(t,i);N7({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=M7(e,o,d);return await Promise.race([k7(u),...D7(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},Jke=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as iMe}from"timers/promises";import{on as Xke}from"events";import{getDefaultHighWaterMark as Qke}from"stream";var Ix=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return eMe(e,s),$7({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},eMe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},FD=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;tMe(e,s,t);let a=t.readableObjectMode&&!o;return $7({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},tMe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},$7=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=Xke(t,"data",{signal:e.signal,highWaterMark:L7,highWatermark:L7});return rMe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},BD=Qke(!0),L7=BD,rMe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=nMe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*El(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Qg(a)}},nMe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[yx(t,r,!e),_x(t,i,!n,{})].filter(Boolean);var U7=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=oMe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([sMe(t),d]);return}let f=_D(c,r),p=FD({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([aMe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},oMe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!vx({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=FD({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await KQ(a,t,r,o)},sMe=async t=>{await iMe(),t.readableFlowing===null&&t.resume()},aMe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await cx(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await lx(r,{maxBuffer:o})):await Vd(r,{maxBuffer:o})}catch(a){return F7(KX({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},jD=async t=>{try{return await t}catch(e){return F7(e)}},F7=({bufferedData:t})=>d9(t)?new Uint8Array(t):t;import{finished as cMe}from"stream/promises";var n_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=lMe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],cMe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||fMe(a,e,r,n)}finally{s.abort()}},lMe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&uMe(t,r,n),n},uMe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{dMe(e,r),n.call(t,...i)}},dMe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},fMe=(t,e,r,n)=>{if(!pMe(t,e,r,n))throw t},pMe=(t,e,r,n=!0)=>r.propagating?B7(t)||Cx(t):(r.propagating=!0,zD(r,e)===n?B7(t):Cx(t)),zD=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Cx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",B7=t=>t?.code==="EPIPE";var j7=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>GD({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),GD=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=n_(t,e,l);if(zD(l,e)){await u;return}let[d]=await Promise.all([U7({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 z7=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?vl([t,e].filter(Boolean)):void 0,G7=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>GD({...hMe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:mMe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),hMe=({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}},mMe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as gMe}from"events";var V7=t=>Ld(t,"ipc"),q7=(t,e)=>{let r=DT(t);oo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var H7=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=V7(o),a=ls(e,"ipc"),c=ls(r,"ipc");for await(let l of AD({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(ZX(t,i,c),i.push(l)),s&&q7(l,o);return i},W7=async(t,e)=>(await Promise.allSettled([t]),e);var Y7=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:y,controller:v})=>{let T=e7(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:T,propagating:!1},E=j7({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),C=G7({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),R=[],U=H7({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:R,verboseInfo:p}),P=_Me(m,t,x),M=yMe(h,x);try{return await Promise.race([Promise.all([{},r7(T),Promise.all(E),C,U,IX(t,d),...P,...M]),y,SMe(t,v),...TX(t,o,f,v),...VJ({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:v}),...vX({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:v})])}catch(j){return f.terminationReason??="other",Promise.all([{error:j},T,Promise.all(E.map(_=>jD(_))),jD(C),W7(U,R),Promise.allSettled(P),Promise.allSettled(M)])}},_Me=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:n_(n,i,r)),yMe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ti(o,{checkOpen:!1})&&!Ei(o)).map(({type:i,value:o,stream:s=o})=>n_(s,n,e,{isSameDirection:Gn.has(i),stopOnExit:i==="native"}))),SMe=async(t,{signal:e})=>{let[r]=await gMe(t,"error",{signal:e});throw r};var K7=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),i_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=so();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Kd=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 EMe}from"stream";import{callbackify as vMe}from"util";import{finished as Z7}from"stream/promises";var VD=async t=>{if(t!==void 0)try{await qD(t)}catch{}},J7=async t=>{if(t!==void 0)try{await HD(t)}catch{}},qD=async t=>{await Z7(t,{cleanup:!0,readable:!1,writable:!0})},HD=async t=>{await Z7(t,{cleanup:!0,readable:!0,writable:!1})},Px=async(t,e)=>{if(await t,e)throw e},Ox=(t,e,r)=>{r&&!Cx(r)?t.destroy(r):e&&t.destroy()};var X7=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||hn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=WD(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=YD(a,s),{read:f,onStdoutDataDone:p}=KD({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new EMe({read:f,destroy:vMe(JD.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return ZD({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},WD=(t,e,r)=>{let n=jd(t,e),i=i_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},YD=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:BD},KD=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=so(),s=Ix({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){bMe(this,s,o)},onStdoutDataDone:o}},bMe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},ZD=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await HD(t),await n,await VD(i),await e,r.readable&&r.push(null)}catch(o){await VD(i),Q7(r,o)}},JD=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Kd(r,e)&&(Q7(t,n),await Px(e,n))},Q7=(t,e)=>{Ox(t,t.readable,e)};import{Writable as TMe}from"stream";import{callbackify as eee}from"util";var tee=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=XD(t,r,e),s=new TMe({...QD(n,t,i),destroy:eee(tL.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return eL(n,s),s},XD=(t,e,r)=>{let n=HT(t,e),i=i_(r,n,"writableFinal"),o=i_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},QD=(t,e,r)=>({write:xMe.bind(void 0,t),final:eee(wMe.bind(void 0,t,e,r))}),xMe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},wMe=async(t,e,r)=>{await Kd(r,e)&&(t.writable&&t.end(),await e)},eL=async(t,e,r)=>{try{await qD(t),e.writable&&e.end()}catch(n){await J7(r),ree(e,n)}},tL=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Kd(r,e),await Kd(n,e)&&(ree(t,i),await Px(e,i))},ree=(t,e)=>{Ox(t,t.writable,e)};import{Duplex as AMe}from"stream";import{callbackify as RMe}from"util";var nee=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||hn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=WD(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=XD(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=YD(c,a),{read:y,onStdoutDataDone:v}=KD({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),T=new AMe({read:y,...QD(u,t,d),destroy:RMe(IMe.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 ZD({subprocessStdout:c,onStdoutDataDone:v,readable:T,subprocess:t,subprocessStdin:u}),eL(u,T,c),T},IMe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([JD({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),tL({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var rL=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||hn.has(e),s=jd(t,r),a=Ix({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return CMe(a,s,t)},CMe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var iee=(t,{encoding:e})=>{let r=K7();t.readable=X7.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=tee.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=nee.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=rL.bind(void 0,t,e),t[Symbol.asyncIterator]=rL.bind(void 0,t,e,{})};var oee=(t,e)=>{for(let[r,n]of OMe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},PMe=(async()=>{})().constructor.prototype,OMe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(PMe,t)]);var see=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=MMe(t,e,r),{subprocess:f,promise:p}=LMe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Rx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),oee(f,p),ao.set(f,{options:u,fileDescriptors:d}),f},MMe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=$T(t,e,r),{file:a,commandArguments:c,options:l}=nx(t,e,r),u=DMe(l),d=_7(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},DMe=({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}},LMe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=kMe(...ix(t,e,r))}catch(h){return p7({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;NMe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];A7(c,a,l),I7(c,r,l);let d={},f=so();c.kill=zJ.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=z7(c,r),iee(c,r),u7(c,r);let p=$Me({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}},$Me=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,y]=await Y7({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let v=h.map((E,C)=>ds(E,e,C)),T=ds(m,e,"all"),x=UMe({errorInfo:d,exitCode:f,signal:p,stdio:v,all:T,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Hd(x,n,e)},UMe=({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?Xg({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 co,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):fx({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Nx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,FMe(n,t[n],i)]));return{...t,...r}},FMe=(t,e,r)=>BMe.has(t)&&It(e)&&It(r)?{...e,...r}:r,BMe=new Set(["env",...NM]);var Ra=(t,e,r,n)=>{let i=(s,a,c)=>Ra(s,a,r,c),o=(...s)=>jMe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},jMe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(It(o))return i(t,Nx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=zMe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?i7(a,c,l):see(a,c,l,i)},zMe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=_9(e)?y9(e,r):[e,...r],[s,a,c]=AT(...o),l=Nx(Nx(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 aee=({file:t,commandArguments:e})=>lee(t,e),cee=({file:t,commandArguments:e})=>({...lee(t,e),isSync:!0}),lee=(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]=GMe(t);return{file:r,commandArguments:n}},GMe=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(VMe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},VMe=/ +/g;var uee=(t,e,r)=>{t.sync=e(qMe,r),t.s=t.sync},dee=({options:t})=>fee(t),qMe=({options:t})=>({...fee(t),isSync:!0}),fee=t=>({options:{...HMe(t),...t}}),HMe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},pee={preferLocal:!0};var hee=Ra(()=>({})),ogt=Ra(()=>({isSync:!0})),mee=Ra(aee),sgt=Ra(cee),agt=Ra(wX),cgt=Ra(dee,{},pee,uee),{sendMessage:lgt,getOneMessage:ugt,getEachMessage:dgt,getCancelSignal:fgt}=d7();var gee=!1,_ee=()=>{gee=!0},uo=()=>gee;var o_=null,yee=t=>(o_&&o_.destroy(),o_=new fs({totalAllowedTime:t}),o_),See=()=>o_;var fs=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&&uo())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 ST({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Ee.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 Eee={name:"@netlify/agent-runner-cli",type:"module",version:"1.146.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:{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: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.2","@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.197","@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.1.5","@netlify/otel":"^6.0.3","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var ZMe=YMe(import.meta.url),JMe=ps.dirname(ZMe),XMe=KMe(import.meta.url),Zd=Se("shell"),nL=new Set,vee={preferLocal:!0},Or=(t,e,r)=>{let[n,i]=QMe(e,r),o={...vee,...i},s=hee(t,n,o);Tee(s,o),Aee(s);let a=r?.idleTimeout;return a&&a>0&&wee(s,a),s},bee=(t,e)=>{let r={...vee,...e},n=mee(t,r);return Tee(n,r),Aee(n),e?.idleTimeout&&e.idleTimeout>0&&wee(n,e.idleTimeout),n},QMe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Tee=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(hs.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Dg).pipe(hs.stdout),t.stderr?.pipe(new Dg).pipe(hs.stderr);return}t.stdout?.pipe(hs.stdout),t.stderr?.pipe(hs.stderr)},iL=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(hs.kill(-t.pid,e),Zd.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Zd.error("Error killing process:",r),!1}},xee=t=>iL(t,"SIGKILL"),wee=(t,e)=>{let r=null,n=()=>{Zd.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),iL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Zd.log(`Force killing idle process ${t.pid}`),xee(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)},Aee=t=>{nL.add(t);let e=See();if(e){let r=e.onTimesUp(()=>{Zd.log(`Global timer expired, killing process ${t.pid}`),iL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Zd.log(`Force killing process ${t.pid} after timeout`),xee(t))},5e3)});t.on("exit",()=>{nL.delete(t),r()}),t.on("error",()=>{nL.delete(t),r()})}};function fo(t,e){if(!hs.env.NETLIFY_LOCAL_MODE)try{let i=XMe.resolve(Eee.name),o=ps.dirname(i);for(;o!==ps.dirname(o);){let s=ps.dirname(o);if(ps.basename(s)==="node_modules"){let a=ps.join(s,".bin",e);if(kx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(hs.env.NODE_PATH){let i=ps.join(hs.env.NODE_PATH,".bin",e);if(kx.existsSync(i))return i}let r=ps.join(t,"node_modules",".bin",e);if(kx.existsSync(r))return r;let n=ps.join(JMe,"..","node_modules",".bin",e);if(kx.existsSync(n))return n}var eDe=Se("utils"),tDe=t=>new Promise(e=>{setTimeout(e,t)});var Mx=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await tDe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Ia=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},Ree=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):eDe.error("Could not parse JSON",n))}},rDe=t=>t.charAt(0).toUpperCase()+t.slice(1),po=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():rDe(e)).join(" ");function ms(t,e){e&&t.log(`Skill invoked: ${e}`)}var Dx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Iee=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var oL=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},nDe=1e4,sL=(t,e=nDe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{Buffer as Cee}from"buffer";import iDe from"path";var Pee=Se("repo"),Hr=(t,e={})=>Or("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Lx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Pee.info("Getting runner diffs");let n=await sDe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let m=cDe(o);await lDe(m,r)}Pee.info("Changes after processing"),await cL(r);let s=await uL(o,r);if(await aL(s,r),i=await aDe(r),!i)return{hasChanges:!1,ignored:s};await Hr(["commit","-m","Agent runner"],{cwd:r});let a={stdio:["ignore","pipe","pipe"],cwd:r},c=await Hr(["diff",t.runSha,"HEAD"],a),l=String(c.stdout??"");if(i=!!l,!i)return await Oee(r),{hasChanges:!1,ignored:s};let u=await Hr(["diff",t.runSha,"HEAD","--binary"],a),d=String(u.stdout??""),f,p;if(t.sha){let m=await Hr(["diff",t.sha,"HEAD"],a);f=String(m.stdout??"");let y=await Hr(["diff",t.sha,"HEAD","--binary"],a),v=String(y.stdout??"");f!==v&&(p=Cee.from(v).toString("base64"))}await Oee(r);let h={hasChanges:!0,diff:l,resultDiff:f,ignored:s};return l!==d&&(h.diffBinary=Cee.from(d).toString("base64")),p&&(h.resultDiffBinary=p),h},Oee=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Hr(["reset","--soft","HEAD~1"],{cwd:t})},aL=async(t=[],e=process.cwd())=>{await Hr(["add",".",...t],{cwd:e})},cL=async(t=process.cwd())=>{let e=await Hr(["status","-s"],{cwd:t});return String(e.stdout??"")},Nee=/.. (.+)?\.log$/,oDe=[Nee],sDe=async(t=process.cwd())=>{let e=await cL(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
101
+ if (condition) { yield value; }`)};import{Buffer as dNe}from"buffer";import{StringDecoder as fNe}from"string_decoder";var yx=(t,e,r)=>{if(r)return;if(t)return{transform:pNe.bind(void 0,new TextEncoder)};let n=new fNe(e);return{transform:hNe.bind(void 0,n),final:mNe.bind(void 0,n)}},pNe=function*(t,e){dNe.isBuffer(e)?yield cs(e):typeof e=="string"?yield t.encode(e):yield e},hNe=function*(t,e){yield Ft(e)?t.write(e):e},mNe=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as zQ}from"util";var ED=zQ(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Sx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=_Ne}=e[r];for await(let i of n(t))yield*Sx(i,e,r+1)},GQ=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*gNe(r,Number(e),t)},gNe=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Sx(n,r,e+1)},VQ=zQ(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),_Ne=function*(t){yield t};var vD=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},qQ=(t,e)=>[...e.flatMap(r=>[...El(r,t,0)]),...Qg(t)],El=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=SNe}=e[r];for(let i of n(t))yield*El(i,e,r+1)},Qg=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*yNe(r,Number(e),t)},yNe=function*(t,e,r){if(t!==void 0)for(let n of t())yield*El(n,r,e+1)},SNe=function*(t){yield t};var bD=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=WQ(t,s,o),l=Sl(e),u=Sl(r),d=l?ED.bind(void 0,Sx,a):vD.bind(void 0,El),f=l||u?ED.bind(void 0,GQ,a):vD.bind(void 0,Qg),p=l||u?VQ.bind(void 0,a):void 0;return{stream:new ENe({writableObjectMode:n,writableHighWaterMark:HQ(n),readableObjectMode:i,readableHighWaterMark:HQ(i),transform(m,y,v){d([m,c,0],this,v)},flush(m){f([c],this,m)},destroy:p})}},Ex=(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=WQ(s,r,a);t=qQ(c,t)}return t},WQ=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:FQ(n,a)},yx(r,s,n),_x(r,o,n,c),{transform:t,final:e},{transform:BQ(i,a)},UQ({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var YQ=(t,e)=>{for(let r of vNe(t))bNe(t,r,e)},vNe=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),bNe=(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 ${Aa[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>TNe(a,n));r.input=Gg(s)},TNe=(t,e)=>{let r=Ex(t,e,"utf8",!0);return xNe(r),Gg(r)},xNe=t=>{let e=t.find(r=>typeof r!="string"&&!Ft(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 INe,appendFileSync as CNe}from"fs";var vx=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Ld(r,n)&&!hn.has(e)&&wNe(n)&&(t.some(({type:i,value:o})=>i==="native"&&ANe.has(o))||t.every(({type:i})=>Gn.has(i))),wNe=t=>t===1||t===2,ANe=new Set(["pipe","overlapped"]),KQ=async(t,e,r,n)=>{for await(let i of t)RNe(e)||JQ(i,r,n)},ZQ=(t,e,r)=>{for(let n of t)JQ(n,e,r)},RNe=t=>t._readableState.pipes.length>0,JQ=(t,e,r)=>{let n=DT(t);oo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var XQ=({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)=>PNe({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},PNe=({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=QX(t,o,d),p=cs(f),{stdioItems:h,objectMode:m}=e[r],y=ONe([p],h,c,n),{serializedResult:v,finalResult:T=v}=NNe({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});kNe({serializedResult:v,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?T:void 0;try{return n.error===void 0&&MNe(v,h,i),x}catch(E){return n.error=E,x}},ONe=(t,e,r,n)=>{try{return Ex(t,e,r,!1)}catch(i){return n.error=i,t}},NNe=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Gg(t)};let s=p9(t,r);return n[o]?{serializedResult:s,finalResult:SD(s,!i[o],e)}:{serializedResult:s}},kNe=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!vx({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=SD(t,!1,s);try{ZQ(a,e,n)}catch(c){r.error??=c}},MNe=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>mx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?CNe(n,t):(r.add(o),INe(n,t))}};var QQ=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,ds(e,r,"all")]:Array.isArray(e)?[ds(t,r,"all"),...e]:Ft(t)&&Ft(e)?IM([t,e]):`${t}${e}`};import{once as TD}from"events";var e7=async(t,e)=>{let[r,n]=await DNe(t);return e.isForcefullyTerminated??=!1,[r,n]},DNe=async t=>{let[e,r]=await Promise.allSettled([TD(t,"spawn"),TD(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?t7(t):r.value},t7=async t=>{try{return await TD(t,"exit")}catch{return t7(t)}},r7=async t=>{let[e,r]=await t;if(!LNe(e,r)&&xD(e,r))throw new vi;return[e,r]},LNe=(t,e)=>t===void 0&&e===void 0,xD=(t,e)=>t!==0||e!==null;var n7=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=$Ne(t,e,r),s=o?.code==="ETIMEDOUT",a=XX(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},$Ne=(t,e,r)=>t!==void 0?t:xD(e,r)?new vi:void 0;var i7=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=FNe(t,e,r),d=zNe({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Hd(d,c,l)},FNe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=$T(t,e,r),a=BNe(r),{file:c,commandArguments:l,options:u}=nx(t,e,a);jNe(u);let d=MQ(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},BNe=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,jNe=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&bx("ipcInput"),t&&bx("ipc: true"),r&&bx("detached: true"),n&&bx("cancelSignal")},bx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},zNe=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=GNe({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}=n7(c,r),{output:h,error:m=l}=XQ({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((T,x)=>ds(T,r,x)),v=ds(QQ(h,r),r,"all");return qNe({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:v,options:r,command:n,escapedCommand:i,startTime:a})},GNe=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{YQ(o,r);let a=VNe(r);return UNe(...ix(t,e,a))}catch(a){return qd({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},VNe=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:dx(e)}),qNe=({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?fx({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):Xg({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 NMe}from"events";import{spawn as kMe}from"child_process";import l7 from"process";import{once as wD,on as HNe}from"events";var o7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Fd({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:JT(t)}),WNe({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),WNe=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{WT(e,i);let o=wa(t,e,r),s=new AbortController;try{return await Promise.race([YNe(o,n,s),KNe(o,r,s),ZNe(o,r,s)])}catch(a){throw Bd(t),a}finally{s.abort(),YT(e,i)}},YNe=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await wD(t,"message",{signal:r});return n}for await(let[n]of HNe(t,"message",{signal:r}))if(e(n))return n},KNe=async(t,e,{signal:r})=>{await wD(t,"disconnect",{signal:r}),qJ(e)},ZNe=async(t,e,{signal:r})=>{let[n]=await wD(t,"strict:error",{signal:r});throw VT(n,e)};import{once as a7,on as JNe}from"events";var c7=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>AD({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),AD=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Fd({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:JT(t)}),WT(e,o);let s=wa(t,e,r),a=new AbortController,c={};return XNe(t,s,a),QNe({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),eke({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},XNe=async(t,e,r)=>{try{await a7(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},QNe=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await a7(t,"strict:error",{signal:r.signal});n.error=VT(i,e),r.abort()}catch{}},eke=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of JNe(r,"message",{signal:o.signal}))s7(s),yield c}catch{s7(s)}finally{o.abort(),YT(e,a),n||Bd(t),i&&await t}},s7=({error:t})=>{if(t)throw t};var u7=(t,{ipc:e})=>{Object.assign(t,f7(t,!1,e))},d7=()=>{let t=l7,e=!0,r=l7.channel!==void 0;return{...f7(t,e,r),getCancelSignal:yX.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},f7=(t,e,r)=>({sendMessage:tx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:o7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:c7.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as tke}from"child_process";import{PassThrough as rke,Readable as nke,Writable as ike,Duplex as oke}from"stream";var p7=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{gD(n);let a=new tke;ske(a,n),Object.assign(a,{readable:ake,writable:cke,duplex:lke});let c=qd({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=uke(c,s,i);return{subprocess:a,promise:l}},ske=(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 rke;return t.end(),t},ake=()=>new nke({read(){}}),cke=()=>new ike({write(){}}),lke=()=>new oke({read(){},write(){}}),uke=async(t,e,r)=>Hd(t,e,r);import{createReadStream as h7,createWriteStream as m7}from"fs";import{Buffer as dke}from"buffer";import{Readable as t_,Writable as fke,Duplex as pke}from"stream";var _7=(t,e)=>gx(hke,t,e,!1),r_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Aa[t]}.`)},g7={fileNumber:r_,generator:bD,asyncGenerator:bD,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:pke.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},hke={input:{...g7,fileUrl:({value:t})=>({stream:h7(t)}),filePath:({value:{file:t}})=>({stream:h7(t)}),webStream:({value:t})=>({stream:t_.fromWeb(t)}),iterable:({value:t})=>({stream:t_.from(t)}),asyncIterable:({value:t})=>({stream:t_.from(t)}),string:({value:t})=>({stream:t_.from(t)}),uint8Array:({value:t})=>({stream:t_.from(dke.from(t))})},output:{...g7,fileUrl:({value:t})=>({stream:m7(t)}),filePath:({value:{file:t,append:e}})=>({stream:m7(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:fke.fromWeb(t)}),iterable:r_,asyncIterable:r_,string:r_,uint8Array:r_}};import{on as mke,once as y7}from"events";import{PassThrough as gke,getDefaultHighWaterMark as _ke}from"stream";import{finished as v7}from"stream/promises";function vl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)ID(i);let e=t.some(({readableObjectMode:i})=>i),r=yke(t,e),n=new RD({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var yke=(t,e)=>{if(t.length===0)return _ke(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},RD=class extends gke{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(ID(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Ske(this,this.#e,this.#o);let r=bke({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(ID(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)}},Ske=async(t,e,r)=>{Tx(t,S7);let n=new AbortController;try{await Promise.race([Eke(t,n),vke(t,e,r,n)])}finally{n.abort(),Tx(t,-S7)}},Eke=async(t,{signal:e})=>{try{await v7(t,{signal:e,cleanup:!0})}catch(r){throw b7(t,r),r}},vke=async(t,e,r,{signal:n})=>{for await(let[i]of mke(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},ID=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},bke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Tx(t,E7);let a=new AbortController;try{await Promise.race([Tke(o,e,a),xke({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),wke({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Tx(t,-E7)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?CD(t):Ake(t))},Tke=async(t,e,{signal:r})=>{try{await t,r.aborted||CD(e)}catch(n){r.aborted||b7(e,n)}},xke=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await v7(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;T7(s)?i.add(e):x7(t,s)}},wke=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await y7(t,i,{signal:o}),!t.readable)return y7(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},Ake=t=>{t.writable&&t.end()},b7=(t,e)=>{T7(e)?CD(t):x7(t,e)},T7=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",CD=t=>{(t.readable||t.writable)&&t.destroy()},x7=(t,e)=>{t.destroyed||(t.once("error",Rke),t.destroy(e))},Rke=()=>{},Tx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},S7=2,E7=1;import{finished as w7}from"stream/promises";var Yd=(t,e)=>{t.pipe(e),Ike(t,e),Cke(t,e)},Ike=async(t,e)=>{if(!(Ei(t)||Ei(e))){try{await w7(t,{cleanup:!0,readable:!0,writable:!1})}catch{}PD(e)}},PD=t=>{t.writable&&t.end()},Cke=async(t,e)=>{if(!(Ei(t)||Ei(e))){try{await w7(e,{cleanup:!0,readable:!1,writable:!0})}catch{}OD(t)}},OD=t=>{t.readable&&t.destroy()};var A7=(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})=>Gn.has(c)))Pke(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Gn.has(c)))Nke({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]:vl(o);Yd(s,i)}},Pke=(t,e,r,n)=>{r==="output"?Yd(t.stdio[n],e):Yd(e,t.stdio[n]);let i=Oke[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Oke=["stdin","stdout","stderr"],Nke=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;kke(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},kke=(t,{signal:e})=>{Ei(t)&&_l(t,Mke,e)},Mke=2;import{addAbortListener as $ke}from"events";var bl=[];bl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&bl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&bl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var xx=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",ND=Symbol.for("signal-exit emitter"),kD=globalThis,Dke=Object.defineProperty.bind(Object),MD=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(kD[ND])return kD[ND];Dke(kD,ND,{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}},wx=class{},Lke=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),DD=class extends wx{onExit(){return()=>{}}load(){}unload(){}},LD=class extends wx{#e=$D.platform==="win32"?"SIGINT":"SIGHUP";#r=new MD;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of bl)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(!xx(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 bl)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,bl.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 xx(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"&&xx(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)}},$D=globalThis.process,{onExit:R7,load:mpt,unload:gpt}=Lke(xx($D)?new LD($D):new DD);var I7=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=R7(()=>{t.kill()});$ke(n,()=>{i()})};var P7=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=LT(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=Uke(r,n,i),{sourceStream:d,sourceError:f}=Bke(t,l),{options:p,fileDescriptors:h}=ao.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},Uke=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=Fke(t,e,...r),a=HT(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},Fke=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(C7,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||AM(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]=AT(r,...n);return{destination:e(C7)(i,o,s),pipeOptions:s}}if(ao.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}`)},C7=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Bke=(t,e)=>{try{return{sourceStream:jd(t,e)}}catch(r){return{sourceError:r}}};var N7=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=jke({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw UD({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},jke=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return OD(t),n;if(e!==void 0)return PD(r),e},UD=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>qd({error:t,command:O7,escapedCommand:O7,fileDescriptors:e,options:r,startTime:n,isSync:!1}),O7="source.pipe(destination)";var k7=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 zke}from"stream/promises";var M7=(t,e,r)=>{let n=Ax.has(e)?Vke(t,e):Gke(t,e);return _l(t,Hke,r.signal),_l(e,Wke,r.signal),qke(e),n},Gke=(t,e)=>{let r=vl([t]);return Yd(r,e),Ax.set(e,r),r},Vke=(t,e)=>{let r=Ax.get(e);return r.add(t),r},qke=async t=>{try{await zke(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ax.delete(t)},Ax=new WeakMap,Hke=2,Wke=1;import{aborted as Yke}from"util";var D7=(t,e)=>t===void 0?[]:[Kke(t,e)],Kke=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await Yke(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw UD({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Rx=(t,...e)=>{if(It(e[0]))return Rx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=P7(t,...e),i=Zke({...n,destination:r});return i.pipe=Rx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Zke=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=Jke(t,i);N7({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=M7(e,o,d);return await Promise.race([k7(u),...D7(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},Jke=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as iMe}from"timers/promises";import{on as Xke}from"events";import{getDefaultHighWaterMark as Qke}from"stream";var Ix=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return eMe(e,s),$7({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},eMe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},FD=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;tMe(e,s,t);let a=t.readableObjectMode&&!o;return $7({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},tMe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},$7=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=Xke(t,"data",{signal:e.signal,highWaterMark:L7,highWatermark:L7});return rMe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},BD=Qke(!0),L7=BD,rMe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=nMe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*El(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Qg(a)}},nMe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[yx(t,r,!e),_x(t,i,!n,{})].filter(Boolean);var U7=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=oMe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([sMe(t),d]);return}let f=_D(c,r),p=FD({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([aMe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},oMe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!vx({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=FD({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await KQ(a,t,r,o)},sMe=async t=>{await iMe(),t.readableFlowing===null&&t.resume()},aMe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await cx(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await lx(r,{maxBuffer:o})):await Vd(r,{maxBuffer:o})}catch(a){return F7(KX({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},jD=async t=>{try{return await t}catch(e){return F7(e)}},F7=({bufferedData:t})=>d9(t)?new Uint8Array(t):t;import{finished as cMe}from"stream/promises";var n_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=lMe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],cMe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||fMe(a,e,r,n)}finally{s.abort()}},lMe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&uMe(t,r,n),n},uMe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{dMe(e,r),n.call(t,...i)}},dMe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},fMe=(t,e,r,n)=>{if(!pMe(t,e,r,n))throw t},pMe=(t,e,r,n=!0)=>r.propagating?B7(t)||Cx(t):(r.propagating=!0,zD(r,e)===n?B7(t):Cx(t)),zD=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Cx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",B7=t=>t?.code==="EPIPE";var j7=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>GD({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),GD=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=n_(t,e,l);if(zD(l,e)){await u;return}let[d]=await Promise.all([U7({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 z7=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?vl([t,e].filter(Boolean)):void 0,G7=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>GD({...hMe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:mMe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),hMe=({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}},mMe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as gMe}from"events";var V7=t=>Ld(t,"ipc"),q7=(t,e)=>{let r=DT(t);oo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var H7=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=V7(o),a=ls(e,"ipc"),c=ls(r,"ipc");for await(let l of AD({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(ZX(t,i,c),i.push(l)),s&&q7(l,o);return i},W7=async(t,e)=>(await Promise.allSettled([t]),e);var Y7=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:y,controller:v})=>{let T=e7(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:T,propagating:!1},E=j7({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),C=G7({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),R=[],U=H7({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:R,verboseInfo:p}),P=_Me(m,t,x),M=yMe(h,x);try{return await Promise.race([Promise.all([{},r7(T),Promise.all(E),C,U,IX(t,d),...P,...M]),y,SMe(t,v),...TX(t,o,f,v),...VJ({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:v}),...vX({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:v})])}catch(j){return f.terminationReason??="other",Promise.all([{error:j},T,Promise.all(E.map(_=>jD(_))),jD(C),W7(U,R),Promise.allSettled(P),Promise.allSettled(M)])}},_Me=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:n_(n,i,r)),yMe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ti(o,{checkOpen:!1})&&!Ei(o)).map(({type:i,value:o,stream:s=o})=>n_(s,n,e,{isSameDirection:Gn.has(i),stopOnExit:i==="native"}))),SMe=async(t,{signal:e})=>{let[r]=await gMe(t,"error",{signal:e});throw r};var K7=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),i_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=so();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Kd=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 EMe}from"stream";import{callbackify as vMe}from"util";import{finished as Z7}from"stream/promises";var VD=async t=>{if(t!==void 0)try{await qD(t)}catch{}},J7=async t=>{if(t!==void 0)try{await HD(t)}catch{}},qD=async t=>{await Z7(t,{cleanup:!0,readable:!1,writable:!0})},HD=async t=>{await Z7(t,{cleanup:!0,readable:!0,writable:!1})},Px=async(t,e)=>{if(await t,e)throw e},Ox=(t,e,r)=>{r&&!Cx(r)?t.destroy(r):e&&t.destroy()};var X7=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||hn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=WD(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=YD(a,s),{read:f,onStdoutDataDone:p}=KD({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new EMe({read:f,destroy:vMe(JD.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return ZD({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},WD=(t,e,r)=>{let n=jd(t,e),i=i_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},YD=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:BD},KD=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=so(),s=Ix({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){bMe(this,s,o)},onStdoutDataDone:o}},bMe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},ZD=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await HD(t),await n,await VD(i),await e,r.readable&&r.push(null)}catch(o){await VD(i),Q7(r,o)}},JD=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Kd(r,e)&&(Q7(t,n),await Px(e,n))},Q7=(t,e)=>{Ox(t,t.readable,e)};import{Writable as TMe}from"stream";import{callbackify as eee}from"util";var tee=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=XD(t,r,e),s=new TMe({...QD(n,t,i),destroy:eee(tL.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return eL(n,s),s},XD=(t,e,r)=>{let n=HT(t,e),i=i_(r,n,"writableFinal"),o=i_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},QD=(t,e,r)=>({write:xMe.bind(void 0,t),final:eee(wMe.bind(void 0,t,e,r))}),xMe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},wMe=async(t,e,r)=>{await Kd(r,e)&&(t.writable&&t.end(),await e)},eL=async(t,e,r)=>{try{await qD(t),e.writable&&e.end()}catch(n){await J7(r),ree(e,n)}},tL=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Kd(r,e),await Kd(n,e)&&(ree(t,i),await Px(e,i))},ree=(t,e)=>{Ox(t,t.writable,e)};import{Duplex as AMe}from"stream";import{callbackify as RMe}from"util";var nee=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||hn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=WD(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=XD(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=YD(c,a),{read:y,onStdoutDataDone:v}=KD({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),T=new AMe({read:y,...QD(u,t,d),destroy:RMe(IMe.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 ZD({subprocessStdout:c,onStdoutDataDone:v,readable:T,subprocess:t,subprocessStdin:u}),eL(u,T,c),T},IMe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([JD({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),tL({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var rL=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||hn.has(e),s=jd(t,r),a=Ix({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return CMe(a,s,t)},CMe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var iee=(t,{encoding:e})=>{let r=K7();t.readable=X7.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=tee.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=nee.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=rL.bind(void 0,t,e),t[Symbol.asyncIterator]=rL.bind(void 0,t,e,{})};var oee=(t,e)=>{for(let[r,n]of OMe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},PMe=(async()=>{})().constructor.prototype,OMe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(PMe,t)]);var see=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=MMe(t,e,r),{subprocess:f,promise:p}=LMe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Rx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),oee(f,p),ao.set(f,{options:u,fileDescriptors:d}),f},MMe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=$T(t,e,r),{file:a,commandArguments:c,options:l}=nx(t,e,r),u=DMe(l),d=_7(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},DMe=({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}},LMe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=kMe(...ix(t,e,r))}catch(h){return p7({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;NMe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];A7(c,a,l),I7(c,r,l);let d={},f=so();c.kill=zJ.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=z7(c,r),iee(c,r),u7(c,r);let p=$Me({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}},$Me=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,y]=await Y7({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let v=h.map((E,C)=>ds(E,e,C)),T=ds(m,e,"all"),x=UMe({errorInfo:d,exitCode:f,signal:p,stdio:v,all:T,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Hd(x,n,e)},UMe=({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?Xg({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 co,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):fx({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Nx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,FMe(n,t[n],i)]));return{...t,...r}},FMe=(t,e,r)=>BMe.has(t)&&It(e)&&It(r)?{...e,...r}:r,BMe=new Set(["env",...NM]);var Ra=(t,e,r,n)=>{let i=(s,a,c)=>Ra(s,a,r,c),o=(...s)=>jMe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},jMe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(It(o))return i(t,Nx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=zMe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?i7(a,c,l):see(a,c,l,i)},zMe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=_9(e)?y9(e,r):[e,...r],[s,a,c]=AT(...o),l=Nx(Nx(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 aee=({file:t,commandArguments:e})=>lee(t,e),cee=({file:t,commandArguments:e})=>({...lee(t,e),isSync:!0}),lee=(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]=GMe(t);return{file:r,commandArguments:n}},GMe=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(VMe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},VMe=/ +/g;var uee=(t,e,r)=>{t.sync=e(qMe,r),t.s=t.sync},dee=({options:t})=>fee(t),qMe=({options:t})=>({...fee(t),isSync:!0}),fee=t=>({options:{...HMe(t),...t}}),HMe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},pee={preferLocal:!0};var hee=Ra(()=>({})),ogt=Ra(()=>({isSync:!0})),mee=Ra(aee),sgt=Ra(cee),agt=Ra(wX),cgt=Ra(dee,{},pee,uee),{sendMessage:lgt,getOneMessage:ugt,getEachMessage:dgt,getCancelSignal:fgt}=d7();var gee=!1,_ee=()=>{gee=!0},uo=()=>gee;var o_=null,yee=t=>(o_&&o_.destroy(),o_=new fs({totalAllowedTime:t}),o_),See=()=>o_;var fs=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&&uo())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 ST({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Ee.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 Eee={name:"@netlify/agent-runner-cli",type:"module",version:"1.147.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:{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: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.2","@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.197","@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.1.5","@netlify/otel":"^6.0.3","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var ZMe=YMe(import.meta.url),JMe=ps.dirname(ZMe),XMe=KMe(import.meta.url),Zd=Se("shell"),nL=new Set,vee={preferLocal:!0},Or=(t,e,r)=>{let[n,i]=QMe(e,r),o={...vee,...i},s=hee(t,n,o);Tee(s,o),Aee(s);let a=r?.idleTimeout;return a&&a>0&&wee(s,a),s},bee=(t,e)=>{let r={...vee,...e},n=mee(t,r);return Tee(n,r),Aee(n),e?.idleTimeout&&e.idleTimeout>0&&wee(n,e.idleTimeout),n},QMe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Tee=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(hs.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Dg).pipe(hs.stdout),t.stderr?.pipe(new Dg).pipe(hs.stderr);return}t.stdout?.pipe(hs.stdout),t.stderr?.pipe(hs.stderr)},iL=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(hs.kill(-t.pid,e),Zd.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Zd.error("Error killing process:",r),!1}},xee=t=>iL(t,"SIGKILL"),wee=(t,e)=>{let r=null,n=()=>{Zd.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),iL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Zd.log(`Force killing idle process ${t.pid}`),xee(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)},Aee=t=>{nL.add(t);let e=See();if(e){let r=e.onTimesUp(()=>{Zd.log(`Global timer expired, killing process ${t.pid}`),iL(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Zd.log(`Force killing process ${t.pid} after timeout`),xee(t))},5e3)});t.on("exit",()=>{nL.delete(t),r()}),t.on("error",()=>{nL.delete(t),r()})}};function fo(t,e){if(!hs.env.NETLIFY_LOCAL_MODE)try{let i=XMe.resolve(Eee.name),o=ps.dirname(i);for(;o!==ps.dirname(o);){let s=ps.dirname(o);if(ps.basename(s)==="node_modules"){let a=ps.join(s,".bin",e);if(kx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(hs.env.NODE_PATH){let i=ps.join(hs.env.NODE_PATH,".bin",e);if(kx.existsSync(i))return i}let r=ps.join(t,"node_modules",".bin",e);if(kx.existsSync(r))return r;let n=ps.join(JMe,"..","node_modules",".bin",e);if(kx.existsSync(n))return n}var eDe=Se("utils"),tDe=t=>new Promise(e=>{setTimeout(e,t)});var Mx=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await tDe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Ia=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},Ree=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):eDe.error("Could not parse JSON",n))}},rDe=t=>t.charAt(0).toUpperCase()+t.slice(1),po=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():rDe(e)).join(" ");function ms(t,e){e&&t.log(`Skill invoked: ${e}`)}var Dx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Iee=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var oL=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},nDe=1e4,sL=(t,e=nDe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{Buffer as Cee}from"buffer";import iDe from"path";var Pee=Se("repo"),Hr=(t,e={})=>Or("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Lx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Pee.info("Getting runner diffs");let n=await sDe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let m=cDe(o);await lDe(m,r)}Pee.info("Changes after processing"),await cL(r);let s=await uL(o,r);if(await aL(s,r),i=await aDe(r),!i)return{hasChanges:!1,ignored:s};await Hr(["commit","-m","Agent runner"],{cwd:r});let a={stdio:["ignore","pipe","pipe"],cwd:r},c=await Hr(["diff",t.runSha,"HEAD"],a),l=String(c.stdout??"");if(i=!!l,!i)return await Oee(r),{hasChanges:!1,ignored:s};let u=await Hr(["diff",t.runSha,"HEAD","--binary"],a),d=String(u.stdout??""),f,p;if(t.sha){let m=await Hr(["diff",t.sha,"HEAD"],a);f=String(m.stdout??"");let y=await Hr(["diff",t.sha,"HEAD","--binary"],a),v=String(y.stdout??"");f!==v&&(p=Cee.from(v).toString("base64"))}await Oee(r);let h={hasChanges:!0,diff:l,resultDiff:f,ignored:s};return l!==d&&(h.diffBinary=Cee.from(d).toString("base64")),p&&(h.resultDiffBinary=p),h},Oee=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Hr(["reset","--soft","HEAD~1"],{cwd:t})},aL=async(t=[],e=process.cwd())=>{await Hr(["add",".",...t],{cwd:e})},cL=async(t=process.cwd())=>{let e=await Hr(["status","-s"],{cwd:t});return String(e.stdout??"")},Nee=/.. (.+)?\.log$/,oDe=[Nee],sDe=async(t=process.cwd())=>{let e=await cL(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
102
102
  `).filter(i=>oDe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},aDe=async(t=process.cwd())=>{try{return await Hr(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},lL=async(t=process.cwd())=>{let{stdout:e}=await Hr(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},kee=async(t=process.cwd())=>{let{stdout:e}=await Hr(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},uL=async(t,e=process.cwd())=>{t||=await cL(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(`
103
103
  `).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${iDe.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(Nee)?.[1];o&&n.push(`:!${o}.log`)}),n},dL=async(t=process.cwd())=>{await Hr(["reset","--hard","HEAD"],{cwd:t})},Mee=async(t=process.cwd())=>{let e=await Hr(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
104
104
  `).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},cDe=t=>{let e=t.split(`
@@ -319,7 +319,7 @@ ${s.trim()}
319
319
  \`\`\``),{title:n,message:s,category:i}};import hu from"fs/promises";import Ly from"os";import mc from"path";import rh from"process";import fBe from"readline";import My from"fs/promises";import cBe from"os";import PR from"path";var Voe=Se("gemini_session"),lBe=t=>t instanceof Error?t.message:String(t),uBe=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},dBe=async t=>{let r=(await My.readFile(t,"utf8")).split(`
320
320
  `),n=!1,i=r.map(o=>{if(!o.trim())return o;let s;try{s=JSON.parse(o)}catch{return o}return uBe(s)?(n=!0,JSON.stringify(s)):o});return n&&await My.writeFile(t,i.join(`
321
321
  `),"utf8"),n},F2=async(t,e=PR.join(cBe.homedir(),".gemini"))=>{let r=PR.join(e,"tmp"),n=t.slice(0,8),i;try{i=await My.readdir(r)}catch{return}for(let o of i){let s=PR.join(r,o,"chats"),a;try{a=await My.readdir(s)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let l=PR.join(s,c);try{let u=(await My.readFile(l,"utf8")).split(`
322
- `,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},Dy=async t=>{try{let e=await F2(t);return e?(await dBe(e),!0):(Voe.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return Voe.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:lBe(e)}),!1}};var xn=Se("runner_gemini"),B2="Gemini CLI",nh="gemini-3.5-flash",pBe=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(xn.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(xn.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(xn.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),qoe={list_directory:{name:"List directory",category:K.Explore},read_file:{name:"Read file",category:K.FileRead},write_file:{name:"Edit file",category:K.FileWrite},glob:{name:"Find files",category:K.Explore},search_file_content:{name:"Search files",category:K.Explore},replace:{name:"Edit file",category:K.FileWrite},run_shell_command:{name:"Run command",category:K.RunCommand},web_fetch:{name:"Fetch web",category:K.Web},web_search:{name:"Search web",category:K.Web},google_web_search:{name:"Search web",category:K.Web},update_topic:{name:"Update topic",category:K.Plan},read_many_files:{name:"Read files",category:K.FileRead},save_memory:{name:"Memorize",category:K.Memorize},activate_skill:{name:"Use Skill",category:K.Skill},grep_search:{name:"Search files",category:K.Explore}},hBe=async()=>{let t=mc.join(Ly.homedir(),".gemini"),e=mc.join(t,"settings.json");try{await hu.mkdir(t,{recursive:!0});let r={};try{let n=await hu.readFile(e,"utf-8");r=JSON.parse(n)}catch{xn.log("Creating new Gemini CLI settings file")}r.general||(r.general={}),r.general.previewFeatures||(r.general.previewFeatures=!0),r.model||(r.model={}),r.model.compressionThreshold!==.3&&(r.model.compressionThreshold=.3),r.skills||(r.skills={}),r.skills.enabled=!0,r.context||(r.context={}),r.context.fileName=["GEMINI.md","AGENTS.md"],await hu.writeFile(e,JSON.stringify(r,null,2),"utf-8"),xn.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(r){xn.error("Failed to ensure Gemini CLI settings",{error:r.message}),Ee.inc("context.degraded",1,{component:"agent_config"})}},mBe=t=>{t?.category===K.Skill&&t.type&&ms(xn,po(t.type))};async function j2({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=rh.cwd(),abortSignal:c=void 0,onSessionId:l=void 0}){let{accountType:u,prompt:d,modelVersionOverrides:f}=t,{model:p}=t;if(await hBe(),i){let{token:le,url:pe}=i;if(!le||!pe)throw new Error("No token or url provided from AI Gateway");if(f?.gemini){let ce=f?.gemini?.[u];if(ce){if(!await i.isModelAvailableForProvider("gemini",ce))throw new Error(`Model override '${ce}' is not available for gemini provider`);p=ce}}if(!p)!!nh&&await i.isModelAvailableForProvider("gemini",nh)?(p=nh,xn.log(`Using default model: ${nh}`)):nh&&xn.log(`Default model ${nh} is not available, proceeding without model specification`);else if(p&&!f?.gemini?.[u]&&!await i.isModelAvailableForProvider("gemini",p))throw new Error(`Model '${p}' is not available for gemini provider`);rh.env.GEMINI_API_KEY=le,rh.env.GOOGLE_GEMINI_BASE_URL=pe}else if(!rh.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided");let h=[],m=[],y=[],v={},T=0,x=0,E,C,R,U,P=!!(o&&s),M=!1;P&&(M=await Dy(s)),P&&!M&&(xn.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),Ee.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let j=t.mode==="ask",_;j&&(_=mc.join(Ly.homedir(),".gemini","ask-policy.toml"),await hu.mkdir(mc.dirname(_),{recursive:!0}),await hu.writeFile(_,`[[rule]]
322
+ `,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},Dy=async t=>{try{let e=await F2(t);return e?(await dBe(e),!0):(Voe.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return Voe.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:lBe(e)}),!1}};var xn=Se("runner_gemini"),B2="Gemini CLI",nh="gemini-3.6-flash",pBe=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(xn.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(xn.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(xn.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),qoe={list_directory:{name:"List directory",category:K.Explore},read_file:{name:"Read file",category:K.FileRead},write_file:{name:"Edit file",category:K.FileWrite},glob:{name:"Find files",category:K.Explore},search_file_content:{name:"Search files",category:K.Explore},replace:{name:"Edit file",category:K.FileWrite},run_shell_command:{name:"Run command",category:K.RunCommand},web_fetch:{name:"Fetch web",category:K.Web},web_search:{name:"Search web",category:K.Web},google_web_search:{name:"Search web",category:K.Web},update_topic:{name:"Update topic",category:K.Plan},read_many_files:{name:"Read files",category:K.FileRead},save_memory:{name:"Memorize",category:K.Memorize},activate_skill:{name:"Use Skill",category:K.Skill},grep_search:{name:"Search files",category:K.Explore}},hBe=async()=>{let t=mc.join(Ly.homedir(),".gemini"),e=mc.join(t,"settings.json");try{await hu.mkdir(t,{recursive:!0});let r={};try{let n=await hu.readFile(e,"utf-8");r=JSON.parse(n)}catch{xn.log("Creating new Gemini CLI settings file")}r.general||(r.general={}),r.general.previewFeatures||(r.general.previewFeatures=!0),r.model||(r.model={}),r.model.compressionThreshold!==.3&&(r.model.compressionThreshold=.3),r.skills||(r.skills={}),r.skills.enabled=!0,r.context||(r.context={}),r.context.fileName=["GEMINI.md","AGENTS.md"],await hu.writeFile(e,JSON.stringify(r,null,2),"utf-8"),xn.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(r){xn.error("Failed to ensure Gemini CLI settings",{error:r.message}),Ee.inc("context.degraded",1,{component:"agent_config"})}},mBe=t=>{t?.category===K.Skill&&t.type&&ms(xn,po(t.type))};async function j2({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=rh.cwd(),abortSignal:c=void 0,onSessionId:l=void 0}){let{accountType:u,prompt:d,modelVersionOverrides:f}=t,{model:p}=t;if(await hBe(),i){let{token:le,url:pe}=i;if(!le||!pe)throw new Error("No token or url provided from AI Gateway");if(f?.gemini){let ce=f?.gemini?.[u];if(ce){if(!await i.isModelAvailableForProvider("gemini",ce))throw new Error(`Model override '${ce}' is not available for gemini provider`);p=ce}}if(!p)!!nh&&await i.isModelAvailableForProvider("gemini",nh)?(p=nh,xn.log(`Using default model: ${nh}`)):nh&&xn.log(`Default model ${nh} is not available, proceeding without model specification`);else if(p&&!f?.gemini?.[u]&&!await i.isModelAvailableForProvider("gemini",p))throw new Error(`Model '${p}' is not available for gemini provider`);rh.env.GEMINI_API_KEY=le,rh.env.GOOGLE_GEMINI_BASE_URL=pe}else if(!rh.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided");let h=[],m=[],y=[],v={},T=0,x=0,E,C,R,U,P=!!(o&&s),M=!1;P&&(M=await Dy(s)),P&&!M&&(xn.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),Ee.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let j=t.mode==="ask",_;j&&(_=mc.join(Ly.homedir(),".gemini","ask-policy.toml"),await hu.mkdir(mc.dirname(_),{recursive:!0}),await hu.writeFile(_,`[[rule]]
323
323
  toolName = "web_fetch"
324
324
  decision = "allow"
325
325
  priority = 10
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@netlify/agent-runner-cli",
3
3
  "type": "module",
4
- "version": "1.146.0",
4
+ "version": "1.147.0",
5
5
  "description": "CLI tool for running Netlify agents",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",