@netlify/agent-runner-cli 2.6.2-PAW-837.1 → 2.7.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
@@ -385,7 +385,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
385
385
  `,LF:`
386
386
  `,concatBytes:CY},cut=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},uut={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:cut};import{Buffer as lut}from"buffer";var Rwe=(t,e)=>t?void 0:dut.bind(void 0,e),dut=function*(t,e){if(typeof e!="string"&&!zr(e)&&!lut.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},xwe=(t,e)=>t?fut.bind(void 0,e):put.bind(void 0,e),fut=function*(t,e){Owe(t,e),yield e},put=function*(t,e){if(Owe(t,e),typeof e!="string"&&!zr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Owe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
387
387
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
388
- if (condition) { yield value; }`)};import{Buffer as hut}from"buffer";import{StringDecoder as mut}from"string_decoder";var HD=(t,e,r)=>{if(r)return;if(t)return{transform:gut.bind(void 0,new TextEncoder)};let n=new mut(e);return{transform:_ut.bind(void 0,n),final:yut.bind(void 0,n)}},gut=function*(t,e){hut.isBuffer(e)?yield uu(e):typeof e=="string"?yield t.encode(e):yield e},_ut=function*(t,e){yield zr(e)?t.write(e):e},yut=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Iwe}from"util";var NY=Iwe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),WD=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=vut}=e[r];for await(let i of n(t))yield*WD(i,e,r+1)},Pwe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Sut(r,Number(e),t)},Sut=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*WD(n,r,e+1)},Cwe=Iwe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),vut=function*(t){yield t};var DY=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},kwe=(t,e)=>[...e.flatMap(r=>[...xp(r,t,0)]),...GT(t)],xp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=but}=e[r];for(let i of n(t))yield*xp(i,e,r+1)},GT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Eut(r,Number(e),t)},Eut=function*(t,e,r){if(t!==void 0)for(let n of t())yield*xp(n,r,e+1)},but=function*(t){yield t};var MY=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Dwe(t,o,s),u=Rp(e),l=Rp(r),d=u?NY.bind(void 0,WD,a):DY.bind(void 0,xp),f=u||l?NY.bind(void 0,Pwe,a):DY.bind(void 0,GT),p=u||l?Cwe.bind(void 0,a):void 0;return{stream:new wut({writableObjectMode:n,writableHighWaterMark:Nwe(n),readableObjectMode:i,readableHighWaterMark:Nwe(i),transform(m,_,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},KD=(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=Dwe(o,r,a);t=kwe(c,t)}return t},Dwe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:Rwe(n,a)},HD(r,o,n),VD(r,s,n,c),{transform:t,final:e},{transform:xwe(i,a)},Awe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var Mwe=(t,e)=>{for(let r of Tut(t))Aut(t,r,e)},Tut=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),Aut=(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 ${Kl[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>Rut(a,n));r.input=DT(o)},Rut=(t,e)=>{let r=KD(t,e,"utf8",!0);return xut(r),DT(r)},xut=t=>{let e=t.find(r=>typeof r!="string"&&!zr(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 Cut,appendFileSync as kut}from"fs";var YD=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&P_(r,n)&&!us.has(e)&&Out(n)&&(t.some(({type:i,value:s})=>i==="native"&&Iut.has(s))||t.every(({type:i})=>Ks.has(i))),Out=t=>t===1||t===2,Iut=new Set(["pipe","overlapped"]),$we=async(t,e,r,n)=>{for await(let i of t)Put(e)||Uwe(i,r,n)},Lwe=(t,e,r)=>{for(let n of t)Uwe(n,e,r)},Put=t=>t._readableState.pipes.length>0,Uwe=(t,e,r)=>{let n=uD(t);Ya({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Fwe=({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,u)=>Nut({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},Nut=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=zbe(t,s,d),p=uu(f),{stdioItems:h,objectMode:m}=e[r],_=Dut([p],h,c,n),{serializedResult:S,finalResult:w=S}=Mut({chunks:_,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});$ut({serializedResult:S,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?w:void 0;try{return n.error===void 0&&Lut(S,h,i),x}catch(y){return n.error=y,x}},Dut=(t,e,r,n)=>{try{return KD(t,e,r,!1)}catch(i){return n.error=i,t}},Mut=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:DT(t)};let o=eve(t,r);return n[s]?{serializedResult:o,finalResult:kY(o,!i[s],e)}:{serializedResult:o}},$ut=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!YD({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=kY(t,!1,o);try{Lwe(a,e,n)}catch(c){r.error??=c}},Lut=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>BD.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?kut(n,t):(r.add(s),Cut(n,t))}};var zwe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,fu(e,r,"all")]:Array.isArray(e)?[fu(t,r,"all"),...e]:zr(t)&&zr(e)?jK([t,e]):`${t}${e}`};import{once as $Y}from"events";var jwe=async(t,e)=>{let[r,n]=await Uut(t);return e.isForcefullyTerminated??=!1,[r,n]},Uut=async t=>{let[e,r]=await Promise.allSettled([$Y(t,"spawn"),$Y(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?qwe(t):r.value},qwe=async t=>{try{return await $Y(t,"exit")}catch{return qwe(t)}},Bwe=async t=>{let[e,r]=await t;if(!Fut(e,r)&&LY(e,r))throw new ea;return[e,r]},Fut=(t,e)=>t===void 0&&e===void 0,LY=(t,e)=>t!==0||e!==null;var Gwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=zut(t,e,r),o=s?.code==="ETIMEDOUT",a=Fbe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},zut=(t,e,r)=>t!==void 0?t:LY(e,r)?new ea:void 0;var Vwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=qut(t,e,r),d=Vut({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return z_(d,c,u)},qut=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=dD(t,e,r),a=But(r),{file:c,commandArguments:u,options:l}=CD(t,e,a);Gut(l);let d=Ewe(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},But=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Gut=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&ZD("ipcInput"),t&&ZD("ipc: true"),r&&ZD("detached: true"),n&&ZD("cancelSignal")},ZD=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},Vut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=Hut({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=Gwe(c,r),{output:h,error:m=u}=Fwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((w,x)=>fu(w,r,x)),S=fu(zwe(h,r),r,"all");return Kut({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:S,options:r,command:n,escapedCommand:i,startTime:a})},Hut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Mwe(s,r);let a=Wut(r);return jut(...kD(t,e,a))}catch(a){return F_({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},Wut=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:FD(e)}),Kut=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?zD({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):BT({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as Mdt}from"events";import{spawn as $dt}from"child_process";import Zwe from"process";import{once as UY,on as Yut}from"events";var Hwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(N_({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:AD(t)}),Zut({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),Zut=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ED(e,i);let s=Wl(t,e,r),o=new AbortController;try{return await Promise.race([Jut(s,n,o),Qut(s,r,o),Xut(s,r,o)])}catch(a){throw D_(t),a}finally{o.abort(),bD(e,i)}},Jut=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await UY(t,"message",{signal:r});return n}for await(let[n]of Yut(t,"message",{signal:r}))if(e(n))return n},Qut=async(t,e,{signal:r})=>{await UY(t,"disconnect",{signal:r}),kEe(e)},Xut=async(t,e,{signal:r})=>{let[n]=await UY(t,"strict:error",{signal:r});throw yD(n,e)};import{once as Kwe,on as elt}from"events";var Ywe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>FY({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),FY=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{N_({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:AD(t)}),ED(e,s);let o=Wl(t,e,r),a=new AbortController,c={};return tlt(t,o,a),rlt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),nlt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},tlt=async(t,e,r)=>{try{await Kwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},rlt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Kwe(t,"strict:error",{signal:r.signal});n.error=yD(i,e),r.abort()}catch{}},nlt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of elt(r,"message",{signal:s.signal}))Wwe(o),yield c}catch{Wwe(o)}finally{s.abort(),bD(e,a),n||D_(t),i&&await t}},Wwe=({error:t})=>{if(t)throw t};var Jwe=(t,{ipc:e})=>{Object.assign(t,Xwe(t,!1,e))},Qwe=()=>{let t=Zwe,e=!0,r=Zwe.channel!==void 0;return{...Xwe(t,e,r),getCancelSignal:sbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Xwe=(t,e,r)=>({sendMessage:ID.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Hwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Ywe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as ilt}from"child_process";import{PassThrough as slt,Readable as olt,Writable as alt,Duplex as clt}from"stream";var eTe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{IY(n);let a=new ilt;ult(a,n),Object.assign(a,{readable:llt,writable:dlt,duplex:flt});let c=F_({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=plt(c,o,i);return{subprocess:a,promise:u}},ult=(t,e)=>{let r=VT(),n=VT(),i=VT(),s=Array.from({length:e.length-3},VT),o=VT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},VT=()=>{let t=new slt;return t.end(),t},llt=()=>new olt({read(){}}),dlt=()=>new alt({write(){}}),flt=()=>new clt({read(){},write(){}}),plt=async(t,e,r)=>z_(t,e,r);import{createReadStream as tTe,createWriteStream as rTe}from"fs";import{Buffer as hlt}from"buffer";import{Readable as HT,Writable as mlt,Duplex as glt}from"stream";var iTe=(t,e)=>GD(_lt,t,e,!1),WT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Kl[t]}.`)},nTe={fileNumber:WT,generator:MY,asyncGenerator:MY,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:glt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},_lt={input:{...nTe,fileUrl:({value:t})=>({stream:tTe(t)}),filePath:({value:{file:t}})=>({stream:tTe(t)}),webStream:({value:t})=>({stream:HT.fromWeb(t)}),iterable:({value:t})=>({stream:HT.from(t)}),asyncIterable:({value:t})=>({stream:HT.from(t)}),string:({value:t})=>({stream:HT.from(t)}),uint8Array:({value:t})=>({stream:HT.from(hlt.from(t))})},output:{...nTe,fileUrl:({value:t})=>({stream:rTe(t)}),filePath:({value:{file:t,append:e}})=>({stream:rTe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:mlt.fromWeb(t)}),iterable:WT,asyncIterable:WT,string:WT,uint8Array:WT}};import{on as ylt,once as sTe}from"events";import{PassThrough as Slt,getDefaultHighWaterMark as vlt}from"stream";import{finished as cTe}from"stream/promises";function Op(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)jY(i);let e=t.some(({readableObjectMode:i})=>i),r=Elt(t,e),n=new zY({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Elt=(t,e)=>{if(t.length===0)return vlt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},zY=class extends Slt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(jY(e),this.#e.has(e))return;this.#e.add(e),this.#n??=blt(this,this.#e,this.#s);let r=Alt({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(jY(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)}},blt=async(t,e,r)=>{JD(t,oTe);let n=new AbortController;try{await Promise.race([wlt(t,n),Tlt(t,e,r,n)])}finally{n.abort(),JD(t,-oTe)}},wlt=async(t,{signal:e})=>{try{await cTe(t,{signal:e,cleanup:!0})}catch(r){throw uTe(t,r),r}},Tlt=async(t,e,r,{signal:n})=>{for await(let[i]of ylt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},jY=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},Alt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{JD(t,aTe);let a=new AbortController;try{await Promise.race([Rlt(s,e,a),xlt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Olt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),JD(t,-aTe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?qY(t):Ilt(t))},Rlt=async(t,e,{signal:r})=>{try{await t,r.aborted||qY(e)}catch(n){r.aborted||uTe(e,n)}},xlt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await cTe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;lTe(o)?i.add(e):dTe(t,o)}},Olt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await sTe(t,i,{signal:s}),!t.readable)return sTe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Ilt=t=>{t.writable&&t.end()},uTe=(t,e)=>{lTe(e)?qY(t):dTe(t,e)},lTe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",qY=t=>{(t.readable||t.writable)&&t.destroy()},dTe=(t,e)=>{t.destroyed||(t.once("error",Plt),t.destroy(e))},Plt=()=>{},JD=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},oTe=2,aTe=1;import{finished as fTe}from"stream/promises";var q_=(t,e)=>{t.pipe(e),Clt(t,e),klt(t,e)},Clt=async(t,e)=>{if(!(Xo(t)||Xo(e))){try{await fTe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}BY(e)}},BY=t=>{t.writable&&t.end()},klt=async(t,e)=>{if(!(Xo(t)||Xo(e))){try{await fTe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}GY(t)}},GY=t=>{t.readable&&t.destroy()};var pTe=(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})=>Ks.has(c)))Nlt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Ks.has(c)))Mlt({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]:Op(s);q_(o,i)}},Nlt=(t,e,r,n)=>{r==="output"?q_(t.stdio[n],e):q_(e,t.stdio[n]);let i=Dlt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Dlt=["stdin","stdout","stderr"],Mlt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;$lt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},$lt=(t,{signal:e})=>{Xo(t)&&Tp(t,Llt,e)},Llt=2;import{addAbortListener as zlt}from"events";var Ip=[];Ip.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ip.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ip.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var QD=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",VY=Symbol.for("signal-exit emitter"),HY=globalThis,Ult=Object.defineProperty.bind(Object),WY=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(HY[VY])return HY[VY];Ult(HY,VY,{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}},XD=class{},Flt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),KY=class extends XD{onExit(){return()=>{}}load(){}unload(){}},YY=class extends XD{#e=ZY.platform==="win32"?"SIGINT":"SIGHUP";#r=new WY;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ip)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(!QD(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 Ip)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,Ip.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 QD(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"&&QD(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)}},ZY=globalThis.process,{onExit:hTe,load:Dsr,unload:Msr}=Flt(QD(ZY)?new YY(ZY):new KY);var mTe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=hTe(()=>{t.kill()});zlt(n,()=>{i()})};var _Te=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=lD(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=jlt(r,n,i),{sourceStream:d,sourceError:f}=Blt(t,u),{options:p,fileDescriptors:h}=Ja.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},jlt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=qlt(t,e,...r),a=vD(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},qlt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(gTe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||FK(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]=eD(r,...n);return{destination:e(gTe)(i,s,o),pipeOptions:o}}if(Ja.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}`)},gTe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Blt=(t,e)=>{try{return{sourceStream:M_(t,e)}}catch(r){return{sourceError:r}}};var STe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Glt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw JY({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Glt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return GY(t),n;if(e!==void 0)return BY(r),e},JY=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>F_({error:t,command:yTe,escapedCommand:yTe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),yTe="source.pipe(destination)";var vTe=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 Vlt}from"stream/promises";var ETe=(t,e,r)=>{let n=eM.has(e)?Wlt(t,e):Hlt(t,e);return Tp(t,Ylt,r.signal),Tp(e,Zlt,r.signal),Klt(e),n},Hlt=(t,e)=>{let r=Op([t]);return q_(r,e),eM.set(e,r),r},Wlt=(t,e)=>{let r=eM.get(e);return r.add(t),r},Klt=async t=>{try{await Vlt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}eM.delete(t)},eM=new WeakMap,Ylt=2,Zlt=1;import{aborted as Jlt}from"util";var bTe=(t,e)=>t===void 0?[]:[Qlt(t,e)],Qlt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Jlt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw JY({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var tM=(t,...e)=>{if(Er(e[0]))return tM.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=_Te(t,...e),i=Xlt({...n,destination:r});return i.pipe=tM.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Xlt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=edt(t,i);STe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=ETe(e,s,d);return await Promise.race([vTe(l),...bTe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},edt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as adt}from"timers/promises";import{on as tdt}from"events";import{getDefaultHighWaterMark as rdt}from"stream";var rM=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return ndt(e,o),TTe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},ndt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},QY=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;idt(e,o,t);let a=t.readableObjectMode&&!s;return TTe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},idt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},TTe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=tdt(t,"data",{signal:e.signal,highWaterMark:wTe,highWatermark:wTe});return sdt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},XY=rdt(!0),wTe=XY,sdt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=odt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*xp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*GT(a)}},odt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[HD(t,r,!e),VD(t,i,!n,{})].filter(Boolean);var ATe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=cdt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([udt(t),d]);return}let f=PY(c,r),p=QY({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([ldt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},cdt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!YD({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=QY({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await $we(a,t,r,s)},udt=async t=>{await adt(),t.readableFlowing===null&&t.resume()},ldt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await $D(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await LD(r,{maxBuffer:s})):await U_(r,{maxBuffer:s})}catch(a){return RTe($be({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},e9=async t=>{try{return await t}catch(e){return RTe(e)}},RTe=({bufferedData:t})=>QSe(t)?new Uint8Array(t):t;import{finished as ddt}from"stream/promises";var KT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=fdt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],ddt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||mdt(a,e,r,n)}finally{o.abort()}},fdt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&pdt(t,r,n),n},pdt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{hdt(e,r),n.call(t,...i)}},hdt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},mdt=(t,e,r,n)=>{if(!gdt(t,e,r,n))throw t},gdt=(t,e,r,n=!0)=>r.propagating?xTe(t)||nM(t):(r.propagating=!0,t9(r,e)===n?xTe(t):nM(t)),t9=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",nM=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",xTe=t=>t?.code==="EPIPE";var OTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>r9({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),r9=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=KT(t,e,u);if(t9(u,e)){await l;return}let[d]=await Promise.all([ATe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var ITe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Op([t,e].filter(Boolean)):void 0,PTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>r9({..._dt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:ydt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),_dt=({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}},ydt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Sdt}from"events";var CTe=t=>P_(t,"ipc"),kTe=(t,e)=>{let r=uD(t);Ya({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var NTe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=CTe(s),a=lu(e,"ipc"),c=lu(r,"ipc");for await(let u of FY({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Lbe(t,i,c),i.push(u)),o&&kTe(u,s);return i},DTe=async(t,e)=>(await Promise.allSettled([t]),e);var MTe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:S})=>{let w=jwe(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:w,propagating:!1},y=OTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),v=PTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),E=[],R=NTe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:E,verboseInfo:p}),C=vdt(m,t,x),I=Edt(h,x);try{return await Promise.race([Promise.all([{},Bwe(w),Promise.all(y),v,R,mbe(t,d),...C,...I]),_,bdt(t,S),...lbe(t,s,f,S),...CEe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:S}),...cbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(k){return f.terminationReason??="other",Promise.all([{error:k},w,Promise.all(y.map(T=>e9(T))),e9(v),DTe(R,E),Promise.allSettled(C),Promise.allSettled(I)])}},vdt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:KT(n,i,r)),Edt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>ra(s,{checkOpen:!1})&&!Xo(s)).map(({type:i,value:s,stream:o=s})=>KT(o,n,e,{isSameDirection:Ks.has(i),stopOnExit:i==="native"}))),bdt=async(t,{signal:e})=>{let[r]=await Sdt(t,"error",{signal:e});throw r};var $Te=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),YT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Za();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},B_=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 wdt}from"stream";import{callbackify as Tdt}from"util";import{finished as LTe}from"stream/promises";var n9=async t=>{if(t!==void 0)try{await i9(t)}catch{}},UTe=async t=>{if(t!==void 0)try{await s9(t)}catch{}},i9=async t=>{await LTe(t,{cleanup:!0,readable:!1,writable:!0})},s9=async t=>{await LTe(t,{cleanup:!0,readable:!0,writable:!1})},iM=async(t,e)=>{if(await t,e)throw e},sM=(t,e,r)=>{r&&!nM(r)?t.destroy(r):e&&t.destroy()};var FTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||us.has(r),{subprocessStdout:a,waitReadableDestroy:c}=o9(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=a9(a,o),{read:f,onStdoutDataDone:p}=c9({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new wdt({read:f,destroy:Tdt(l9.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return u9({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},o9=(t,e,r)=>{let n=M_(t,e),i=YT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},a9=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:XY},c9=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Za(),o=rM({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){Adt(this,o,s)},onStdoutDataDone:s}},Adt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},u9=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await s9(t),await n,await n9(i),await e,r.readable&&r.push(null)}catch(s){await n9(i),zTe(r,s)}},l9=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await B_(r,e)&&(zTe(t,n),await iM(e,n))},zTe=(t,e)=>{sM(t,t.readable,e)};import{Writable as Rdt}from"stream";import{callbackify as jTe}from"util";var qTe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=d9(t,r,e),o=new Rdt({...f9(n,t,i),destroy:jTe(h9.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return p9(n,o),o},d9=(t,e,r)=>{let n=vD(t,e),i=YT(r,n,"writableFinal"),s=YT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},f9=(t,e,r)=>({write:xdt.bind(void 0,t),final:jTe(Odt.bind(void 0,t,e,r))}),xdt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Odt=async(t,e,r)=>{await B_(r,e)&&(t.writable&&t.end(),await e)},p9=async(t,e,r)=>{try{await i9(t),e.writable&&e.end()}catch(n){await UTe(r),BTe(e,n)}},h9=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await B_(r,e),await B_(n,e)&&(BTe(t,i),await iM(e,i))},BTe=(t,e)=>{sM(t,t.writable,e)};import{Duplex as Idt}from"stream";import{callbackify as Pdt}from"util";var GTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||us.has(r),{subprocessStdout:c,waitReadableDestroy:u}=o9(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=d9(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=a9(c,a),{read:_,onStdoutDataDone:S}=c9({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),w=new Idt({read:_,...f9(l,t,d),destroy:Pdt(Cdt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return u9({subprocessStdout:c,onStdoutDataDone:S,readable:w,subprocess:t,subprocessStdin:l}),p9(l,w,c),w},Cdt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([l9({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),h9({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var m9=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||us.has(e),o=M_(t,r),a=rM({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return kdt(a,o,t)},kdt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var VTe=(t,{encoding:e})=>{let r=$Te();t.readable=FTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=qTe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=GTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=m9.bind(void 0,t,e),t[Symbol.asyncIterator]=m9.bind(void 0,t,e,{})};var HTe=(t,e)=>{for(let[r,n]of Ddt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Ndt=(async()=>{})().constructor.prototype,Ddt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Ndt,t)]);var WTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=Ldt(t,e,r),{subprocess:f,promise:p}=Fdt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=tM.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),HTe(f,p),Ja.set(f,{options:l,fileDescriptors:d}),f},Ldt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=dD(t,e,r),{file:a,commandArguments:c,options:u}=CD(t,e,r),l=Udt(u),d=iTe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},Udt=({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}},Fdt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=$dt(...kD(t,e,r))}catch(h){return eTe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;Mdt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];pTe(c,a,u),mTe(c,r,u);let d={},f=Za();c.kill=IEe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=ITe(c,r),VTe(c,r),Jwe(c,r);let p=zdt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},zdt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,_]=await MTe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let S=h.map((y,v)=>fu(y,e,v)),w=fu(m,e,"all"),x=jdt({errorInfo:d,exitCode:f,signal:p,stdio:S,all:w,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return z_(x,n,e)},jdt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?BT({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Qa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):zD({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var oM=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,qdt(n,t[n],i)]));return{...t,...r}},qdt=(t,e,r)=>Bdt.has(t)&&Er(e)&&Er(r)?{...e,...r}:r,Bdt=new Set(["env",...VK]);var Yl=(t,e,r,n)=>{let i=(o,a,c)=>Yl(o,a,r,c),s=(...o)=>Gdt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},Gdt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Er(s))return i(t,oM(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=Vdt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?Vwe(a,c,u):WTe(a,c,u,i)},Vdt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=ive(e)?sve(e,r):[e,...r],[o,a,c]=eD(...s),u=oM(oM(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var KTe=({file:t,commandArguments:e})=>ZTe(t,e),YTe=({file:t,commandArguments:e})=>({...ZTe(t,e),isSync:!0}),ZTe=(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]=Hdt(t);return{file:r,commandArguments:n}},Hdt=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(Wdt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Wdt=/ +/g;var JTe=(t,e,r)=>{t.sync=e(Kdt,r),t.s=t.sync},QTe=({options:t})=>XTe(t),Kdt=({options:t})=>({...XTe(t),isSync:!0}),XTe=t=>({options:{...Ydt(t),...t}}),Ydt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},eAe={preferLocal:!0};var tAe=Yl(()=>({})),Rcr=Yl(()=>({isSync:!0})),rAe=Yl(KTe),xcr=Yl(YTe),Ocr=Yl(fbe),Icr=Yl(QTe,{},eAe,JTe),{sendMessage:Pcr,getOneMessage:Ccr,getEachMessage:kcr,getCancelSignal:Ncr}=Qwe();var nAe=!1,iAe,Zdt=t=>{iAe??=t},sAe=t=>{nAe=!0,Zdt(t)},$n=()=>nAe,pu=()=>iAe,oAe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var ZT=null,aAe=t=>(ZT&&ZT.destroy(),ZT=new Ys({totalAllowedTime:t}),ZT),cAe=()=>ZT;var Ys=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&&$n())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((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await BC({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{Y.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),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 uAe={name:"@netlify/agent-runner-cli",type:"module",version:"2.6.2-PAW-837.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md" "!src/lib/__fixtures__/**"',"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" "!src/lib/__fixtures__/**"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},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.21.0","@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.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var eft=Qdt(import.meta.url),tft=hu.dirname(eft),rft=Xdt(import.meta.url),G_=re("shell"),g9=new Set,lAe={preferLocal:!0},ut=(t,e,r)=>{let[n,i]=nft(e,r),s={...lAe,...i},o=tAe(t,n,s);fAe(o,s),mAe(o);let a=r?.idleTimeout;return a&&a>0&&hAe(o,a),o},dAe=(t,e)=>{let r={...lAe,...e},n=rAe(t,r);return fAe(n,r),mAe(n),e?.idleTimeout&&e.idleTimeout>0&&hAe(n,e.idleTimeout),n},nft=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},fAe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||ec.env.NETLIFY_LOCAL_QUIET==="true")return;if(ec.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Ub).pipe(ec.stdout),t.stderr?.pipe(new Ub).pipe(ec.stderr);return}t.stdout?.pipe(ec.stdout),t.stderr?.pipe(ec.stderr)},_9=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(ec.kill(-t.pid,e),G_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return G_.error("Error killing process:",r),!1}},pAe=t=>_9(t,"SIGKILL"),hAe=(t,e)=>{let r=null,n=()=>{G_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),_9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(G_.log(`Force killing idle process ${t.pid}`),pAe(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)},mAe=t=>{g9.add(t);let e=cAe();if(e){let r=e.onTimesUp(()=>{G_.log(`Global timer expired, killing process ${t.pid}`),_9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(G_.log(`Force killing process ${t.pid} after timeout`),pAe(t))},5e3)});t.on("exit",()=>{g9.delete(t),r()}),t.on("error",()=>{g9.delete(t),r()})}};function cM(t,e){return!!ls(t,e)}function ls(t,e){if(!ec.env.NETLIFY_LOCAL_MODE)try{let i=rft.resolve(uAe.name),s=hu.dirname(i);for(;s!==hu.dirname(s);){let o=hu.dirname(s);if(hu.basename(o)==="node_modules"){let a=hu.join(o,".bin",e);if(aM.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(ec.env.NODE_PATH){let i=hu.join(ec.env.NODE_PATH,".bin",e);if(aM.existsSync(i))return i}let r=hu.join(t,"node_modules",".bin",e);if(aM.existsSync(r))return r;let n=hu.join(tft,"..","node_modules",".bin",e);if(aM.existsSync(n))return n}var V_=re("repo"),bAe="runner-diffs-",y9=t=>`${bAe}${t}-`,wAe=async t=>{let e=lM.tmpdir(),r;try{r=await ci.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(bAe)&&!n.startsWith(y9(t))).map(n=>ci.rm(Zs.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},gAe=async t=>{let e=ift("sha256");for await(let r of sft(t))e.update(r);return e.digest("hex")},_Ae=async(t,e)=>t.size===e.size&&await gAe(t.path)===await gAe(e.path),TAe=/.. (.+)?\.log$/,oft=[TAe],aft=1,yAe=t=>{let e=t.split(`
388
+ if (condition) { yield value; }`)};import{Buffer as hut}from"buffer";import{StringDecoder as mut}from"string_decoder";var HD=(t,e,r)=>{if(r)return;if(t)return{transform:gut.bind(void 0,new TextEncoder)};let n=new mut(e);return{transform:_ut.bind(void 0,n),final:yut.bind(void 0,n)}},gut=function*(t,e){hut.isBuffer(e)?yield uu(e):typeof e=="string"?yield t.encode(e):yield e},_ut=function*(t,e){yield zr(e)?t.write(e):e},yut=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Iwe}from"util";var NY=Iwe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),WD=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=vut}=e[r];for await(let i of n(t))yield*WD(i,e,r+1)},Pwe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Sut(r,Number(e),t)},Sut=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*WD(n,r,e+1)},Cwe=Iwe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),vut=function*(t){yield t};var DY=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},kwe=(t,e)=>[...e.flatMap(r=>[...xp(r,t,0)]),...GT(t)],xp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=but}=e[r];for(let i of n(t))yield*xp(i,e,r+1)},GT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Eut(r,Number(e),t)},Eut=function*(t,e,r){if(t!==void 0)for(let n of t())yield*xp(n,r,e+1)},but=function*(t){yield t};var MY=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Dwe(t,o,s),u=Rp(e),l=Rp(r),d=u?NY.bind(void 0,WD,a):DY.bind(void 0,xp),f=u||l?NY.bind(void 0,Pwe,a):DY.bind(void 0,GT),p=u||l?Cwe.bind(void 0,a):void 0;return{stream:new wut({writableObjectMode:n,writableHighWaterMark:Nwe(n),readableObjectMode:i,readableHighWaterMark:Nwe(i),transform(m,_,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},KD=(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=Dwe(o,r,a);t=kwe(c,t)}return t},Dwe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:Rwe(n,a)},HD(r,o,n),VD(r,s,n,c),{transform:t,final:e},{transform:xwe(i,a)},Awe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var Mwe=(t,e)=>{for(let r of Tut(t))Aut(t,r,e)},Tut=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),Aut=(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 ${Kl[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>Rut(a,n));r.input=DT(o)},Rut=(t,e)=>{let r=KD(t,e,"utf8",!0);return xut(r),DT(r)},xut=t=>{let e=t.find(r=>typeof r!="string"&&!zr(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 Cut,appendFileSync as kut}from"fs";var YD=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&P_(r,n)&&!us.has(e)&&Out(n)&&(t.some(({type:i,value:s})=>i==="native"&&Iut.has(s))||t.every(({type:i})=>Ks.has(i))),Out=t=>t===1||t===2,Iut=new Set(["pipe","overlapped"]),$we=async(t,e,r,n)=>{for await(let i of t)Put(e)||Uwe(i,r,n)},Lwe=(t,e,r)=>{for(let n of t)Uwe(n,e,r)},Put=t=>t._readableState.pipes.length>0,Uwe=(t,e,r)=>{let n=uD(t);Ya({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Fwe=({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,u)=>Nut({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},Nut=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=zbe(t,s,d),p=uu(f),{stdioItems:h,objectMode:m}=e[r],_=Dut([p],h,c,n),{serializedResult:S,finalResult:w=S}=Mut({chunks:_,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});$ut({serializedResult:S,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?w:void 0;try{return n.error===void 0&&Lut(S,h,i),x}catch(y){return n.error=y,x}},Dut=(t,e,r,n)=>{try{return KD(t,e,r,!1)}catch(i){return n.error=i,t}},Mut=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:DT(t)};let o=eve(t,r);return n[s]?{serializedResult:o,finalResult:kY(o,!i[s],e)}:{serializedResult:o}},$ut=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!YD({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=kY(t,!1,o);try{Lwe(a,e,n)}catch(c){r.error??=c}},Lut=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>BD.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?kut(n,t):(r.add(s),Cut(n,t))}};var zwe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,fu(e,r,"all")]:Array.isArray(e)?[fu(t,r,"all"),...e]:zr(t)&&zr(e)?jK([t,e]):`${t}${e}`};import{once as $Y}from"events";var jwe=async(t,e)=>{let[r,n]=await Uut(t);return e.isForcefullyTerminated??=!1,[r,n]},Uut=async t=>{let[e,r]=await Promise.allSettled([$Y(t,"spawn"),$Y(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?qwe(t):r.value},qwe=async t=>{try{return await $Y(t,"exit")}catch{return qwe(t)}},Bwe=async t=>{let[e,r]=await t;if(!Fut(e,r)&&LY(e,r))throw new ea;return[e,r]},Fut=(t,e)=>t===void 0&&e===void 0,LY=(t,e)=>t!==0||e!==null;var Gwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=zut(t,e,r),o=s?.code==="ETIMEDOUT",a=Fbe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},zut=(t,e,r)=>t!==void 0?t:LY(e,r)?new ea:void 0;var Vwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=qut(t,e,r),d=Vut({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return z_(d,c,u)},qut=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=dD(t,e,r),a=But(r),{file:c,commandArguments:u,options:l}=CD(t,e,a);Gut(l);let d=Ewe(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},But=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Gut=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&ZD("ipcInput"),t&&ZD("ipc: true"),r&&ZD("detached: true"),n&&ZD("cancelSignal")},ZD=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},Vut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=Hut({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=Gwe(c,r),{output:h,error:m=u}=Fwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((w,x)=>fu(w,r,x)),S=fu(zwe(h,r),r,"all");return Kut({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:S,options:r,command:n,escapedCommand:i,startTime:a})},Hut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Mwe(s,r);let a=Wut(r);return jut(...kD(t,e,a))}catch(a){return F_({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},Wut=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:FD(e)}),Kut=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?zD({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):BT({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as Mdt}from"events";import{spawn as $dt}from"child_process";import Zwe from"process";import{once as UY,on as Yut}from"events";var Hwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(N_({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:AD(t)}),Zut({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),Zut=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ED(e,i);let s=Wl(t,e,r),o=new AbortController;try{return await Promise.race([Jut(s,n,o),Qut(s,r,o),Xut(s,r,o)])}catch(a){throw D_(t),a}finally{o.abort(),bD(e,i)}},Jut=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await UY(t,"message",{signal:r});return n}for await(let[n]of Yut(t,"message",{signal:r}))if(e(n))return n},Qut=async(t,e,{signal:r})=>{await UY(t,"disconnect",{signal:r}),kEe(e)},Xut=async(t,e,{signal:r})=>{let[n]=await UY(t,"strict:error",{signal:r});throw yD(n,e)};import{once as Kwe,on as elt}from"events";var Ywe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>FY({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),FY=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{N_({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:AD(t)}),ED(e,s);let o=Wl(t,e,r),a=new AbortController,c={};return tlt(t,o,a),rlt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),nlt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},tlt=async(t,e,r)=>{try{await Kwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},rlt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Kwe(t,"strict:error",{signal:r.signal});n.error=yD(i,e),r.abort()}catch{}},nlt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of elt(r,"message",{signal:s.signal}))Wwe(o),yield c}catch{Wwe(o)}finally{s.abort(),bD(e,a),n||D_(t),i&&await t}},Wwe=({error:t})=>{if(t)throw t};var Jwe=(t,{ipc:e})=>{Object.assign(t,Xwe(t,!1,e))},Qwe=()=>{let t=Zwe,e=!0,r=Zwe.channel!==void 0;return{...Xwe(t,e,r),getCancelSignal:sbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Xwe=(t,e,r)=>({sendMessage:ID.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Hwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Ywe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as ilt}from"child_process";import{PassThrough as slt,Readable as olt,Writable as alt,Duplex as clt}from"stream";var eTe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{IY(n);let a=new ilt;ult(a,n),Object.assign(a,{readable:llt,writable:dlt,duplex:flt});let c=F_({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=plt(c,o,i);return{subprocess:a,promise:u}},ult=(t,e)=>{let r=VT(),n=VT(),i=VT(),s=Array.from({length:e.length-3},VT),o=VT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},VT=()=>{let t=new slt;return t.end(),t},llt=()=>new olt({read(){}}),dlt=()=>new alt({write(){}}),flt=()=>new clt({read(){},write(){}}),plt=async(t,e,r)=>z_(t,e,r);import{createReadStream as tTe,createWriteStream as rTe}from"fs";import{Buffer as hlt}from"buffer";import{Readable as HT,Writable as mlt,Duplex as glt}from"stream";var iTe=(t,e)=>GD(_lt,t,e,!1),WT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Kl[t]}.`)},nTe={fileNumber:WT,generator:MY,asyncGenerator:MY,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:glt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},_lt={input:{...nTe,fileUrl:({value:t})=>({stream:tTe(t)}),filePath:({value:{file:t}})=>({stream:tTe(t)}),webStream:({value:t})=>({stream:HT.fromWeb(t)}),iterable:({value:t})=>({stream:HT.from(t)}),asyncIterable:({value:t})=>({stream:HT.from(t)}),string:({value:t})=>({stream:HT.from(t)}),uint8Array:({value:t})=>({stream:HT.from(hlt.from(t))})},output:{...nTe,fileUrl:({value:t})=>({stream:rTe(t)}),filePath:({value:{file:t,append:e}})=>({stream:rTe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:mlt.fromWeb(t)}),iterable:WT,asyncIterable:WT,string:WT,uint8Array:WT}};import{on as ylt,once as sTe}from"events";import{PassThrough as Slt,getDefaultHighWaterMark as vlt}from"stream";import{finished as cTe}from"stream/promises";function Op(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)jY(i);let e=t.some(({readableObjectMode:i})=>i),r=Elt(t,e),n=new zY({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Elt=(t,e)=>{if(t.length===0)return vlt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},zY=class extends Slt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(jY(e),this.#e.has(e))return;this.#e.add(e),this.#n??=blt(this,this.#e,this.#s);let r=Alt({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(jY(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)}},blt=async(t,e,r)=>{JD(t,oTe);let n=new AbortController;try{await Promise.race([wlt(t,n),Tlt(t,e,r,n)])}finally{n.abort(),JD(t,-oTe)}},wlt=async(t,{signal:e})=>{try{await cTe(t,{signal:e,cleanup:!0})}catch(r){throw uTe(t,r),r}},Tlt=async(t,e,r,{signal:n})=>{for await(let[i]of ylt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},jY=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},Alt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{JD(t,aTe);let a=new AbortController;try{await Promise.race([Rlt(s,e,a),xlt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Olt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),JD(t,-aTe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?qY(t):Ilt(t))},Rlt=async(t,e,{signal:r})=>{try{await t,r.aborted||qY(e)}catch(n){r.aborted||uTe(e,n)}},xlt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await cTe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;lTe(o)?i.add(e):dTe(t,o)}},Olt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await sTe(t,i,{signal:s}),!t.readable)return sTe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Ilt=t=>{t.writable&&t.end()},uTe=(t,e)=>{lTe(e)?qY(t):dTe(t,e)},lTe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",qY=t=>{(t.readable||t.writable)&&t.destroy()},dTe=(t,e)=>{t.destroyed||(t.once("error",Plt),t.destroy(e))},Plt=()=>{},JD=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},oTe=2,aTe=1;import{finished as fTe}from"stream/promises";var q_=(t,e)=>{t.pipe(e),Clt(t,e),klt(t,e)},Clt=async(t,e)=>{if(!(Xo(t)||Xo(e))){try{await fTe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}BY(e)}},BY=t=>{t.writable&&t.end()},klt=async(t,e)=>{if(!(Xo(t)||Xo(e))){try{await fTe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}GY(t)}},GY=t=>{t.readable&&t.destroy()};var pTe=(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})=>Ks.has(c)))Nlt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Ks.has(c)))Mlt({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]:Op(s);q_(o,i)}},Nlt=(t,e,r,n)=>{r==="output"?q_(t.stdio[n],e):q_(e,t.stdio[n]);let i=Dlt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Dlt=["stdin","stdout","stderr"],Mlt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;$lt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},$lt=(t,{signal:e})=>{Xo(t)&&Tp(t,Llt,e)},Llt=2;import{addAbortListener as zlt}from"events";var Ip=[];Ip.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ip.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ip.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var QD=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",VY=Symbol.for("signal-exit emitter"),HY=globalThis,Ult=Object.defineProperty.bind(Object),WY=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(HY[VY])return HY[VY];Ult(HY,VY,{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}},XD=class{},Flt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),KY=class extends XD{onExit(){return()=>{}}load(){}unload(){}},YY=class extends XD{#e=ZY.platform==="win32"?"SIGINT":"SIGHUP";#r=new WY;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ip)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(!QD(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 Ip)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,Ip.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 QD(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"&&QD(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)}},ZY=globalThis.process,{onExit:hTe,load:Dsr,unload:Msr}=Flt(QD(ZY)?new YY(ZY):new KY);var mTe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=hTe(()=>{t.kill()});zlt(n,()=>{i()})};var _Te=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=lD(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=jlt(r,n,i),{sourceStream:d,sourceError:f}=Blt(t,u),{options:p,fileDescriptors:h}=Ja.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},jlt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=qlt(t,e,...r),a=vD(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},qlt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(gTe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||FK(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]=eD(r,...n);return{destination:e(gTe)(i,s,o),pipeOptions:o}}if(Ja.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}`)},gTe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Blt=(t,e)=>{try{return{sourceStream:M_(t,e)}}catch(r){return{sourceError:r}}};var STe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Glt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw JY({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Glt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return GY(t),n;if(e!==void 0)return BY(r),e},JY=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>F_({error:t,command:yTe,escapedCommand:yTe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),yTe="source.pipe(destination)";var vTe=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 Vlt}from"stream/promises";var ETe=(t,e,r)=>{let n=eM.has(e)?Wlt(t,e):Hlt(t,e);return Tp(t,Ylt,r.signal),Tp(e,Zlt,r.signal),Klt(e),n},Hlt=(t,e)=>{let r=Op([t]);return q_(r,e),eM.set(e,r),r},Wlt=(t,e)=>{let r=eM.get(e);return r.add(t),r},Klt=async t=>{try{await Vlt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}eM.delete(t)},eM=new WeakMap,Ylt=2,Zlt=1;import{aborted as Jlt}from"util";var bTe=(t,e)=>t===void 0?[]:[Qlt(t,e)],Qlt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Jlt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw JY({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var tM=(t,...e)=>{if(Er(e[0]))return tM.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=_Te(t,...e),i=Xlt({...n,destination:r});return i.pipe=tM.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Xlt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=edt(t,i);STe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=ETe(e,s,d);return await Promise.race([vTe(l),...bTe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},edt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as adt}from"timers/promises";import{on as tdt}from"events";import{getDefaultHighWaterMark as rdt}from"stream";var rM=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return ndt(e,o),TTe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},ndt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},QY=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;idt(e,o,t);let a=t.readableObjectMode&&!s;return TTe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},idt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},TTe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=tdt(t,"data",{signal:e.signal,highWaterMark:wTe,highWatermark:wTe});return sdt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},XY=rdt(!0),wTe=XY,sdt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=odt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*xp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*GT(a)}},odt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[HD(t,r,!e),VD(t,i,!n,{})].filter(Boolean);var ATe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=cdt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([udt(t),d]);return}let f=PY(c,r),p=QY({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([ldt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},cdt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!YD({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=QY({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await $we(a,t,r,s)},udt=async t=>{await adt(),t.readableFlowing===null&&t.resume()},ldt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await $D(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await LD(r,{maxBuffer:s})):await U_(r,{maxBuffer:s})}catch(a){return RTe($be({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},e9=async t=>{try{return await t}catch(e){return RTe(e)}},RTe=({bufferedData:t})=>QSe(t)?new Uint8Array(t):t;import{finished as ddt}from"stream/promises";var KT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=fdt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],ddt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||mdt(a,e,r,n)}finally{o.abort()}},fdt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&pdt(t,r,n),n},pdt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{hdt(e,r),n.call(t,...i)}},hdt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},mdt=(t,e,r,n)=>{if(!gdt(t,e,r,n))throw t},gdt=(t,e,r,n=!0)=>r.propagating?xTe(t)||nM(t):(r.propagating=!0,t9(r,e)===n?xTe(t):nM(t)),t9=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",nM=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",xTe=t=>t?.code==="EPIPE";var OTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>r9({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),r9=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=KT(t,e,u);if(t9(u,e)){await l;return}let[d]=await Promise.all([ATe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var ITe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Op([t,e].filter(Boolean)):void 0,PTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>r9({..._dt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:ydt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),_dt=({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}},ydt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Sdt}from"events";var CTe=t=>P_(t,"ipc"),kTe=(t,e)=>{let r=uD(t);Ya({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var NTe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=CTe(s),a=lu(e,"ipc"),c=lu(r,"ipc");for await(let u of FY({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Lbe(t,i,c),i.push(u)),o&&kTe(u,s);return i},DTe=async(t,e)=>(await Promise.allSettled([t]),e);var MTe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:S})=>{let w=jwe(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:w,propagating:!1},y=OTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),v=PTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),E=[],R=NTe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:E,verboseInfo:p}),C=vdt(m,t,x),I=Edt(h,x);try{return await Promise.race([Promise.all([{},Bwe(w),Promise.all(y),v,R,mbe(t,d),...C,...I]),_,bdt(t,S),...lbe(t,s,f,S),...CEe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:S}),...cbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(k){return f.terminationReason??="other",Promise.all([{error:k},w,Promise.all(y.map(T=>e9(T))),e9(v),DTe(R,E),Promise.allSettled(C),Promise.allSettled(I)])}},vdt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:KT(n,i,r)),Edt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>ra(s,{checkOpen:!1})&&!Xo(s)).map(({type:i,value:s,stream:o=s})=>KT(o,n,e,{isSameDirection:Ks.has(i),stopOnExit:i==="native"}))),bdt=async(t,{signal:e})=>{let[r]=await Sdt(t,"error",{signal:e});throw r};var $Te=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),YT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Za();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},B_=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 wdt}from"stream";import{callbackify as Tdt}from"util";import{finished as LTe}from"stream/promises";var n9=async t=>{if(t!==void 0)try{await i9(t)}catch{}},UTe=async t=>{if(t!==void 0)try{await s9(t)}catch{}},i9=async t=>{await LTe(t,{cleanup:!0,readable:!1,writable:!0})},s9=async t=>{await LTe(t,{cleanup:!0,readable:!0,writable:!1})},iM=async(t,e)=>{if(await t,e)throw e},sM=(t,e,r)=>{r&&!nM(r)?t.destroy(r):e&&t.destroy()};var FTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||us.has(r),{subprocessStdout:a,waitReadableDestroy:c}=o9(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=a9(a,o),{read:f,onStdoutDataDone:p}=c9({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new wdt({read:f,destroy:Tdt(l9.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return u9({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},o9=(t,e,r)=>{let n=M_(t,e),i=YT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},a9=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:XY},c9=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Za(),o=rM({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){Adt(this,o,s)},onStdoutDataDone:s}},Adt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},u9=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await s9(t),await n,await n9(i),await e,r.readable&&r.push(null)}catch(s){await n9(i),zTe(r,s)}},l9=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await B_(r,e)&&(zTe(t,n),await iM(e,n))},zTe=(t,e)=>{sM(t,t.readable,e)};import{Writable as Rdt}from"stream";import{callbackify as jTe}from"util";var qTe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=d9(t,r,e),o=new Rdt({...f9(n,t,i),destroy:jTe(h9.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return p9(n,o),o},d9=(t,e,r)=>{let n=vD(t,e),i=YT(r,n,"writableFinal"),s=YT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},f9=(t,e,r)=>({write:xdt.bind(void 0,t),final:jTe(Odt.bind(void 0,t,e,r))}),xdt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Odt=async(t,e,r)=>{await B_(r,e)&&(t.writable&&t.end(),await e)},p9=async(t,e,r)=>{try{await i9(t),e.writable&&e.end()}catch(n){await UTe(r),BTe(e,n)}},h9=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await B_(r,e),await B_(n,e)&&(BTe(t,i),await iM(e,i))},BTe=(t,e)=>{sM(t,t.writable,e)};import{Duplex as Idt}from"stream";import{callbackify as Pdt}from"util";var GTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||us.has(r),{subprocessStdout:c,waitReadableDestroy:u}=o9(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=d9(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=a9(c,a),{read:_,onStdoutDataDone:S}=c9({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),w=new Idt({read:_,...f9(l,t,d),destroy:Pdt(Cdt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return u9({subprocessStdout:c,onStdoutDataDone:S,readable:w,subprocess:t,subprocessStdin:l}),p9(l,w,c),w},Cdt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([l9({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),h9({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var m9=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||us.has(e),o=M_(t,r),a=rM({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return kdt(a,o,t)},kdt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var VTe=(t,{encoding:e})=>{let r=$Te();t.readable=FTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=qTe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=GTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=m9.bind(void 0,t,e),t[Symbol.asyncIterator]=m9.bind(void 0,t,e,{})};var HTe=(t,e)=>{for(let[r,n]of Ddt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Ndt=(async()=>{})().constructor.prototype,Ddt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Ndt,t)]);var WTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=Ldt(t,e,r),{subprocess:f,promise:p}=Fdt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=tM.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),HTe(f,p),Ja.set(f,{options:l,fileDescriptors:d}),f},Ldt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=dD(t,e,r),{file:a,commandArguments:c,options:u}=CD(t,e,r),l=Udt(u),d=iTe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},Udt=({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}},Fdt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=$dt(...kD(t,e,r))}catch(h){return eTe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;Mdt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];pTe(c,a,u),mTe(c,r,u);let d={},f=Za();c.kill=IEe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=ITe(c,r),VTe(c,r),Jwe(c,r);let p=zdt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},zdt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,_]=await MTe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let S=h.map((y,v)=>fu(y,e,v)),w=fu(m,e,"all"),x=jdt({errorInfo:d,exitCode:f,signal:p,stdio:S,all:w,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return z_(x,n,e)},jdt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?BT({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Qa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):zD({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var oM=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,qdt(n,t[n],i)]));return{...t,...r}},qdt=(t,e,r)=>Bdt.has(t)&&Er(e)&&Er(r)?{...e,...r}:r,Bdt=new Set(["env",...VK]);var Yl=(t,e,r,n)=>{let i=(o,a,c)=>Yl(o,a,r,c),s=(...o)=>Gdt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},Gdt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Er(s))return i(t,oM(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=Vdt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?Vwe(a,c,u):WTe(a,c,u,i)},Vdt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=ive(e)?sve(e,r):[e,...r],[o,a,c]=eD(...s),u=oM(oM(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var KTe=({file:t,commandArguments:e})=>ZTe(t,e),YTe=({file:t,commandArguments:e})=>({...ZTe(t,e),isSync:!0}),ZTe=(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]=Hdt(t);return{file:r,commandArguments:n}},Hdt=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(Wdt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Wdt=/ +/g;var JTe=(t,e,r)=>{t.sync=e(Kdt,r),t.s=t.sync},QTe=({options:t})=>XTe(t),Kdt=({options:t})=>({...XTe(t),isSync:!0}),XTe=t=>({options:{...Ydt(t),...t}}),Ydt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},eAe={preferLocal:!0};var tAe=Yl(()=>({})),Rcr=Yl(()=>({isSync:!0})),rAe=Yl(KTe),xcr=Yl(YTe),Ocr=Yl(fbe),Icr=Yl(QTe,{},eAe,JTe),{sendMessage:Pcr,getOneMessage:Ccr,getEachMessage:kcr,getCancelSignal:Ncr}=Qwe();var nAe=!1,iAe,Zdt=t=>{iAe??=t},sAe=t=>{nAe=!0,Zdt(t)},$n=()=>nAe,pu=()=>iAe,oAe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var ZT=null,aAe=t=>(ZT&&ZT.destroy(),ZT=new Ys({totalAllowedTime:t}),ZT),cAe=()=>ZT;var Ys=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&&$n())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((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await BC({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{Y.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),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 uAe={name:"@netlify/agent-runner-cli",type:"module",version:"2.7.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md" "!src/lib/__fixtures__/**"',"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" "!src/lib/__fixtures__/**"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},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.21.0","@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.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var eft=Qdt(import.meta.url),tft=hu.dirname(eft),rft=Xdt(import.meta.url),G_=re("shell"),g9=new Set,lAe={preferLocal:!0},ut=(t,e,r)=>{let[n,i]=nft(e,r),s={...lAe,...i},o=tAe(t,n,s);fAe(o,s),mAe(o);let a=r?.idleTimeout;return a&&a>0&&hAe(o,a),o},dAe=(t,e)=>{let r={...lAe,...e},n=rAe(t,r);return fAe(n,r),mAe(n),e?.idleTimeout&&e.idleTimeout>0&&hAe(n,e.idleTimeout),n},nft=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},fAe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||ec.env.NETLIFY_LOCAL_QUIET==="true")return;if(ec.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Ub).pipe(ec.stdout),t.stderr?.pipe(new Ub).pipe(ec.stderr);return}t.stdout?.pipe(ec.stdout),t.stderr?.pipe(ec.stderr)},_9=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(ec.kill(-t.pid,e),G_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return G_.error("Error killing process:",r),!1}},pAe=t=>_9(t,"SIGKILL"),hAe=(t,e)=>{let r=null,n=()=>{G_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),_9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(G_.log(`Force killing idle process ${t.pid}`),pAe(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)},mAe=t=>{g9.add(t);let e=cAe();if(e){let r=e.onTimesUp(()=>{G_.log(`Global timer expired, killing process ${t.pid}`),_9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(G_.log(`Force killing process ${t.pid} after timeout`),pAe(t))},5e3)});t.on("exit",()=>{g9.delete(t),r()}),t.on("error",()=>{g9.delete(t),r()})}};function cM(t,e){return!!ls(t,e)}function ls(t,e){if(!ec.env.NETLIFY_LOCAL_MODE)try{let i=rft.resolve(uAe.name),s=hu.dirname(i);for(;s!==hu.dirname(s);){let o=hu.dirname(s);if(hu.basename(o)==="node_modules"){let a=hu.join(o,".bin",e);if(aM.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(ec.env.NODE_PATH){let i=hu.join(ec.env.NODE_PATH,".bin",e);if(aM.existsSync(i))return i}let r=hu.join(t,"node_modules",".bin",e);if(aM.existsSync(r))return r;let n=hu.join(tft,"..","node_modules",".bin",e);if(aM.existsSync(n))return n}var V_=re("repo"),bAe="runner-diffs-",y9=t=>`${bAe}${t}-`,wAe=async t=>{let e=lM.tmpdir(),r;try{r=await ci.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(bAe)&&!n.startsWith(y9(t))).map(n=>ci.rm(Zs.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},gAe=async t=>{let e=ift("sha256");for await(let r of sft(t))e.update(r);return e.digest("hex")},_Ae=async(t,e)=>t.size===e.size&&await gAe(t.path)===await gAe(e.path),TAe=/.. (.+)?\.log$/,oft=[TAe],aft=1,yAe=t=>{let e=t.split(`
389
389
  `).reduce((r,n)=>{if(!n)return r;let[i,s,,...o]=n,a=o.join(""),c=i.trim(),u=s.trim();return r[a]?r[a].change=u:r[a]={filePath:a,stage:c,change:u},r},{});return Object.values(e)},cft=t=>t instanceof Error&&String(t.stderr??"").includes("No such remote"),SAe=t=>{let e=t instanceof Error?t.message:String(t),r=String(t?.stderr??"").trim();return yn(r?`${e}: ${r}`:e)},uft=t=>/Authentication failed|returned error: 401/.test(String(t?.stderr??"")),vAe=t=>t.pathname.replace(/\/+$/,"").replace(/\.git$/,""),lft=(t,e)=>{try{let r=new URL(t),n=new URL(e);return["https:","http:"].includes(n.protocol)&&n.protocol===r.protocol&&n.host===r.host&&vAe(n)===vAe(r)&&n.password!==""}catch{return!1}},EAe={stdin:"pipe",stdout:"pipe",stderr:"pipe",stripFinalNewline:!1},uM=500,JT=class extends Error{constructor(r,n){super(n instanceof Error?n.message:String(n));this.step=r;this.cause=n}},Ln=class{constructor(e=process.cwd()){this.cwd=e}getRoot(){return this.root??=this.run(["rev-parse","--show-toplevel"],{stdout:"pipe"}).then(({stdout:e})=>String(e).trim()),this.root}async restorePausedWork(e){let r="restore";try{let n=await this.restorePausedFiles(e);r="stage",await this.stageBuildSetup();let i=await this.getRoot(),s=new Set(n.changedFiles),o=(await this.listIndexEntries(n.deletedFiles,{cwd:i})).filter(({filePath:a})=>!s.has(a));return await this.unstageFiles(n.changedFiles,{cwd:i}),o.length>0&&await ci.writeFile(await this.getSetupMetadataPath(),JSON.stringify(o)),{rewrittenFileCount:n.rewrittenFileCount}}catch(n){throw new JT(r,n)}}run(e,r={}){return ut("git",e,{cwd:this.cwd,...r,env:{...r.env,NETLIFY_INTERNAL_GIT:"1"}})}async commitAndCreateDiffs({config:e,isRetry:r}){V_.info("Getting runner diffs");let n=await this.hasAgentChanges(),{hasChanges:i}=n,{status:s}=n;if(!i)return{hasChanges:!1};if(!r){let u=yAe(s);await this.discardSetupOnlyChanges(u)}V_.info("Changes after processing"),await this.getStatus();let o=await this.getIgnoredPathspecs(s);if(await this.stageFiles(o),await this.excludeUnchangedSetupDescendants(),i=await this.hasStagedChanges(),!i)return{hasChanges:!1,ignored:o};await this.run(["commit","-m","Agent runner [skip ci]"]);let a=await ci.mkdtemp(Zs.join(lM.tmpdir(),y9(e.sessionId))),c=await this.writeDiffFiles({config:e,diffDir:a,target:{commit:"HEAD"},ignored:o});return await this.rollbackIfLocal(),c.hasChanges&&Y.distribution("diff.size",(c.diffBinary??c.diff).size,{phase:"final"}),c}async getStatus(){let e=await this.run(["-c","status.relativePaths=true","status","-s"]);return String(e.stdout??"")}async hasAgentChanges(){let e=await this.getStatus();return{hasChanges:(e.trim().length===0?[]:e.split(`
390
390
  `).filter(i=>oft.some(o=>o instanceof RegExp?o.test(i):i===o)?!1:i[1]?.trim()!=="")).length!==0,status:e}}async getCurrentCommitSha(){let{stdout:e}=await this.run(["rev-parse","HEAD"]);return String(e??"").trim()}async reset(){await this.run(["reset","--hard","HEAD"]),await ci.rm(await this.getSetupMetadataPath(),{force:!0})}async discardSetupOnlyChanges(e){let r=e.filter(n=>n.stage&&!n.change).map(n=>n.filePath);r.length!==0&&await this.run(["restore","--staged","--worktree","--pathspec-from-file=-"],{input:r.join(`
391
391
  `)})}async stageBuildSetup(){await ci.rm(await this.getSetupMetadataPath(),{force:!0});let e=await this.getIgnoredPathspecs();await this.stageFiles(e)}getSetupMetadataPath(){return this.setupMetadataPath??=this.getRoot().then(async e=>{let{stdout:r}=await this.run(["rev-parse","--git-path","netlify-agent-runner-setup.json"],{cwd:e,stdout:"pipe"});return Zs.resolve(e,String(r).trim())}),this.setupMetadataPath}async listIndexEntries(e,r){let n=[];for(let i=0;i<e.length;i+=uM){let s=e.slice(i,i+uM).map(a=>`:(literal)${a}`),{stdout:o}=await this.run(["ls-files","--stage","-z","--",...s],{...EAe,...r});for(let a of String(o??"").split("\0").filter(Boolean))n.push({filePath:a.slice(a.indexOf(" ")+1),entry:a})}return n}async excludeUnchangedSetupDescendants(e){let r;try{r=JSON.parse(await ci.readFile(await this.getSetupMetadataPath(),"utf8"))}catch(a){if(a.code==="ENOENT")return;throw a}let i={cwd:await this.getRoot(),env:e},s=new Map((await this.listIndexEntries(r.map(({filePath:a})=>a),i)).map(({filePath:a,entry:c})=>[a,c])),o=r.filter(({filePath:a,entry:c})=>s.get(a)===c);o.length!==0&&await this.run(["update-index","--force-remove","-z","--stdin"],{...i,input:o.map(({filePath:a})=>a).join("\0")})}async getIgnoredPathspecs(e){e||=await this.getStatus();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 e.split(`
@@ -602,7 +602,7 @@ ${Oe.trim()}
602
602
  \`\`\``:Oe.trim()),Ke==="error"&&Le&&(pn=pn?`${pn}
603
603
 
604
604
  *Command failed*`:`*Command failed: ${Le.trim()}*`),ge({title:vt,message:pn,category:Zi,...Ye},!0);break}case"step_finish":{Ee();let ne=X.part?.tokens;ne&&(_={input_tokens:(_?.input_tokens??0)+(ne.input??0),output_tokens:(_?.output_tokens??0)+(ne.output??0),reasoning_output_tokens:(_?.reasoning_output_tokens??0)+(ne.reasoning??0),cache_creation_input_tokens:(_?.cache_creation_input_tokens??0)+(ne.cache?.write??0),cache_read_input_tokens:(_?.cache_read_input_tokens??0)+(ne.cache?.read??0)}),X.part?.cost!=null&&(S=(S??0)+X.part.cost);break}case"error":{Ee();let xe=X.error?.data?.message??X.error?.message??X.part?.state?.error??(X.error?JSON.stringify(X.error).slice(0,500):"unknown error");m=m?`${m}
605
- ${xe}`:xe;break}default:X.type&&!te.has(X.type)&&(te.add(X.type),Ld.log(`Unhandled opencode event type: ${X.type}`))}});let j=!1;await se.catch(ee=>{j=Js(ee,o),Ee();let X=rc({catchError:ee,runCmd:se,error:m,result:h??We,runnerName:bL});m=X.error,h=X.result}),me?.stop(),de?.stop(),he?.stop(),await R?.remove(),await C?.remove(),await I?.remove(),await k.close();let F=Date.now()-M;Ee(),fe.close(),le.flush();let q=j;if(q&&(m=void 0),!m&&!h&&We&&(h=We),_&&$s(_,v?{model:v}:{}),y)return{steps:N,duration:F,agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:S,toolErrorCount:w,toolCallCount:x,pendingInteraction:y};let{providerFailure:W,classification:G}=$i({error:m});return{steps:N,duration:F,result:await Li({initialResult:h,agentName:bL,hasError:!!m}),error:Ui({error:m,agentName:bL}),isRetryableError:G?.retryable??Fi(m),isProviderUnavailableError:G?.providerFault??zi(m),...W?{providerFailure:W}:{},agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:S,toolErrorCount:w,toolCallCount:x,...q?{aborted:!0}:{}}}var Yvt=()=>Ud.join(sCe.homedir(),".config","opencode"),cCe=()=>{let t=wL.env.XDG_DATA_HOME,e=t&&Ud.isAbsolute(t)?t:Ud.join(sCe.homedir(),".local","share");return Ud.join(e,"opencode")},uCe=async()=>{let t=[Yvt(),cCe()];await Promise.all(t.map(e=>NR.rm(e,{recursive:!0,force:!0})))},lCe={baseDir:cCe(),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};import Br from"fs/promises";import MR from"os";import hs from"path";import gCe from"process";import oEt from"readline";import Zvt from"crypto";import Jvt from"os";import DR from"path";import Fd from"fs";var dCe=re("antigravity_install"),D8="1.3.3";var Qvt={"agy_cli_linux_x64.tar.gz":"8ee3ca32574c431285efbf4d4732f7f8d53e959370bc4a61646e4fa496f7f2b6","agy_cli_linux_x64_musl.tar.gz":"db8d000171e52d125a7bf2f4dbdbb60dd5ed095ab6edaab12cddf4e168e03dda","agy_cli_linux_arm64.tar.gz":"a9d23fe1d7e5c8471881ab37723571a8d3f24e6ecace8fe082f8c0c8d90f41ca","agy_cli_linux_arm64_musl.tar.gz":"36e59c992adfca49f834b993896338636e41e14b50202bb99c732a1e8594e956","agy_cli_mac_x64.tar.gz":"78547d90bfd1559a87ba63e941f9332a0d1889d2de415da337dedec8dc9aa239","agy_cli_mac_arm64.tar.gz":"c39926f3312e87eaa56d750658cf442669d0a716f49319d06369be7fa80520eb"},TL={"gemini-3.8-flash":["low","medium","high"],"gemini-3.7-flash":["low","medium","high"],"gemini-3.6-flash":["low","medium","high"],"gemini-3.1-pro":["low","high"]},M8={"gemini-3.1-pro":"gemini-3.1-pro-preview"},Xvt="https://github.com/google-antigravity/antigravity-cli/releases/download",eEt=6e4,tEt=async(t,e=eEt)=>{let r=new AbortController,n,i,s=()=>{clearTimeout(i),i=setTimeout(()=>{r.abort(),n?.cancel().catch(()=>{})},e)};s();try{let o=await fetch(t,{signal:r.signal});if(!o.ok||!o.body)throw new Error(`Failed to download Antigravity CLI from ${t}: ${o.status} ${o.statusText}`);n=o.body.getReader();let a=[];for(let c=await n.read();!c.done;c=await n.read())a.push(c.value),s();if(r.signal.aborted)throw r.signal.reason;return Buffer.concat(a)}catch(o){throw r.signal.aborted?new Error(`Antigravity CLI download stalled: no data for ${e/1e3}s from ${t}`):o}finally{clearTimeout(i)}},rEt=()=>DR.join(Jvt.homedir(),".netlify-agent-runner","antigravity",D8),nEt=()=>!process.report?.getReport()?.header?.glibcVersionRuntime,iEt=(t=process.platform,e=process.arch,r=t==="linux"&&nEt())=>{let n={x64:"x64",arm64:"arm64"}[e];if(!n)throw new Error(`Antigravity CLI has no build for CPU architecture ${e}`);if(t==="darwin")return`agy_cli_mac_${n}.tar.gz`;if(t==="linux")return`agy_cli_linux_${n}${r?"_musl":""}.tar.gz`;throw new Error(`Antigravity CLI has no build for platform ${t}`)},fCe=async()=>{let t=rEt(),e=DR.join(t,"agy");if(Fd.existsSync(e))return e;let r=iEt(),n=`${Xvt}/${D8}/${r}`;Fd.mkdirSync(t,{recursive:!0});let i=Fd.mkdtempSync(DR.join(t,"staging-"));dCe.log(`Installing Antigravity CLI ${D8} (${r}) on demand`);let s=Date.now();try{let a=await tEt(n),c=Zvt.createHash("sha256").update(a).digest("hex");if(c!==Qvt[r])throw new Error(`Antigravity CLI ${r} failed its checksum check (got sha256 ${c})`);let u=DR.join(i,r);Fd.writeFileSync(u,a),await ut("tar",["-xzf",u,"-C",i,"antigravity"]);let l=DR.join(i,"antigravity");if(!Fd.existsSync(l))throw new Error(`Antigravity CLI binary not found after extracting ${r}`);Fd.chmodSync(l,493),Fd.renameSync(l,e)}finally{Fd.rmSync(i,{recursive:!0,force:!0})}let o=Date.now()-s;return Y.timing("antigravity.install_duration",o),dCe.log(`Installed Antigravity CLI in ${o}ms`),e};var pCe={view_file:{name:"Read file",category:K.FileRead},write_to_file:{name:"Edit file",category:K.FileWrite},replace_file_content:{name:"Edit file",category:K.FileWrite},run_command:{name:"Run command",category:K.RunCommand},read_url_content:{name:"Fetch web",category:K.Web},search_web:{name:"Search web",category:K.Web},manage_task:{name:"Manage command",category:K.RunCommand},invoke_subagent:{name:"Run subagent",category:K.Task},define_subagent:{name:"Define subagent",category:K.Task},manage_subagents:{name:"Manage subagents",category:K.Task},send_message:{name:"Message agent",category:K.Task},schedule:{name:"Schedule",category:K.Task},list_resources:{name:"List resources",category:K.Explore},read_resource:{name:"Read resource",category:K.Explore}};var $u=re("runner_antigravity"),Sc="Antigravity CLI",hCe="gemini",aEt="gemini-3.8-flash",cEt="medium",uEt="24h",lEt=(t,e)=>TL[t]?.includes(e)?e:($u.log(`${t} has no '${e}' effort; using low`),"low"),OL=()=>hs.join(MR.homedir(),".gemini","antigravity-cli"),xL=()=>hs.join(MR.homedir(),".gemini","config","rules","netlify-agent-runner.md"),dEt=async t=>{let e=xL();await Br.mkdir(hs.dirname(e),{recursive:!0});let r=`---
605
+ ${xe}`:xe;break}default:X.type&&!te.has(X.type)&&(te.add(X.type),Ld.log(`Unhandled opencode event type: ${X.type}`))}});let j=!1;await se.catch(ee=>{j=Js(ee,o),Ee();let X=rc({catchError:ee,runCmd:se,error:m,result:h??We,runnerName:bL});m=X.error,h=X.result}),me?.stop(),de?.stop(),he?.stop(),await R?.remove(),await C?.remove(),await I?.remove(),await k.close();let F=Date.now()-M;Ee(),fe.close(),le.flush();let q=j;if(q&&(m=void 0),!m&&!h&&We&&(h=We),_&&$s(_,v?{model:v}:{}),y)return{steps:N,duration:F,agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:S,toolErrorCount:w,toolCallCount:x,pendingInteraction:y};let{providerFailure:W,classification:G}=$i({error:m});return{steps:N,duration:F,result:await Li({initialResult:h,agentName:bL,hasError:!!m}),error:Ui({error:m,agentName:bL}),isRetryableError:G?.retryable??Fi(m),isProviderUnavailableError:G?.providerFault??zi(m),...W?{providerFailure:W}:{},agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:S,toolErrorCount:w,toolCallCount:x,...q?{aborted:!0}:{}}}var Yvt=()=>Ud.join(sCe.homedir(),".config","opencode"),cCe=()=>{let t=wL.env.XDG_DATA_HOME,e=t&&Ud.isAbsolute(t)?t:Ud.join(sCe.homedir(),".local","share");return Ud.join(e,"opencode")},uCe=async()=>{let t=[Yvt(),cCe()];await Promise.all(t.map(e=>NR.rm(e,{recursive:!0,force:!0})))},lCe={baseDir:cCe(),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};import Br from"fs/promises";import MR from"os";import hs from"path";import gCe from"process";import oEt from"readline";import Zvt from"crypto";import Jvt from"os";import DR from"path";import Fd from"fs";var dCe=re("antigravity_install"),D8="1.4.4";var Qvt={"agy_cli_linux_x64.tar.gz":"9ae4f7f0667a2868e15bb9ad93819ff7527c7187f12d12e3b5191137c726287b","agy_cli_linux_x64_musl.tar.gz":"f85f39bf74b6ff5f7f45da768ba52b39318a7e528811df65f394995959cbcc2c","agy_cli_linux_arm64.tar.gz":"57a96abbc94745a5faf4f24e878766a1882b9aa4c4b83ba567717d8206745f5a","agy_cli_linux_arm64_musl.tar.gz":"4900f50954ad6fb3747c2d80fe29b5986ae861d0f8ea04c2a5bd9cb1781507dc","agy_cli_mac_x64.tar.gz":"12c96c065ac50d36e087c1fda1bba8d6fb4fa7af232d1ef2a44499c2481a52bf","agy_cli_mac_arm64.tar.gz":"85482aa8969300183f71c9653d9f581248fba7f506342a8eb087f3d2503203bd"},TL={"gemini-4-argon":["low","medium","high"],"gemini-3.8-flash":["low","medium","high"],"gemini-3.7-flash":["low","medium","high"],"gemini-3.6-flash":["low","medium","high"],"gemini-3.1-pro":["low","high"]},M8={"gemini-3.1-pro":"gemini-3.1-pro-preview"},Xvt="https://github.com/google-antigravity/antigravity-cli/releases/download",eEt=6e4,tEt=async(t,e=eEt)=>{let r=new AbortController,n,i,s=()=>{clearTimeout(i),i=setTimeout(()=>{r.abort(),n?.cancel().catch(()=>{})},e)};s();try{let o=await fetch(t,{signal:r.signal});if(!o.ok||!o.body)throw new Error(`Failed to download Antigravity CLI from ${t}: ${o.status} ${o.statusText}`);n=o.body.getReader();let a=[];for(let c=await n.read();!c.done;c=await n.read())a.push(c.value),s();if(r.signal.aborted)throw r.signal.reason;return Buffer.concat(a)}catch(o){throw r.signal.aborted?new Error(`Antigravity CLI download stalled: no data for ${e/1e3}s from ${t}`):o}finally{clearTimeout(i)}},rEt=()=>DR.join(Jvt.homedir(),".netlify-agent-runner","antigravity",D8),nEt=()=>!process.report?.getReport()?.header?.glibcVersionRuntime,iEt=(t=process.platform,e=process.arch,r=t==="linux"&&nEt())=>{let n={x64:"x64",arm64:"arm64"}[e];if(!n)throw new Error(`Antigravity CLI has no build for CPU architecture ${e}`);if(t==="darwin")return`agy_cli_mac_${n}.tar.gz`;if(t==="linux")return`agy_cli_linux_${n}${r?"_musl":""}.tar.gz`;throw new Error(`Antigravity CLI has no build for platform ${t}`)},fCe=async()=>{let t=rEt(),e=DR.join(t,"agy");if(Fd.existsSync(e))return e;let r=iEt(),n=`${Xvt}/${D8}/${r}`;Fd.mkdirSync(t,{recursive:!0});let i=Fd.mkdtempSync(DR.join(t,"staging-"));dCe.log(`Installing Antigravity CLI ${D8} (${r}) on demand`);let s=Date.now();try{let a=await tEt(n),c=Zvt.createHash("sha256").update(a).digest("hex");if(c!==Qvt[r])throw new Error(`Antigravity CLI ${r} failed its checksum check (got sha256 ${c})`);let u=DR.join(i,r);Fd.writeFileSync(u,a),await ut("tar",["-xzf",u,"-C",i,"antigravity"]);let l=DR.join(i,"antigravity");if(!Fd.existsSync(l))throw new Error(`Antigravity CLI binary not found after extracting ${r}`);Fd.chmodSync(l,493),Fd.renameSync(l,e)}finally{Fd.rmSync(i,{recursive:!0,force:!0})}let o=Date.now()-s;return Y.timing("antigravity.install_duration",o),dCe.log(`Installed Antigravity CLI in ${o}ms`),e};var pCe={view_file:{name:"Read file",category:K.FileRead},write_to_file:{name:"Edit file",category:K.FileWrite},replace_file_content:{name:"Edit file",category:K.FileWrite},run_command:{name:"Run command",category:K.RunCommand},read_url_content:{name:"Fetch web",category:K.Web},search_web:{name:"Search web",category:K.Web},manage_task:{name:"Manage command",category:K.RunCommand},invoke_subagent:{name:"Run subagent",category:K.Task},define_subagent:{name:"Define subagent",category:K.Task},manage_subagents:{name:"Manage subagents",category:K.Task},send_message:{name:"Message agent",category:K.Task},schedule:{name:"Schedule",category:K.Task},list_resources:{name:"List resources",category:K.Explore},read_resource:{name:"Read resource",category:K.Explore}};var $u=re("runner_antigravity"),Sc="Antigravity CLI",hCe="gemini",aEt="gemini-3.8-flash",cEt="medium",uEt="24h",lEt=(t,e)=>TL[t]?.includes(e)?e:($u.log(`${t} has no '${e}' effort; using low`),"low"),OL=()=>hs.join(MR.homedir(),".gemini","antigravity-cli"),xL=()=>hs.join(MR.homedir(),".gemini","config","rules","netlify-agent-runner.md"),dEt=async t=>{let e=xL();await Br.mkdir(hs.dirname(e),{recursive:!0});let r=`---
606
606
  trigger: always_on
607
607
  description: Netlify agent runner platform instructions
608
608
  ---
package/dist/bin.js CHANGED
@@ -597,7 +597,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
597
597
  `,LF:`
598
598
  `,concatBytes:UZ},X$t=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},Q$t={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:X$t};import{Buffer as eMt}from"buffer";var Dke=(t,e)=>t?void 0:tMt.bind(void 0,e),tMt=function*(t,e){if(typeof e!="string"&&!Sn(e)&&!eMt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Lke=(t,e)=>t?rMt.bind(void 0,e):nMt.bind(void 0,e),rMt=function*(t,e){$ke(t,e),yield e},nMt=function*(t,e){if($ke(t,e),typeof e!="string"&&!Sn(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},$ke=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
599
599
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
600
- if (condition) { yield value; }`)};import{Buffer as iMt}from"buffer";import{StringDecoder as sMt}from"string_decoder";var EM=(t,e,r)=>{if(r)return;if(t)return{transform:oMt.bind(void 0,new TextEncoder)};let n=new sMt(e);return{transform:aMt.bind(void 0,n),final:cMt.bind(void 0,n)}},oMt=function*(t,e){iMt.isBuffer(e)?yield pl(e):typeof e=="string"?yield t.encode(e):yield e},aMt=function*(t,e){yield Sn(e)?t.write(e):e},cMt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Mke}from"util";var jZ=Mke(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),vM=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=lMt}=e[r];for await(let i of n(t))yield*vM(i,e,r+1)},Uke=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*uMt(r,Number(e),t)},uMt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*vM(n,r,e+1)},Fke=Mke(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),lMt=function*(t){yield t};var zZ=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},jke=(t,e)=>[...e.flatMap(r=>[...sm(r,t,0)]),...u0(t)],sm=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=fMt}=e[r];for(let i of n(t))yield*sm(i,e,r+1)},u0=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*dMt(r,Number(e),t)},dMt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*sm(n,r,e+1)},fMt=function*(t){yield t};var qZ=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=qke(t,o,s),u=im(e),l=im(r),d=u?jZ.bind(void 0,vM,a):zZ.bind(void 0,sm),f=u||l?jZ.bind(void 0,Uke,a):zZ.bind(void 0,u0),p=u||l?Fke.bind(void 0,a):void 0;return{stream:new pMt({writableObjectMode:n,writableHighWaterMark:zke(n),readableObjectMode:i,readableHighWaterMark:zke(i),transform(m,g,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},bM=(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=qke(o,r,a);t=jke(c,t)}return t},qke=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:Dke(n,a)},EM(r,o,n),SM(r,s,n,c),{transform:t,final:e},{transform:Lke(i,a)},kke({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var Bke=(t,e)=>{for(let r of hMt(t))mMt(t,r,e)},hMt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),mMt=(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 ${hf[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>gMt(a,n));r.input=QA(o)},gMt=(t,e)=>{let r=bM(t,e,"utf8",!0);return _Mt(r),QA(r)},_Mt=t=>{let e=t.find(r=>typeof r!="string"&&!Sn(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 vMt,appendFileSync as bMt}from"fs";var wM=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&_S(r,n)&&!Js.has(e)&&yMt(n)&&(t.some(({type:i,value:s})=>i==="native"&&SMt.has(s))||t.every(({type:i})=>zo.has(i))),yMt=t=>t===1||t===2,SMt=new Set(["pipe","overlapped"]),Hke=async(t,e,r,n)=>{for await(let i of t)EMt(e)||Gke(i,r,n)},Vke=(t,e,r)=>{for(let n of t)Gke(n,e,r)},EMt=t=>t._readableState.pipes.length>0,Gke=(t,e,r)=>{let n=M$(t);Yc({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Wke=({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,u)=>wMt({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},wMt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=KNe(t,s,d),p=pl(f),{stdioItems:h,objectMode:m}=e[r],g=TMt([p],h,c,n),{serializedResult:y,finalResult:v=y}=RMt({chunks:g,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});AMt({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&&xMt(y,h,i),S}catch(_){return n.error=_,S}},TMt=(t,e,r,n)=>{try{return bM(t,e,r,!1)}catch(i){return n.error=i,t}},RMt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:QA(t)};let o=cIe(t,r);return n[s]?{serializedResult:o,finalResult:FZ(o,!i[s],e)}:{serializedResult:o}},AMt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!wM({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=FZ(t,!1,o);try{Vke(a,e,n)}catch(c){r.error??=c}},xMt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>_M.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?bMt(n,t):(r.add(s),vMt(n,t))}};var Kke=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,gl(e,r,"all")]:Array.isArray(e)?[gl(t,r,"all"),...e]:Sn(t)&&Sn(e)?KJ([t,e]):`${t}${e}`};import{once as BZ}from"events";var Yke=async(t,e)=>{let[r,n]=await OMt(t);return e.isForcefullyTerminated??=!1,[r,n]},OMt=async t=>{let[e,r]=await Promise.allSettled([BZ(t,"spawn"),BZ(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Jke(t):r.value},Jke=async t=>{try{return await BZ(t,"exit")}catch{return Jke(t)}},Zke=async t=>{let[e,r]=await t;if(!PMt(e,r)&&HZ(e,r))throw new Fa;return[e,r]},PMt=(t,e)=>t===void 0&&e===void 0,HZ=(t,e)=>t!==0||e!==null;var Xke=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=IMt(t,e,r),o=s?.code==="ETIMEDOUT",a=WNe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},IMt=(t,e,r)=>t!==void 0?t:HZ(e,r)?new Fa:void 0;var Qke=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=NMt(t,e,r),d=LMt({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return xS(d,c,u)},NMt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=F$(t,e,r),a=kMt(r),{file:c,commandArguments:u,options:l}=sM(t,e,a);DMt(l);let d=Pke(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},kMt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,DMt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&TM("ipcInput"),t&&TM("ipc: true"),r&&TM("detached: true"),n&&TM("cancelSignal")},TM=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},LMt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=$Mt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=Xke(c,r),{output:h,error:m=u}=Wke({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),g=h.map((v,S)=>gl(v,r,S)),y=gl(Kke(h,r),r,"all");return UMt({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:y,options:r,command:n,escapedCommand:i,startTime:a})},$Mt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Bke(s,r);let a=MMt(r);return CMt(...oM(t,e,a))}catch(a){return AS({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},MMt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:pM(e)}),UMt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?hM({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):c0({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as RUt}from"events";import{spawn as AUt}from"child_process";import iDe from"process";import{once as VZ,on as FMt}from"events";var eDe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(ES({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:Q$(t)}),jMt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),jMt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{Y$(e,i);let s=pf(t,e,r),o=new AbortController;try{return await Promise.race([zMt(s,n,o),qMt(s,r,o),BMt(s,r,o)])}catch(a){throw vS(t),a}finally{o.abort(),J$(e,i)}},zMt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await VZ(t,"message",{signal:r});return n}for await(let[n]of FMt(t,"message",{signal:r}))if(e(n))return n},qMt=async(t,e,{signal:r})=>{await VZ(t,"disconnect",{signal:r}),jCe(e)},BMt=async(t,e,{signal:r})=>{let[n]=await VZ(t,"strict:error",{signal:r});throw G$(n,e)};import{once as rDe,on as HMt}from"events";var nDe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>GZ({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),GZ=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{ES({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:Q$(t)}),Y$(e,s);let o=pf(t,e,r),a=new AbortController,c={};return VMt(t,o,a),GMt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),WMt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},VMt=async(t,e,r)=>{try{await rDe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},GMt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await rDe(t,"strict:error",{signal:r.signal});n.error=G$(i,e),r.abort()}catch{}},WMt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of HMt(r,"message",{signal:s.signal}))tDe(o),yield c}catch{tDe(o)}finally{s.abort(),J$(e,a),n||vS(t),i&&await t}},tDe=({error:t})=>{if(t)throw t};var sDe=(t,{ipc:e})=>{Object.assign(t,aDe(t,!1,e))},oDe=()=>{let t=iDe,e=!0,r=iDe.channel!==void 0;return{...aDe(t,e,r),getCancelSignal:pNe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},aDe=(t,e,r)=>({sendMessage:nM.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:eDe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:nDe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as KMt}from"child_process";import{PassThrough as YMt,Readable as JMt,Writable as ZMt,Duplex as XMt}from"stream";var cDe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{$Z(n);let a=new KMt;QMt(a,n),Object.assign(a,{readable:e1t,writable:t1t,duplex:r1t});let c=AS({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=n1t(c,o,i);return{subprocess:a,promise:u}},QMt=(t,e)=>{let r=l0(),n=l0(),i=l0(),s=Array.from({length:e.length-3},l0),o=l0(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},l0=()=>{let t=new YMt;return t.end(),t},e1t=()=>new JMt({read(){}}),t1t=()=>new ZMt({write(){}}),r1t=()=>new XMt({read(){},write(){}}),n1t=async(t,e,r)=>xS(t,e,r);import{createReadStream as uDe,createWriteStream as lDe}from"fs";import{Buffer as i1t}from"buffer";import{Readable as d0,Writable as s1t,Duplex as o1t}from"stream";var fDe=(t,e)=>yM(a1t,t,e,!1),f0=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${hf[t]}.`)},dDe={fileNumber:f0,generator:qZ,asyncGenerator:qZ,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:o1t.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},a1t={input:{...dDe,fileUrl:({value:t})=>({stream:uDe(t)}),filePath:({value:{file:t}})=>({stream:uDe(t)}),webStream:({value:t})=>({stream:d0.fromWeb(t)}),iterable:({value:t})=>({stream:d0.from(t)}),asyncIterable:({value:t})=>({stream:d0.from(t)}),string:({value:t})=>({stream:d0.from(t)}),uint8Array:({value:t})=>({stream:d0.from(i1t.from(t))})},output:{...dDe,fileUrl:({value:t})=>({stream:lDe(t)}),filePath:({value:{file:t,append:e}})=>({stream:lDe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:s1t.fromWeb(t)}),iterable:f0,asyncIterable:f0,string:f0,uint8Array:f0}};import{on as c1t,once as pDe}from"events";import{PassThrough as u1t,getDefaultHighWaterMark as l1t}from"stream";import{finished as gDe}from"stream/promises";function om(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)KZ(i);let e=t.some(({readableObjectMode:i})=>i),r=d1t(t,e),n=new WZ({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var d1t=(t,e)=>{if(t.length===0)return l1t(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},WZ=class extends u1t{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(KZ(e),this.#e.has(e))return;this.#e.add(e),this.#n??=f1t(this,this.#e,this.#s);let r=m1t({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(KZ(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)}},f1t=async(t,e,r)=>{RM(t,hDe);let n=new AbortController;try{await Promise.race([p1t(t,n),h1t(t,e,r,n)])}finally{n.abort(),RM(t,-hDe)}},p1t=async(t,{signal:e})=>{try{await gDe(t,{signal:e,cleanup:!0})}catch(r){throw _De(t,r),r}},h1t=async(t,e,r,{signal:n})=>{for await(let[i]of c1t(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},KZ=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},m1t=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{RM(t,mDe);let a=new AbortController;try{await Promise.race([g1t(s,e,a),_1t({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),y1t({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),RM(t,-mDe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?YZ(t):S1t(t))},g1t=async(t,e,{signal:r})=>{try{await t,r.aborted||YZ(e)}catch(n){r.aborted||_De(e,n)}},_1t=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await gDe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;yDe(o)?i.add(e):SDe(t,o)}},y1t=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await pDe(t,i,{signal:s}),!t.readable)return pDe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},S1t=t=>{t.writable&&t.end()},_De=(t,e)=>{yDe(e)?YZ(t):SDe(t,e)},yDe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",YZ=t=>{(t.readable||t.writable)&&t.destroy()},SDe=(t,e)=>{t.destroyed||(t.once("error",E1t),t.destroy(e))},E1t=()=>{},RM=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},hDe=2,mDe=1;import{finished as EDe}from"stream/promises";var PS=(t,e)=>{t.pipe(e),v1t(t,e),b1t(t,e)},v1t=async(t,e)=>{if(!(Ua(t)||Ua(e))){try{await EDe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}JZ(e)}},JZ=t=>{t.writable&&t.end()},b1t=async(t,e)=>{if(!(Ua(t)||Ua(e))){try{await EDe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}ZZ(t)}},ZZ=t=>{t.readable&&t.destroy()};var vDe=(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})=>zo.has(c)))w1t(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!zo.has(c)))R1t({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]:om(s);PS(o,i)}},w1t=(t,e,r,n)=>{r==="output"?PS(t.stdio[n],e):PS(e,t.stdio[n]);let i=T1t[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},T1t=["stdin","stdout","stderr"],R1t=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;A1t(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},A1t=(t,{signal:e})=>{Ua(t)&&rm(t,x1t,e)},x1t=2;import{addAbortListener as I1t}from"events";var am=[];am.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&am.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&am.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var AM=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",XZ=Symbol.for("signal-exit emitter"),QZ=globalThis,O1t=Object.defineProperty.bind(Object),eX=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(QZ[XZ])return QZ[XZ];O1t(QZ,XZ,{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}},xM=class{},P1t=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),tX=class extends xM{onExit(){return()=>{}}load(){}unload(){}},rX=class extends xM{#e=nX.platform==="win32"?"SIGINT":"SIGHUP";#r=new eX;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of am)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(!AM(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 am)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,am.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 AM(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"&&AM(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)}},nX=globalThis.process,{onExit:bDe,load:w1r,unload:T1r}=P1t(AM(nX)?new rX(nX):new tX);var wDe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=bDe(()=>{t.kill()});I1t(n,()=>{i()})};var RDe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=U$(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=C1t(r,n,i),{sourceStream:d,sourceError:f}=k1t(t,u),{options:p,fileDescriptors:h}=Zc.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},C1t=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=N1t(t,e,...r),a=K$(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},N1t=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(TDe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||GJ(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]=O$(r,...n);return{destination:e(TDe)(i,s,o),pipeOptions:o}}if(Zc.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}`)},TDe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),k1t=(t,e)=>{try{return{sourceStream:bS(t,e)}}catch(r){return{sourceError:r}}};var xDe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=D1t({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw iX({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},D1t=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return ZZ(t),n;if(e!==void 0)return JZ(r),e},iX=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>AS({error:t,command:ADe,escapedCommand:ADe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),ADe="source.pipe(destination)";var ODe=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 L1t}from"stream/promises";var PDe=(t,e,r)=>{let n=OM.has(e)?M1t(t,e):$1t(t,e);return rm(t,F1t,r.signal),rm(e,j1t,r.signal),U1t(e),n},$1t=(t,e)=>{let r=om([t]);return PS(r,e),OM.set(e,r),r},M1t=(t,e)=>{let r=OM.get(e);return r.add(t),r},U1t=async t=>{try{await L1t(t,{cleanup:!0,readable:!1,writable:!0})}catch{}OM.delete(t)},OM=new WeakMap,F1t=2,j1t=1;import{aborted as z1t}from"util";var IDe=(t,e)=>t===void 0?[]:[q1t(t,e)],q1t=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await z1t(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw iX({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var PM=(t,...e)=>{if(Kr(e[0]))return PM.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=RDe(t,...e),i=B1t({...n,destination:r});return i.pipe=PM.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},B1t=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=H1t(t,i);xDe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=PDe(e,s,d);return await Promise.race([ODe(l),...IDe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},H1t=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Z1t}from"timers/promises";import{on as V1t}from"events";import{getDefaultHighWaterMark as G1t}from"stream";var IM=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return W1t(e,o),NDe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},W1t=async(t,e)=>{try{await t}catch{}finally{e.abort()}},sX=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;K1t(e,o,t);let a=t.readableObjectMode&&!s;return NDe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},K1t=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},NDe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=V1t(t,"data",{signal:e.signal,highWaterMark:CDe,highWatermark:CDe});return Y1t({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},oX=G1t(!0),CDe=oX,Y1t=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=J1t({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*sm(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*u0(a)}},J1t=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[EM(t,r,!e),SM(t,i,!n,{})].filter(Boolean);var kDe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=X1t({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([Q1t(t),d]);return}let f=MZ(c,r),p=sX({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([eUt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},X1t=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!wM({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=sX({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Hke(a,t,r,s)},Q1t=async t=>{await Z1t(),t.readableFlowing===null&&t.resume()},eUt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await lM(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await dM(r,{maxBuffer:s})):await RS(r,{maxBuffer:s})}catch(a){return DDe(HNe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},aX=async t=>{try{return await t}catch(e){return DDe(e)}},DDe=({bufferedData:t})=>oIe(t)?new Uint8Array(t):t;import{finished as tUt}from"stream/promises";var p0=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=rUt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],tUt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||sUt(a,e,r,n)}finally{o.abort()}},rUt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&nUt(t,r,n),n},nUt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{iUt(e,r),n.call(t,...i)}},iUt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},sUt=(t,e,r,n)=>{if(!oUt(t,e,r,n))throw t},oUt=(t,e,r,n=!0)=>r.propagating?LDe(t)||CM(t):(r.propagating=!0,cX(r,e)===n?LDe(t):CM(t)),cX=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",CM=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",LDe=t=>t?.code==="EPIPE";var $De=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>uX({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),uX=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=p0(t,e,u);if(cX(u,e)){await l;return}let[d]=await Promise.all([kDe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var MDe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?om([t,e].filter(Boolean)):void 0,UDe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>uX({...aUt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:cUt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),aUt=({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}},cUt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as uUt}from"events";var FDe=t=>_S(t,"ipc"),jDe=(t,e)=>{let r=M$(t);Yc({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var zDe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=FDe(s),a=hl(e,"ipc"),c=hl(r,"ipc");for await(let u of GZ({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(VNe(t,i,c),i.push(u)),o&&jDe(u,s);return i},qDe=async(t,e)=>(await Promise.allSettled([t]),e);var BDe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:g,controller:y})=>{let v=Yke(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},_=$De({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:S}),b=UDe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:S}),w=[],A=zDe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:w,verboseInfo:p}),R=lUt(m,t,S),O=dUt(h,S);try{return await Promise.race([Promise.all([{},Zke(v),Promise.all(_),b,A,wNe(t,d),...R,...O]),g,fUt(t,y),...yNe(t,s,f,y),...FCe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...gNe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(I){return f.terminationReason??="other",Promise.all([{error:I},v,Promise.all(_.map(P=>aX(P))),aX(b),qDe(A,w),Promise.allSettled(R),Promise.allSettled(O)])}},lUt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:p0(n,i,r)),dUt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>za(s,{checkOpen:!1})&&!Ua(s)).map(({type:i,value:s,stream:o=s})=>p0(o,n,e,{isSameDirection:zo.has(i),stopOnExit:i==="native"}))),fUt=async(t,{signal:e})=>{let[r]=await uUt(t,"error",{signal:e});throw r};var HDe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),h0=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Jc();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},IS=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 pUt}from"stream";import{callbackify as hUt}from"util";import{finished as VDe}from"stream/promises";var lX=async t=>{if(t!==void 0)try{await dX(t)}catch{}},GDe=async t=>{if(t!==void 0)try{await fX(t)}catch{}},dX=async t=>{await VDe(t,{cleanup:!0,readable:!1,writable:!0})},fX=async t=>{await VDe(t,{cleanup:!0,readable:!0,writable:!1})},NM=async(t,e)=>{if(await t,e)throw e},kM=(t,e,r)=>{r&&!CM(r)?t.destroy(r):e&&t.destroy()};var WDe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||Js.has(r),{subprocessStdout:a,waitReadableDestroy:c}=pX(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=hX(a,o),{read:f,onStdoutDataDone:p}=mX({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new pUt({read:f,destroy:hUt(_X.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return gX({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},pX=(t,e,r)=>{let n=bS(t,e),i=h0(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},hX=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:oX},mX=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Jc(),o=IM({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){mUt(this,o,s)},onStdoutDataDone:s}},mUt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},gX=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await fX(t),await n,await lX(i),await e,r.readable&&r.push(null)}catch(s){await lX(i),KDe(r,s)}},_X=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await IS(r,e)&&(KDe(t,n),await NM(e,n))},KDe=(t,e)=>{kM(t,t.readable,e)};import{Writable as gUt}from"stream";import{callbackify as YDe}from"util";var JDe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=yX(t,r,e),o=new gUt({...SX(n,t,i),destroy:YDe(vX.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return EX(n,o),o},yX=(t,e,r)=>{let n=K$(t,e),i=h0(r,n,"writableFinal"),s=h0(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},SX=(t,e,r)=>({write:_Ut.bind(void 0,t),final:YDe(yUt.bind(void 0,t,e,r))}),_Ut=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},yUt=async(t,e,r)=>{await IS(r,e)&&(t.writable&&t.end(),await e)},EX=async(t,e,r)=>{try{await dX(t),e.writable&&e.end()}catch(n){await GDe(r),ZDe(e,n)}},vX=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await IS(r,e),await IS(n,e)&&(ZDe(t,i),await NM(e,i))},ZDe=(t,e)=>{kM(t,t.writable,e)};import{Duplex as SUt}from"stream";import{callbackify as EUt}from"util";var XDe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||Js.has(r),{subprocessStdout:c,waitReadableDestroy:u}=pX(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=yX(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=hX(c,a),{read:g,onStdoutDataDone:y}=mX({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new SUt({read:g,...SX(l,t,d),destroy:EUt(vUt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return gX({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:l}),EX(l,v,c),v},vUt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([_X({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),vX({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var bX=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||Js.has(e),o=bS(t,r),a=IM({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return bUt(a,o,t)},bUt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var QDe=(t,{encoding:e})=>{let r=HDe();t.readable=WDe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=JDe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=XDe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=bX.bind(void 0,t,e),t[Symbol.asyncIterator]=bX.bind(void 0,t,e,{})};var eLe=(t,e)=>{for(let[r,n]of TUt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},wUt=(async()=>{})().constructor.prototype,TUt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(wUt,t)]);var tLe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=xUt(t,e,r),{subprocess:f,promise:p}=PUt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=PM.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),eLe(f,p),Zc.set(f,{options:l,fileDescriptors:d}),f},xUt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=F$(t,e,r),{file:a,commandArguments:c,options:u}=sM(t,e,r),l=OUt(u),d=fDe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},OUt=({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}},PUt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=AUt(...oM(t,e,r))}catch(h){return cDe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;RUt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];vDe(c,a,u),wDe(c,r,u);let d={},f=Jc();c.kill=MCe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=MDe(c,r),QDe(c,r),sDe(c,r);let p=IUt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},IUt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,g]=await BDe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let y=h.map((_,b)=>gl(_,e,b)),v=gl(m,e,"all"),S=CUt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:g,context:c,options:e,command:o,escapedCommand:a,startTime:r});return xS(S,n,e)},CUt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?c0({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Xc,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):hM({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var DM=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,NUt(n,t[n],i)]));return{...t,...r}},NUt=(t,e,r)=>kUt.has(t)&&Kr(e)&&Kr(r)?{...e,...r}:r,kUt=new Set(["env",...XJ]);var mf=(t,e,r,n)=>{let i=(o,a,c)=>mf(o,a,r,c),s=(...o)=>DUt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},DUt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Kr(s))return i(t,DM(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=LUt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?Qke(a,c,u):tLe(a,c,u,i)},LUt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=fIe(e)?pIe(e,r):[e,...r],[o,a,c]=O$(...s),u=DM(DM(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var rLe=({file:t,commandArguments:e})=>iLe(t,e),nLe=({file:t,commandArguments:e})=>({...iLe(t,e),isSync:!0}),iLe=(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]=$Ut(t);return{file:r,commandArguments:n}},$Ut=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(MUt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},MUt=/ +/g;var sLe=(t,e,r)=>{t.sync=e(UUt,r),t.s=t.sync},oLe=({options:t})=>aLe(t),UUt=({options:t})=>({...aLe(t),isSync:!0}),aLe=t=>({options:{...FUt(t),...t}}),FUt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},cLe={preferLocal:!0};var uLe=mf(()=>({})),pjr=mf(()=>({isSync:!0})),lLe=mf(rLe),hjr=mf(nLe),mjr=mf(ENe),gjr=mf(oLe,{},cLe,sLe),{sendMessage:_jr,getOneMessage:yjr,getEachMessage:Sjr,getCancelSignal:Ejr}=oDe();import{Transform as jUt}from"stream";var zUt=["NETLIFY_AI_GATEWAY_KEY","NETLIFY_API_TOKEN","NETLIFY_AUTH_TOKEN"];function qUt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...zUt])]}function BUt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function HUt(){let e=qUt().map(r=>process.env[r]).filter(r=>!(!r||BUt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function di(t){if(typeof t!="string")return t;let e=HUt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(VUt(n),"g");r=r.replace(i,"******")}),r}function VUt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var m0=class extends jUt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=di(i);n(null,s)}},LM=Symbol("maskedWrite");function dLe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[LM]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?di(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[LM]=!0,process.stdout.write=r}if(!process.stderr.write[LM]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?di(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[LM]=!0,process.stderr.write=r}}}var fLe=!1,pLe,wX=t=>{pLe??=t},hLe=t=>{fLe=!0,wX(t)},an=()=>fLe,qa=()=>pLe,mLe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var g0=null,gLe=t=>(g0&&g0.destroy(),g0=new qo({totalAllowedTime:t}),g0),_Le=()=>g0;var qo=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&&an())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((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await tD({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{te.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),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 yLe={name:"@netlify/agent-runner-cli",type:"module",version:"2.6.2-PAW-837.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md" "!src/lib/__fixtures__/**"',"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" "!src/lib/__fixtures__/**"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},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.21.0","@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.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var YUt=WUt(import.meta.url),JUt=_l.dirname(YUt),ZUt=KUt(import.meta.url),CS=de("shell"),TX=new Set,SLe={preferLocal:!0},Ct=(t,e,r)=>{let[n,i]=XUt(e,r),s={...SLe,...i},o=uLe(t,n,s);vLe(o,s),TLe(o);let a=r?.idleTimeout;return a&&a>0&&wLe(o,a),o},ELe=(t,e)=>{let r={...SLe,...e},n=lLe(t,r);return vLe(n,r),TLe(n),e?.idleTimeout&&e.idleTimeout>0&&wLe(n,e.idleTimeout),n},XUt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},vLe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||eu.env.NETLIFY_LOCAL_QUIET==="true")return;if(eu.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new m0).pipe(eu.stdout),t.stderr?.pipe(new m0).pipe(eu.stderr);return}t.stdout?.pipe(eu.stdout),t.stderr?.pipe(eu.stderr)},RX=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(eu.kill(-t.pid,e),CS.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return CS.error("Error killing process:",r),!1}},bLe=t=>RX(t,"SIGKILL"),wLe=(t,e)=>{let r=null,n=()=>{CS.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),RX(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(CS.log(`Force killing idle process ${t.pid}`),bLe(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)},TLe=t=>{TX.add(t);let e=_Le();if(e){let r=e.onTimesUp(()=>{CS.log(`Global timer expired, killing process ${t.pid}`),RX(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(CS.log(`Force killing process ${t.pid} after timeout`),bLe(t))},5e3)});t.on("exit",()=>{TX.delete(t),r()}),t.on("error",()=>{TX.delete(t),r()})}};function Bo(t,e){if(!eu.env.NETLIFY_LOCAL_MODE)try{let i=ZUt.resolve(yLe.name),s=_l.dirname(i);for(;s!==_l.dirname(s);){let o=_l.dirname(s);if(_l.basename(o)==="node_modules"){let a=_l.join(o,".bin",e);if($M.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(eu.env.NODE_PATH){let i=_l.join(eu.env.NODE_PATH,".bin",e);if($M.existsSync(i))return i}let r=_l.join(t,"node_modules",".bin",e);if($M.existsSync(r))return r;let n=_l.join(JUt,"..","node_modules",".bin",e);if($M.existsSync(n))return n}import Fj from"process";import{fileURLToPath as iYt}from"url";import{createRequire as sYt}from"module";import sO from"path";import{readFileSync as oYt}from"fs";var QUt="__netlify__getTracer",eFt="__netlify__shutdownTracers",Nt=(t,e)=>globalThis[QUt]?.(t,e),RLe=async()=>globalThis[eFt]?.();function _0(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 ZKt}from"timers/promises";Ue();import Njt from"process";Ue();var tFt=(t,e)=>{e.recordException(t),e.setStatus({code:Ln.ERROR})};var yl=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=ALe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>xLe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=ALe(r,n,i),c=this._tracer.startSpan(e,s,o);return xLe(c,s,a)}};function ALe(t,e,r){let n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??ir.active(),{opts:n,ctx:i,fn:s}}function xLe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:tFt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}Ue();var kS=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var xX=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=MLe(e),n._asyncAttributesPending=e.filter(([i,s])=>kS(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(kS(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=MLe(this._rawAttributes),this._schemaUrl=rFt(r?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[r,n]=this._rawAttributes[e];this._rawAttributes[e]=[r,kS(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&pe.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(kS(n)){pe.debug(`Unsettled resource attribute ${r} skipped`);continue}n!=null&&(e[r]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(e){if(e==null)return this;let r=nFt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function OX(t,e){return xX.FromAttributeList(Object.entries(t),e)}function MLe(t){return t.map(([e,r])=>kS(r)?[e,r.catch(n=>{pe.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function rFt(t){if(typeof t=="string"||t===void 0)return t;pe.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function nFt(t,e){let r=t?.schemaUrl,n=e?.schemaUrl,i=r===void 0||r==="",s=n===void 0||n==="";if(i)return n;if(s||r===n)return r;pe.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Ue();var y0=class{emit(e){}enabled(){return!1}},ULe=new y0;var S0=Symbol.for("io.opentelemetry.js.api.logs"),DS=globalThis;function FLe(t,e,r){return n=>n===t?e:r}var PX=1;var IX=class{getLogger(e,r,n){return new y0}},FM=new IX;var jM=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):ULe}};var E0=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new jM(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:FM}_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 zM=class t{constructor(){this._proxyLoggerProvider=new E0}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return DS[S0]?this.getLoggerProvider():(DS[S0]=FLe(PX,e,FM),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=DS[S0])===null||e===void 0?void 0:e.call(DS,PX))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete DS[S0],this._proxyLoggerProvider=new E0}};var jLe=zM.getInstance();function zLe(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 qLe(t){t.forEach(e=>e.disable())}function CX(t){let e=t.tracerProvider||zt.getTracerProvider(),r=t.meterProvider||$R.getMeterProvider(),n=t.loggerProvider||jLe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return zLe(i,e,r,n),()=>{qLe(i)}}Ue();var iFt=Dn("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function BLe(t){return t.getValue(iFt)===!0}var LS;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(LS||(LS={}));Ue();var NX="[_0-9a-z-*/]",sFt=`[a-z]${NX}{0,255}`,oFt=`[a-z0-9]${NX}{0,240}@[a-z]${NX}{0,13}`,aFt=new RegExp(`^(?:${sFt}|${oFt})$`),cFt=/^[ -~]{0,255}[!-~]$/,uFt=/,|=/;function kX(t){return aFt.test(t)}function DX(t){return cFt.test(t)&&!uFt.test(t)}var lFt=32,HLe=512,VLe=",",GLe="=",qM=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!kX(e)||!DX(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>HLe)return this;let o=new Map(n);return o.delete(e),o.set(e,r),this._fromState(o,s)}unset(e){let r=this._getState(),n=r.get(e);if(typeof n!="string")return this;let i=this._length-(e.length+n.length+1);r.size>1&&(i=i-1);let s=new Map(r);return s.delete(e),this._fromState(s,i)}get(e){return this._getState().get(e)}serialize(){let e="",r=0;for(let n of this._getState())r>0&&(e=VLe+e),e=`${n[0]}${GLe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(VLe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(GLe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!kX(a)||!DX(c))continue;let u=n+s.length+(r.size>0?1:0);if(!(u>HLe)&&(r.set(a,c),n=u,r.size>=lFt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var BM="traceparent",HM="tracestate",dFt="00",fFt="(?!ff)[\\da-f]{2}",pFt="(?![0]{32})[\\da-f]{32}",hFt="(?![0]{16})[\\da-f]{16}",mFt="[\\da-f]{2}",gFt=new RegExp(`^\\s?(${fFt})-(${pFt})-(${hFt})-(${mFt})(-.*)?\\s?$`);function WLe(t){let e=gFt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var gf=class{inject(e,r,n){let i=zt.getSpanContext(e);if(!i||BLe(e)||!gs(i))return;let s=`${dFt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||Mr.NONE).toString(16)}`;n.set(r,BM,s),i.traceState&&n.set(r,HM,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,BM);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=WLe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,HM);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new qM(typeof c=="string"?c:void 0)}return zt.setSpanContext(e,o)}fields(){return[BM,HM]}};var VM=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var v0=class{_isCalled=!1;_deferred=new VM;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var $1=mn(SQ(),1);Ue();var P1e=t=>{throw TypeError(t)},wQ=(t,e,r)=>e.has(t)||P1e("Cannot "+r),L1=(t,e,r)=>(wQ(t,e,"read from private field"),r?r.call(t):e.get(t)),EQ=(t,e,r)=>e.has(t)?P1e("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),A1e=(t,e,r,n)=>(wQ(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Cjt=(t,e,r)=>(wQ(t,e,"access private method"),r),x1e="__netlify__getTracer",kjt="__netlify__shutdownTracers",Djt="__nfOTLPTrace",$0,M0,bQ,I1e,Ljt=class{constructor(){EQ(this,bQ),EQ(this,$0),EQ(this,M0),A1e(this,$0,new v0(Cjt(this,bQ,I1e),this)),A1e(this,M0,pe.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(L1(this,M0).debug(`export ${t.length.toString()} spans`),L1(this,$0).isCalled){e({code:LS.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(Djt,JSON.stringify($jt(t))),e({code:LS.SUCCESS})}shutdown(){return L1(this,$0).call()}};$0=new WeakMap;M0=new WeakMap;bQ=new WeakSet;I1e=function(){return L1(this,M0).debug("Shutting down"),Promise.resolve()};function $jt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:D1(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||ka.SERVER,startTimeUnixNano:vQ(e.startTime),endTimeUnixNano:vQ(e.endTime),attributes:D1(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:vQ(n.time),attributes:D1(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:D1(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function D1(t){return Object.keys(t).map(e=>C1e(e,t[e]))}function C1e(t,e){return{key:t,value:N1e(e)}}function N1e(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(N1e)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>C1e(r,n))}}:{}}function vQ(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var O1e={name:"@netlify/otel",version:"6.0.6",type:"module",engines:{node:"^18.14.0 || >=20.6.1"},main:"./dist/main.cjs",module:"./dist/main.js",types:"./dist/main.d.ts",exports:{".":{require:{types:"./dist/main.d.cts",default:"./dist/main.cjs"},import:{types:"./dist/main.d.ts",default:"./dist/main.js"},default:{types:"./dist/main.d.ts",default:"./dist/main.js"}},"./package.json":"./package.json","./bootstrap":{require:{types:"./dist/bootstrap/main.d.cts",default:"./dist/bootstrap/main.cjs"},import:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"},default:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"}},"./exporter-netlify":{require:{types:"./dist/exporters/netlify.d.cts",default:"./dist/exporters/netlify.cjs"},import:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"},default:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"}},"./instrumentation-fetch":{require:{types:"./dist/instrumentations/fetch.d.cts",default:"./dist/instrumentations/fetch.cjs"},import:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"},default:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"}},"./instrumentation-http":{require:{types:"./dist/instrumentations/http.d.cts",default:"./dist/instrumentations/http.cjs"},import:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"},default:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"}},"./opentelemetry":{require:{types:"./dist/opentelemetry.d.cts",default:"./dist/opentelemetry.cjs"},import:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"},default:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"}}},files:["dist/**/*"],scripts:{build:"tsup-node",dev:"tsup-node --watch",prepack:"npm run build",test:"run-s build test:ci","test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"vitest","test:dev:vitest:watch":"vitest watch","test:ci:vitest":"vitest run",publint:"npx -y publint --strict"},keywords:["netlify","cdn"],license:"MIT",repository:{type:"git",url:"https://github.com/netlify/primitives.git",directory:"packages/otel"},bugs:{url:"https://github.com/netlify/primitives/issues"},author:"Netlify Inc.",devDependencies:{"@netlify/dev-utils":"^5.0.0",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.8.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/resources":"2.9.0","@opentelemetry/sdk-trace-node":"2.9.0"}},k1e=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,x1e))return;let e=Njt.version.slice(1),r=OX({"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??[Mjt()],i=new $1.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new gf});let s=t.instrumentations??[];CX({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,x1e,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new yl(zt.getTracer(a,c)):new yl(zt.getTracer(O1e.name,O1e.version))}}),Object.defineProperty(globalThis,kjt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},Mjt=()=>new $1.SimpleSpanProcessor(new Ljt);Ue();var U0=mn(SQ(),1);Ue();import*as M1 from"diagnostics_channel";var D1e=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?Ln.ERROR:Ln.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],u=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof u!="string"&&!Buffer.isBuffer(u))continue;let l=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==l:f.test(l)))continue;let d=`http.${t}.header.${l}`;i===!0||i.some(f=>typeof f=="string"?f==l:f.test(l))?o[d]="REDACTED":o[d]=u.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 yl?t:new yl(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){M1.subscribe(t,e);let r=()=>M1.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:ka.CLIENT},ir.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:Ln.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 iVe=mn(rVe(),1);var Mj=de("tracing"),nVe=8e3,XKt=5e3,rO=async(t=XKt)=>{try{await Promise.race([RLe(),ZKt(t)])}catch(e){Mj.warn("Failed to flush tracers on shutdown",e)}},sVe=async(t,e,r)=>{if(!Nt()){let n=[new U0.SimpleSpanProcessor(new Tne),new U0.SimpleSpanProcessor(new iVe.OTLPTraceExporter({url:r.exporterUrl}))];await k1e({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new D1e({skipHeaders:!0})]})}return r.traceparent?(Bi.setGlobalPropagator(new gf),Bi.extract(ir.active(),{traceparent:r.traceparent,isRemote:!0})):ir.active()};function ur(t,e,r){return Mj.log(`\u23F3 TRACE: ${e} starting...`),_0(t,e,r)}var Tne=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(", ")}]`:"";Mj.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&Mj.log(` \u274C Error: ${e.status.message}`)}};function Rne(){return We().captureLlmContentEnabled}function oVe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")||t.includes("antigravity")?"google":t.includes("muse")?"meta":t.includes("opencode")?"opencode":t}function Uj(t,e,r){let n={role:t,parts:[{type:"text",content:di(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var QKt=new Set([X.Task,X.RunCommand,X.Explore,X.FileRead,X.FileWrite,X.Notebook,X.Web,X.Todo,X.Skill,X.Tool,X.Memorize,X.Deployment,X.SiteGeneration]);function aVe(t,e,r,n){if(!t.length)return;let i=Nt();if(!i)return;let s=Rne(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let u=Math.min(n,r+c*o),l=Math.min(n,u+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&QKt.has(a.category)||a.category===X.AgentMessage&&a.toolCallId!==void 0,f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,g=a.message?a.message.length>nVe?`${a.message.slice(0,nVe)}\u2026`:a.message:void 0,y=i.startSpan(m,{startTime:u,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":di(p),"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&g?d?{"gen_ai.tool.call.result":di(g)}:{"gen_ai.output.messages":Uj("assistant",g)}:{}}});d&&(a.toolCallId!==void 0&&y.setAttribute("gen_ai.tool.call.id",a.toolCallId),a.toolStatus!==void 0&&y.setAttribute("spark.step.tool_status",a.toolStatus),a.exitCode!==void 0&&y.setAttribute("spark.step.exit_code",a.exitCode),a.toolStatus==="error"&&(y.setAttribute("error.type","tool_error"),y.setStatus({code:Ln.ERROR}))),y.end(l)})}import{readdir as eYt,rm as tYt}from"fs/promises";import{join as rYt}from"path";async function cVe(t,e=[]){let n=(await eYt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>tYt(rYt(t,i),{recursive:!0,force:!0})))}var nYt=300,nO=t=>We().budgetCreditThresholds[t.mode]?.[t.runner]??nYt,iO=({mode:t,sessionCreditLimit:e},r)=>t==="create"&&e!=null&&e<=r;var Ane=t=>{let e=nO(t);if(!iO(t,e))return"default";let r=We();return r.createAskFirstEnabled?"ask_first":r.creditWrapUpEnabled?"budget_constrained":"default"},uVe=t=>{let e=Ane(t),r=nO(t);return{budget_eligible:iO(t,r),budget_constrained:e==="budget_constrained",ask_first:e==="ask_first"}};var aYt=sO.dirname(iYt(import.meta.url)),lVe=sYt(import.meta.url),cYt=sO.resolve(aYt,"scripts/scaffold.js"),uYt="scripts/scaffold.js",lYt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,xne=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},dYt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),fYt=t=>{let e=xne(t);return e==="node"||e.endsWith("/node")},io=t=>{if(typeof t!="string")return!1;let e=t.match(lYt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&dYt(xne(e[r]));)r+=1;if(r>=e.length||!fYt(e[r]))return!1;let n=e[r+1];return n?xne(n).includes(uYt):!1},Bm=de("create_stage"),One="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.",pYt=`${One}
600
+ if (condition) { yield value; }`)};import{Buffer as iMt}from"buffer";import{StringDecoder as sMt}from"string_decoder";var EM=(t,e,r)=>{if(r)return;if(t)return{transform:oMt.bind(void 0,new TextEncoder)};let n=new sMt(e);return{transform:aMt.bind(void 0,n),final:cMt.bind(void 0,n)}},oMt=function*(t,e){iMt.isBuffer(e)?yield pl(e):typeof e=="string"?yield t.encode(e):yield e},aMt=function*(t,e){yield Sn(e)?t.write(e):e},cMt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Mke}from"util";var jZ=Mke(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),vM=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=lMt}=e[r];for await(let i of n(t))yield*vM(i,e,r+1)},Uke=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*uMt(r,Number(e),t)},uMt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*vM(n,r,e+1)},Fke=Mke(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),lMt=function*(t){yield t};var zZ=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},jke=(t,e)=>[...e.flatMap(r=>[...sm(r,t,0)]),...u0(t)],sm=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=fMt}=e[r];for(let i of n(t))yield*sm(i,e,r+1)},u0=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*dMt(r,Number(e),t)},dMt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*sm(n,r,e+1)},fMt=function*(t){yield t};var qZ=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=qke(t,o,s),u=im(e),l=im(r),d=u?jZ.bind(void 0,vM,a):zZ.bind(void 0,sm),f=u||l?jZ.bind(void 0,Uke,a):zZ.bind(void 0,u0),p=u||l?Fke.bind(void 0,a):void 0;return{stream:new pMt({writableObjectMode:n,writableHighWaterMark:zke(n),readableObjectMode:i,readableHighWaterMark:zke(i),transform(m,g,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},bM=(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=qke(o,r,a);t=jke(c,t)}return t},qke=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:Dke(n,a)},EM(r,o,n),SM(r,s,n,c),{transform:t,final:e},{transform:Lke(i,a)},kke({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var Bke=(t,e)=>{for(let r of hMt(t))mMt(t,r,e)},hMt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),mMt=(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 ${hf[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>gMt(a,n));r.input=QA(o)},gMt=(t,e)=>{let r=bM(t,e,"utf8",!0);return _Mt(r),QA(r)},_Mt=t=>{let e=t.find(r=>typeof r!="string"&&!Sn(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 vMt,appendFileSync as bMt}from"fs";var wM=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&_S(r,n)&&!Js.has(e)&&yMt(n)&&(t.some(({type:i,value:s})=>i==="native"&&SMt.has(s))||t.every(({type:i})=>zo.has(i))),yMt=t=>t===1||t===2,SMt=new Set(["pipe","overlapped"]),Hke=async(t,e,r,n)=>{for await(let i of t)EMt(e)||Gke(i,r,n)},Vke=(t,e,r)=>{for(let n of t)Gke(n,e,r)},EMt=t=>t._readableState.pipes.length>0,Gke=(t,e,r)=>{let n=M$(t);Yc({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Wke=({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,u)=>wMt({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},wMt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=KNe(t,s,d),p=pl(f),{stdioItems:h,objectMode:m}=e[r],g=TMt([p],h,c,n),{serializedResult:y,finalResult:v=y}=RMt({chunks:g,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});AMt({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&&xMt(y,h,i),S}catch(_){return n.error=_,S}},TMt=(t,e,r,n)=>{try{return bM(t,e,r,!1)}catch(i){return n.error=i,t}},RMt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:QA(t)};let o=cIe(t,r);return n[s]?{serializedResult:o,finalResult:FZ(o,!i[s],e)}:{serializedResult:o}},AMt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!wM({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=FZ(t,!1,o);try{Vke(a,e,n)}catch(c){r.error??=c}},xMt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>_M.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?bMt(n,t):(r.add(s),vMt(n,t))}};var Kke=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,gl(e,r,"all")]:Array.isArray(e)?[gl(t,r,"all"),...e]:Sn(t)&&Sn(e)?KJ([t,e]):`${t}${e}`};import{once as BZ}from"events";var Yke=async(t,e)=>{let[r,n]=await OMt(t);return e.isForcefullyTerminated??=!1,[r,n]},OMt=async t=>{let[e,r]=await Promise.allSettled([BZ(t,"spawn"),BZ(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Jke(t):r.value},Jke=async t=>{try{return await BZ(t,"exit")}catch{return Jke(t)}},Zke=async t=>{let[e,r]=await t;if(!PMt(e,r)&&HZ(e,r))throw new Fa;return[e,r]},PMt=(t,e)=>t===void 0&&e===void 0,HZ=(t,e)=>t!==0||e!==null;var Xke=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=IMt(t,e,r),o=s?.code==="ETIMEDOUT",a=WNe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},IMt=(t,e,r)=>t!==void 0?t:HZ(e,r)?new Fa:void 0;var Qke=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=NMt(t,e,r),d=LMt({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return xS(d,c,u)},NMt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=F$(t,e,r),a=kMt(r),{file:c,commandArguments:u,options:l}=sM(t,e,a);DMt(l);let d=Pke(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},kMt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,DMt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&TM("ipcInput"),t&&TM("ipc: true"),r&&TM("detached: true"),n&&TM("cancelSignal")},TM=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},LMt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=$Mt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=Xke(c,r),{output:h,error:m=u}=Wke({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),g=h.map((v,S)=>gl(v,r,S)),y=gl(Kke(h,r),r,"all");return UMt({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:g,all:y,options:r,command:n,escapedCommand:i,startTime:a})},$Mt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{Bke(s,r);let a=MMt(r);return CMt(...oM(t,e,a))}catch(a){return AS({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},MMt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:pM(e)}),UMt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?hM({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):c0({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as RUt}from"events";import{spawn as AUt}from"child_process";import iDe from"process";import{once as VZ,on as FMt}from"events";var eDe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(ES({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:Q$(t)}),jMt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),jMt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{Y$(e,i);let s=pf(t,e,r),o=new AbortController;try{return await Promise.race([zMt(s,n,o),qMt(s,r,o),BMt(s,r,o)])}catch(a){throw vS(t),a}finally{o.abort(),J$(e,i)}},zMt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await VZ(t,"message",{signal:r});return n}for await(let[n]of FMt(t,"message",{signal:r}))if(e(n))return n},qMt=async(t,e,{signal:r})=>{await VZ(t,"disconnect",{signal:r}),jCe(e)},BMt=async(t,e,{signal:r})=>{let[n]=await VZ(t,"strict:error",{signal:r});throw G$(n,e)};import{once as rDe,on as HMt}from"events";var nDe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>GZ({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),GZ=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{ES({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:Q$(t)}),Y$(e,s);let o=pf(t,e,r),a=new AbortController,c={};return VMt(t,o,a),GMt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),WMt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},VMt=async(t,e,r)=>{try{await rDe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},GMt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await rDe(t,"strict:error",{signal:r.signal});n.error=G$(i,e),r.abort()}catch{}},WMt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of HMt(r,"message",{signal:s.signal}))tDe(o),yield c}catch{tDe(o)}finally{s.abort(),J$(e,a),n||vS(t),i&&await t}},tDe=({error:t})=>{if(t)throw t};var sDe=(t,{ipc:e})=>{Object.assign(t,aDe(t,!1,e))},oDe=()=>{let t=iDe,e=!0,r=iDe.channel!==void 0;return{...aDe(t,e,r),getCancelSignal:pNe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},aDe=(t,e,r)=>({sendMessage:nM.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:eDe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:nDe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as KMt}from"child_process";import{PassThrough as YMt,Readable as JMt,Writable as ZMt,Duplex as XMt}from"stream";var cDe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{$Z(n);let a=new KMt;QMt(a,n),Object.assign(a,{readable:e1t,writable:t1t,duplex:r1t});let c=AS({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=n1t(c,o,i);return{subprocess:a,promise:u}},QMt=(t,e)=>{let r=l0(),n=l0(),i=l0(),s=Array.from({length:e.length-3},l0),o=l0(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},l0=()=>{let t=new YMt;return t.end(),t},e1t=()=>new JMt({read(){}}),t1t=()=>new ZMt({write(){}}),r1t=()=>new XMt({read(){},write(){}}),n1t=async(t,e,r)=>xS(t,e,r);import{createReadStream as uDe,createWriteStream as lDe}from"fs";import{Buffer as i1t}from"buffer";import{Readable as d0,Writable as s1t,Duplex as o1t}from"stream";var fDe=(t,e)=>yM(a1t,t,e,!1),f0=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${hf[t]}.`)},dDe={fileNumber:f0,generator:qZ,asyncGenerator:qZ,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:o1t.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},a1t={input:{...dDe,fileUrl:({value:t})=>({stream:uDe(t)}),filePath:({value:{file:t}})=>({stream:uDe(t)}),webStream:({value:t})=>({stream:d0.fromWeb(t)}),iterable:({value:t})=>({stream:d0.from(t)}),asyncIterable:({value:t})=>({stream:d0.from(t)}),string:({value:t})=>({stream:d0.from(t)}),uint8Array:({value:t})=>({stream:d0.from(i1t.from(t))})},output:{...dDe,fileUrl:({value:t})=>({stream:lDe(t)}),filePath:({value:{file:t,append:e}})=>({stream:lDe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:s1t.fromWeb(t)}),iterable:f0,asyncIterable:f0,string:f0,uint8Array:f0}};import{on as c1t,once as pDe}from"events";import{PassThrough as u1t,getDefaultHighWaterMark as l1t}from"stream";import{finished as gDe}from"stream/promises";function om(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)KZ(i);let e=t.some(({readableObjectMode:i})=>i),r=d1t(t,e),n=new WZ({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var d1t=(t,e)=>{if(t.length===0)return l1t(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},WZ=class extends u1t{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(KZ(e),this.#e.has(e))return;this.#e.add(e),this.#n??=f1t(this,this.#e,this.#s);let r=m1t({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(KZ(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)}},f1t=async(t,e,r)=>{RM(t,hDe);let n=new AbortController;try{await Promise.race([p1t(t,n),h1t(t,e,r,n)])}finally{n.abort(),RM(t,-hDe)}},p1t=async(t,{signal:e})=>{try{await gDe(t,{signal:e,cleanup:!0})}catch(r){throw _De(t,r),r}},h1t=async(t,e,r,{signal:n})=>{for await(let[i]of c1t(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},KZ=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},m1t=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{RM(t,mDe);let a=new AbortController;try{await Promise.race([g1t(s,e,a),_1t({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),y1t({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),RM(t,-mDe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?YZ(t):S1t(t))},g1t=async(t,e,{signal:r})=>{try{await t,r.aborted||YZ(e)}catch(n){r.aborted||_De(e,n)}},_1t=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await gDe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;yDe(o)?i.add(e):SDe(t,o)}},y1t=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await pDe(t,i,{signal:s}),!t.readable)return pDe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},S1t=t=>{t.writable&&t.end()},_De=(t,e)=>{yDe(e)?YZ(t):SDe(t,e)},yDe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",YZ=t=>{(t.readable||t.writable)&&t.destroy()},SDe=(t,e)=>{t.destroyed||(t.once("error",E1t),t.destroy(e))},E1t=()=>{},RM=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},hDe=2,mDe=1;import{finished as EDe}from"stream/promises";var PS=(t,e)=>{t.pipe(e),v1t(t,e),b1t(t,e)},v1t=async(t,e)=>{if(!(Ua(t)||Ua(e))){try{await EDe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}JZ(e)}},JZ=t=>{t.writable&&t.end()},b1t=async(t,e)=>{if(!(Ua(t)||Ua(e))){try{await EDe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}ZZ(t)}},ZZ=t=>{t.readable&&t.destroy()};var vDe=(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})=>zo.has(c)))w1t(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!zo.has(c)))R1t({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]:om(s);PS(o,i)}},w1t=(t,e,r,n)=>{r==="output"?PS(t.stdio[n],e):PS(e,t.stdio[n]);let i=T1t[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},T1t=["stdin","stdout","stderr"],R1t=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;A1t(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},A1t=(t,{signal:e})=>{Ua(t)&&rm(t,x1t,e)},x1t=2;import{addAbortListener as I1t}from"events";var am=[];am.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&am.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&am.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var AM=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",XZ=Symbol.for("signal-exit emitter"),QZ=globalThis,O1t=Object.defineProperty.bind(Object),eX=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(QZ[XZ])return QZ[XZ];O1t(QZ,XZ,{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}},xM=class{},P1t=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),tX=class extends xM{onExit(){return()=>{}}load(){}unload(){}},rX=class extends xM{#e=nX.platform==="win32"?"SIGINT":"SIGHUP";#r=new eX;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of am)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(!AM(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 am)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,am.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 AM(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"&&AM(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)}},nX=globalThis.process,{onExit:bDe,load:w1r,unload:T1r}=P1t(AM(nX)?new rX(nX):new tX);var wDe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=bDe(()=>{t.kill()});I1t(n,()=>{i()})};var RDe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=U$(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=C1t(r,n,i),{sourceStream:d,sourceError:f}=k1t(t,u),{options:p,fileDescriptors:h}=Zc.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},C1t=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=N1t(t,e,...r),a=K$(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},N1t=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(TDe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||GJ(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]=O$(r,...n);return{destination:e(TDe)(i,s,o),pipeOptions:o}}if(Zc.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}`)},TDe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),k1t=(t,e)=>{try{return{sourceStream:bS(t,e)}}catch(r){return{sourceError:r}}};var xDe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=D1t({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw iX({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},D1t=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return ZZ(t),n;if(e!==void 0)return JZ(r),e},iX=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>AS({error:t,command:ADe,escapedCommand:ADe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),ADe="source.pipe(destination)";var ODe=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 L1t}from"stream/promises";var PDe=(t,e,r)=>{let n=OM.has(e)?M1t(t,e):$1t(t,e);return rm(t,F1t,r.signal),rm(e,j1t,r.signal),U1t(e),n},$1t=(t,e)=>{let r=om([t]);return PS(r,e),OM.set(e,r),r},M1t=(t,e)=>{let r=OM.get(e);return r.add(t),r},U1t=async t=>{try{await L1t(t,{cleanup:!0,readable:!1,writable:!0})}catch{}OM.delete(t)},OM=new WeakMap,F1t=2,j1t=1;import{aborted as z1t}from"util";var IDe=(t,e)=>t===void 0?[]:[q1t(t,e)],q1t=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await z1t(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw iX({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var PM=(t,...e)=>{if(Kr(e[0]))return PM.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=RDe(t,...e),i=B1t({...n,destination:r});return i.pipe=PM.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},B1t=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=H1t(t,i);xDe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=PDe(e,s,d);return await Promise.race([ODe(l),...IDe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},H1t=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Z1t}from"timers/promises";import{on as V1t}from"events";import{getDefaultHighWaterMark as G1t}from"stream";var IM=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return W1t(e,o),NDe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},W1t=async(t,e)=>{try{await t}catch{}finally{e.abort()}},sX=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;K1t(e,o,t);let a=t.readableObjectMode&&!s;return NDe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},K1t=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},NDe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=V1t(t,"data",{signal:e.signal,highWaterMark:CDe,highWatermark:CDe});return Y1t({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},oX=G1t(!0),CDe=oX,Y1t=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=J1t({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*sm(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*u0(a)}},J1t=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[EM(t,r,!e),SM(t,i,!n,{})].filter(Boolean);var kDe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=X1t({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([Q1t(t),d]);return}let f=MZ(c,r),p=sX({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([eUt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},X1t=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!wM({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=sX({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Hke(a,t,r,s)},Q1t=async t=>{await Z1t(),t.readableFlowing===null&&t.resume()},eUt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await lM(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await dM(r,{maxBuffer:s})):await RS(r,{maxBuffer:s})}catch(a){return DDe(HNe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},aX=async t=>{try{return await t}catch(e){return DDe(e)}},DDe=({bufferedData:t})=>oIe(t)?new Uint8Array(t):t;import{finished as tUt}from"stream/promises";var p0=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=rUt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],tUt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||sUt(a,e,r,n)}finally{o.abort()}},rUt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&nUt(t,r,n),n},nUt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{iUt(e,r),n.call(t,...i)}},iUt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},sUt=(t,e,r,n)=>{if(!oUt(t,e,r,n))throw t},oUt=(t,e,r,n=!0)=>r.propagating?LDe(t)||CM(t):(r.propagating=!0,cX(r,e)===n?LDe(t):CM(t)),cX=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",CM=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",LDe=t=>t?.code==="EPIPE";var $De=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>uX({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),uX=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=p0(t,e,u);if(cX(u,e)){await l;return}let[d]=await Promise.all([kDe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var MDe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?om([t,e].filter(Boolean)):void 0,UDe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>uX({...aUt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:cUt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),aUt=({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}},cUt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as uUt}from"events";var FDe=t=>_S(t,"ipc"),jDe=(t,e)=>{let r=M$(t);Yc({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var zDe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=FDe(s),a=hl(e,"ipc"),c=hl(r,"ipc");for await(let u of GZ({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(VNe(t,i,c),i.push(u)),o&&jDe(u,s);return i},qDe=async(t,e)=>(await Promise.allSettled([t]),e);var BDe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:g,controller:y})=>{let v=Yke(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},_=$De({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:S}),b=UDe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:S}),w=[],A=zDe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:w,verboseInfo:p}),R=lUt(m,t,S),O=dUt(h,S);try{return await Promise.race([Promise.all([{},Zke(v),Promise.all(_),b,A,wNe(t,d),...R,...O]),g,fUt(t,y),...yNe(t,s,f,y),...FCe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...gNe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(I){return f.terminationReason??="other",Promise.all([{error:I},v,Promise.all(_.map(P=>aX(P))),aX(b),qDe(A,w),Promise.allSettled(R),Promise.allSettled(O)])}},lUt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:p0(n,i,r)),dUt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>za(s,{checkOpen:!1})&&!Ua(s)).map(({type:i,value:s,stream:o=s})=>p0(o,n,e,{isSameDirection:zo.has(i),stopOnExit:i==="native"}))),fUt=async(t,{signal:e})=>{let[r]=await uUt(t,"error",{signal:e});throw r};var HDe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),h0=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Jc();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},IS=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 pUt}from"stream";import{callbackify as hUt}from"util";import{finished as VDe}from"stream/promises";var lX=async t=>{if(t!==void 0)try{await dX(t)}catch{}},GDe=async t=>{if(t!==void 0)try{await fX(t)}catch{}},dX=async t=>{await VDe(t,{cleanup:!0,readable:!1,writable:!0})},fX=async t=>{await VDe(t,{cleanup:!0,readable:!0,writable:!1})},NM=async(t,e)=>{if(await t,e)throw e},kM=(t,e,r)=>{r&&!CM(r)?t.destroy(r):e&&t.destroy()};var WDe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||Js.has(r),{subprocessStdout:a,waitReadableDestroy:c}=pX(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=hX(a,o),{read:f,onStdoutDataDone:p}=mX({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new pUt({read:f,destroy:hUt(_X.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return gX({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},pX=(t,e,r)=>{let n=bS(t,e),i=h0(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},hX=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:oX},mX=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Jc(),o=IM({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){mUt(this,o,s)},onStdoutDataDone:s}},mUt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},gX=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await fX(t),await n,await lX(i),await e,r.readable&&r.push(null)}catch(s){await lX(i),KDe(r,s)}},_X=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await IS(r,e)&&(KDe(t,n),await NM(e,n))},KDe=(t,e)=>{kM(t,t.readable,e)};import{Writable as gUt}from"stream";import{callbackify as YDe}from"util";var JDe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=yX(t,r,e),o=new gUt({...SX(n,t,i),destroy:YDe(vX.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return EX(n,o),o},yX=(t,e,r)=>{let n=K$(t,e),i=h0(r,n,"writableFinal"),s=h0(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},SX=(t,e,r)=>({write:_Ut.bind(void 0,t),final:YDe(yUt.bind(void 0,t,e,r))}),_Ut=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},yUt=async(t,e,r)=>{await IS(r,e)&&(t.writable&&t.end(),await e)},EX=async(t,e,r)=>{try{await dX(t),e.writable&&e.end()}catch(n){await GDe(r),ZDe(e,n)}},vX=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await IS(r,e),await IS(n,e)&&(ZDe(t,i),await NM(e,i))},ZDe=(t,e)=>{kM(t,t.writable,e)};import{Duplex as SUt}from"stream";import{callbackify as EUt}from"util";var XDe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||Js.has(r),{subprocessStdout:c,waitReadableDestroy:u}=pX(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=yX(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=hX(c,a),{read:g,onStdoutDataDone:y}=mX({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new SUt({read:g,...SX(l,t,d),destroy:EUt(vUt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return gX({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:l}),EX(l,v,c),v},vUt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([_X({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),vX({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var bX=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||Js.has(e),o=bS(t,r),a=IM({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return bUt(a,o,t)},bUt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var QDe=(t,{encoding:e})=>{let r=HDe();t.readable=WDe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=JDe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=XDe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=bX.bind(void 0,t,e),t[Symbol.asyncIterator]=bX.bind(void 0,t,e,{})};var eLe=(t,e)=>{for(let[r,n]of TUt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},wUt=(async()=>{})().constructor.prototype,TUt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(wUt,t)]);var tLe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=xUt(t,e,r),{subprocess:f,promise:p}=PUt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=PM.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),eLe(f,p),Zc.set(f,{options:l,fileDescriptors:d}),f},xUt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=F$(t,e,r),{file:a,commandArguments:c,options:u}=sM(t,e,r),l=OUt(u),d=fDe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},OUt=({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}},PUt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=AUt(...oM(t,e,r))}catch(h){return cDe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;RUt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];vDe(c,a,u),wDe(c,r,u);let d={},f=Jc();c.kill=MCe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=MDe(c,r),QDe(c,r),sDe(c,r);let p=IUt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},IUt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,g]=await BDe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let y=h.map((_,b)=>gl(_,e,b)),v=gl(m,e,"all"),S=CUt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:g,context:c,options:e,command:o,escapedCommand:a,startTime:r});return xS(S,n,e)},CUt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?c0({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Xc,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):hM({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var DM=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,NUt(n,t[n],i)]));return{...t,...r}},NUt=(t,e,r)=>kUt.has(t)&&Kr(e)&&Kr(r)?{...e,...r}:r,kUt=new Set(["env",...XJ]);var mf=(t,e,r,n)=>{let i=(o,a,c)=>mf(o,a,r,c),s=(...o)=>DUt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},DUt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Kr(s))return i(t,DM(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=LUt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?Qke(a,c,u):tLe(a,c,u,i)},LUt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=fIe(e)?pIe(e,r):[e,...r],[o,a,c]=O$(...s),u=DM(DM(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var rLe=({file:t,commandArguments:e})=>iLe(t,e),nLe=({file:t,commandArguments:e})=>({...iLe(t,e),isSync:!0}),iLe=(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]=$Ut(t);return{file:r,commandArguments:n}},$Ut=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(MUt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},MUt=/ +/g;var sLe=(t,e,r)=>{t.sync=e(UUt,r),t.s=t.sync},oLe=({options:t})=>aLe(t),UUt=({options:t})=>({...aLe(t),isSync:!0}),aLe=t=>({options:{...FUt(t),...t}}),FUt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},cLe={preferLocal:!0};var uLe=mf(()=>({})),pjr=mf(()=>({isSync:!0})),lLe=mf(rLe),hjr=mf(nLe),mjr=mf(ENe),gjr=mf(oLe,{},cLe,sLe),{sendMessage:_jr,getOneMessage:yjr,getEachMessage:Sjr,getCancelSignal:Ejr}=oDe();import{Transform as jUt}from"stream";var zUt=["NETLIFY_AI_GATEWAY_KEY","NETLIFY_API_TOKEN","NETLIFY_AUTH_TOKEN"];function qUt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...zUt])]}function BUt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function HUt(){let e=qUt().map(r=>process.env[r]).filter(r=>!(!r||BUt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function di(t){if(typeof t!="string")return t;let e=HUt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(VUt(n),"g");r=r.replace(i,"******")}),r}function VUt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var m0=class extends jUt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=di(i);n(null,s)}},LM=Symbol("maskedWrite");function dLe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[LM]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?di(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[LM]=!0,process.stdout.write=r}if(!process.stderr.write[LM]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?di(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[LM]=!0,process.stderr.write=r}}}var fLe=!1,pLe,wX=t=>{pLe??=t},hLe=t=>{fLe=!0,wX(t)},an=()=>fLe,qa=()=>pLe,mLe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var g0=null,gLe=t=>(g0&&g0.destroy(),g0=new qo({totalAllowedTime:t}),g0),_Le=()=>g0;var qo=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&&an())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((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await tD({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{te.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),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 yLe={name:"@netlify/agent-runner-cli",type:"module",version:"2.7.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md" "!src/lib/__fixtures__/**"',"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" "!src/lib/__fixtures__/**"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},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.21.0","@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.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var YUt=WUt(import.meta.url),JUt=_l.dirname(YUt),ZUt=KUt(import.meta.url),CS=de("shell"),TX=new Set,SLe={preferLocal:!0},Ct=(t,e,r)=>{let[n,i]=XUt(e,r),s={...SLe,...i},o=uLe(t,n,s);vLe(o,s),TLe(o);let a=r?.idleTimeout;return a&&a>0&&wLe(o,a),o},ELe=(t,e)=>{let r={...SLe,...e},n=lLe(t,r);return vLe(n,r),TLe(n),e?.idleTimeout&&e.idleTimeout>0&&wLe(n,e.idleTimeout),n},XUt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},vLe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||eu.env.NETLIFY_LOCAL_QUIET==="true")return;if(eu.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new m0).pipe(eu.stdout),t.stderr?.pipe(new m0).pipe(eu.stderr);return}t.stdout?.pipe(eu.stdout),t.stderr?.pipe(eu.stderr)},RX=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(eu.kill(-t.pid,e),CS.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return CS.error("Error killing process:",r),!1}},bLe=t=>RX(t,"SIGKILL"),wLe=(t,e)=>{let r=null,n=()=>{CS.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),RX(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(CS.log(`Force killing idle process ${t.pid}`),bLe(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)},TLe=t=>{TX.add(t);let e=_Le();if(e){let r=e.onTimesUp(()=>{CS.log(`Global timer expired, killing process ${t.pid}`),RX(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(CS.log(`Force killing process ${t.pid} after timeout`),bLe(t))},5e3)});t.on("exit",()=>{TX.delete(t),r()}),t.on("error",()=>{TX.delete(t),r()})}};function Bo(t,e){if(!eu.env.NETLIFY_LOCAL_MODE)try{let i=ZUt.resolve(yLe.name),s=_l.dirname(i);for(;s!==_l.dirname(s);){let o=_l.dirname(s);if(_l.basename(o)==="node_modules"){let a=_l.join(o,".bin",e);if($M.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(eu.env.NODE_PATH){let i=_l.join(eu.env.NODE_PATH,".bin",e);if($M.existsSync(i))return i}let r=_l.join(t,"node_modules",".bin",e);if($M.existsSync(r))return r;let n=_l.join(JUt,"..","node_modules",".bin",e);if($M.existsSync(n))return n}import Fj from"process";import{fileURLToPath as iYt}from"url";import{createRequire as sYt}from"module";import sO from"path";import{readFileSync as oYt}from"fs";var QUt="__netlify__getTracer",eFt="__netlify__shutdownTracers",Nt=(t,e)=>globalThis[QUt]?.(t,e),RLe=async()=>globalThis[eFt]?.();function _0(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 ZKt}from"timers/promises";Ue();import Njt from"process";Ue();var tFt=(t,e)=>{e.recordException(t),e.setStatus({code:Ln.ERROR})};var yl=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=ALe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>xLe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=ALe(r,n,i),c=this._tracer.startSpan(e,s,o);return xLe(c,s,a)}};function ALe(t,e,r){let n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??ir.active(),{opts:n,ctx:i,fn:s}}function xLe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:tFt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}Ue();var kS=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var xX=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=MLe(e),n._asyncAttributesPending=e.filter(([i,s])=>kS(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(kS(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=MLe(this._rawAttributes),this._schemaUrl=rFt(r?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[r,n]=this._rawAttributes[e];this._rawAttributes[e]=[r,kS(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&pe.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(kS(n)){pe.debug(`Unsettled resource attribute ${r} skipped`);continue}n!=null&&(e[r]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(e){if(e==null)return this;let r=nFt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function OX(t,e){return xX.FromAttributeList(Object.entries(t),e)}function MLe(t){return t.map(([e,r])=>kS(r)?[e,r.catch(n=>{pe.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function rFt(t){if(typeof t=="string"||t===void 0)return t;pe.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function nFt(t,e){let r=t?.schemaUrl,n=e?.schemaUrl,i=r===void 0||r==="",s=n===void 0||n==="";if(i)return n;if(s||r===n)return r;pe.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Ue();var y0=class{emit(e){}enabled(){return!1}},ULe=new y0;var S0=Symbol.for("io.opentelemetry.js.api.logs"),DS=globalThis;function FLe(t,e,r){return n=>n===t?e:r}var PX=1;var IX=class{getLogger(e,r,n){return new y0}},FM=new IX;var jM=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):ULe}};var E0=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new jM(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:FM}_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 zM=class t{constructor(){this._proxyLoggerProvider=new E0}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return DS[S0]?this.getLoggerProvider():(DS[S0]=FLe(PX,e,FM),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=DS[S0])===null||e===void 0?void 0:e.call(DS,PX))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete DS[S0],this._proxyLoggerProvider=new E0}};var jLe=zM.getInstance();function zLe(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 qLe(t){t.forEach(e=>e.disable())}function CX(t){let e=t.tracerProvider||zt.getTracerProvider(),r=t.meterProvider||$R.getMeterProvider(),n=t.loggerProvider||jLe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return zLe(i,e,r,n),()=>{qLe(i)}}Ue();var iFt=Dn("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function BLe(t){return t.getValue(iFt)===!0}var LS;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(LS||(LS={}));Ue();var NX="[_0-9a-z-*/]",sFt=`[a-z]${NX}{0,255}`,oFt=`[a-z0-9]${NX}{0,240}@[a-z]${NX}{0,13}`,aFt=new RegExp(`^(?:${sFt}|${oFt})$`),cFt=/^[ -~]{0,255}[!-~]$/,uFt=/,|=/;function kX(t){return aFt.test(t)}function DX(t){return cFt.test(t)&&!uFt.test(t)}var lFt=32,HLe=512,VLe=",",GLe="=",qM=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!kX(e)||!DX(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>HLe)return this;let o=new Map(n);return o.delete(e),o.set(e,r),this._fromState(o,s)}unset(e){let r=this._getState(),n=r.get(e);if(typeof n!="string")return this;let i=this._length-(e.length+n.length+1);r.size>1&&(i=i-1);let s=new Map(r);return s.delete(e),this._fromState(s,i)}get(e){return this._getState().get(e)}serialize(){let e="",r=0;for(let n of this._getState())r>0&&(e=VLe+e),e=`${n[0]}${GLe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(VLe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(GLe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!kX(a)||!DX(c))continue;let u=n+s.length+(r.size>0?1:0);if(!(u>HLe)&&(r.set(a,c),n=u,r.size>=lFt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var BM="traceparent",HM="tracestate",dFt="00",fFt="(?!ff)[\\da-f]{2}",pFt="(?![0]{32})[\\da-f]{32}",hFt="(?![0]{16})[\\da-f]{16}",mFt="[\\da-f]{2}",gFt=new RegExp(`^\\s?(${fFt})-(${pFt})-(${hFt})-(${mFt})(-.*)?\\s?$`);function WLe(t){let e=gFt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var gf=class{inject(e,r,n){let i=zt.getSpanContext(e);if(!i||BLe(e)||!gs(i))return;let s=`${dFt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||Mr.NONE).toString(16)}`;n.set(r,BM,s),i.traceState&&n.set(r,HM,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,BM);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=WLe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,HM);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new qM(typeof c=="string"?c:void 0)}return zt.setSpanContext(e,o)}fields(){return[BM,HM]}};var VM=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var v0=class{_isCalled=!1;_deferred=new VM;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var $1=mn(SQ(),1);Ue();var P1e=t=>{throw TypeError(t)},wQ=(t,e,r)=>e.has(t)||P1e("Cannot "+r),L1=(t,e,r)=>(wQ(t,e,"read from private field"),r?r.call(t):e.get(t)),EQ=(t,e,r)=>e.has(t)?P1e("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),A1e=(t,e,r,n)=>(wQ(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Cjt=(t,e,r)=>(wQ(t,e,"access private method"),r),x1e="__netlify__getTracer",kjt="__netlify__shutdownTracers",Djt="__nfOTLPTrace",$0,M0,bQ,I1e,Ljt=class{constructor(){EQ(this,bQ),EQ(this,$0),EQ(this,M0),A1e(this,$0,new v0(Cjt(this,bQ,I1e),this)),A1e(this,M0,pe.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(L1(this,M0).debug(`export ${t.length.toString()} spans`),L1(this,$0).isCalled){e({code:LS.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(Djt,JSON.stringify($jt(t))),e({code:LS.SUCCESS})}shutdown(){return L1(this,$0).call()}};$0=new WeakMap;M0=new WeakMap;bQ=new WeakSet;I1e=function(){return L1(this,M0).debug("Shutting down"),Promise.resolve()};function $jt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:D1(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||ka.SERVER,startTimeUnixNano:vQ(e.startTime),endTimeUnixNano:vQ(e.endTime),attributes:D1(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:vQ(n.time),attributes:D1(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:D1(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function D1(t){return Object.keys(t).map(e=>C1e(e,t[e]))}function C1e(t,e){return{key:t,value:N1e(e)}}function N1e(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(N1e)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>C1e(r,n))}}:{}}function vQ(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var O1e={name:"@netlify/otel",version:"6.0.6",type:"module",engines:{node:"^18.14.0 || >=20.6.1"},main:"./dist/main.cjs",module:"./dist/main.js",types:"./dist/main.d.ts",exports:{".":{require:{types:"./dist/main.d.cts",default:"./dist/main.cjs"},import:{types:"./dist/main.d.ts",default:"./dist/main.js"},default:{types:"./dist/main.d.ts",default:"./dist/main.js"}},"./package.json":"./package.json","./bootstrap":{require:{types:"./dist/bootstrap/main.d.cts",default:"./dist/bootstrap/main.cjs"},import:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"},default:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"}},"./exporter-netlify":{require:{types:"./dist/exporters/netlify.d.cts",default:"./dist/exporters/netlify.cjs"},import:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"},default:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"}},"./instrumentation-fetch":{require:{types:"./dist/instrumentations/fetch.d.cts",default:"./dist/instrumentations/fetch.cjs"},import:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"},default:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"}},"./instrumentation-http":{require:{types:"./dist/instrumentations/http.d.cts",default:"./dist/instrumentations/http.cjs"},import:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"},default:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"}},"./opentelemetry":{require:{types:"./dist/opentelemetry.d.cts",default:"./dist/opentelemetry.cjs"},import:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"},default:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"}}},files:["dist/**/*"],scripts:{build:"tsup-node",dev:"tsup-node --watch",prepack:"npm run build",test:"run-s build test:ci","test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"vitest","test:dev:vitest:watch":"vitest watch","test:ci:vitest":"vitest run",publint:"npx -y publint --strict"},keywords:["netlify","cdn"],license:"MIT",repository:{type:"git",url:"https://github.com/netlify/primitives.git",directory:"packages/otel"},bugs:{url:"https://github.com/netlify/primitives/issues"},author:"Netlify Inc.",devDependencies:{"@netlify/dev-utils":"^5.0.0",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.8.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/resources":"2.9.0","@opentelemetry/sdk-trace-node":"2.9.0"}},k1e=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,x1e))return;let e=Njt.version.slice(1),r=OX({"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??[Mjt()],i=new $1.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new gf});let s=t.instrumentations??[];CX({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,x1e,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new yl(zt.getTracer(a,c)):new yl(zt.getTracer(O1e.name,O1e.version))}}),Object.defineProperty(globalThis,kjt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},Mjt=()=>new $1.SimpleSpanProcessor(new Ljt);Ue();var U0=mn(SQ(),1);Ue();import*as M1 from"diagnostics_channel";var D1e=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?Ln.ERROR:Ln.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],u=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof u!="string"&&!Buffer.isBuffer(u))continue;let l=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==l:f.test(l)))continue;let d=`http.${t}.header.${l}`;i===!0||i.some(f=>typeof f=="string"?f==l:f.test(l))?o[d]="REDACTED":o[d]=u.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 yl?t:new yl(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){M1.subscribe(t,e);let r=()=>M1.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:ka.CLIENT},ir.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:Ln.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 iVe=mn(rVe(),1);var Mj=de("tracing"),nVe=8e3,XKt=5e3,rO=async(t=XKt)=>{try{await Promise.race([RLe(),ZKt(t)])}catch(e){Mj.warn("Failed to flush tracers on shutdown",e)}},sVe=async(t,e,r)=>{if(!Nt()){let n=[new U0.SimpleSpanProcessor(new Tne),new U0.SimpleSpanProcessor(new iVe.OTLPTraceExporter({url:r.exporterUrl}))];await k1e({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new D1e({skipHeaders:!0})]})}return r.traceparent?(Bi.setGlobalPropagator(new gf),Bi.extract(ir.active(),{traceparent:r.traceparent,isRemote:!0})):ir.active()};function ur(t,e,r){return Mj.log(`\u23F3 TRACE: ${e} starting...`),_0(t,e,r)}var Tne=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(", ")}]`:"";Mj.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&Mj.log(` \u274C Error: ${e.status.message}`)}};function Rne(){return We().captureLlmContentEnabled}function oVe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")||t.includes("antigravity")?"google":t.includes("muse")?"meta":t.includes("opencode")?"opencode":t}function Uj(t,e,r){let n={role:t,parts:[{type:"text",content:di(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var QKt=new Set([X.Task,X.RunCommand,X.Explore,X.FileRead,X.FileWrite,X.Notebook,X.Web,X.Todo,X.Skill,X.Tool,X.Memorize,X.Deployment,X.SiteGeneration]);function aVe(t,e,r,n){if(!t.length)return;let i=Nt();if(!i)return;let s=Rne(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let u=Math.min(n,r+c*o),l=Math.min(n,u+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&QKt.has(a.category)||a.category===X.AgentMessage&&a.toolCallId!==void 0,f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,g=a.message?a.message.length>nVe?`${a.message.slice(0,nVe)}\u2026`:a.message:void 0,y=i.startSpan(m,{startTime:u,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":di(p),"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&g?d?{"gen_ai.tool.call.result":di(g)}:{"gen_ai.output.messages":Uj("assistant",g)}:{}}});d&&(a.toolCallId!==void 0&&y.setAttribute("gen_ai.tool.call.id",a.toolCallId),a.toolStatus!==void 0&&y.setAttribute("spark.step.tool_status",a.toolStatus),a.exitCode!==void 0&&y.setAttribute("spark.step.exit_code",a.exitCode),a.toolStatus==="error"&&(y.setAttribute("error.type","tool_error"),y.setStatus({code:Ln.ERROR}))),y.end(l)})}import{readdir as eYt,rm as tYt}from"fs/promises";import{join as rYt}from"path";async function cVe(t,e=[]){let n=(await eYt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>tYt(rYt(t,i),{recursive:!0,force:!0})))}var nYt=300,nO=t=>We().budgetCreditThresholds[t.mode]?.[t.runner]??nYt,iO=({mode:t,sessionCreditLimit:e},r)=>t==="create"&&e!=null&&e<=r;var Ane=t=>{let e=nO(t);if(!iO(t,e))return"default";let r=We();return r.createAskFirstEnabled?"ask_first":r.creditWrapUpEnabled?"budget_constrained":"default"},uVe=t=>{let e=Ane(t),r=nO(t);return{budget_eligible:iO(t,r),budget_constrained:e==="budget_constrained",ask_first:e==="ask_first"}};var aYt=sO.dirname(iYt(import.meta.url)),lVe=sYt(import.meta.url),cYt=sO.resolve(aYt,"scripts/scaffold.js"),uYt="scripts/scaffold.js",lYt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,xne=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},dYt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),fYt=t=>{let e=xne(t);return e==="node"||e.endsWith("/node")},io=t=>{if(typeof t!="string")return!1;let e=t.match(lYt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&dYt(xne(e[r]));)r+=1;if(r>=e.length||!fYt(e[r]))return!1;let n=e[r+1];return n?xne(n).includes(uYt):!1},Bm=de("create_stage"),One="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.",pYt=`${One}
601
601
 
602
602
  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.`,hYt=`${One}
603
603
 
@@ -798,7 +798,7 @@ ${be.trim()}
798
798
  \`\`\``:be.trim()),Ve==="error"&&Me&&(rn=rn?`${rn}
799
799
 
800
800
  *Command failed*`:`*Command failed: ${Me.trim()}*`),ye({title:Ze,message:rn,category:xn,...Qe},!0);break}case"step_finish":{se();let ue=ae.part?.tokens;ue&&(g={input_tokens:(g?.input_tokens??0)+(ue.input??0),output_tokens:(g?.output_tokens??0)+(ue.output??0),reasoning_output_tokens:(g?.reasoning_output_tokens??0)+(ue.reasoning??0),cache_creation_input_tokens:(g?.cache_creation_input_tokens??0)+(ue.cache?.write??0),cache_read_input_tokens:(g?.cache_read_input_tokens??0)+(ue.cache?.read??0)}),ae.part?.cost!=null&&(y=(y??0)+ae.part.cost);break}case"error":{se();let Oe=ae.error?.data?.message??ae.error?.message??ae.part?.state?.error??(ae.error?JSON.stringify(ae.error).slice(0,500):"unknown error");m=m?`${m}
801
- ${Oe}`:Oe;break}default:ae.type&&!B.has(ae.type)&&(B.add(ae.type),Cp.log(`Unhandled opencode event type: ${ae.type}`))}});let F=!1;await ce.catch(ee=>{F=No(ee,o),se();let ae=jc({catchError:ee,runCmd:ce,error:m,result:h??ie,runnerName:zq});m=ae.error,h=ae.result}),fe?.stop(),me?.stop(),Ee?.stop(),await A?.remove(),await R?.remove(),await O?.remove(),await I.close();let U=Date.now()-D;se(),oe.close(),Q.flush();let z=F;if(z&&(m=void 0),!m&&!h&&ie&&(h=ie),g&&ko(g,b?{model:b}:{}),_)return{steps:N,duration:U,agentSessionId:p,resolvedModel:b,effort:f,resolvedProviderEffort:w,usage:g,costUsd:y,toolErrorCount:v,toolCallCount:S,pendingInteraction:_};let{providerFailure:K,classification:H}=ws({error:m});return{steps:N,duration:U,result:await Ts({initialResult:h,agentName:zq,hasError:!!m}),error:Rs({error:m,agentName:zq}),isRetryableError:H?.retryable??As(m),isProviderUnavailableError:H?.providerFault??xs(m),...K?{providerFailure:K}:{},agentSessionId:p,resolvedModel:b,effort:f,resolvedProviderEffort:w,usage:g,costUsd:y,toolErrorCount:v,toolCallCount:S,...z?{aborted:!0}:{}}}var i7t=()=>Np.join(h3e.homedir(),".config","opencode"),_3e=()=>{let t=qq.env.XDG_DATA_HOME,e=t&&Np.isAbsolute(t)?t:Np.join(h3e.homedir(),".local","share");return Np.join(e,"opencode")},y3e=async()=>{let t=[i7t(),_3e()];await Promise.all(t.map(e=>LP.rm(e,{recursive:!0,force:!0})))},S3e={baseDir:_3e(),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};import Tn from"fs/promises";import MP from"os";import ao from"path";import R3e from"process";import m7t from"readline";import s7t from"crypto";import o7t from"os";import $P from"path";import kp from"fs";var E3e=de("antigravity_install"),Ise="1.3.3";var a7t={"agy_cli_linux_x64.tar.gz":"8ee3ca32574c431285efbf4d4732f7f8d53e959370bc4a61646e4fa496f7f2b6","agy_cli_linux_x64_musl.tar.gz":"db8d000171e52d125a7bf2f4dbdbb60dd5ed095ab6edaab12cddf4e168e03dda","agy_cli_linux_arm64.tar.gz":"a9d23fe1d7e5c8471881ab37723571a8d3f24e6ecace8fe082f8c0c8d90f41ca","agy_cli_linux_arm64_musl.tar.gz":"36e59c992adfca49f834b993896338636e41e14b50202bb99c732a1e8594e956","agy_cli_mac_x64.tar.gz":"78547d90bfd1559a87ba63e941f9332a0d1889d2de415da337dedec8dc9aa239","agy_cli_mac_arm64.tar.gz":"c39926f3312e87eaa56d750658cf442669d0a716f49319d06369be7fa80520eb"},Bq={"gemini-3.8-flash":["low","medium","high"],"gemini-3.7-flash":["low","medium","high"],"gemini-3.6-flash":["low","medium","high"],"gemini-3.1-pro":["low","high"]},Cse={"gemini-3.1-pro":"gemini-3.1-pro-preview"},c7t="https://github.com/google-antigravity/antigravity-cli/releases/download",u7t=6e4,l7t=async(t,e=u7t)=>{let r=new AbortController,n,i,s=()=>{clearTimeout(i),i=setTimeout(()=>{r.abort(),n?.cancel().catch(()=>{})},e)};s();try{let o=await fetch(t,{signal:r.signal});if(!o.ok||!o.body)throw new Error(`Failed to download Antigravity CLI from ${t}: ${o.status} ${o.statusText}`);n=o.body.getReader();let a=[];for(let c=await n.read();!c.done;c=await n.read())a.push(c.value),s();if(r.signal.aborted)throw r.signal.reason;return Buffer.concat(a)}catch(o){throw r.signal.aborted?new Error(`Antigravity CLI download stalled: no data for ${e/1e3}s from ${t}`):o}finally{clearTimeout(i)}},d7t=()=>$P.join(o7t.homedir(),".netlify-agent-runner","antigravity",Ise),f7t=()=>!process.report?.getReport()?.header?.glibcVersionRuntime,p7t=(t=process.platform,e=process.arch,r=t==="linux"&&f7t())=>{let n={x64:"x64",arm64:"arm64"}[e];if(!n)throw new Error(`Antigravity CLI has no build for CPU architecture ${e}`);if(t==="darwin")return`agy_cli_mac_${n}.tar.gz`;if(t==="linux")return`agy_cli_linux_${n}${r?"_musl":""}.tar.gz`;throw new Error(`Antigravity CLI has no build for platform ${t}`)},v3e=async()=>{let t=d7t(),e=$P.join(t,"agy");if(kp.existsSync(e))return e;let r=p7t(),n=`${c7t}/${Ise}/${r}`;kp.mkdirSync(t,{recursive:!0});let i=kp.mkdtempSync($P.join(t,"staging-"));E3e.log(`Installing Antigravity CLI ${Ise} (${r}) on demand`);let s=Date.now();try{let a=await l7t(n),c=s7t.createHash("sha256").update(a).digest("hex");if(c!==a7t[r])throw new Error(`Antigravity CLI ${r} failed its checksum check (got sha256 ${c})`);let u=$P.join(i,r);kp.writeFileSync(u,a),await Ct("tar",["-xzf",u,"-C",i,"antigravity"]);let l=$P.join(i,"antigravity");if(!kp.existsSync(l))throw new Error(`Antigravity CLI binary not found after extracting ${r}`);kp.chmodSync(l,493),kp.renameSync(l,e)}finally{kp.rmSync(i,{recursive:!0,force:!0})}let o=Date.now()-s;return te.timing("antigravity.install_duration",o),E3e.log(`Installed Antigravity CLI in ${o}ms`),e};var b3e={view_file:{name:"Read file",category:X.FileRead},write_to_file:{name:"Edit file",category:X.FileWrite},replace_file_content:{name:"Edit file",category:X.FileWrite},run_command:{name:"Run command",category:X.RunCommand},read_url_content:{name:"Fetch web",category:X.Web},search_web:{name:"Search web",category:X.Web},manage_task:{name:"Manage command",category:X.RunCommand},invoke_subagent:{name:"Run subagent",category:X.Task},define_subagent:{name:"Define subagent",category:X.Task},manage_subagents:{name:"Manage subagents",category:X.Task},send_message:{name:"Message agent",category:X.Task},schedule:{name:"Schedule",category:X.Task},list_resources:{name:"List resources",category:X.Explore},read_resource:{name:"Read resource",category:X.Explore}};var cd=de("runner_antigravity"),Nu="Antigravity CLI",w3e="gemini",g7t="gemini-3.8-flash",_7t="medium",y7t="24h",S7t=(t,e)=>Bq[t]?.includes(e)?e:(cd.log(`${t} has no '${e}' effort; using low`),"low"),Wq=()=>ao.join(MP.homedir(),".gemini","antigravity-cli"),Gq=()=>ao.join(MP.homedir(),".gemini","config","rules","netlify-agent-runner.md"),E7t=async t=>{let e=Gq();await Tn.mkdir(ao.dirname(e),{recursive:!0});let r=`---
801
+ ${Oe}`:Oe;break}default:ae.type&&!B.has(ae.type)&&(B.add(ae.type),Cp.log(`Unhandled opencode event type: ${ae.type}`))}});let F=!1;await ce.catch(ee=>{F=No(ee,o),se();let ae=jc({catchError:ee,runCmd:ce,error:m,result:h??ie,runnerName:zq});m=ae.error,h=ae.result}),fe?.stop(),me?.stop(),Ee?.stop(),await A?.remove(),await R?.remove(),await O?.remove(),await I.close();let U=Date.now()-D;se(),oe.close(),Q.flush();let z=F;if(z&&(m=void 0),!m&&!h&&ie&&(h=ie),g&&ko(g,b?{model:b}:{}),_)return{steps:N,duration:U,agentSessionId:p,resolvedModel:b,effort:f,resolvedProviderEffort:w,usage:g,costUsd:y,toolErrorCount:v,toolCallCount:S,pendingInteraction:_};let{providerFailure:K,classification:H}=ws({error:m});return{steps:N,duration:U,result:await Ts({initialResult:h,agentName:zq,hasError:!!m}),error:Rs({error:m,agentName:zq}),isRetryableError:H?.retryable??As(m),isProviderUnavailableError:H?.providerFault??xs(m),...K?{providerFailure:K}:{},agentSessionId:p,resolvedModel:b,effort:f,resolvedProviderEffort:w,usage:g,costUsd:y,toolErrorCount:v,toolCallCount:S,...z?{aborted:!0}:{}}}var i7t=()=>Np.join(h3e.homedir(),".config","opencode"),_3e=()=>{let t=qq.env.XDG_DATA_HOME,e=t&&Np.isAbsolute(t)?t:Np.join(h3e.homedir(),".local","share");return Np.join(e,"opencode")},y3e=async()=>{let t=[i7t(),_3e()];await Promise.all(t.map(e=>LP.rm(e,{recursive:!0,force:!0})))},S3e={baseDir:_3e(),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};import Tn from"fs/promises";import MP from"os";import ao from"path";import R3e from"process";import m7t from"readline";import s7t from"crypto";import o7t from"os";import $P from"path";import kp from"fs";var E3e=de("antigravity_install"),Ise="1.4.4";var a7t={"agy_cli_linux_x64.tar.gz":"9ae4f7f0667a2868e15bb9ad93819ff7527c7187f12d12e3b5191137c726287b","agy_cli_linux_x64_musl.tar.gz":"f85f39bf74b6ff5f7f45da768ba52b39318a7e528811df65f394995959cbcc2c","agy_cli_linux_arm64.tar.gz":"57a96abbc94745a5faf4f24e878766a1882b9aa4c4b83ba567717d8206745f5a","agy_cli_linux_arm64_musl.tar.gz":"4900f50954ad6fb3747c2d80fe29b5986ae861d0f8ea04c2a5bd9cb1781507dc","agy_cli_mac_x64.tar.gz":"12c96c065ac50d36e087c1fda1bba8d6fb4fa7af232d1ef2a44499c2481a52bf","agy_cli_mac_arm64.tar.gz":"85482aa8969300183f71c9653d9f581248fba7f506342a8eb087f3d2503203bd"},Bq={"gemini-4-argon":["low","medium","high"],"gemini-3.8-flash":["low","medium","high"],"gemini-3.7-flash":["low","medium","high"],"gemini-3.6-flash":["low","medium","high"],"gemini-3.1-pro":["low","high"]},Cse={"gemini-3.1-pro":"gemini-3.1-pro-preview"},c7t="https://github.com/google-antigravity/antigravity-cli/releases/download",u7t=6e4,l7t=async(t,e=u7t)=>{let r=new AbortController,n,i,s=()=>{clearTimeout(i),i=setTimeout(()=>{r.abort(),n?.cancel().catch(()=>{})},e)};s();try{let o=await fetch(t,{signal:r.signal});if(!o.ok||!o.body)throw new Error(`Failed to download Antigravity CLI from ${t}: ${o.status} ${o.statusText}`);n=o.body.getReader();let a=[];for(let c=await n.read();!c.done;c=await n.read())a.push(c.value),s();if(r.signal.aborted)throw r.signal.reason;return Buffer.concat(a)}catch(o){throw r.signal.aborted?new Error(`Antigravity CLI download stalled: no data for ${e/1e3}s from ${t}`):o}finally{clearTimeout(i)}},d7t=()=>$P.join(o7t.homedir(),".netlify-agent-runner","antigravity",Ise),f7t=()=>!process.report?.getReport()?.header?.glibcVersionRuntime,p7t=(t=process.platform,e=process.arch,r=t==="linux"&&f7t())=>{let n={x64:"x64",arm64:"arm64"}[e];if(!n)throw new Error(`Antigravity CLI has no build for CPU architecture ${e}`);if(t==="darwin")return`agy_cli_mac_${n}.tar.gz`;if(t==="linux")return`agy_cli_linux_${n}${r?"_musl":""}.tar.gz`;throw new Error(`Antigravity CLI has no build for platform ${t}`)},v3e=async()=>{let t=d7t(),e=$P.join(t,"agy");if(kp.existsSync(e))return e;let r=p7t(),n=`${c7t}/${Ise}/${r}`;kp.mkdirSync(t,{recursive:!0});let i=kp.mkdtempSync($P.join(t,"staging-"));E3e.log(`Installing Antigravity CLI ${Ise} (${r}) on demand`);let s=Date.now();try{let a=await l7t(n),c=s7t.createHash("sha256").update(a).digest("hex");if(c!==a7t[r])throw new Error(`Antigravity CLI ${r} failed its checksum check (got sha256 ${c})`);let u=$P.join(i,r);kp.writeFileSync(u,a),await Ct("tar",["-xzf",u,"-C",i,"antigravity"]);let l=$P.join(i,"antigravity");if(!kp.existsSync(l))throw new Error(`Antigravity CLI binary not found after extracting ${r}`);kp.chmodSync(l,493),kp.renameSync(l,e)}finally{kp.rmSync(i,{recursive:!0,force:!0})}let o=Date.now()-s;return te.timing("antigravity.install_duration",o),E3e.log(`Installed Antigravity CLI in ${o}ms`),e};var b3e={view_file:{name:"Read file",category:X.FileRead},write_to_file:{name:"Edit file",category:X.FileWrite},replace_file_content:{name:"Edit file",category:X.FileWrite},run_command:{name:"Run command",category:X.RunCommand},read_url_content:{name:"Fetch web",category:X.Web},search_web:{name:"Search web",category:X.Web},manage_task:{name:"Manage command",category:X.RunCommand},invoke_subagent:{name:"Run subagent",category:X.Task},define_subagent:{name:"Define subagent",category:X.Task},manage_subagents:{name:"Manage subagents",category:X.Task},send_message:{name:"Message agent",category:X.Task},schedule:{name:"Schedule",category:X.Task},list_resources:{name:"List resources",category:X.Explore},read_resource:{name:"Read resource",category:X.Explore}};var cd=de("runner_antigravity"),Nu="Antigravity CLI",w3e="gemini",g7t="gemini-3.8-flash",_7t="medium",y7t="24h",S7t=(t,e)=>Bq[t]?.includes(e)?e:(cd.log(`${t} has no '${e}' effort; using low`),"low"),Wq=()=>ao.join(MP.homedir(),".gemini","antigravity-cli"),Gq=()=>ao.join(MP.homedir(),".gemini","config","rules","netlify-agent-runner.md"),E7t=async t=>{let e=Gq();await Tn.mkdir(ao.dirname(e),{recursive:!0});let r=`---
802
802
  trigger: always_on
803
803
  description: Netlify agent runner platform instructions
804
804
  ---
package/dist/index.js CHANGED
@@ -384,7 +384,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
384
384
  `,LF:`
385
385
  `,concatBytes:_Y},Mct=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},$ct={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:Mct};import{Buffer as Lct}from"buffer";var swe=(t,e)=>t?void 0:Uct.bind(void 0,e),Uct=function*(t,e){if(typeof e!="string"&&!Fr(e)&&!Lct.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},owe=(t,e)=>t?Fct.bind(void 0,e):zct.bind(void 0,e),Fct=function*(t,e){awe(t,e),yield e},zct=function*(t,e){if(awe(t,e),typeof e!="string"&&!Fr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},awe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
386
386
  Instead, \`yield\` should either be called with a value, or not be called at all. For example:
387
- if (condition) { yield value; }`)};import{Buffer as jct}from"buffer";import{StringDecoder as qct}from"string_decoder";var LD=(t,e,r)=>{if(r)return;if(t)return{transform:Bct.bind(void 0,new TextEncoder)};let n=new qct(e);return{transform:Vct.bind(void 0,n),final:Gct.bind(void 0,n)}},Bct=function*(t,e){jct.isBuffer(e)?yield iu(e):typeof e=="string"?yield t.encode(e):yield e},Vct=function*(t,e){yield Fr(e)?t.write(e):e},Gct=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as cwe}from"util";var SY=cwe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),UD=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Wct}=e[r];for await(let i of n(t))yield*UD(i,e,r+1)},uwe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Hct(r,Number(e),t)},Hct=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*UD(n,r,e+1)},lwe=cwe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Wct=function*(t){yield t};var vY=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},dwe=(t,e)=>[...e.flatMap(r=>[...bp(r,t,0)]),...LT(t)],bp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Yct}=e[r];for(let i of n(t))yield*bp(i,e,r+1)},LT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Kct(r,Number(e),t)},Kct=function*(t,e,r){if(t!==void 0)for(let n of t())yield*bp(n,r,e+1)},Yct=function*(t){yield t};var EY=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=pwe(t,o,s),u=Ep(e),l=Ep(r),d=u?SY.bind(void 0,UD,a):vY.bind(void 0,bp),f=u||l?SY.bind(void 0,uwe,a):vY.bind(void 0,LT),p=u||l?lwe.bind(void 0,a):void 0;return{stream:new Zct({writableObjectMode:n,writableHighWaterMark:fwe(n),readableObjectMode:i,readableHighWaterMark:fwe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},FD=(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=pwe(o,r,a);t=dwe(c,t)}return t},pwe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:swe(n,a)},LD(r,o,n),$D(r,s,n,c),{transform:t,final:e},{transform:owe(i,a)},iwe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var hwe=(t,e)=>{for(let r of Jct(t))Qct(t,r,e)},Jct=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),Qct=(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 ${Bl[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>Xct(a,n));r.input=xT(o)},Xct=(t,e)=>{let r=FD(t,e,"utf8",!0);return eut(r),xT(r)},eut=t=>{let e=t.find(r=>typeof r!="string"&&!Fr(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 iut,appendFileSync as sut}from"fs";var zD=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&T_(r,n)&&!os.has(e)&&tut(n)&&(t.some(({type:i,value:s})=>i==="native"&&rut.has(s))||t.every(({type:i})=>Vs.has(i))),tut=t=>t===1||t===2,rut=new Set(["pipe","overlapped"]),mwe=async(t,e,r,n)=>{for await(let i of t)nut(e)||_we(i,r,n)},gwe=(t,e,r)=>{for(let n of t)_we(n,e,r)},nut=t=>t._readableState.pipes.length>0,_we=(t,e,r)=>{let n=eD(t);Ga({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var ywe=({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,u)=>out({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},out=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=Sbe(t,s,d),p=iu(f),{stdioItems:h,objectMode:m}=e[r],_=aut([p],h,c,n),{serializedResult:y,finalResult:w=y}=cut({chunks:_,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});uut({serializedResult:y,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?w:void 0;try{return n.error===void 0&&lut(y,h,i),x}catch(S){return n.error=S,x}},aut=(t,e,r,n)=>{try{return FD(t,e,r,!1)}catch(i){return n.error=i,t}},cut=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:xT(t)};let o=NSe(t,r);return n[s]?{serializedResult:o,finalResult:yY(o,!i[s],e)}:{serializedResult:o}},uut=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!zD({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=yY(t,!1,o);try{gwe(a,e,n)}catch(c){r.error??=c}},lut=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>DD.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?sut(n,t):(r.add(s),iut(n,t))}};var Swe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,au(e,r,"all")]:Array.isArray(e)?[au(t,r,"all"),...e]:Fr(t)&&Fr(e)?xK([t,e]):`${t}${e}`};import{once as bY}from"events";var vwe=async(t,e)=>{let[r,n]=await dut(t);return e.isForcefullyTerminated??=!1,[r,n]},dut=async t=>{let[e,r]=await Promise.allSettled([bY(t,"spawn"),bY(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Ewe(t):r.value},Ewe=async t=>{try{return await bY(t,"exit")}catch{return Ewe(t)}},bwe=async t=>{let[e,r]=await t;if(!fut(e,r)&&wY(e,r))throw new Zo;return[e,r]},fut=(t,e)=>t===void 0&&e===void 0,wY=(t,e)=>t!==0||e!==null;var wwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=put(t,e,r),o=s?.code==="ETIMEDOUT",a=ybe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},put=(t,e,r)=>t!==void 0?t:wY(e,r)?new Zo:void 0;var Twe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=mut(t,e,r),d=yut({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return D_(d,c,u)},mut=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=rD(t,e,r),a=gut(r),{file:c,commandArguments:u,options:l}=bD(t,e,a);_ut(l);let d=ewe(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},gut=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,_ut=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&jD("ipcInput"),t&&jD("ipc: true"),r&&jD("detached: true"),n&&jD("cancelSignal")},jD=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},yut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=Sut({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=wwe(c,r),{output:h,error:m=u}=ywe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((w,x)=>au(w,r,x)),y=au(Swe(h,r),r,"all");return Eut({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},Sut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{hwe(s,r);let a=vut(r);return hut(...wD(t,e,a))}catch(a){return N_({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},vut=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:PD(e)}),Eut=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?CD({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):$T({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as cdt}from"events";import{spawn as udt}from"child_process";import Iwe from"process";import{once as TY,on as but}from"events";var Awe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(x_({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:gD(t)}),wut({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),wut=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{fD(e,i);let s=ql(t,e,r),o=new AbortController;try{return await Promise.race([Tut(s,n,o),Aut(s,r,o),Rut(s,r,o)])}catch(a){throw O_(t),a}finally{o.abort(),pD(e,i)}},Tut=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await TY(t,"message",{signal:r});return n}for await(let[n]of but(t,"message",{signal:r}))if(e(n))return n},Aut=async(t,e,{signal:r})=>{await TY(t,"disconnect",{signal:r}),dEe(e)},Rut=async(t,e,{signal:r})=>{let[n]=await TY(t,"strict:error",{signal:r});throw uD(n,e)};import{once as xwe,on as xut}from"events";var Owe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>AY({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),AY=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{x_({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:gD(t)}),fD(e,s);let o=ql(t,e,r),a=new AbortController,c={};return Out(t,o,a),Iut({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Put({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},Out=async(t,e,r)=>{try{await xwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},Iut=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await xwe(t,"strict:error",{signal:r.signal});n.error=uD(i,e),r.abort()}catch{}},Put=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of xut(r,"message",{signal:s.signal}))Rwe(o),yield c}catch{Rwe(o)}finally{s.abort(),pD(e,a),n||O_(t),i&&await t}},Rwe=({error:t})=>{if(t)throw t};var Pwe=(t,{ipc:e})=>{Object.assign(t,kwe(t,!1,e))},Cwe=()=>{let t=Iwe,e=!0,r=Iwe.channel!==void 0;return{...kwe(t,e,r),getCancelSignal:UEe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},kwe=(t,e,r)=>({sendMessage:vD.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Awe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Owe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as Cut}from"child_process";import{PassThrough as kut,Readable as Nut,Writable as Dut,Duplex as Mut}from"stream";var Nwe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{mY(n);let a=new Cut;$ut(a,n),Object.assign(a,{readable:Lut,writable:Uut,duplex:Fut});let c=N_({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=zut(c,o,i);return{subprocess:a,promise:u}},$ut=(t,e)=>{let r=UT(),n=UT(),i=UT(),s=Array.from({length:e.length-3},UT),o=UT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},UT=()=>{let t=new kut;return t.end(),t},Lut=()=>new Nut({read(){}}),Uut=()=>new Dut({write(){}}),Fut=()=>new Mut({read(){},write(){}}),zut=async(t,e,r)=>D_(t,e,r);import{createReadStream as Dwe,createWriteStream as Mwe}from"fs";import{Buffer as jut}from"buffer";import{Readable as FT,Writable as qut,Duplex as But}from"stream";var Lwe=(t,e)=>MD(Vut,t,e,!1),zT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Bl[t]}.`)},$we={fileNumber:zT,generator:EY,asyncGenerator:EY,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:But.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Vut={input:{...$we,fileUrl:({value:t})=>({stream:Dwe(t)}),filePath:({value:{file:t}})=>({stream:Dwe(t)}),webStream:({value:t})=>({stream:FT.fromWeb(t)}),iterable:({value:t})=>({stream:FT.from(t)}),asyncIterable:({value:t})=>({stream:FT.from(t)}),string:({value:t})=>({stream:FT.from(t)}),uint8Array:({value:t})=>({stream:FT.from(jut.from(t))})},output:{...$we,fileUrl:({value:t})=>({stream:Mwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Mwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:qut.fromWeb(t)}),iterable:zT,asyncIterable:zT,string:zT,uint8Array:zT}};import{on as Gut,once as Uwe}from"events";import{PassThrough as Hut,getDefaultHighWaterMark as Wut}from"stream";import{finished as jwe}from"stream/promises";function wp(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)xY(i);let e=t.some(({readableObjectMode:i})=>i),r=Kut(t,e),n=new RY({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Kut=(t,e)=>{if(t.length===0)return Wut(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},RY=class extends Hut{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(xY(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Yut(this,this.#e,this.#s);let r=Qut({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(xY(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)}},Yut=async(t,e,r)=>{qD(t,Fwe);let n=new AbortController;try{await Promise.race([Zut(t,n),Jut(t,e,r,n)])}finally{n.abort(),qD(t,-Fwe)}},Zut=async(t,{signal:e})=>{try{await jwe(t,{signal:e,cleanup:!0})}catch(r){throw qwe(t,r),r}},Jut=async(t,e,r,{signal:n})=>{for await(let[i]of Gut(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},xY=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},Qut=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{qD(t,zwe);let a=new AbortController;try{await Promise.race([Xut(s,e,a),elt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),tlt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),qD(t,-zwe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?OY(t):rlt(t))},Xut=async(t,e,{signal:r})=>{try{await t,r.aborted||OY(e)}catch(n){r.aborted||qwe(e,n)}},elt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await jwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Bwe(o)?i.add(e):Vwe(t,o)}},tlt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Uwe(t,i,{signal:s}),!t.readable)return Uwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},rlt=t=>{t.writable&&t.end()},qwe=(t,e)=>{Bwe(e)?OY(t):Vwe(t,e)},Bwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",OY=t=>{(t.readable||t.writable)&&t.destroy()},Vwe=(t,e)=>{t.destroyed||(t.once("error",nlt),t.destroy(e))},nlt=()=>{},qD=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Fwe=2,zwe=1;import{finished as Gwe}from"stream/promises";var $_=(t,e)=>{t.pipe(e),ilt(t,e),slt(t,e)},ilt=async(t,e)=>{if(!(Yo(t)||Yo(e))){try{await Gwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}IY(e)}},IY=t=>{t.writable&&t.end()},slt=async(t,e)=>{if(!(Yo(t)||Yo(e))){try{await Gwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}PY(t)}},PY=t=>{t.readable&&t.destroy()};var Hwe=(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})=>Vs.has(c)))olt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Vs.has(c)))clt({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]:wp(s);$_(o,i)}},olt=(t,e,r,n)=>{r==="output"?$_(t.stdio[n],e):$_(e,t.stdio[n]);let i=alt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},alt=["stdin","stdout","stderr"],clt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;ult(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},ult=(t,{signal:e})=>{Yo(t)&&Sp(t,llt,e)},llt=2;import{addAbortListener as plt}from"events";var Tp=[];Tp.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Tp.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Tp.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var BD=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",CY=Symbol.for("signal-exit emitter"),kY=globalThis,dlt=Object.defineProperty.bind(Object),NY=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(kY[CY])return kY[CY];dlt(kY,CY,{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}},VD=class{},flt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),DY=class extends VD{onExit(){return()=>{}}load(){}unload(){}},MY=class extends VD{#e=$Y.platform==="win32"?"SIGINT":"SIGHUP";#r=new NY;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Tp)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(!BD(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 Tp)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,Tp.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 BD(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"&&BD(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)}},$Y=globalThis.process,{onExit:Wwe,load:dsr,unload:fsr}=flt(BD($Y)?new MY($Y):new DY);var Kwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Wwe(()=>{t.kill()});plt(n,()=>{i()})};var Zwe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=tD(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=hlt(r,n,i),{sourceStream:d,sourceError:f}=glt(t,u),{options:p,fileDescriptors:h}=Wa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},hlt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=mlt(t,e,...r),a=dD(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},mlt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Ywe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||AK(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]=GN(r,...n);return{destination:e(Ywe)(i,s,o),pipeOptions:o}}if(Wa.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}`)},Ywe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),glt=(t,e)=>{try{return{sourceStream:I_(t,e)}}catch(r){return{sourceError:r}}};var Qwe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=_lt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw LY({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},_lt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return PY(t),n;if(e!==void 0)return IY(r),e},LY=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>N_({error:t,command:Jwe,escapedCommand:Jwe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Jwe="source.pipe(destination)";var Xwe=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 ylt}from"stream/promises";var eTe=(t,e,r)=>{let n=GD.has(e)?vlt(t,e):Slt(t,e);return Sp(t,blt,r.signal),Sp(e,wlt,r.signal),Elt(e),n},Slt=(t,e)=>{let r=wp([t]);return $_(r,e),GD.set(e,r),r},vlt=(t,e)=>{let r=GD.get(e);return r.add(t),r},Elt=async t=>{try{await ylt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}GD.delete(t)},GD=new WeakMap,blt=2,wlt=1;import{aborted as Tlt}from"util";var tTe=(t,e)=>t===void 0?[]:[Alt(t,e)],Alt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Tlt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw LY({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var HD=(t,...e)=>{if(vr(e[0]))return HD.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Zwe(t,...e),i=Rlt({...n,destination:r});return i.pipe=HD.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Rlt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=xlt(t,i);Qwe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=eTe(e,s,d);return await Promise.race([Xwe(l),...tTe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},xlt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Dlt}from"timers/promises";import{on as Olt}from"events";import{getDefaultHighWaterMark as Ilt}from"stream";var WD=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return Plt(e,o),nTe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Plt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},UY=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;Clt(e,o,t);let a=t.readableObjectMode&&!s;return nTe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},Clt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},nTe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=Olt(t,"data",{signal:e.signal,highWaterMark:rTe,highWatermark:rTe});return klt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},FY=Ilt(!0),rTe=FY,klt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=Nlt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*bp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*LT(a)}},Nlt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[LD(t,r,!e),$D(t,i,!n,{})].filter(Boolean);var iTe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=Mlt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([$lt(t),d]);return}let f=gY(c,r),p=UY({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([Llt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},Mlt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!zD({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=UY({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await mwe(a,t,r,s)},$lt=async t=>{await Dlt(),t.readableFlowing===null&&t.resume()},Llt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await xD(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await OD(r,{maxBuffer:s})):await k_(r,{maxBuffer:s})}catch(a){return sTe(mbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},zY=async t=>{try{return await t}catch(e){return sTe(e)}},sTe=({bufferedData:t})=>CSe(t)?new Uint8Array(t):t;import{finished as Ult}from"stream/promises";var jT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=Flt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],Ult(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||qlt(a,e,r,n)}finally{o.abort()}},Flt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&zlt(t,r,n),n},zlt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{jlt(e,r),n.call(t,...i)}},jlt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},qlt=(t,e,r,n)=>{if(!Blt(t,e,r,n))throw t},Blt=(t,e,r,n=!0)=>r.propagating?oTe(t)||KD(t):(r.propagating=!0,jY(r,e)===n?oTe(t):KD(t)),jY=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",KD=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",oTe=t=>t?.code==="EPIPE";var aTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>qY({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),qY=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=jT(t,e,u);if(jY(u,e)){await l;return}let[d]=await Promise.all([iTe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var cTe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?wp([t,e].filter(Boolean)):void 0,uTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>qY({...Vlt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:Glt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),Vlt=({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}},Glt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Hlt}from"events";var lTe=t=>T_(t,"ipc"),dTe=(t,e)=>{let r=eD(t);Ga({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var fTe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=lTe(s),a=su(e,"ipc"),c=su(r,"ipc");for await(let u of AY({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(gbe(t,i,c),i.push(u)),o&&dTe(u,s);return i},pTe=async(t,e)=>(await Promise.allSettled([t]),e);var hTe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:y})=>{let w=vwe(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:w,propagating:!1},S=aTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),v=uTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),E=[],I=fTe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:E,verboseInfo:p}),C=Wlt(m,t,x),O=Klt(h,x);try{return await Promise.race([Promise.all([{},bwe(w),Promise.all(S),v,I,KEe(t,d),...C,...O]),_,Ylt(t,y),...BEe(t,s,f,y),...lEe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...jEe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(k){return f.terminationReason??="other",Promise.all([{error:k},w,Promise.all(S.map(T=>zY(T))),zY(v),pTe(I,E),Promise.allSettled(C),Promise.allSettled(O)])}},Wlt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:jT(n,i,r)),Klt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Qo(s,{checkOpen:!1})&&!Yo(s)).map(({type:i,value:s,stream:o=s})=>jT(o,n,e,{isSameDirection:Vs.has(i),stopOnExit:i==="native"}))),Ylt=async(t,{signal:e})=>{let[r]=await Hlt(t,"error",{signal:e});throw r};var mTe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),qT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Ha();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},L_=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 Zlt}from"stream";import{callbackify as Jlt}from"util";import{finished as gTe}from"stream/promises";var BY=async t=>{if(t!==void 0)try{await VY(t)}catch{}},_Te=async t=>{if(t!==void 0)try{await GY(t)}catch{}},VY=async t=>{await gTe(t,{cleanup:!0,readable:!1,writable:!0})},GY=async t=>{await gTe(t,{cleanup:!0,readable:!0,writable:!1})},YD=async(t,e)=>{if(await t,e)throw e},ZD=(t,e,r)=>{r&&!KD(r)?t.destroy(r):e&&t.destroy()};var yTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||os.has(r),{subprocessStdout:a,waitReadableDestroy:c}=HY(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=WY(a,o),{read:f,onStdoutDataDone:p}=KY({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Zlt({read:f,destroy:Jlt(ZY.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return YY({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},HY=(t,e,r)=>{let n=I_(t,e),i=qT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},WY=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:FY},KY=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Ha(),o=WD({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){Qlt(this,o,s)},onStdoutDataDone:s}},Qlt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},YY=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await GY(t),await n,await BY(i),await e,r.readable&&r.push(null)}catch(s){await BY(i),STe(r,s)}},ZY=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await L_(r,e)&&(STe(t,n),await YD(e,n))},STe=(t,e)=>{ZD(t,t.readable,e)};import{Writable as Xlt}from"stream";import{callbackify as vTe}from"util";var ETe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=JY(t,r,e),o=new Xlt({...QY(n,t,i),destroy:vTe(e9.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return XY(n,o),o},JY=(t,e,r)=>{let n=dD(t,e),i=qT(r,n,"writableFinal"),s=qT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},QY=(t,e,r)=>({write:edt.bind(void 0,t),final:vTe(tdt.bind(void 0,t,e,r))}),edt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},tdt=async(t,e,r)=>{await L_(r,e)&&(t.writable&&t.end(),await e)},XY=async(t,e,r)=>{try{await VY(t),e.writable&&e.end()}catch(n){await _Te(r),bTe(e,n)}},e9=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await L_(r,e),await L_(n,e)&&(bTe(t,i),await YD(e,i))},bTe=(t,e)=>{ZD(t,t.writable,e)};import{Duplex as rdt}from"stream";import{callbackify as ndt}from"util";var wTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||os.has(r),{subprocessStdout:c,waitReadableDestroy:u}=HY(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=JY(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=WY(c,a),{read:_,onStdoutDataDone:y}=KY({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),w=new rdt({read:_,...QY(l,t,d),destroy:ndt(idt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return YY({subprocessStdout:c,onStdoutDataDone:y,readable:w,subprocess:t,subprocessStdin:l}),XY(l,w,c),w},idt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([ZY({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),e9({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var t9=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||os.has(e),o=I_(t,r),a=WD({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return sdt(a,o,t)},sdt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var TTe=(t,{encoding:e})=>{let r=mTe();t.readable=yTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=ETe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=wTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=t9.bind(void 0,t,e),t[Symbol.asyncIterator]=t9.bind(void 0,t,e,{})};var ATe=(t,e)=>{for(let[r,n]of adt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},odt=(async()=>{})().constructor.prototype,adt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(odt,t)]);var RTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=ldt(t,e,r),{subprocess:f,promise:p}=fdt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=HD.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),ATe(f,p),Wa.set(f,{options:l,fileDescriptors:d}),f},ldt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=rD(t,e,r),{file:a,commandArguments:c,options:u}=bD(t,e,r),l=ddt(u),d=Lwe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},ddt=({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}},fdt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=udt(...wD(t,e,r))}catch(h){return Nwe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;cdt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];Hwe(c,a,u),Kwe(c,r,u);let d={},f=Ha();c.kill=cEe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=cTe(c,r),TTe(c,r),Pwe(c,r);let p=pdt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},pdt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,_]=await hTe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let y=h.map((S,v)=>au(S,e,v)),w=au(m,e,"all"),x=hdt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:w,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return D_(x,n,e)},hdt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?$T({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ka,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):CD({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var JD=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,mdt(n,t[n],i)]));return{...t,...r}},mdt=(t,e,r)=>gdt.has(t)&&vr(e)&&vr(r)?{...e,...r}:r,gdt=new Set(["env",...CK]);var Vl=(t,e,r,n)=>{let i=(o,a,c)=>Vl(o,a,r,c),s=(...o)=>_dt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},_dt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(vr(s))return i(t,JD(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=ydt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?Twe(a,c,u):RTe(a,c,u,i)},ydt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=LSe(e)?USe(e,r):[e,...r],[o,a,c]=GN(...s),u=JD(JD(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var xTe=({file:t,commandArguments:e})=>ITe(t,e),OTe=({file:t,commandArguments:e})=>({...ITe(t,e),isSync:!0}),ITe=(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]=Sdt(t);return{file:r,commandArguments:n}},Sdt=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(vdt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},vdt=/ +/g;var PTe=(t,e,r)=>{t.sync=e(Edt,r),t.s=t.sync},CTe=({options:t})=>kTe(t),Edt=({options:t})=>({...kTe(t),isSync:!0}),kTe=t=>({options:{...bdt(t),...t}}),bdt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},NTe={preferLocal:!0};var DTe=Vl(()=>({})),ncr=Vl(()=>({isSync:!0})),MTe=Vl(xTe),icr=Vl(OTe),scr=Vl(GEe),ocr=Vl(CTe,{},NTe,PTe),{sendMessage:acr,getOneMessage:ccr,getEachMessage:ucr,getCancelSignal:lcr}=Cwe();var $Te=!1,LTe,wdt=t=>{LTe??=t},UTe=t=>{$Te=!0,wdt(t)},Nn=()=>$Te,cu=()=>LTe,FTe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var BT=null,zTe=t=>(BT&&BT.destroy(),BT=new Gs({totalAllowedTime:t}),BT),jTe=()=>BT;var Gs=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&&Nn())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((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await MC({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{Y.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),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 qTe={name:"@netlify/agent-runner-cli",type:"module",version:"2.6.2-PAW-837.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md" "!src/lib/__fixtures__/**"',"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" "!src/lib/__fixtures__/**"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},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.21.0","@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.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var xdt=Adt(import.meta.url),Odt=uu.dirname(xdt),Idt=Rdt(import.meta.url),U_=re("shell"),r9=new Set,BTe={preferLocal:!0},_t=(t,e,r)=>{let[n,i]=Pdt(e,r),s={...BTe,...i},o=DTe(t,n,s);GTe(o,s),KTe(o);let a=r?.idleTimeout;return a&&a>0&&WTe(o,a),o},VTe=(t,e)=>{let r={...BTe,...e},n=MTe(t,r);return GTe(n,r),KTe(n),e?.idleTimeout&&e.idleTimeout>0&&WTe(n,e.idleTimeout),n},Pdt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},GTe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Za.env.NETLIFY_LOCAL_QUIET==="true")return;if(Za.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Cb).pipe(Za.stdout),t.stderr?.pipe(new Cb).pipe(Za.stderr);return}t.stdout?.pipe(Za.stdout),t.stderr?.pipe(Za.stderr)},n9=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Za.kill(-t.pid,e),U_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return U_.error("Error killing process:",r),!1}},HTe=t=>n9(t,"SIGKILL"),WTe=(t,e)=>{let r=null,n=()=>{U_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),n9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(U_.log(`Force killing idle process ${t.pid}`),HTe(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)},KTe=t=>{r9.add(t);let e=jTe();if(e){let r=e.onTimesUp(()=>{U_.log(`Global timer expired, killing process ${t.pid}`),n9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(U_.log(`Force killing process ${t.pid} after timeout`),HTe(t))},5e3)});t.on("exit",()=>{r9.delete(t),r()}),t.on("error",()=>{r9.delete(t),r()})}};function Hs(t,e){if(!Za.env.NETLIFY_LOCAL_MODE)try{let i=Idt.resolve(qTe.name),s=uu.dirname(i);for(;s!==uu.dirname(s);){let o=uu.dirname(s);if(uu.basename(o)==="node_modules"){let a=uu.join(o,".bin",e);if(QD.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Za.env.NODE_PATH){let i=uu.join(Za.env.NODE_PATH,".bin",e);if(QD.existsSync(i))return i}let r=uu.join(t,"node_modules",".bin",e);if(QD.existsSync(r))return r;let n=uu.join(Odt,"..","node_modules",".bin",e);if(QD.existsSync(n))return n}var F_=re("repo"),tAe="runner-diffs-",i9=t=>`${tAe}${t}-`,rAe=async t=>{let e=eM.tmpdir(),r;try{r=await ii.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(tAe)&&!n.startsWith(i9(t))).map(n=>ii.rm(Ws.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},YTe=async t=>{let e=Cdt("sha256");for await(let r of kdt(t))e.update(r);return e.digest("hex")},ZTe=async(t,e)=>t.size===e.size&&await YTe(t.path)===await YTe(e.path),nAe=/.. (.+)?\.log$/,Ndt=[nAe],Ddt=1,JTe=t=>{let e=t.split(`
387
+ if (condition) { yield value; }`)};import{Buffer as jct}from"buffer";import{StringDecoder as qct}from"string_decoder";var LD=(t,e,r)=>{if(r)return;if(t)return{transform:Bct.bind(void 0,new TextEncoder)};let n=new qct(e);return{transform:Vct.bind(void 0,n),final:Gct.bind(void 0,n)}},Bct=function*(t,e){jct.isBuffer(e)?yield iu(e):typeof e=="string"?yield t.encode(e):yield e},Vct=function*(t,e){yield Fr(e)?t.write(e):e},Gct=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as cwe}from"util";var SY=cwe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),UD=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Wct}=e[r];for await(let i of n(t))yield*UD(i,e,r+1)},uwe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Hct(r,Number(e),t)},Hct=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*UD(n,r,e+1)},lwe=cwe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Wct=function*(t){yield t};var vY=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},dwe=(t,e)=>[...e.flatMap(r=>[...bp(r,t,0)]),...LT(t)],bp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Yct}=e[r];for(let i of n(t))yield*bp(i,e,r+1)},LT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Kct(r,Number(e),t)},Kct=function*(t,e,r){if(t!==void 0)for(let n of t())yield*bp(n,r,e+1)},Yct=function*(t){yield t};var EY=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=pwe(t,o,s),u=Ep(e),l=Ep(r),d=u?SY.bind(void 0,UD,a):vY.bind(void 0,bp),f=u||l?SY.bind(void 0,uwe,a):vY.bind(void 0,LT),p=u||l?lwe.bind(void 0,a):void 0;return{stream:new Zct({writableObjectMode:n,writableHighWaterMark:fwe(n),readableObjectMode:i,readableHighWaterMark:fwe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},FD=(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=pwe(o,r,a);t=dwe(c,t)}return t},pwe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:swe(n,a)},LD(r,o,n),$D(r,s,n,c),{transform:t,final:e},{transform:owe(i,a)},iwe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var hwe=(t,e)=>{for(let r of Jct(t))Qct(t,r,e)},Jct=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),Qct=(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 ${Bl[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>Xct(a,n));r.input=xT(o)},Xct=(t,e)=>{let r=FD(t,e,"utf8",!0);return eut(r),xT(r)},eut=t=>{let e=t.find(r=>typeof r!="string"&&!Fr(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 iut,appendFileSync as sut}from"fs";var zD=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&T_(r,n)&&!os.has(e)&&tut(n)&&(t.some(({type:i,value:s})=>i==="native"&&rut.has(s))||t.every(({type:i})=>Vs.has(i))),tut=t=>t===1||t===2,rut=new Set(["pipe","overlapped"]),mwe=async(t,e,r,n)=>{for await(let i of t)nut(e)||_we(i,r,n)},gwe=(t,e,r)=>{for(let n of t)_we(n,e,r)},nut=t=>t._readableState.pipes.length>0,_we=(t,e,r)=>{let n=eD(t);Ga({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var ywe=({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,u)=>out({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},out=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=Sbe(t,s,d),p=iu(f),{stdioItems:h,objectMode:m}=e[r],_=aut([p],h,c,n),{serializedResult:y,finalResult:w=y}=cut({chunks:_,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});uut({serializedResult:y,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?w:void 0;try{return n.error===void 0&&lut(y,h,i),x}catch(S){return n.error=S,x}},aut=(t,e,r,n)=>{try{return FD(t,e,r,!1)}catch(i){return n.error=i,t}},cut=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:xT(t)};let o=NSe(t,r);return n[s]?{serializedResult:o,finalResult:yY(o,!i[s],e)}:{serializedResult:o}},uut=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!zD({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=yY(t,!1,o);try{gwe(a,e,n)}catch(c){r.error??=c}},lut=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>DD.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?sut(n,t):(r.add(s),iut(n,t))}};var Swe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,au(e,r,"all")]:Array.isArray(e)?[au(t,r,"all"),...e]:Fr(t)&&Fr(e)?xK([t,e]):`${t}${e}`};import{once as bY}from"events";var vwe=async(t,e)=>{let[r,n]=await dut(t);return e.isForcefullyTerminated??=!1,[r,n]},dut=async t=>{let[e,r]=await Promise.allSettled([bY(t,"spawn"),bY(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Ewe(t):r.value},Ewe=async t=>{try{return await bY(t,"exit")}catch{return Ewe(t)}},bwe=async t=>{let[e,r]=await t;if(!fut(e,r)&&wY(e,r))throw new Zo;return[e,r]},fut=(t,e)=>t===void 0&&e===void 0,wY=(t,e)=>t!==0||e!==null;var wwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=put(t,e,r),o=s?.code==="ETIMEDOUT",a=ybe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},put=(t,e,r)=>t!==void 0?t:wY(e,r)?new Zo:void 0;var Twe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=mut(t,e,r),d=yut({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return D_(d,c,u)},mut=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=rD(t,e,r),a=gut(r),{file:c,commandArguments:u,options:l}=bD(t,e,a);_ut(l);let d=ewe(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},gut=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,_ut=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&jD("ipcInput"),t&&jD("ipc: true"),r&&jD("detached: true"),n&&jD("cancelSignal")},jD=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},yut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=Sut({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=wwe(c,r),{output:h,error:m=u}=ywe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((w,x)=>au(w,r,x)),y=au(Swe(h,r),r,"all");return Eut({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},Sut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{hwe(s,r);let a=vut(r);return hut(...wD(t,e,a))}catch(a){return N_({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},vut=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:PD(e)}),Eut=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?CD({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):$T({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as cdt}from"events";import{spawn as udt}from"child_process";import Iwe from"process";import{once as TY,on as but}from"events";var Awe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(x_({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:gD(t)}),wut({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),wut=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{fD(e,i);let s=ql(t,e,r),o=new AbortController;try{return await Promise.race([Tut(s,n,o),Aut(s,r,o),Rut(s,r,o)])}catch(a){throw O_(t),a}finally{o.abort(),pD(e,i)}},Tut=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await TY(t,"message",{signal:r});return n}for await(let[n]of but(t,"message",{signal:r}))if(e(n))return n},Aut=async(t,e,{signal:r})=>{await TY(t,"disconnect",{signal:r}),dEe(e)},Rut=async(t,e,{signal:r})=>{let[n]=await TY(t,"strict:error",{signal:r});throw uD(n,e)};import{once as xwe,on as xut}from"events";var Owe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>AY({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),AY=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{x_({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:gD(t)}),fD(e,s);let o=ql(t,e,r),a=new AbortController,c={};return Out(t,o,a),Iut({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Put({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},Out=async(t,e,r)=>{try{await xwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},Iut=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await xwe(t,"strict:error",{signal:r.signal});n.error=uD(i,e),r.abort()}catch{}},Put=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of xut(r,"message",{signal:s.signal}))Rwe(o),yield c}catch{Rwe(o)}finally{s.abort(),pD(e,a),n||O_(t),i&&await t}},Rwe=({error:t})=>{if(t)throw t};var Pwe=(t,{ipc:e})=>{Object.assign(t,kwe(t,!1,e))},Cwe=()=>{let t=Iwe,e=!0,r=Iwe.channel!==void 0;return{...kwe(t,e,r),getCancelSignal:UEe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},kwe=(t,e,r)=>({sendMessage:vD.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Awe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Owe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as Cut}from"child_process";import{PassThrough as kut,Readable as Nut,Writable as Dut,Duplex as Mut}from"stream";var Nwe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{mY(n);let a=new Cut;$ut(a,n),Object.assign(a,{readable:Lut,writable:Uut,duplex:Fut});let c=N_({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=zut(c,o,i);return{subprocess:a,promise:u}},$ut=(t,e)=>{let r=UT(),n=UT(),i=UT(),s=Array.from({length:e.length-3},UT),o=UT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},UT=()=>{let t=new kut;return t.end(),t},Lut=()=>new Nut({read(){}}),Uut=()=>new Dut({write(){}}),Fut=()=>new Mut({read(){},write(){}}),zut=async(t,e,r)=>D_(t,e,r);import{createReadStream as Dwe,createWriteStream as Mwe}from"fs";import{Buffer as jut}from"buffer";import{Readable as FT,Writable as qut,Duplex as But}from"stream";var Lwe=(t,e)=>MD(Vut,t,e,!1),zT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Bl[t]}.`)},$we={fileNumber:zT,generator:EY,asyncGenerator:EY,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:But.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Vut={input:{...$we,fileUrl:({value:t})=>({stream:Dwe(t)}),filePath:({value:{file:t}})=>({stream:Dwe(t)}),webStream:({value:t})=>({stream:FT.fromWeb(t)}),iterable:({value:t})=>({stream:FT.from(t)}),asyncIterable:({value:t})=>({stream:FT.from(t)}),string:({value:t})=>({stream:FT.from(t)}),uint8Array:({value:t})=>({stream:FT.from(jut.from(t))})},output:{...$we,fileUrl:({value:t})=>({stream:Mwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Mwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:qut.fromWeb(t)}),iterable:zT,asyncIterable:zT,string:zT,uint8Array:zT}};import{on as Gut,once as Uwe}from"events";import{PassThrough as Hut,getDefaultHighWaterMark as Wut}from"stream";import{finished as jwe}from"stream/promises";function wp(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)xY(i);let e=t.some(({readableObjectMode:i})=>i),r=Kut(t,e),n=new RY({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Kut=(t,e)=>{if(t.length===0)return Wut(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},RY=class extends Hut{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(xY(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Yut(this,this.#e,this.#s);let r=Qut({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(xY(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)}},Yut=async(t,e,r)=>{qD(t,Fwe);let n=new AbortController;try{await Promise.race([Zut(t,n),Jut(t,e,r,n)])}finally{n.abort(),qD(t,-Fwe)}},Zut=async(t,{signal:e})=>{try{await jwe(t,{signal:e,cleanup:!0})}catch(r){throw qwe(t,r),r}},Jut=async(t,e,r,{signal:n})=>{for await(let[i]of Gut(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},xY=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},Qut=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{qD(t,zwe);let a=new AbortController;try{await Promise.race([Xut(s,e,a),elt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),tlt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),qD(t,-zwe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?OY(t):rlt(t))},Xut=async(t,e,{signal:r})=>{try{await t,r.aborted||OY(e)}catch(n){r.aborted||qwe(e,n)}},elt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await jwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Bwe(o)?i.add(e):Vwe(t,o)}},tlt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Uwe(t,i,{signal:s}),!t.readable)return Uwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},rlt=t=>{t.writable&&t.end()},qwe=(t,e)=>{Bwe(e)?OY(t):Vwe(t,e)},Bwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",OY=t=>{(t.readable||t.writable)&&t.destroy()},Vwe=(t,e)=>{t.destroyed||(t.once("error",nlt),t.destroy(e))},nlt=()=>{},qD=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Fwe=2,zwe=1;import{finished as Gwe}from"stream/promises";var $_=(t,e)=>{t.pipe(e),ilt(t,e),slt(t,e)},ilt=async(t,e)=>{if(!(Yo(t)||Yo(e))){try{await Gwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}IY(e)}},IY=t=>{t.writable&&t.end()},slt=async(t,e)=>{if(!(Yo(t)||Yo(e))){try{await Gwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}PY(t)}},PY=t=>{t.readable&&t.destroy()};var Hwe=(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})=>Vs.has(c)))olt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Vs.has(c)))clt({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]:wp(s);$_(o,i)}},olt=(t,e,r,n)=>{r==="output"?$_(t.stdio[n],e):$_(e,t.stdio[n]);let i=alt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},alt=["stdin","stdout","stderr"],clt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;ult(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},ult=(t,{signal:e})=>{Yo(t)&&Sp(t,llt,e)},llt=2;import{addAbortListener as plt}from"events";var Tp=[];Tp.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Tp.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Tp.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var BD=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",CY=Symbol.for("signal-exit emitter"),kY=globalThis,dlt=Object.defineProperty.bind(Object),NY=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(kY[CY])return kY[CY];dlt(kY,CY,{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}},VD=class{},flt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),DY=class extends VD{onExit(){return()=>{}}load(){}unload(){}},MY=class extends VD{#e=$Y.platform==="win32"?"SIGINT":"SIGHUP";#r=new NY;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Tp)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(!BD(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 Tp)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,Tp.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 BD(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"&&BD(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)}},$Y=globalThis.process,{onExit:Wwe,load:dsr,unload:fsr}=flt(BD($Y)?new MY($Y):new DY);var Kwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Wwe(()=>{t.kill()});plt(n,()=>{i()})};var Zwe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=tD(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=hlt(r,n,i),{sourceStream:d,sourceError:f}=glt(t,u),{options:p,fileDescriptors:h}=Wa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},hlt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=mlt(t,e,...r),a=dD(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},mlt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Ywe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||AK(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]=GN(r,...n);return{destination:e(Ywe)(i,s,o),pipeOptions:o}}if(Wa.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}`)},Ywe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),glt=(t,e)=>{try{return{sourceStream:I_(t,e)}}catch(r){return{sourceError:r}}};var Qwe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=_lt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw LY({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},_lt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return PY(t),n;if(e!==void 0)return IY(r),e},LY=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>N_({error:t,command:Jwe,escapedCommand:Jwe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Jwe="source.pipe(destination)";var Xwe=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 ylt}from"stream/promises";var eTe=(t,e,r)=>{let n=GD.has(e)?vlt(t,e):Slt(t,e);return Sp(t,blt,r.signal),Sp(e,wlt,r.signal),Elt(e),n},Slt=(t,e)=>{let r=wp([t]);return $_(r,e),GD.set(e,r),r},vlt=(t,e)=>{let r=GD.get(e);return r.add(t),r},Elt=async t=>{try{await ylt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}GD.delete(t)},GD=new WeakMap,blt=2,wlt=1;import{aborted as Tlt}from"util";var tTe=(t,e)=>t===void 0?[]:[Alt(t,e)],Alt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Tlt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw LY({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var HD=(t,...e)=>{if(vr(e[0]))return HD.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Zwe(t,...e),i=Rlt({...n,destination:r});return i.pipe=HD.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Rlt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=xlt(t,i);Qwe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=eTe(e,s,d);return await Promise.race([Xwe(l),...tTe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},xlt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Dlt}from"timers/promises";import{on as Olt}from"events";import{getDefaultHighWaterMark as Ilt}from"stream";var WD=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return Plt(e,o),nTe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Plt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},UY=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;Clt(e,o,t);let a=t.readableObjectMode&&!s;return nTe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},Clt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},nTe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=Olt(t,"data",{signal:e.signal,highWaterMark:rTe,highWatermark:rTe});return klt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},FY=Ilt(!0),rTe=FY,klt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=Nlt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*bp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*LT(a)}},Nlt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[LD(t,r,!e),$D(t,i,!n,{})].filter(Boolean);var iTe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=Mlt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([$lt(t),d]);return}let f=gY(c,r),p=UY({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([Llt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},Mlt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!zD({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=UY({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await mwe(a,t,r,s)},$lt=async t=>{await Dlt(),t.readableFlowing===null&&t.resume()},Llt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await xD(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await OD(r,{maxBuffer:s})):await k_(r,{maxBuffer:s})}catch(a){return sTe(mbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},zY=async t=>{try{return await t}catch(e){return sTe(e)}},sTe=({bufferedData:t})=>CSe(t)?new Uint8Array(t):t;import{finished as Ult}from"stream/promises";var jT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=Flt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],Ult(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||qlt(a,e,r,n)}finally{o.abort()}},Flt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&zlt(t,r,n),n},zlt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{jlt(e,r),n.call(t,...i)}},jlt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},qlt=(t,e,r,n)=>{if(!Blt(t,e,r,n))throw t},Blt=(t,e,r,n=!0)=>r.propagating?oTe(t)||KD(t):(r.propagating=!0,jY(r,e)===n?oTe(t):KD(t)),jY=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",KD=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",oTe=t=>t?.code==="EPIPE";var aTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>qY({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),qY=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=jT(t,e,u);if(jY(u,e)){await l;return}let[d]=await Promise.all([iTe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var cTe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?wp([t,e].filter(Boolean)):void 0,uTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>qY({...Vlt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:Glt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),Vlt=({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}},Glt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Hlt}from"events";var lTe=t=>T_(t,"ipc"),dTe=(t,e)=>{let r=eD(t);Ga({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var fTe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=lTe(s),a=su(e,"ipc"),c=su(r,"ipc");for await(let u of AY({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(gbe(t,i,c),i.push(u)),o&&dTe(u,s);return i},pTe=async(t,e)=>(await Promise.allSettled([t]),e);var hTe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:y})=>{let w=vwe(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:w,propagating:!1},S=aTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),v=uTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:x}),E=[],I=fTe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:E,verboseInfo:p}),C=Wlt(m,t,x),O=Klt(h,x);try{return await Promise.race([Promise.all([{},bwe(w),Promise.all(S),v,I,KEe(t,d),...C,...O]),_,Ylt(t,y),...BEe(t,s,f,y),...lEe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...jEe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(k){return f.terminationReason??="other",Promise.all([{error:k},w,Promise.all(S.map(T=>zY(T))),zY(v),pTe(I,E),Promise.allSettled(C),Promise.allSettled(O)])}},Wlt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:jT(n,i,r)),Klt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Qo(s,{checkOpen:!1})&&!Yo(s)).map(({type:i,value:s,stream:o=s})=>jT(o,n,e,{isSameDirection:Vs.has(i),stopOnExit:i==="native"}))),Ylt=async(t,{signal:e})=>{let[r]=await Hlt(t,"error",{signal:e});throw r};var mTe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),qT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Ha();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},L_=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 Zlt}from"stream";import{callbackify as Jlt}from"util";import{finished as gTe}from"stream/promises";var BY=async t=>{if(t!==void 0)try{await VY(t)}catch{}},_Te=async t=>{if(t!==void 0)try{await GY(t)}catch{}},VY=async t=>{await gTe(t,{cleanup:!0,readable:!1,writable:!0})},GY=async t=>{await gTe(t,{cleanup:!0,readable:!0,writable:!1})},YD=async(t,e)=>{if(await t,e)throw e},ZD=(t,e,r)=>{r&&!KD(r)?t.destroy(r):e&&t.destroy()};var yTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||os.has(r),{subprocessStdout:a,waitReadableDestroy:c}=HY(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=WY(a,o),{read:f,onStdoutDataDone:p}=KY({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Zlt({read:f,destroy:Jlt(ZY.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return YY({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},HY=(t,e,r)=>{let n=I_(t,e),i=qT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},WY=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:FY},KY=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Ha(),o=WD({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){Qlt(this,o,s)},onStdoutDataDone:s}},Qlt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},YY=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await GY(t),await n,await BY(i),await e,r.readable&&r.push(null)}catch(s){await BY(i),STe(r,s)}},ZY=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await L_(r,e)&&(STe(t,n),await YD(e,n))},STe=(t,e)=>{ZD(t,t.readable,e)};import{Writable as Xlt}from"stream";import{callbackify as vTe}from"util";var ETe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=JY(t,r,e),o=new Xlt({...QY(n,t,i),destroy:vTe(e9.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return XY(n,o),o},JY=(t,e,r)=>{let n=dD(t,e),i=qT(r,n,"writableFinal"),s=qT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},QY=(t,e,r)=>({write:edt.bind(void 0,t),final:vTe(tdt.bind(void 0,t,e,r))}),edt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},tdt=async(t,e,r)=>{await L_(r,e)&&(t.writable&&t.end(),await e)},XY=async(t,e,r)=>{try{await VY(t),e.writable&&e.end()}catch(n){await _Te(r),bTe(e,n)}},e9=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await L_(r,e),await L_(n,e)&&(bTe(t,i),await YD(e,i))},bTe=(t,e)=>{ZD(t,t.writable,e)};import{Duplex as rdt}from"stream";import{callbackify as ndt}from"util";var wTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||os.has(r),{subprocessStdout:c,waitReadableDestroy:u}=HY(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=JY(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=WY(c,a),{read:_,onStdoutDataDone:y}=KY({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),w=new rdt({read:_,...QY(l,t,d),destroy:ndt(idt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return YY({subprocessStdout:c,onStdoutDataDone:y,readable:w,subprocess:t,subprocessStdin:l}),XY(l,w,c),w},idt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([ZY({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),e9({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var t9=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||os.has(e),o=I_(t,r),a=WD({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return sdt(a,o,t)},sdt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var TTe=(t,{encoding:e})=>{let r=mTe();t.readable=yTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=ETe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=wTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=t9.bind(void 0,t,e),t[Symbol.asyncIterator]=t9.bind(void 0,t,e,{})};var ATe=(t,e)=>{for(let[r,n]of adt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},odt=(async()=>{})().constructor.prototype,adt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(odt,t)]);var RTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=ldt(t,e,r),{subprocess:f,promise:p}=fdt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=HD.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),ATe(f,p),Wa.set(f,{options:l,fileDescriptors:d}),f},ldt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=rD(t,e,r),{file:a,commandArguments:c,options:u}=bD(t,e,r),l=ddt(u),d=Lwe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},ddt=({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}},fdt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=udt(...wD(t,e,r))}catch(h){return Nwe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;cdt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];Hwe(c,a,u),Kwe(c,r,u);let d={},f=Ha();c.kill=cEe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=cTe(c,r),TTe(c,r),Pwe(c,r);let p=pdt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},pdt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,_]=await hTe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let y=h.map((S,v)=>au(S,e,v)),w=au(m,e,"all"),x=hdt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:w,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return D_(x,n,e)},hdt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?$T({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ka,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):CD({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var JD=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,mdt(n,t[n],i)]));return{...t,...r}},mdt=(t,e,r)=>gdt.has(t)&&vr(e)&&vr(r)?{...e,...r}:r,gdt=new Set(["env",...CK]);var Vl=(t,e,r,n)=>{let i=(o,a,c)=>Vl(o,a,r,c),s=(...o)=>_dt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},_dt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(vr(s))return i(t,JD(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=ydt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?Twe(a,c,u):RTe(a,c,u,i)},ydt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=LSe(e)?USe(e,r):[e,...r],[o,a,c]=GN(...s),u=JD(JD(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var xTe=({file:t,commandArguments:e})=>ITe(t,e),OTe=({file:t,commandArguments:e})=>({...ITe(t,e),isSync:!0}),ITe=(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]=Sdt(t);return{file:r,commandArguments:n}},Sdt=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(vdt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},vdt=/ +/g;var PTe=(t,e,r)=>{t.sync=e(Edt,r),t.s=t.sync},CTe=({options:t})=>kTe(t),Edt=({options:t})=>({...kTe(t),isSync:!0}),kTe=t=>({options:{...bdt(t),...t}}),bdt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},NTe={preferLocal:!0};var DTe=Vl(()=>({})),ncr=Vl(()=>({isSync:!0})),MTe=Vl(xTe),icr=Vl(OTe),scr=Vl(GEe),ocr=Vl(CTe,{},NTe,PTe),{sendMessage:acr,getOneMessage:ccr,getEachMessage:ucr,getCancelSignal:lcr}=Cwe();var $Te=!1,LTe,wdt=t=>{LTe??=t},UTe=t=>{$Te=!0,wdt(t)},Nn=()=>$Te,cu=()=>LTe,FTe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var BT=null,zTe=t=>(BT&&BT.destroy(),BT=new Gs({totalAllowedTime:t}),BT),jTe=()=>BT;var Gs=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&&Nn())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((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await MC({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{Y.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),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 qTe={name:"@netlify/agent-runner-cli",type:"module",version:"2.7.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md" "!src/lib/__fixtures__/**"',"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" "!src/lib/__fixtures__/**"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},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.21.0","@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.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var xdt=Adt(import.meta.url),Odt=uu.dirname(xdt),Idt=Rdt(import.meta.url),U_=re("shell"),r9=new Set,BTe={preferLocal:!0},_t=(t,e,r)=>{let[n,i]=Pdt(e,r),s={...BTe,...i},o=DTe(t,n,s);GTe(o,s),KTe(o);let a=r?.idleTimeout;return a&&a>0&&WTe(o,a),o},VTe=(t,e)=>{let r={...BTe,...e},n=MTe(t,r);return GTe(n,r),KTe(n),e?.idleTimeout&&e.idleTimeout>0&&WTe(n,e.idleTimeout),n},Pdt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},GTe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Za.env.NETLIFY_LOCAL_QUIET==="true")return;if(Za.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Cb).pipe(Za.stdout),t.stderr?.pipe(new Cb).pipe(Za.stderr);return}t.stdout?.pipe(Za.stdout),t.stderr?.pipe(Za.stderr)},n9=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Za.kill(-t.pid,e),U_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return U_.error("Error killing process:",r),!1}},HTe=t=>n9(t,"SIGKILL"),WTe=(t,e)=>{let r=null,n=()=>{U_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),n9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(U_.log(`Force killing idle process ${t.pid}`),HTe(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)},KTe=t=>{r9.add(t);let e=jTe();if(e){let r=e.onTimesUp(()=>{U_.log(`Global timer expired, killing process ${t.pid}`),n9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(U_.log(`Force killing process ${t.pid} after timeout`),HTe(t))},5e3)});t.on("exit",()=>{r9.delete(t),r()}),t.on("error",()=>{r9.delete(t),r()})}};function Hs(t,e){if(!Za.env.NETLIFY_LOCAL_MODE)try{let i=Idt.resolve(qTe.name),s=uu.dirname(i);for(;s!==uu.dirname(s);){let o=uu.dirname(s);if(uu.basename(o)==="node_modules"){let a=uu.join(o,".bin",e);if(QD.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Za.env.NODE_PATH){let i=uu.join(Za.env.NODE_PATH,".bin",e);if(QD.existsSync(i))return i}let r=uu.join(t,"node_modules",".bin",e);if(QD.existsSync(r))return r;let n=uu.join(Odt,"..","node_modules",".bin",e);if(QD.existsSync(n))return n}var F_=re("repo"),tAe="runner-diffs-",i9=t=>`${tAe}${t}-`,rAe=async t=>{let e=eM.tmpdir(),r;try{r=await ii.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(tAe)&&!n.startsWith(i9(t))).map(n=>ii.rm(Ws.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},YTe=async t=>{let e=Cdt("sha256");for await(let r of kdt(t))e.update(r);return e.digest("hex")},ZTe=async(t,e)=>t.size===e.size&&await YTe(t.path)===await YTe(e.path),nAe=/.. (.+)?\.log$/,Ndt=[nAe],Ddt=1,JTe=t=>{let e=t.split(`
388
388
  `).reduce((r,n)=>{if(!n)return r;let[i,s,,...o]=n,a=o.join(""),c=i.trim(),u=s.trim();return r[a]?r[a].change=u:r[a]={filePath:a,stage:c,change:u},r},{});return Object.values(e)},Mdt=t=>t instanceof Error&&String(t.stderr??"").includes("No such remote"),QTe=t=>{let e=t instanceof Error?t.message:String(t),r=String(t?.stderr??"").trim();return _n(r?`${e}: ${r}`:e)},$dt=t=>/Authentication failed|returned error: 401/.test(String(t?.stderr??"")),XTe=t=>t.pathname.replace(/\/+$/,"").replace(/\.git$/,""),Ldt=(t,e)=>{try{let r=new URL(t),n=new URL(e);return["https:","http:"].includes(n.protocol)&&n.protocol===r.protocol&&n.host===r.host&&XTe(n)===XTe(r)&&n.password!==""}catch{return!1}},eAe={stdin:"pipe",stdout:"pipe",stderr:"pipe",stripFinalNewline:!1},XD=500,VT=class extends Error{constructor(r,n){super(n instanceof Error?n.message:String(n));this.step=r;this.cause=n}},Pi=class{constructor(e=process.cwd()){this.cwd=e}getRoot(){return this.root??=this.run(["rev-parse","--show-toplevel"],{stdout:"pipe"}).then(({stdout:e})=>String(e).trim()),this.root}async restorePausedWork(e){let r="restore";try{let n=await this.restorePausedFiles(e);r="stage",await this.stageBuildSetup();let i=await this.getRoot(),s=new Set(n.changedFiles),o=(await this.listIndexEntries(n.deletedFiles,{cwd:i})).filter(({filePath:a})=>!s.has(a));return await this.unstageFiles(n.changedFiles,{cwd:i}),o.length>0&&await ii.writeFile(await this.getSetupMetadataPath(),JSON.stringify(o)),{rewrittenFileCount:n.rewrittenFileCount}}catch(n){throw new VT(r,n)}}run(e,r={}){return _t("git",e,{cwd:this.cwd,...r,env:{...r.env,NETLIFY_INTERNAL_GIT:"1"}})}async commitAndCreateDiffs({config:e,isRetry:r}){F_.info("Getting runner diffs");let n=await this.hasAgentChanges(),{hasChanges:i}=n,{status:s}=n;if(!i)return{hasChanges:!1};if(!r){let u=JTe(s);await this.discardSetupOnlyChanges(u)}F_.info("Changes after processing"),await this.getStatus();let o=await this.getIgnoredPathspecs(s);if(await this.stageFiles(o),await this.excludeUnchangedSetupDescendants(),i=await this.hasStagedChanges(),!i)return{hasChanges:!1,ignored:o};await this.run(["commit","-m","Agent runner [skip ci]"]);let a=await ii.mkdtemp(Ws.join(eM.tmpdir(),i9(e.sessionId))),c=await this.writeDiffFiles({config:e,diffDir:a,target:{commit:"HEAD"},ignored:o});return await this.rollbackIfLocal(),c.hasChanges&&Y.distribution("diff.size",(c.diffBinary??c.diff).size,{phase:"final"}),c}async getStatus(){let e=await this.run(["-c","status.relativePaths=true","status","-s"]);return String(e.stdout??"")}async hasAgentChanges(){let e=await this.getStatus();return{hasChanges:(e.trim().length===0?[]:e.split(`
389
389
  `).filter(i=>Ndt.some(o=>o instanceof RegExp?o.test(i):i===o)?!1:i[1]?.trim()!=="")).length!==0,status:e}}async getCurrentCommitSha(){let{stdout:e}=await this.run(["rev-parse","HEAD"]);return String(e??"").trim()}async reset(){await this.run(["reset","--hard","HEAD"]),await ii.rm(await this.getSetupMetadataPath(),{force:!0})}async discardSetupOnlyChanges(e){let r=e.filter(n=>n.stage&&!n.change).map(n=>n.filePath);r.length!==0&&await this.run(["restore","--staged","--worktree","--pathspec-from-file=-"],{input:r.join(`
390
390
  `)})}async stageBuildSetup(){await ii.rm(await this.getSetupMetadataPath(),{force:!0});let e=await this.getIgnoredPathspecs();await this.stageFiles(e)}getSetupMetadataPath(){return this.setupMetadataPath??=this.getRoot().then(async e=>{let{stdout:r}=await this.run(["rev-parse","--git-path","netlify-agent-runner-setup.json"],{cwd:e,stdout:"pipe"});return Ws.resolve(e,String(r).trim())}),this.setupMetadataPath}async listIndexEntries(e,r){let n=[];for(let i=0;i<e.length;i+=XD){let s=e.slice(i,i+XD).map(a=>`:(literal)${a}`),{stdout:o}=await this.run(["ls-files","--stage","-z","--",...s],{...eAe,...r});for(let a of String(o??"").split("\0").filter(Boolean))n.push({filePath:a.slice(a.indexOf(" ")+1),entry:a})}return n}async excludeUnchangedSetupDescendants(e){let r;try{r=JSON.parse(await ii.readFile(await this.getSetupMetadataPath(),"utf8"))}catch(a){if(a.code==="ENOENT")return;throw a}let i={cwd:await this.getRoot(),env:e},s=new Map((await this.listIndexEntries(r.map(({filePath:a})=>a),i)).map(({filePath:a,entry:c})=>[a,c])),o=r.filter(({filePath:a,entry:c})=>s.get(a)===c);o.length!==0&&await this.run(["update-index","--force-remove","-z","--stdin"],{...i,input:o.map(({filePath:a})=>a).join("\0")})}async getIgnoredPathspecs(e){e||=await this.getStatus();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 e.split(`
@@ -601,7 +601,7 @@ ${Oe.trim()}
601
601
  \`\`\``:Oe.trim()),Ke==="error"&&Le&&(dn=dn?`${dn}
602
602
 
603
603
  *Command failed*`:`*Command failed: ${Le.trim()}*`),ge({title:vt,message:dn,category:Wi,...Ye},!0);break}case"step_finish":{Ee();let ne=X.part?.tokens;ne&&(_={input_tokens:(_?.input_tokens??0)+(ne.input??0),output_tokens:(_?.output_tokens??0)+(ne.output??0),reasoning_output_tokens:(_?.reasoning_output_tokens??0)+(ne.reasoning??0),cache_creation_input_tokens:(_?.cache_creation_input_tokens??0)+(ne.cache?.write??0),cache_read_input_tokens:(_?.cache_read_input_tokens??0)+(ne.cache?.read??0)}),X.part?.cost!=null&&(y=(y??0)+X.part.cost);break}case"error":{Ee();let xe=X.error?.data?.message??X.error?.message??X.part?.state?.error??(X.error?JSON.stringify(X.error).slice(0,500):"unknown error");m=m?`${m}
604
- ${xe}`:xe;break}default:X.type&&!te.has(X.type)&&(te.add(X.type),kd.log(`Unhandled opencode event type: ${X.type}`))}});let j=!1;await se.catch(ee=>{j=Ks(ee,o),Ee();let X=Qa({catchError:ee,runCmd:se,error:m,result:h??We,runnerName:fL});m=X.error,h=X.result}),me?.stop(),de?.stop(),he?.stop(),await I?.remove(),await C?.remove(),await O?.remove(),await k.close();let F=Date.now()-M;Ee(),fe.close(),le.flush();let q=j;if(q&&(m=void 0),!m&&!h&&We&&(h=We),_&&ks(_,v?{model:v}:{}),S)return{steps:N,duration:F,agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:y,toolErrorCount:w,toolCallCount:x,pendingInteraction:S};let{providerFailure:W,classification:V}=Ni({error:m});return{steps:N,duration:F,result:await Di({initialResult:h,agentName:fL,hasError:!!m}),error:Mi({error:m,agentName:fL}),isRetryableError:V?.retryable??$i(m),isProviderUnavailableError:V?.providerFault??Li(m),...W?{providerFailure:W}:{},agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:y,toolErrorCount:w,toolCallCount:x,...q?{aborted:!0}:{}}}var bvt=()=>Nd.join(UPe.homedir(),".config","opencode"),jPe=()=>{let t=pL.env.XDG_DATA_HOME,e=t&&Nd.isAbsolute(t)?t:Nd.join(UPe.homedir(),".local","share");return Nd.join(e,"opencode")},qPe=async()=>{let t=[bvt(),jPe()];await Promise.all(t.map(e=>RR.rm(e,{recursive:!0,force:!0})))},BPe={baseDir:jPe(),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};import qr from"fs/promises";import OR from"os";import ls from"path";import YPe from"process";import Nvt from"readline";import wvt from"crypto";import Tvt from"os";import xR from"path";import Dd from"fs";var VPe=re("antigravity_install"),v8="1.3.3";var Avt={"agy_cli_linux_x64.tar.gz":"8ee3ca32574c431285efbf4d4732f7f8d53e959370bc4a61646e4fa496f7f2b6","agy_cli_linux_x64_musl.tar.gz":"db8d000171e52d125a7bf2f4dbdbb60dd5ed095ab6edaab12cddf4e168e03dda","agy_cli_linux_arm64.tar.gz":"a9d23fe1d7e5c8471881ab37723571a8d3f24e6ecace8fe082f8c0c8d90f41ca","agy_cli_linux_arm64_musl.tar.gz":"36e59c992adfca49f834b993896338636e41e14b50202bb99c732a1e8594e956","agy_cli_mac_x64.tar.gz":"78547d90bfd1559a87ba63e941f9332a0d1889d2de415da337dedec8dc9aa239","agy_cli_mac_arm64.tar.gz":"c39926f3312e87eaa56d750658cf442669d0a716f49319d06369be7fa80520eb"},hL={"gemini-3.8-flash":["low","medium","high"],"gemini-3.7-flash":["low","medium","high"],"gemini-3.6-flash":["low","medium","high"],"gemini-3.1-pro":["low","high"]},E8={"gemini-3.1-pro":"gemini-3.1-pro-preview"},Rvt="https://github.com/google-antigravity/antigravity-cli/releases/download",xvt=6e4,Ovt=async(t,e=xvt)=>{let r=new AbortController,n,i,s=()=>{clearTimeout(i),i=setTimeout(()=>{r.abort(),n?.cancel().catch(()=>{})},e)};s();try{let o=await fetch(t,{signal:r.signal});if(!o.ok||!o.body)throw new Error(`Failed to download Antigravity CLI from ${t}: ${o.status} ${o.statusText}`);n=o.body.getReader();let a=[];for(let c=await n.read();!c.done;c=await n.read())a.push(c.value),s();if(r.signal.aborted)throw r.signal.reason;return Buffer.concat(a)}catch(o){throw r.signal.aborted?new Error(`Antigravity CLI download stalled: no data for ${e/1e3}s from ${t}`):o}finally{clearTimeout(i)}},Ivt=()=>xR.join(Tvt.homedir(),".netlify-agent-runner","antigravity",v8),Pvt=()=>!process.report?.getReport()?.header?.glibcVersionRuntime,Cvt=(t=process.platform,e=process.arch,r=t==="linux"&&Pvt())=>{let n={x64:"x64",arm64:"arm64"}[e];if(!n)throw new Error(`Antigravity CLI has no build for CPU architecture ${e}`);if(t==="darwin")return`agy_cli_mac_${n}.tar.gz`;if(t==="linux")return`agy_cli_linux_${n}${r?"_musl":""}.tar.gz`;throw new Error(`Antigravity CLI has no build for platform ${t}`)},GPe=async()=>{let t=Ivt(),e=xR.join(t,"agy");if(Dd.existsSync(e))return e;let r=Cvt(),n=`${Rvt}/${v8}/${r}`;Dd.mkdirSync(t,{recursive:!0});let i=Dd.mkdtempSync(xR.join(t,"staging-"));VPe.log(`Installing Antigravity CLI ${v8} (${r}) on demand`);let s=Date.now();try{let a=await Ovt(n),c=wvt.createHash("sha256").update(a).digest("hex");if(c!==Avt[r])throw new Error(`Antigravity CLI ${r} failed its checksum check (got sha256 ${c})`);let u=xR.join(i,r);Dd.writeFileSync(u,a),await _t("tar",["-xzf",u,"-C",i,"antigravity"]);let l=xR.join(i,"antigravity");if(!Dd.existsSync(l))throw new Error(`Antigravity CLI binary not found after extracting ${r}`);Dd.chmodSync(l,493),Dd.renameSync(l,e)}finally{Dd.rmSync(i,{recursive:!0,force:!0})}let o=Date.now()-s;return Y.timing("antigravity.install_duration",o),VPe.log(`Installed Antigravity CLI in ${o}ms`),e};var HPe={view_file:{name:"Read file",category:K.FileRead},write_to_file:{name:"Edit file",category:K.FileWrite},replace_file_content:{name:"Edit file",category:K.FileWrite},run_command:{name:"Run command",category:K.RunCommand},read_url_content:{name:"Fetch web",category:K.Web},search_web:{name:"Search web",category:K.Web},manage_task:{name:"Manage command",category:K.RunCommand},invoke_subagent:{name:"Run subagent",category:K.Task},define_subagent:{name:"Define subagent",category:K.Task},manage_subagents:{name:"Manage subagents",category:K.Task},send_message:{name:"Message agent",category:K.Task},schedule:{name:"Schedule",category:K.Task},list_resources:{name:"List resources",category:K.Explore},read_resource:{name:"Read resource",category:K.Explore}};var Cu=re("runner_antigravity"),mc="Antigravity CLI",WPe="gemini",Dvt="gemini-3.8-flash",Mvt="medium",$vt="24h",Lvt=(t,e)=>hL[t]?.includes(e)?e:(Cu.log(`${t} has no '${e}' effort; using low`),"low"),yL=()=>ls.join(OR.homedir(),".gemini","antigravity-cli"),_L=()=>ls.join(OR.homedir(),".gemini","config","rules","netlify-agent-runner.md"),Uvt=async t=>{let e=_L();await qr.mkdir(ls.dirname(e),{recursive:!0});let r=`---
604
+ ${xe}`:xe;break}default:X.type&&!te.has(X.type)&&(te.add(X.type),kd.log(`Unhandled opencode event type: ${X.type}`))}});let j=!1;await se.catch(ee=>{j=Ks(ee,o),Ee();let X=Qa({catchError:ee,runCmd:se,error:m,result:h??We,runnerName:fL});m=X.error,h=X.result}),me?.stop(),de?.stop(),he?.stop(),await I?.remove(),await C?.remove(),await O?.remove(),await k.close();let F=Date.now()-M;Ee(),fe.close(),le.flush();let q=j;if(q&&(m=void 0),!m&&!h&&We&&(h=We),_&&ks(_,v?{model:v}:{}),S)return{steps:N,duration:F,agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:y,toolErrorCount:w,toolCallCount:x,pendingInteraction:S};let{providerFailure:W,classification:V}=Ni({error:m});return{steps:N,duration:F,result:await Di({initialResult:h,agentName:fL,hasError:!!m}),error:Mi({error:m,agentName:fL}),isRetryableError:V?.retryable??$i(m),isProviderUnavailableError:V?.providerFault??Li(m),...W?{providerFailure:W}:{},agentSessionId:p,resolvedModel:v,effort:f,resolvedProviderEffort:E,usage:_,costUsd:y,toolErrorCount:w,toolCallCount:x,...q?{aborted:!0}:{}}}var bvt=()=>Nd.join(UPe.homedir(),".config","opencode"),jPe=()=>{let t=pL.env.XDG_DATA_HOME,e=t&&Nd.isAbsolute(t)?t:Nd.join(UPe.homedir(),".local","share");return Nd.join(e,"opencode")},qPe=async()=>{let t=[bvt(),jPe()];await Promise.all(t.map(e=>RR.rm(e,{recursive:!0,force:!0})))},BPe={baseDir:jPe(),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};import qr from"fs/promises";import OR from"os";import ls from"path";import YPe from"process";import Nvt from"readline";import wvt from"crypto";import Tvt from"os";import xR from"path";import Dd from"fs";var VPe=re("antigravity_install"),v8="1.4.4";var Avt={"agy_cli_linux_x64.tar.gz":"9ae4f7f0667a2868e15bb9ad93819ff7527c7187f12d12e3b5191137c726287b","agy_cli_linux_x64_musl.tar.gz":"f85f39bf74b6ff5f7f45da768ba52b39318a7e528811df65f394995959cbcc2c","agy_cli_linux_arm64.tar.gz":"57a96abbc94745a5faf4f24e878766a1882b9aa4c4b83ba567717d8206745f5a","agy_cli_linux_arm64_musl.tar.gz":"4900f50954ad6fb3747c2d80fe29b5986ae861d0f8ea04c2a5bd9cb1781507dc","agy_cli_mac_x64.tar.gz":"12c96c065ac50d36e087c1fda1bba8d6fb4fa7af232d1ef2a44499c2481a52bf","agy_cli_mac_arm64.tar.gz":"85482aa8969300183f71c9653d9f581248fba7f506342a8eb087f3d2503203bd"},hL={"gemini-4-argon":["low","medium","high"],"gemini-3.8-flash":["low","medium","high"],"gemini-3.7-flash":["low","medium","high"],"gemini-3.6-flash":["low","medium","high"],"gemini-3.1-pro":["low","high"]},E8={"gemini-3.1-pro":"gemini-3.1-pro-preview"},Rvt="https://github.com/google-antigravity/antigravity-cli/releases/download",xvt=6e4,Ovt=async(t,e=xvt)=>{let r=new AbortController,n,i,s=()=>{clearTimeout(i),i=setTimeout(()=>{r.abort(),n?.cancel().catch(()=>{})},e)};s();try{let o=await fetch(t,{signal:r.signal});if(!o.ok||!o.body)throw new Error(`Failed to download Antigravity CLI from ${t}: ${o.status} ${o.statusText}`);n=o.body.getReader();let a=[];for(let c=await n.read();!c.done;c=await n.read())a.push(c.value),s();if(r.signal.aborted)throw r.signal.reason;return Buffer.concat(a)}catch(o){throw r.signal.aborted?new Error(`Antigravity CLI download stalled: no data for ${e/1e3}s from ${t}`):o}finally{clearTimeout(i)}},Ivt=()=>xR.join(Tvt.homedir(),".netlify-agent-runner","antigravity",v8),Pvt=()=>!process.report?.getReport()?.header?.glibcVersionRuntime,Cvt=(t=process.platform,e=process.arch,r=t==="linux"&&Pvt())=>{let n={x64:"x64",arm64:"arm64"}[e];if(!n)throw new Error(`Antigravity CLI has no build for CPU architecture ${e}`);if(t==="darwin")return`agy_cli_mac_${n}.tar.gz`;if(t==="linux")return`agy_cli_linux_${n}${r?"_musl":""}.tar.gz`;throw new Error(`Antigravity CLI has no build for platform ${t}`)},GPe=async()=>{let t=Ivt(),e=xR.join(t,"agy");if(Dd.existsSync(e))return e;let r=Cvt(),n=`${Rvt}/${v8}/${r}`;Dd.mkdirSync(t,{recursive:!0});let i=Dd.mkdtempSync(xR.join(t,"staging-"));VPe.log(`Installing Antigravity CLI ${v8} (${r}) on demand`);let s=Date.now();try{let a=await Ovt(n),c=wvt.createHash("sha256").update(a).digest("hex");if(c!==Avt[r])throw new Error(`Antigravity CLI ${r} failed its checksum check (got sha256 ${c})`);let u=xR.join(i,r);Dd.writeFileSync(u,a),await _t("tar",["-xzf",u,"-C",i,"antigravity"]);let l=xR.join(i,"antigravity");if(!Dd.existsSync(l))throw new Error(`Antigravity CLI binary not found after extracting ${r}`);Dd.chmodSync(l,493),Dd.renameSync(l,e)}finally{Dd.rmSync(i,{recursive:!0,force:!0})}let o=Date.now()-s;return Y.timing("antigravity.install_duration",o),VPe.log(`Installed Antigravity CLI in ${o}ms`),e};var HPe={view_file:{name:"Read file",category:K.FileRead},write_to_file:{name:"Edit file",category:K.FileWrite},replace_file_content:{name:"Edit file",category:K.FileWrite},run_command:{name:"Run command",category:K.RunCommand},read_url_content:{name:"Fetch web",category:K.Web},search_web:{name:"Search web",category:K.Web},manage_task:{name:"Manage command",category:K.RunCommand},invoke_subagent:{name:"Run subagent",category:K.Task},define_subagent:{name:"Define subagent",category:K.Task},manage_subagents:{name:"Manage subagents",category:K.Task},send_message:{name:"Message agent",category:K.Task},schedule:{name:"Schedule",category:K.Task},list_resources:{name:"List resources",category:K.Explore},read_resource:{name:"Read resource",category:K.Explore}};var Cu=re("runner_antigravity"),mc="Antigravity CLI",WPe="gemini",Dvt="gemini-3.8-flash",Mvt="medium",$vt="24h",Lvt=(t,e)=>hL[t]?.includes(e)?e:(Cu.log(`${t} has no '${e}' effort; using low`),"low"),yL=()=>ls.join(OR.homedir(),".gemini","antigravity-cli"),_L=()=>ls.join(OR.homedir(),".gemini","config","rules","netlify-agent-runner.md"),Uvt=async t=>{let e=_L();await qr.mkdir(ls.dirname(e),{recursive:!0});let r=`---
605
605
  trigger: always_on
606
606
  description: Netlify agent runner platform instructions
607
607
  ---
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@netlify/agent-runner-cli",
3
3
  "type": "module",
4
- "version": "2.6.2-PAW-837.1",
4
+ "version": "2.7.0",
5
5
  "description": "CLI tool for running Netlify agents",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",